In part one of our 2018 Full Stack Developer Road Map we described the steps needed to become professionally versed in front-end development. In part two we are going to discuss the road towards mastering back-end development. Although road is probably an ineffective description, as learning back-end development is much more akin to a giant web. Back-end development differs greatly when compared to front-end, because there are exponentially more routes you can take. In this article I’ll help you navigate those choices to make sure you end up heading in the direction that works best for your goals.

Step 1 – Choose Your Weapon (Language)

The first step on the road to mastering the back-end aspects of becoming a Full Stack Developer is to choose a programming language. It’s also the most crucial step, as it will likely determine the direction you end up taking in your career. The key to becoming a Full Stack Developer is choosing one language and learning it inside and out. Once you are able to command that language you can begin learning all of it’s associated tools, frameworks, and environments.

So which language do you choose? It’s not an easy question. To help you make this decision I’ll provide a list of some of the more popular languages, list some pros and cons, and then provide some available learning resources. You should keep in mind that this isn’t an exhaustive list of programming languages for Full Stack developers. Just some of the most popular ones, currently.

Python

https://www.python.org/

Python is one of the most popular languages available to Full Stack Developers. It’s easy to learn, powerful, and has a couple extremely popular and in demand frameworks written in it. Job demand for Python is typically high and the language is used in almost all corners of the software industry. On a personal note, Python is my favorite programming language and has provided me many opportunities during my career so far.

Pros

Average to high job demand.

Used in many fields.

Scripting language, easier to pick up for beginners.

Mature and stable ecosystem/community.

Cons

Nothing! Python is my baby! (just kidding).

Web Development may be leaning away from Python towards Javascript (NodeJS).

Learning Resources

https://www.udemy.com/complete-python-bootcamp/ Cost: $15-$20 Format: Video Lecture

https://learnpythonthehardway.org/book/ Cost: $29.99 Format: Book

https://www.learnpython.org/ Cost: Free Format: Interactive

https://developers.google.com/edu/python/ Cost: Free Format: Written



Javascript (NodeJS)

https://developer.mozilla.org/bm/docs/Web/JavaScript

I’m sure you’ve probably already realized this, but Javascript is everywhere these days. Javascript was originally written to work exclusively in the browser but eventually became available as a server side language with the release of NodeJS. Ever since, it’s been on a steady climb to the top of the software industry.

Job demand for Javascript appears to be at an all time high and is an absolute must learn language if you want to become a Full Stack Developer. If you are following along from part one of this article, you should already have a solid understanding of Javascript, which makes transitioning to NodeJS fairly easy. This “one language to rule them all” approach has attracted the interest of many people on their road to becoming a Full Stack Developer, and is definitely worth considering as your primary back-end language.

Pros

Extremely high job demand.

Easy to pick up because it’s used on both front and back-end.

The Web Development industry has been leaning towards NodeJS lately.

Cons

If you aren’t a fan of Javascript, you now have to write it on both sides of your applications.

The asynchronous nature of Javascript can be tedious and confusing to some.

The NodeJS ecosystem is less mature than some others.

Learning Resources

https://www.udemy.com/the-complete-javascript-course Cost: $15-$20 Format: Video Lecture

http://eloquentjavascript.net/ Cost: Free Format: Book

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide Cost: Free Format: Written

http://javascript.info/ Cost: Free Format: Written/Interactive



Ruby

https://www.ruby-lang.org/en/

Ruby is a scripting language that was made popular in 2005 by it’s association with the MVC framework rails. It became a mainstream technology and one of the go to frameworks for startups up, until the rising popularity of Python and Javascript appeared to take over. Ever since, the popularity of Ruby has decreased significantly and job demand, at least for developers with less experience, has decreased.

Pros

Scripting language, easier to pick up for beginners.

Has a fairly mature framework in rails.

Tons off applications have been built using rails, so work will continue to be available.

Strong community.

Cons

Ruby isn’t often used outside of Ruby On Rails, which limits it’s career value.

Job demand for juniors appears to be decreasing.

Learning Resources

https://www.codecademy.com/learn/learn-ruby Cost: Free Format: Interactive

https://www.udemy.com/learn-to-code-with-ruby-lang Cost: $15-$20 Format: Video Lecture

https://learnrubythehardway.org Cost: Free Format: Book



