Getting Started with Web Development
Web development is a big subject with lots of lingo: CSS, JavaScript, servers, clients, React, Rails, SQL, Angular… The words themselves aren't scary, but the time necessary to learn about each concept is. And the list of concepts is growing.
It’s easy to get scared off, especially when you hear developers talk about the struggle to keep up. Learning seems to be an endless uphill battle, all the harder because you’re starting at the bottom.
I can give you a little bit of relief here. Web development isn't as hard as you might think.
Reason 1: You don’t need to learn it all
You don't need to learn everything about everything. In fact, if you visited a web development team you would find the collective expertise spread around a number of specialists. The heroic do-it-all developers get a lot of attention, but you can easily carve out a niche.
The front end
Front end developers write the code that runs on web browsers. They are concerned with how webpages look and basic interactivity. You can think about the front end like the clean customer-facing portion of a store as opposed to the cluttered back rooms.
In practice, this means learning about HTML, CSS, and JavaScript. These are the foundational technologies of the web and have been around forever.
HTML stands for hypertext markup language. It's for the content of your webpage. There's a picture here, a paragraph here, a headline there.
CSS stands for cascading style sheets. It's for the visuals of your webpage. This picture has rounded corners, this paragraph has blue text, this headline uses the Comic Sans font.
JavaScript is a scripting language. It's for interactivity and more advanced functionality. It can handle simple things like popping up a window, or it can be as complex as you want.
Over the years, the process of creating and maintaining web pages has gotten more complicated as developers have tried to make websites more like smartphone apps. For this and some other reasons, people have built new technologies to create complex web applications.
Now you hear about front end frameworks like Rails, Angular, React, and Vue. These tools take effort to learn, but they give developers superpowers. Despite the new things to learn, when you deploy these web applications to the internet you're still left with HTML, CSS, and JavaScript files.
These foundational technologies are a great place to start learning and will not go out of date any time soon.
The back end
The problem with the front end is that all code runs in the web browser. A savvy user could easily read and modify the source code. This makes the front end a bad place to put critical business logic such as login authentication.
The solution to this is to run code on the web server. Although it's gotten more complex in recent years, you can still think of the web server like a single computer in a secure location which serves the web page. The user's browser makes requests to the server, but the user never deals with it directly or peeks at its internal workings.
The back end is where data is stored and accessed in databases, communication between different servers occurs, and advanced calculations are performed. A back end developer is worried about data, security, and performance. But even though these topics seem complicated, a pure back end developer's job can be less messy. They only have to work with their own back end technologies, while front end developers need their code to run on every possible browser or device.
Back end (also called "server-side") technologies have names like Node, Express, ASP.NET, MongoDB, SQL, PHP, and Ruby.
While you will find developers who handle both the front and back end, there is plenty of demand for specialists who know one aspect of web development well.
Reason 2: It's faster to get started in 2020
As web development has matured the standards have improved.
Inconsistencies between web browsers used to make web development very frustrating. Being a web developer in 1998 meant deciding whether to optimize for Netscape Navigator, optimize for Internet Explorer, or spend a lot of time getting your site to work on both.
If a developer had to write a different version of their site for every browser out there, you would end up with a much less vibrant web than what we have today. That’s why the World Wide Web Consortium (W3C) was formed—to define web standards that all browsers should implement.
The problem did not go away immediately, but entering 2020 we are finally at a time where developers can simply write standards-based code and count on it running predictably on about 95% of the web browsers out there.
I still get the occasional email from a user complaining that our site has problems in old browsers, but additional tools exist which can allow you to write standards-based code and translate that code to language that old browsers understand.
This means that you, new developer, can safely ignore all the hacks and workarounds that used to be necessary. You can focus on well-documented standards which do what they’re supposed to do on mobile devices as well as desktop computers.
And today’s web standards incorporate more common use cases of the modern web, such as interactivity and embedded video. In the early 2000s, the task of displaying a video which would play in all browsers with the controls you expect was a complex prospect. Today a simple <video> tag will do it.
So you have some advantages starting out today. You can devote your time toward learning about web standards which are expected to remain stable well into the future.
Reason 3: The core technologies are easy
Open up a web page that was made in 1993 and you’ll find that it still loads.
Back then, the internet was a simpler place. The “world wide web” was not trying to replace desktop applications like it is now. It was simply about linked information, accessible anywhere.
The method of making websites in 1993 is still completely valid—and still often done—in the 2020s. Despite all the other things that are possible today, there is no need to overcomplicate the action of making a website. You don’t always need complex publishing controls, user registration, and a snappy app-like experience.
Sometimes you just need a website.
I think that’s the way to approach web development. Create as much as you can using a limited number of technologies: HTML and CSS. You will find that those two are perfectly adequate for a personal portfolio, a website for your business, or most of the other pages that make up the internet.
Trust me, the time spent getting good at HTML and CSS is never wasted. You’ll come back to these technologies over and over again.
When you begin feeling limited, add another technology to your toolkit. The natural next step is JavaScript. And even though it is a complex subject, no developer uses every part of JavaScript. Whatever problem you're trying to solve or function you're trying to add, you can quickly find resources online by people who have done this before. This is how a lot of developers improve their skills and there's nothing wrong with it.
So how do you get started? First, block out the noise. You’ll hear that React is the hot new technology. You’ll hear that you should focus on the Cloud. You’ll hear about new preprocessors which try to improve upon the way HTML and CSS is written.
But in my opinion, the best way to get started is to focus on those two core technologies: HTML and CSS. You'll find that they're powerful and deep enough to create valuable webpages from day one.
By understanding the process of making basic pages, you’ll be able to understand and appreciate how the newer technologies meaningfully improve the web development process. You'll experience firsthand the limitations, ask yourself if there is a better way, and then find that there is—and somebody has made it.
That's a far better way to learn than receiving a list of technologies that other people have deemed important. And that's how modern web developers expand their skill set.