How to Become a Web Developer
So I have been asked by many people over the years how they can get into web development. I always tell them there is a very low barrier for entry, there are open source tools and software for everything. You can literally become a master web developer without every spending a dime. The other day I was emailing someone a guide for learning web development and I figured I would post it on here, so here it is.
First off let me explain how web development works. In the web there are two sides to the programming.
One side is called Server side, this is normally a web server sitting in a data center somewhere that returns the code for the website that you are requesting. So when you type in http://google.com it goes across the internet finds google’s web server then google’s web server sends back HTML code to you.
The second side is called Client side. Client side is your computer or anyone else’s computer using Internet Explorer, Chrome, Firefox, Safari, etc… FYI these are called Browsers. Many people just use Internet Explorer because that is what comes installed by default on Windows. When you ask a server for a website it actually returns HTML code to you. It looks something like this:
<html>
<head>
<title>My Page</title>
</head>
<body>
<h1>My Title</h1>
<p>This is a paragraph</p>
</body>
</html>
Your browser then takes that code and creates a graphical representation of that code. For example this code would just have a big bold line of text saying My Title and then some normal text saying this is a paragraph.
So if you want to get into web development here is what I recommend as kind of a guideline/curriculum.
First you need to learn and have a decent understanding of Client Side. Server side is completely useless unless you understand client side, because you will have no way of displaying anything or getting any input from users. So first you will want to learn HTML and along with that CSS and javascript/jquery. CSS is basically code that allows you to stylize the display of the html code more. For example:
h1 {
color: red;
font-size: 18pt;
}
This would make that My Title tag above red and you are setting the exact size of the font. Javascript allows to make changes to the html after it has been delivered to the browser. For example:
$('h1).click(function(){
$(this).css('color','blue');
})
This makes it so that if you were to click on My Title it would change from red to blue. For now I would focus mainly on Jquery which is a library for javascript that makes things a lot easier, and I wouldn’t worry about a whole lot this is something you can learn as you go and when there is a need for something specific. So to start learning client side here is what I would do.
First go to http://www.codecademy.com and create an account. Once you do that start on the HTML/CSS track (http://www.codecademy.com/tracks/web). Once you are done with that then do the Javascript (http://www.codecademy.com/tracks/javascript) and the Jquery (http://www.codecademy.com/tracks/jquery).
After you are done with those (may take you a few days or weeks) I would go here http://notepad-plus-plus.org/download/v6.5.1.html and download Notepad++ it is free and a great tool this will make it much easier for you to write code and find issues.
Next create a folder somewhere on your computer and just call it “website”. Open up Notepad++ and create a new file called index.html in that website folder. Now you are ready to start playing with some code. You can add whatever html code you want to that file then if you go to the folder and double click on the file it should open it in your browser and you can see how it looks. You can then create multiple pages if you want and have css files and js files.
Once you feel pretty comfortable with how to make a static website, static just means it is the same for every person no matter what, then you are ready to move on to some server side stuff. Server side programming allows you to manipulate the HTML code that gets sent to the client side based off of inputs or other variables. For example if you go to google and search for something, they don’t have a .html file for every single possible search people may put in. Instead the server takes the input from the client side and runs code then creates the HTML code on the fly to be sent to the client side. There are many server side languages that can be used for web development (PHP, C#, VB.NET, Ruby, Python, Perl, etc…) but probably the easiest to learn is PHP. You can always move on to other languages fairly easily once you understand the fundamentals so I wouldn’t worry about that to much. Here is how I would get started:
First I would do the PHP track (http://www.codecademy.com/tracks/php) on codecademy to learn the basics of PHP.
Second I haven’t used this site, but take a look at this site https://www.udemy.com/php-mysql-tutorial/ it should cover some of the stuff you already learned from codecademy but then it expands much more and you learn about databases and more complex stuff. It even teaches you how to setup your computer as its own web server so you can do development stuff on your own computer.
After you get though this then you can start working through tutorials on specific things like building a simple CMS (Content Management System) or some other web application.
Take your time with this stuff and make sure you understand stuff before you move on. Everything kind of builds on each other so if you don’t understand something at the beginning your going to have a hard time understanding the next step. Try to be consistent with this though if you actually want to learn it and retain it. If you do some then take a week off then do a little more your going to have a hard time. Try dedicating an hour or two to it everyday so that your not spending half your time remembering what you learned last time.
That’s it in a nutshell. Obviously you could go into much more detail for each of the steps and you could go much farther. But in my experience maybe only 1 in 10 people who start down this path will even get through these steps. People play with it a little but then get bored, discouraged, or realize they don’t actually have an interest in the nuts and bolts of web development. Maybe someday for those 1 in 10 I will come up with Phase 2.