1.1 A Complicated Ecosystem

You may remember from your primary school science class that nature can be characterized as an ecosystem, a complex system of interrelationships between living and nonliving elements of the environment. As visualized in Figure 1.1, web development can also be understood as an ecosystem, one that builds on existing technologies (URL, DNS, and Internet), and contributes new protocols and standards (HTTP, HTML, and JavaScript) that facilitate client-server interactions. As this ecosystem matures, new client and server technologies, frameworks, and platforms continue to be developed in support of the web (PHP, Node, React etc.). The rich web development ecosystem has created entirely new areas of interest for both research and businesses including search engines, social networks, ecommerce, content management systems, and more.

Figure 1.1 The web development ecosystem

The figure shows the web development ecosystem.
Figure 1.1 Full Alternative Text

Just as you don’t need to know everything about worms, trees, birds, amphibians, and dirt to be a biologist, you don’t necessarily need to understand every concept in Figure 1.1 in complete depth in order to be successful as a web developer. Nonetheless, it is important to see how this complicated network of concepts and technologies defines the scope of modern web development, and how concepts from each chapter fit into the bigger picture.

In Figure 1.1, web development is visualized as a series of related platforms. The two teal platforms represent the topics typically understood to constitute web development.

There are two distinct development platforms in the diagram which represents the fact that there are two distinct forms of development: front end and back end. The term front end refers to those technologies that run in the browser: in this diagram, they are HTML, CSS, JavaScript, and a wide-range of front-end oriented frameworks such as React; much of this book is focused on these technologies. The term back end refers to those technologies that run on the server. The book focuses on two of the most popular back-end development technologies—PHP and Node—and covers a variety of other back-end-related topics such as APIs, databases, and a variety of server-based development tools.

The platform at the top of the diagram contains a variety of topics that are typically dependent upon first having knowledge of the development technologies. These “advanced” topics are typically an important part of “real” web development; however, not all developers require expertise in all of these topics.

At the bottom of the diagram are two white platforms that represent the infrastructural topics of web development. These include the servers and networking topics that constitute the infrastructure of the web. To fully learn about the infrastructure of the web is beyond the scope of this book; nonetheless, it is important for any contemporary web developer to have some understanding of the basics of this infrastructure.

Finally, the light-blue platform just below the back-end platform represents a variety of foundational topics that are important for anyone who works within the programming or the infrastructural side of the web. This includes the key protocols and standards of the web, such as HTTP and DNS, as well as the vital topic of security.

The textbook also covers the topics of these different platforms but focuses especially on the front-end and back-end development topics, since most entry-level web development positions require proficiency with these topics.

It is the perspective of the book, however, that web development is more than just markup and programming. In recent years, knowledge of the infrastructure upon which the web is built has become increasingly important for practicing web developers. For this reason, this chapter (and the next) journeys into the basement of foundational protocols, hardware infrastructure, and key terminology.

The last third of the book corresponds to some of the topics covered in the top platform. If you are taking a single course in web development, you might not have time to cover these more “advanced” topics. Yet, as far as real-world web development, they are just as important as the more recognizable ones on the explicitly development-focused platforms. We would encourage all of our readers to ascend to the upper-platform topics during their journey to become a web developer with this book. But before we go there, it is now time to begin with the foundational knowledge and learn more about web development in general.