Web development is one of the hottest fields right now. U.S. News and World Report ranks it #3 in Best Technology Jobs and #9 in Best Jobs overall, and the Bureau of Labor Statistics expects 20% employment growth for Web developers through 2022. Web dev jobs are also highly lucrative and often carry some amazing perks (free housecleaning, anyone?).
The best part is that you don’t need a degree to become a Web developer. Part of the reason so many coding boot camps have emerged recently is that traditional institutions are not preparing students fast enough to meet employers’ demand for talent. In fact, you don’t need to go to school at all to become a Web developer—you can learn all of the required skills, get plenty of practice, and even create a portfolio of your work using free or low-cost resources available online.
Interested? I thought so!
So, without further ado, here is your ultimate guide to tools and resources you can use as your own DIY Web development curriculum. Part 1 of this article focuses on basic tools and Part 2 on more advanced ones.
Command Line Tools
To become an effective developer, you need to be comfortable using the command line. If you are accustomed to using a mouse to navigate your operating system, then you are familiar with the Graphical User Interface, or GUI. The command line is a text-based interface, and you can achieve all the same functionality of the GUI by typing text commands at the command line. You can access the command line through a terminal (Linux/Mac) or Cygwin (Windows).
These tools and tutorials will help you learn the ins and outs of the command line:
- Linux: http://www.techdrivein.com/2010/12/cli-companion-incredible-tool-to-learn.html
- Linux: http://www.davidbaumgold.com/tutorials/command-line/
- Windows: http://www.cs.princeton.edu/courses/archive/spr05/cos126/cmd-prompt.html
- Windows: http://www.cygwin.com/cygwin-ug-net/cygwin-ug-net.html
The next step is to set up your development environment. Your development environment includes all the software gadgets you need to work efficiently. The most important software you will choose is the right text editor. You cannot write code using Word or OpenOffice because they save too much extraneous data along with your text. The best text editors include functionality specifically for developing software, and they are often referred to as Integrated Development Environments (IDE).
- Sublime Text: http://www.sublimetext.com/
Sublime Text is a powerful text editor with a rich library of plugins and extensions. It is easily customizable, and free on a trial basis (do consider purchasing to support development of this awesome software). For a great tutorial on how to use Sublime Text, check out https://tutsplus.com/tutorial/sublime-text-2-first-steps/
- Eclipse: http://www.eclipse.org/
Eclipse is the IDE of choice for developing Java and Android applications. Like Sublime Text, Eclipse has a vast library of extensions and plugins, but the learning curve is a little steeper so it can be a bit daunting if you are just beginning.
- TextMate (Mac only): http://macromates.com/
TextMate is very similar to Sublime Text, but it is available only for Mac and has a heftier price tag. It is a robust, reliable platform that is first choice for a lot of professional developers.
Emacs and Vim may be the dinosaurs of the list, but they stand the test of time for a reason. It would improve your coding street cred immensely to pick up skills on either of these editors, but again, the learning curves are a little steep.
HTML and CSS
Before you can build large web applications, you have to learn the basics of static web pages (walk before you can run).
- Treehouse: http://teamtreehouse.com/
Treehouse is an awesome platform for the beginning coder. The Treehouse team has broken down Web technologies into manageable and testable pieces, and packaged them into fun tutorials. For all the technologies on this list, Treehouse is a one-stop shop and well worth the money.
- w3schools: http://www.w3schools.com/
Learn HTML (hypertext markup language) and CSS (cascading style sheets) the old-school way with w3schools. W3 is the web consortium that sets the standards for both HTML and CSS, so they are the final word on the most up-to-date technologies.
These tools and technologies will give you the basic skills to build static Web pages. Part 2 gets interactive.
In this section, we explore resources for building more advanced Web pages and applications. So if you dream of building the next Twitter, here is what you need to know.
- Codecademy: http://www.codecademy.com/learn
Ruby on Rails
- Try Ruby: http://tryruby.org/
This awesome tutorial takes only 15 minutes and will introduce you to the power of Ruby from the comfort of your browser. Great for beginners.
- Ruby Koans: http://rubykoans.com/
Learn Ruby using the Buddhist practice of meditation on the path to enlightenment. Not only is it a great way to learn Ruby, but you also get a look at Test Driven Development early in your programming education. Getting the Koans set up on your computer is not particularly straightforward, but there is an awesome online version.
- Rubymonk: http://rubymonk.com/
Rubymonk follows the same philosophy as the Ruby Koans, and it will bring your understanding of Ruby to the next level. Whereas the Koans introduce you to the basic features of the Ruby language, Rubymonk will challenge you to think like a Rubyist.
- Rails Tutorial: http://railstutorial.org/
Rails Tutorial assumes you have knowledge of Ruby and will walk you through the development of a Twitter-like application. It introduces the concepts of Model-View-Controller applications and Test Driven Development. You will also use your HTML and CSS chops to make and deploy a beautiful, fully functional Rails application.
- Rails for Zombies: http://railsforzombies.org/
Rails for Zombies is a fun and popular way to learn Ruby on Rails, and it is free for a limited time, sponsored by technology company New Relic.
- EdX’s Ruby on Rails: https://www.edx.org/course/uc-berkeleyx/uc-berkeleyx-cs169-1x-engineering-1377
This course, offered by the University of California at Berkeley, is a thorough introduction to building Software as a Service, including Ruby on Rails, Test Driven Development, accessing APIs, and more, but it assumes some prior programming knowledge. I recommend taking one of the other background courses to learn Ruby before attempting it.
No developer’s skill set is complete without version control, which allows you to take snapshots of the current state of your files so you can track important changes. It also gives you access to file restore points so that if something goes disastrously wrong, you can always roll it back to your last stable snapshot. Many tools are available, but the most popular is Git, written by the same person who started the open source Linux movement.
Github is a popular place to store your projects. Public repositories make your code available for viewing, but you can pay a monthly subscription to keep them private. Many open source projects are stored on Github, and being familiar with this tool is essential to becoming a professional developer.
General Programming Skills
Programmers interact with their keyboards more than any other peripheral on their computer. Having a wicked typing speed and knowing all the keyboard shortcuts will make your fingers fly over the keyboard. Every time you remove your hands from the home keys you lose speed and efficiency.
- Typing speed: http://typing.io/
- Shortcuts: https://www.shortcutfoo.com/
So there you have it, your ultimate DIY guide to becoming a Web developer. Who knows? The next multimillion dollar startup Google buys may be yours.
Want more? Check out 39 Places to Learn to Code Online