There has never been a better time for learning web development online. The number of free resources for doing so is incredible. In fact, the sheer amount of material and sources available has become a problem in itself. Where should you go? What should you learn? What order should you learn it in? What are the best resources out there? This article will get you pointed in the right direction but first, we need to understand a couple of key concepts.
Learning the Front End
Thankfully, there is an excellent resource for learning front-end development in Free Code Camp. Free Code Camp has a large library of introductory exercises supported by video resources and an active community. All you have to do to get started is create a free account and jump in. The Free Code Camp curriculum is deep. Expect to spend four to six months earning your front-end certificate there.
Where to go if you get stuck
When you first start coding you’re going to get stuck a lot. Don’t worry, it happens to everyone. Some good places to look for answers are the Mozilla Developers Network, W3 Schools, and Stack Overflow. Free Code Camp also has an active forum for newer developers.
YouTube also has a surprising amount of video resources available for developers, including this playlist.
Learning the Back End
You can go a lot of different directions learning the back end. Here we’ll look at three separate paths: one for Node.js, one for Ruby on Rails, and one for C# and .Net development.
Note, you don’t need to learn all three! Rather, you should choose one and get good at it before moving on to any others. All of these languages and frameworks perform many of the same functions. Which one should you pick? That’s hard to say. Node.js is the hot, new language but there is more demand for Rails developers in many areas. C# and .Net have the most demand overall and many enterprise level applications run on that framework. Also, different people might be drawn to different frameworks based on personal preference. If you’re having a hard time deciding, do some research in your local area and see what employers are hiring for. Learn that.
Node has a modular ecosystem and so many, well, modules are required to make it work as a web server. One common combination is to use Node.js, Express.js, MongoDB, and Angular.js together in what is called the MEAN stack.
Where to learn it
You can actually just stick with Free Code Camp, which continues on past the front-end certificate and into a Node-based curriculum.
Learning Ruby on Rails
Ruby is a very expressive and readable language with a loyal following. Rails is a framework that allows Ruby to be used on the server. Rails is based on an idea called “convention over configuration” Convention over configuration means you learn the Rails way of doing things and do your best to conform to that standard. The benefit of this is that Rails is easier to learn and make functional than a more free-form system. There are pros and cons to this approach but a lot of people think it is a big strength of Rails development.
Where to learn it:
The Odin Project is a great site for learning professional-level RoR skills. There is some overlap with Free Code Camp material at TOP but it shouldn’t be hard to navigate around.
Learning C# and .Net
C# is a compiled programming language developed and supported by Microsoft. It is open-source and free to use. The .Net framework is a robust, mature and powerful framework similarly developed and supported by Microsoft. It has also been made open-source.
C# and .Net are true enterprise grade development solutions and are used by many large organizations. They aren’t the popular choices for start-ups these days but the total number of jobs available in .Net is higher than either Node or Rails in many areas.
Where to learn it:
You’ll need the Visual Studio IDE to do any serious .Net development.
Then you’ll want to learn C#. Try this tutorial to get started.
Next, learn the basics of .Net MVC
After that, learn Entity Framework, the framework that is used to talk to databases in .Net.
Although you’ll learn plenty about databases while studying any of the back-end links above, it never hurts to go a little deeper into such an important topic.
SQL is the language behind most relational databases. If you’re not sure which database language to learn, learn this one. Codecademy has a series of SQL tutorials. There are many flavors of SQL including MySQL and PostreSQL but the core syntax of these flavors is similar.
MongoDB is the most popular of the document or no-SQL database languages. It is most commonly used with Node.js. You can learn all about it at the Mongo University.
As with any kind of technical skill, there is always more to learn in web development. Here is a link to a course from Google that goes into making fast, modern, web apps using best practices and a few common tools. It uses Node.js but could probably be adapted to any back-end language and framework.
Coding Bootcamps are on the rise as an alternative to a formal university education in computer science. They are quicker and cheaper than a college education but aren’t as in-depth.
So should you choose a coding camp over a traditional degree program? Not necessarily. If you’re college-aged and have an opportunity to attend a good university or state college you probably should do that. However, if you’re in different circumstances, coding boot camps could be a valid choice.
Other boot camps should be researched before joining as there are good ones (Flatiron, Hackbright, Coding Dojo, several others) and not-so-good ones that I won’t name here. You can start your research at Course Report.
One last thing to remember
Something to keep in mind as you begin is that coding is hard. Learning to code can be very hard, regardless of what classes you take or what resources you use. The most important trait of a self-taught developer is persistence. Expect to be stuck. Use the online resources available to you, and try to get involved with a community of other learners. Those in the San Luis Obispo area should look into our group, CodeSLO. There are other groups in other cities. If you don’t find one, start one.
Good luck and happy coding!