What do you want to learn?
Skip to main content
Web Development: Executive Briefing
by Brice Wilson
Web development has evolved rapidly in recent years. This course will give you an overview of the technologies used in modern web development as well as the skills required to assemble a first-class development team.
Start CourseBookmarkAdd to Channel
Table of contents
What Is Web Development?
Web Development Overview
Web development is creating websites or applications that are meant to be viewed or used from within a web browser. Web browsers exist on just about every computing platform these days. The most popular browsers are Internet Explorer for Microsoft, as well as its successor named Edge, Google's Chrome browser, and Mozilla's Firefox. Browsers are designed to understand a standard set of technologies. Ideally this means that developers can program to those standards and be confident that their applications will run anywhere for any user with a browser. This isn't always the case, but it's certainly more true than it used to be. Building applications on top of the standards supported by web browsers is so popular because it's easy to distribute those applications to anyone in the world with computer, a browser, and a connection to the internet. When you hear people talk about web development, you'll often hear them refer to websites and web applications. These two terms are often used interchangeably, but they do hint at two somewhat different types of web development that exist. Websites are generally just a tool for distributing information. They're often just a collection of static web pages that present information about a specific topic. They'll have links to the various pages on the site and may be links to other sites on the intranet, but beyond the links on the site, there isn't much interactivity. An example of a static website might be a blog you like to read or a small local business site that just has a few pages describing the services they offer. The goal is really just to convey static information. Web applications are much more interactive. They can be programmed to do lots of different things, but they are particularly good at collecting data from users, storing it somewhere, and then presenting it again when needed. For example, consider a hotel reservation application. It takes information about the dates of your stay and the type of room you'd like and stores it in a database somewhere. That data is then accessible to the hotel staff, as well as to you if you return to the application later to confirm your reservation. Applications can also convey information like a website, but they usually provide a lot more interactivity and allow you to perform some set of tasks. Building a website or a web application
Web Application Architecture
Building a website or a web application really involves two distinct types of development--server-side development and client-side development. I'll talk more about each of those later. But for now, I just want you to understand the general architecture. In almost all cases, an active network connection between the server and client is required in order to use a web application. Typically when a user clicks on a link or performs some other action in a web browser, a request is sent to a server somewhere on the internet. The server will then execute some code or locate a requested file and deliver it over the internet back to the browser. Client-side code may then execute inside the browser to further process the data sent from the server. Without an active connection to the Internet, none of this communication is possible. I mentioned earlier that web development is performed against a set of standards that are supported by all web browsers. That also applies to the network connection between browsers and servers. They communicate using a network protocol known as HTTP, which stands for Hypertext Transfer Protocol. The HTTP protocol can also be encrypted and is then referred to as HTTPS, the S being short for Secure. You have undoubtedly seen HTTP and HTTPS as the start of a website address. It's really there as an instruction to the browser. It tells the browser to use the HTTP protocol to communicate with the specified website. Most browsers support a handful of other protocols, but HTTP and HTTPS are far and away the most commonly used.
Progressive Web Apps
Not all web development is done with a desktop web browser in mind. Since the earliest days of the modern smart phone, there have been attempts to make web applications look and perform like native mobile applications. The techniques used to do this have evolved over the years, but the current best practices have been collected into a set of techniques to deliver what is known as a progressive web app, a PWA for short. They use some advanced and emerging web development techniques to give users an experience similar to the native apps they've become accustomed to. PWAs load faster than the typical web application. They can also be installed on a phone like a native app, and often have other features not typically associated with traditional web apps like storing data on the client and receiving push notifications. They're certainly worth considering if you're interesting in leveraging your existing web development teams to also deliver a nice mobile experience for your users. And speaking of teams, in the next module, I'll talk about the skills required on a typical web development team. Stay tuned.
Server-side developers, as you probably guessed, focus on writing the code that executes on the server. The skills required to be a server-side developer are much less specific than those for client-side developers since server-side developers aren't bound by the specific technologies supported by web browser. There's more flexibility when choosing a programming language and application development framework, but it's still necessary for server-side developers to be proficient in at least one of them. I'll talk more about some of those options that exist later in the course. Server-side developers generally spend less time worrying about the user interface and more time gathering, processing, and delivering the data and resources needed on the client. This often includes things like gathering data from an internal company database, making calls to third-party services, or just implementing proprietary business rules and calculations before sending the results down to the client. Because of this, it's often important for server-side developers to have experience with relational databases and integrating with disparate systems. It's true that just about every web application will require both server- and client-side development skills, but it's increasingly the case that members of many teams have skills that span those required for the server and client. I'll talk about that development trend next.
Additional Skills That May Be Required
In addition to client-side developers, server-side developers, and maybe the occasional full stack developer, there are a few additional skills that will likely be required to successfully develop and deploy a production web application. These include system administration, database administration, and network administration. The specific tasks performed might include configuring and securing the servers that host the web app, creating and tuning the database, and configuring firewalls and routers to allow all of the appropriate network traffic through. In larger organizations, there may be separate people that specialize in each of these things. In very small organizations, the developers may have to pitch in to handle them. These are generally peripheral tasks when you think about the development of a medium to large web application, but that does not mean they're not important. It's always better to know ahead of time that you'll need those skills and have people with them ready to help when it's time to deploy that shiny new application.
Coding for a Browser
In this module, I'm going to cover client-side development and the most popular technologies used to build applications that run in a web browser. I mentioned earlier that one of the reasons for the popularity of web development is that developers can code to the standards supported by web browsers and trust that their code will run on any computer in the world that has a browser. This is true, but the reality is not quite so idyllic. The reality is that all of the browser makers aim to support web standards, but they're very competitive and are always working to make their browsers faster and more user-friendly. The result is that there are occasionally small bits of code that work perfectly well in one browser and either generate an error or maybe just look a little different when rendered in another browser. The browser renders the user interface of a web application, so even slight differences in how a particular browser displays a button or positions a user input form can be very noticeable and distracting. The likelihood of running into one of these compatibility issues is not near as great as it was several years ago, but it's still something developers need to consider. Unless you know that you're developing an internal corporate application, and you know that all of your users will be using a particular browser, then part of web development really needs to be testing your application on multiple browsers so you can be sure all users will have the experience you expect.
HTML and CSS
HTML and CSS are the two technologies that most directly control the visual appearance of a web application. HTML stands for Hypertext Markup Language, and it's used to define the structure of a web page. Developers use HTML to do things like add a new paragraph of text to a page, add the input boxes for a data entry form, or include a button the user can click to have their data saved to the server. There are a few pieces of the HTML specification that let developers control the visual appearance of the elements being added to a page, but for the most part HTML is about defining what goes on a web page. How those elements appear on the page is really the domain of cascading stylesheets, more commonly known as CSS. CSS allows developers to apply styling to the page elements they defined in the HTML. That styling could include things like particular fonts or text formatting, the colors used on a page, or how HTML elements are positioned relative to one another. It's important that developers define the HTML for a page separately from the CSS. It's often helpful to users to adjust the visual appearance of a page depending on the type of device a user is using. If they're using a desktop computer with a large monitor, then an application might detect that and load a CSS file that formats the HTML with lots of menus and navigation items that might not fit well on a smaller display. If the application detects that the user is using the web browser on their phone, then a different CSS file might be applied that hides some of the menus and reformats the content into a form that's easily scrollable on a small screen. It's still the same HTML code, but the CSS is used to detect and present it in the best format for the device being used.
Libraries and Frameworks
Role of the Server in Modern Web Applications
Programming Languages and Frameworks
Server-side code obviously requires a server, and that comes with its own set of choices when deciding how to architect your web application. Windows and Linux are easily the two most popular web server operating systems. But keep in mind that Linux comes in several popular distributions from a variety of organizations. Which server operating system you choose will probably depend on the existing skills and experience on your team, as well as the technical standards that may already be in place at your company. In addition to choosing an operating system, you must also choose where to host your application. If you work in a large organization, you may already have in place a datacenter with the infrastructure necessary to support and maintain your application. However, it's become increasingly popular for organizations of all sizes to host web applications with one of the large cloud providers. Microsoft Azure, Google Cloud, and Amazon Web Services are all popular cloud hosting providers. There's a common joke that the cloud is just a fancy name for someone else's computer. That's good for a laugh, but if you assume that oversimplification bears any resemblance to modern cloud architecture, then you're likely going to miss out on some significant benefits offered by these services. Cloud architecture can easily be the topic for an entire course, and there are lots of benefits to hosting with a cloud provider, but the one I'll mention here is that you can usually very easily scale out an application to multiple servers in the cloud. This can be handy if you suddenly have a spike in traffic or if there are certain times of the day or week when you need more capacity. Implementing something like that on your own servers often requires a lot more effort and expense.
Web development these days involves more technologies and a greater variety of skills than ever before. However, it's also more possible to deliver fast, beautiful apps with more capabilities than ever before. I hope this course has given you a better understanding of how to build modern web applications. When you're ready to dive deeper, Pluralsight has lots of courses available on all of the topics I've covered. I hope you'll keep learning. Thanks for watching, and good luck on your next project. We hope you enjoyed this course. If you're interested in more content for technical leaders, content we keep short and focused with the up-to-date information you need to be informed and make decisions but without getting buried in the details, find other courses like this at plrsig.ht/exec.
Brice has been a professional developer for over 20 years and loves to experiment with new tools and technologies. Web development and native iOS apps currently occupy most of his time.
Released31 Jul 2018