Java

https://go.java/

Java is the only strongly typed, compiled language that I’ll be touching on, but I think it’s an important language to consider because of it’s job availability and the maturity of it’s ecosystem. Java has been around for a long time and continues to be one of the most in-demand languages in the Software Development industry. For this reason, a lot of developers choose to learn Java as their first programming language and often never have to to look back. As an added bonus, Java can be used literally anywhere, which opens up all sorts of opportunities for programmers that are experienced with it.

Pros

High job demand in corporate settings.

Also used for Android mobile development.

Provides cross platform compatibility with the JVM.

Extremely mature ecosystem and community.

Cons

Java is a strongly typed language, which some people find more difficult to understand when learning.

Requires compile time, which can slow down development.

Learning Resources

https://www.youtube.com/playlist?list=PLE7E8B7F4856C9B19 Cost: Free Format: Video

https://www.udemy.com/java-the-complete-java-developer-course/ Cost: $15-$20 Format: Video Lecture

https://www.youtube.com/watch?v=Hl-zzrqQoSE&list=PLFE2CE09D83EE3E28 Cost: Free Format: Video

https://www.udacity.com/course/java-programming-basics–ud282 Cost: Free Format: MOOC



Other Languages to Consider

Step 2 – Learn a Relational Database

Step two of the back-end road map to becoming a Full Stack Developer is learning a database technology. Relational databases have been around and will be around for a very long time. They are also used in the vast majority of web development projects, which makes them a crucial step in the learning process. Knowledge and understanding of SQL is an extremely in-demand skill and will most likely be on every single job posting you run into.

Luckily, SQL has become a standard across the available technologies and only differs slightly from one to the other. This means that, although it’s important to choose appropriate RDS technology to learn, switching from one to the other has a fairly easy learning curve.

Postgres

Postgres is a popular and powerful (object-)relational database system that is extremely popular in the open source community. It’s performant, extensible, and provides some great advanced data types. There’s recently been a strong push for Postgres knowledge in the job market, which puts postgres near the top of databases you should learn.

https://www.postgresql.org/

Learning Resources

https://www.tutorialspoint.com/postgresql/index.htm Cost: Free Format: Written

http://www.postgresqltutorial.com/ Cost: Free Format: Written



MySQL

MySQL is the most popular of the open source relational database technologies. It has plenty of great features and is responsible for powering a good portion of the open source projects on the internet. It’s popularity makes it a strong candidate for best Relational Database to learn, as you’ll see a lot of job requirements include knowledge of MySQL.

https://www.mysql.com/

Learning Resources

https://www.tutorialspoint.com/mysql/index.htm Cost: Free Format: Written

https://www.w3schools.com/sql/ Cost: Free Format: Written/Interactive



MS SQL

MS SQL is Microsoft’s Relational Database solution, which means that it’s a proprietary technology. It’s a great solution but should really only be learned if you are planning on working in the corporate industry. MS SQL is used in the majority of more traditional businesses, but is an extremely valuable technology to learn if you are looking to break into that world.

https://www.microsoft.com/en-CA/sql-server/

Learning Resources

https://mva.microsoft.com/product-training/sql-server#!lang=1033 Cost: Free Format: Video

https://www.tutorialspoint.com/ms_sql_server/index.htm Cost: Free Format: Written



Step 3 – Learn Version Control (Git)

https://git-scm.com/

Another important step on the road to becoming a Full Stack Developer is learning how to use version control. Every job I’ve ever had as a Developer required me to have knowledge of version control. Although version control is used in both front and back-end development, I decided to include it in the back-end article. That’s not to say you shouldn’t be versioning your front-end code, I just felt like it tied in better with server side learning.

There are a handful of version control tools available for Full Stack Developers but Git has become the most popular by a large margin. Git is an extremely powerful VC tool that you can use to maintain your code. It also ties into Github, which is the most popular remote repository hosting site on the web. Github is a great way to build a public portfolio of your code and is often requested by the majority of companies hiring developers. With that said, here are some resources to learn git.

Learning Resources

https://try.github.io/levels/1/challenges/1 Cost: Free Format: Interactive

https://www.udemy.com/git-complete Cost: $15-$20

https://learngitbranching.js.org/ Cost: Free Format: Interactive



