Web Development

Web development is the umbrella term for conceptualizing, creating, deploying and operating web applications and application programming interfaces for the Web.

Why is web development important?

The Web has grown a mindboggling amount in the number of sites, users and implementation capabilities since the first website went live in 1989. Web development is the concept that encompasses all the activities involved with websites and web applications.

How does Python fit into web development?

Python can be used to build server-side web applications. While a web framework is not required to build web apps, it's rare that developers would not use existing open source libraries to speed up their progress in getting their application working.

Python is not used in a web browser. The language executed in browsers such as Chrome, Firefox and Internet Explorer is JavaScript. Projects such as pyjs can compile from Python to JavaScript. However, most Python developers write their web applications using a combination of Python and JavaScript. Python is executed on the server side while JavaScript is downloaded to the client and run by the web browser.

Web development resources

To become an experienced web developer you need to know the foundation principles that the web is built with, such as HTTP requests and responses, client (typically web browsers) and server (web servers such as Nginx and Apache architectures, HTML, CSS and JavaScript, among many other topics. The following resources provide a range of perspectives and when combined together should get you oriented in the web development world.

  • How the Internet works is a must-read to get a quick overview of all the pieces that go into a network connection from one machine to another. The example explains how an email is sent and the story is just as useful for learning about other connections such as downloading a webpage.

  • If you want to be a web developer it's important to know the foundational tools used to build websites and web applications. It is also important to understand that the core concepts such as HTTP, URLs and HTML were all there at the beginning and then were expanded with new specifications over time. This article on the History of the Web succinctly explains the origins of the web starting from Tim Berners-Lee's origin vision and release at CERN.

  • Web Architecture 101 is a great high-level overview of the technologies that run the modern web, such as DNS, load balancers, web application servers (for Python that equates to WSGI servers), data bases, task queues, caching and several other critical concepts.

  • What happens when? is an incredibly detailed answer to the questions "What happens when you type google.com into your browser's address box and press enter?" that seems straightforward on the surface until you really dig in.

  • How browsers work provides an overview with solid detail on how browsers take the HTML, CSS, JavaScript, images and other files as input and render webpages as output. It is well worth your time to know this stuff as a web developer.

  • The history of the URL explains how the growth of ARPANET to hundreds of nodes eventually led to the creation of the URL. This is a great read that provides historical context for why things are the way they are with the web.

  • The Browser Hacker's Guide to Instantly Loading Everything is a spectacular technical talk given by Addy Osmani at JSConf EU 2017 that has great bits of developer knowledge for both beginner and experienced web developers alike.

  • Build a web application from scratch and its follow on posts for request handling middleware explores the fundamentals of web development. Learning these foundational concepts is critical for a web developer even though you should still plan to use an established web framework such as Django or Flask to build real-world applications. The open source code for these posts is available on GitHub.

  • While not Python-specific, Mozilla put together a Learning the Web tutorial for beginners and intermediate web users who want to build websites. It's worth a look for general web development learning.

  • Web development involves HTTP communication between the server, hosting a website or web application, and the client, a web browser. Knowing how web browsers works is important as a developer, so take a look at this article on what's in a web browser.

  • Ping at the speed of light dives into the computer networking weeds with how fast packets travel through the internet plumbing. The author created a Python script that scrapes network speeds from disparate locations to see what the network speed is in fiber optic cables as a percentage of the speed of light.

  • The critical path: optimizing load times with the Chrome DevTools provides a well-written explanation about using Chrome's developer features to improve the performance of your websites and web applications.

  • Three takeaways for web developers after two weeks of painfully slow Internet is a must-read for every web developer. Not everyone has fast Internet service, whether because they are in a remote part of the world or they're just in a subway tunnel. Optimizing sites so they work in those situations is important for keeping your users happy.

  • The History of the URL: Path, Fragment, Query, and Auth gives a comprenhensive historical perspective on the fundamental way to link to resources on the web. This post should be required reading for web developers.

  • Quantum Up Close: What is a browser engine? explains how a browser takes in HTML, JavaScript, CSS, images and any other data and files to produce a webpage as output.

  • How to understand performance tests is an important topic because many websites are slow and bloated. Learning about improving the performance of your site is one of the best ways to become a better web developer. Another great article on website performance is The average web page is 3MB. How much should we care?. The visuals alone tell a compelling story about how large webpage sizes have grown in recent years.

Let's get started. What do you want to learn right now?

I want to learn how to code a Python web application using a framework.

I've built a Python web app, now how do I deploy it?

How do I improve an app's user interface?

Matt Makai 2012-2022