What Technologies Should I Learn Today?

A recommendation from the lead of the Product College at Make School.

We train software engineers at the Product College at Make School. Our program is 2 years long, about 5x longer than a traditional bootcamp. Our younger students 18–22 treat it like a bachelors degree replacement. Our older students 22–28 treat it like a masters degree to kick off their career in software development. We’re kinda like a Y Combinator but for people — a people accelerator.

For the past 4 years, we’ve taught hundreds of people how to code in the Product College, and our graduates work at a bevy of startups and we have graduates at Apple, Google, SnapChat, Facebook, and other tech giants.

So what tech should you be learning? What languages or frameworks are people hiring for and what are trending?

Turning the Question Around

Instead of looking for a specific language or technology that is hip or trending right now, we suggest our students focus on mastering Important Software Paradigms rather than specific languages or frameworks.

Take the battle between front end web frameworks. Should you learn Angular 2 or React.js or Vue.js? The answer is, it doesn’t matter. They are all one paradigm which is a component-driven client-side web framework written in JavaScript or compiled JavaScript derivatives. Just pick one you like and go for it. If you master any of these, you are probably only a few weeks of work from being a master of any of the others.

Take a simpler example: Ruby vs. Python. People love to fight over which is “better”. The reality is they are the same paradigm. Both Ruby and Python are class-based, multi-threaded, scripting languages. Just pick one.

Ruby on Rails vs. Django vs. Sails.js — same thing.

As a young engineer, your goal shouldn’t be to becoming hyper focused in one language or framework, it should be to become flexible to work across the major software paradigms that dominate the tech world today.

These paradigms are not fixed. New ones come out, and they change. For example, a trending paradigm right now is Functional Programming. The functional programing paradigm can be see in the languages Elixir and Clojure, Haskel, Erlang, and functional JavaScript. Another newly hip paradigm is Reactive Programming.

To see what is trending — check out Module Counts.

Which Languages & Frameworks We Teach and Why?

Here are the languages we teach and why.

Swift — Native iOS apps are built in it
Front End JavaScript — Client-side apps are dominating the web
Back End JavaScript (Node.js) — Express.js is written in it
Python — An important language for the web and general scripting that also has strong data science and math libraries
Ruby — Ruby on Rails is written in it (and Rails is very popular)
C/C++ — A low level language for devices, CS fundamentals, and speed.
Elixer — A growing functional programming language.

The frameworks we teach are:

Express.js — It’s good to learn web development on a minimalist web framework.
Ruby on Rails — RoR continues to be a very popular web framework.
Flask — If you know Python, you might as well learn Flask.
React.js/Redux — React.js is a popular member of the newest generation of front end frameworks.