Step 4 – Learn Web Application Framework(s)

Frameworks are tools that Developers use to prevent us from having to recreate the wheel. Over time, the Software Development community refines the process of creating web applications and websites. This progress is often distilled into reusable application frameworks. Frameworks allow you to create and organize software into manageable and predictable components. This greatly decreases the time and complexity required to create and maintain Software, which in turn makes your job easier. If we had to write all our software from scratch, even small changes or features would take a long time to implement.

Choosing which frameworks to learn is a lot like choosing which language to learn. You want to choose a framework that is going to provide you with a positive return on your investment. With that said, the development industry moves fast and framework popularity is unreliable. If you’re worried about choosing the wrong framework, check out this article and remember that as long as you are confident with the language you chose, there will always be jobs available for you.

Listed below are some of the more popular frameworks at the time of writing this post. Keep in mind this list is not exhaustive.

Flask (Python)

http://flask.pocoo.org/

Flask is a micro framework, which means it’s fairly minimalist. Flask is great for building all sorts of applications but directly benefits Developers that are looking to pick and choose their own libraries. Flask doesn’t provide solutions for things like form management, ORM, or user management. The benefit to this is that you only include tools you need and can leave out the rest. The downside to this is that you often need to do more setup to get functionality that some other frameworks provide out of the box.

Learning Resources

https://blog.miguelgrinberg.com/post/the-flask-mega-tutorial-part-i-hello-world Cost: Free Format: Video

https://www.udemy.com/the-build-a-saas-app-with-flask-course/ Cost: $10-$20 Format: Video



Django (Python)

https://www.djangoproject.com/

Unlike Flask, Django is a considered a full fledged framework. This means that it includes an ORM, form management, user management and more. Django is one of the most popular frameworks out there which has made job demand fairly high. If you like a one stop shop and want to get hired, Django is a good framework to pick up.

Learning Resources

https://www.udemy.com/python-and-django-full-stack-web-developer-bootcamp Cost: $10-$20 Format: Video

http://www.tangowithdjango.com/ Cost: ~$20 Format: Book

https://tutorial.djangogirls.org/en/index.html Cost: Free Format: Written



Express (Javascript)

https://expressjs.com/

Express is similar to Flask, as it’s considered a minimalist or micro framework. It doesn’t include an ORM or any other tools which, as mentioned, has it’s pros and cons. Express is one of the most popular frameworks available. The rise in popularity of NodeJS has created a huge demand for Javascript developers with knowledge of the Express framework. Definitely consider picking up Express if you want one of the best resume pieces a Full Stack Developer can have at the current time.

Learning Resources

https://codeforgeek.com/2014/10/express-complete-tutorial-part-1/ Cost: Free Format: Written

https://www.codecademy.com/learn/learn-express Cost: Free Format: Interactive

https://www.udemy.com/the-complete-nodejs-developer-course-2/ Cost: $10-$20 Format: Video



Ruby On Rails (Ruby)

http://rubyonrails.org/

Ruby on Rails is the natural extension of the programming language Ruby. It’s a full fledged MVC framework and provides a lot of great ways to get up and running quickly. Although less applications are being built with rails these days, it continues to be used in the industry. Not to mention the fact that thousands of applications have been built using rails since 2005 and all of those applications still fuel the need for developers with a strong knowledge of the framework.

Learning Resources

Step 5 – Misc. Topics

Steps one to six composite the base for becoming a Full Stack Developer. However, there is a long list of skills and knowledge you’ll need to obtain to continue your journey. If you’ve gotten to this point, you are likely experienced enough to start picking and choosing the skills that will be most valuable to you. With that said, here is a list of miscellaneous topics at I have found valuable in my career.

End Of The Road

This brings us to the end of our road map to becoming a Full Stack Developer. If you’ve made it this far and learned everything we’ve discussed, you’re likely in the top percentile of developers out there. Becoming a Full Stack Developer is a long and arduous journey. Most Developers you talk to would probably tell you that the journey never really ends. There’s always something new to learn and the Software Development industry continues to grow and change every day. So take a deep breath and jump right back in.

Good luck!

Looking for Tech Jobs? Check out my website ObviousJobs.com for jobs with full salary disclosure.

Hey you! Enjoy the post? Subscribe to my newsletter to receive updates about new content! Email Address