The Path of a Web Developer
07/29/2010
This is a difficult time to start learning web development. I only say that because, like most skills that require steady learning, the breadth of knowledge that is required grows every day. If you are a first time programmer, first time web developer, or an intermediate developer (that’s my category), finding your way around what you should learn is tricky. I hope to provide insight into things that worked along my beginner path.
Software developers who are not paying attention to the web are hurting themselves. The amount of new desktop software compared to the amount of new web applications in the past two years is incredible, with web applications greatly outnumbering those on desktop.
There are two reasons why web applications rule. Desktop software is hard to maintain. When you need to fix it, you create a patch and then let people know that it is available for download. With web applications, you update your web server with the new patch and every user is already up to date. A second reason lies in software piracy at an all-time high due to increasingly fast connection speeds. Web applications are never stolen.
Lastly, a main drawback of web applications is that you leave yourself at risk when exposed to the public. Someone with the knowledge to bypass security in your application can destroy it. This affects every user. Taking these things into consideration, developing for the web is fun and is getting easier every day.
The First Thing To Do
Find a mentor. There are developers, including myself, who are willing to help you get started. When you have someone to guide you, answer questions, bounce ideas off of, and create challenges for you, the learning process is much more focused and rewarding. This is one criteria of being a web developer that I have learned to appreciate in the past few months.
How Do I Get There?
Skills begin with rudimentary drills. To master a martial art, you first learn a stance to hold your body in and a punch to inflict damage. Long amounts of training will allow you to not need to consciously remember these small skills when performing other things. The same is with web development.
Keep in mind that web development was my first experience programming. This was also when I was 14, so I scouted for the easier things to learn. This worked out very well for me and provided a good understanding of how the web works.
The Basics
The first task is to learn HTML and CSS. These are the building blocks of the web and are important to know inside and out. Neither of these is a programming language, but they are essential. They define your content, how it looks, and where it is placed.
Choose Your Destiny
When you have a grasp of the basics, your path splits somewhat. There are two approaches you can go to next, and both should be explored. However, it does not matter which order you do them in. My suggestion is in the order that I give them to you.
You will need to learn some sort of server-side programming language. PHP (stands for PHP: Hypertext Preprocessor) was the simplest to learn and allowed me to develop some basic web programming chops. The excellent thing about PHP is that it is simple to learn yet powerful. It has an awesome documentation that is contributed to with examples by PHP programmers and developers.
What is a server side language?
When a user visits your website, your server can generate the HTML file that is sent. The work is done on what is called the “backend” to perform operations such as inserting content into the document, looping to generate content, or more sophisticated operations.
Server-side programming can be taken in a number of paths in itself. Some examples outside of PHP include Microsoft’s ASP and ASP.net. While there are a number of people that use ASP.net every day, I find it much more complex to learn if you have little or no programming experience. As a personal preference, I don’t enjoy programming any flavor of ASP. A third alternative is Java and JSPs (Java Server Pages). This approach is also more difficult for a beginner programmer like I was.
Languages all have their strengths and weaknesses; keep that in mind when learning a server-side language. That said, my current language of choice is Ruby and my framework of choice is Ruby on Rails (sometimes RoR or just Rails). There are hundreds of frameworks out there of all different flavors, but this is the one that has worked for me. However much I enjoy Ruby and Rails, I can’t advocate it to a beginner programmer because there is too much to learn at once. Also, when you learn PHP, you may just see why Rails is such an awesome way to develop web applications.
Front-end Development
A web browser today is also a scripted browser; it can interpret code and run it (keeping in mind that HTML and CSS is not really “code”, though it does act like it). The language that has become the standard is JavaScript, not to be confused with Java. There are thousands of online resources to learn JavaScript. The main idea behind JavaScript as I see it is that it is an event-driven language. What that means is that its best uses are to respond to events performed by the user such as a click, hover, and scroll. Responding to these events allows you as the developer to create excellent effects and interfaces.
Where To Go After All That
Other important skills to have are image manipulation, photography, server administration, graphic design, and much more. These things will most likely become of interest to you as you develop websites once you realize what you use them for.
Keep On Going
The key is to never stop learning. Learn everything. That language is difficult because you haven’t learned it. Anything is learnable over time. And time is another key to success; take your time to absorb information and learn how to apply what you learn.
The path I took is what I feel is the most simple approach to learning the web. It took four years to get to a point where I can have a decent enough understanding to be able to pick up a new idea and run with it. With even some dedication you could cut that in half today due to the amount of resources available. Also, I didn’t devote as much time as I should have to it, being that I was a busy kid in high school.
My Goal To Contribute to Newcomers
In this article, I mentioned a lot of programming languages that you may or may not have heard of before. I didn’t go into particular detail on anything, so I am developing a web developer wiki of sorts to assist beginner developers. Wikipedia is a good source, but I want to focus on how each technology is used in the grand scheme of things along with what it is related to. Also, it would prove a good resource for myself.
If you’re following me on Twitter or have my RSS feed, you will be updated when I have released the Glossary. If that’s not your thing, then you’ll just have to check in now and then.
Questions or comments? Leave a response below! I’d love you hear your input.