Web Development: How to Get Started

This article is specifically about programming for web development, if you’re interested in  desktop applications instead check out this article.

If you want to be a web developer you should learn the basics of HTML and CSS before you do anything else because they make up the skeleton of almost every website around. Since these are just markup languages even the more advanced concepts are fairly simple, to the point where you’ll be able to make basic websites after studying HTML and CSS just for an afternoon.

Moving beyond learning the essential basics you’ll also want to know how to code in JavaScript and some of its major libraries like Jquery and ReactJS. If you want to design and develop sites I’d go so far as to say that knowing JavaScript is almost as essential as HTML these days considering over 90% of websites on the internet have some sort of JavaScript functionality on them. Like most web development languages it’s fairly intuitive and easy to pick up so you’ll be making basic scripts for things like slideshows pretty quickly.

There’s also another major scripting language out there called PHP. To be frank it’s hands down one of the worst programming languages I’ve ever had to use on a regular basis. Almost every aspect of it is terribly designed and barely works, the only reason why it ever got popular was because it’s easy to learn and for a good long time was the only option available to people for web development. Even though better replacements have come along for it, I’ll get to one of those in a second, it’s still heavily used in the industry. The reason for this is simply just because it’s what people know and it’s what they’ve always been using and it’s not going anywhere, a lot of big sites like Facebook, WordPress and Wikipedia are still using it and don’t have any intention of stopping.

The best alternative to PHP is by far Ruby on Rails, a web development framework that uses the Ruby programming language. It’s quite well made and powerful while also being more complicated than most web development languages since Ruby is not strictly for web development. Despite the higher learning curve it’s still fairly easy to get a handle on and blows PHP out of the water as a language, plus as a bonus you’ll be learning a regular programming language on top of it as well. If you ever have to choose between Rails or PHP pick Rails every time without a doubt, the only trouble is that most of the time you don’t get to pick and are instead just told to use PHP.

Setting Up

Unlike desktop applications you don’t need to compile the code for web applications, which allows you to be able to create whole websites inside a text editor if you want to. It’s pretty easy to do and I personally like use Programmer’s Notepad to write HTML and JavaScript in. It’s just a simple text editor with no shiny bells and whistles attached which lets you write out code easily and it’s free and open source as well. Do keep in mind that it is pretty bare bones but I’ve never really minded that so much.

If you don’t want to just use a text editor there are a number of different IDE’s out there for different web development languages you can check out. There’s Ruby Mine which is by far the best IDE both for Rails and just regular Ruby. It’s sleek, easy to use and comes packed with a ton of different features that make your life easier like smart code completion. The problem with Ruby Mine is that it costs a fair chunk of change per month to use it and you most likely don’t want to be paying for an IDE if you’re just starting out no matter how good it is.

The same company that makes Rubymine, JetBrains, also make a lot of other good IDE’s for web development like PHPStorm for PHP and Webstorm for JavaScript. These also cost money however and again you probably don’t want to be paying for IDE’s for languages you could literally write in Microsoft Notepad if you wanted to. However if you are interested in paying for an IDE the Jetbrains ones are among the best and all have 30 day free trials for you to go and see if you like them or not.

Certain languages such as PHP and Ruby on Rails you’ll have to go ahead and download off their respective websites if you want to start using them at all. This is not the case for HTML and CSS or JavaScript as they’re client side languages which are interpreted by the browser automatically and don’t require you to install or download anything to use. You will have to go and download any JavaScript libraries that you want to use but there isn’t any sort of installation process or anything like that, you just need to put the library in your web project and include it in the header of the HTML file for the page.

Do keep in mind that PHP and Rails are both run server side, meaning that you’ll need some sort of server to upload those kinds of files onto if you want to be able to view what you’ve made. As of PHP version 5.4.0 the language comes with a built in web server that you can use for code testing purposes and the Ruby Standard Library comes packaged with a default server called WEBrick that’ll be used to run applications from if you don’t have another server available. So it’s still pretty easy to open up these sorts of applications just keep in mind you can’t just click on them, open them in your browser and expect it to work.

Online Tutorials

W3schools.com is a site that has references and tutorials for a lot of web different web development languages such as JavaScript and HTML. The tutorials contain lots of information about their subject matter and explain it in a pretty easy to understand way with examples as well. My main gripe with W3Schools is that the tutorials on there don’t really have the reader solve any problems as all of the examples they show are fully completed so there isn’t an opportunity for you as the reader to be challenged at all.

Tutorials Point is good just based on the sheer amount of different tutorials on there alone. They do not only every major web development language but also regular programming languages, digital marketing, mathematics, how to play sports, and a ton more as well. All of the tutorials that I’ve looked at on the site are well constructed and detailed but can be very dry and boring at times and like W3Schools tutorials they lack challenges for the reader to complete.

On the Mozilla developer network they have a good amount of documentation on some of the more essential languages for web development like HTML and JavaScript. The documentation covers both beginner stuff as well as more advanced concepts too. It’s all informative and accurate for the most part and not as dry as documentation of this sort tends to be but still fairly dull reading nonetheless.

Code Academy has a pretty large selection of tutorials for different web development languages ranging from HTML to Ruby on Rails. The tutorials on Code Academy are usually focused around having you learn through making your own little projects as opposed to just explaining things to you out right which I find to be the best way of learning any kind of programming. Most of the tutorials on there are just a few hours long and while they do cover the basics you need to get started with the language you’re studying you won’t learn anything particularly advanced on there.

Web Development Blogs and Resources

If while going through one the tutorials I mentioned you find yourself unsure or confused about a specific concept or how to do something you should try going on stackoverflow.com, a website primarily focused on helping people with questions about programming. You can either ask a question or look through ones which other people have asked to try and see if yours has already been answered. The user base is helpful but they also like to keep the website clean and well curated so try make sure your questions aren’t poorly worded and that it hasn’t already been solved.

David Walsh is a software engineer who runs a pretty good blog about web development, it mostly specializes in short solutions to problems you may be having but sometimes he posts more long form articles as well. I’ve found a good number of posts on the site to be informative for solving problems, generally explaining things and product recommendations. Sometimes though the articles are insanely short, we’re talking under 100 words territory here, and this is because a lot of the time Walsh will post a solution to a problem without really detailing why it works which is annoying because I think that people should generally avoid using code they don’t understand.

Another good web development site is sitepoint.com. The site has a ton of different writers who all regularly post about a bunch of different languages, the articles are normally quite informative and well written though of course there’s the occasional one that’s not so great. The site also has a forums that you can go on and a podcast that you can listen to if you want. The forums are pretty slow though and frankly you’d be better off just going on stack overflow if you’re having a problem.

Javascripting.com is a site that contains lots of info about various JavaScript libraries and plugins. It contains links to and descriptions of most of the major different add-ons for the language and you can also see how other people have rated them. This site’s great if you’re new to JavaScript and don’t really know what libraries are available or what they do. Keep in mind that this site really only has the top stuff though so you’re not going to find anything too small or obscure listed on there.

What Next?

Once you have the basics down for web design you should start making your own little web application projects while also trying to read about more advanced concepts as well. Doing these projects has the joint effect of both making you a better web developer as well as helping you start to build up a portfolio that you’ll be able to show people. Eventually when you feel ready you can start moving on to doing freelance work for people which will both help further build up your portfolio and start to get your name out there a little bit as well

Good Luck!

If you have any questions or comments email them to me at nick@crumbsofcode.com