Learn to Code: The 4 paths

[ 8 minute read ]

Disclaimer: We use Node.js at Elium because we believe it is the best technology out there - and gaining traction in the industry worldwide. However, we have experience with other frameworks and recognize their value as well so we've included the pros and cons of each technology. That way, we ensure the article stays as impartial as possible.

This is the final article of the Learn to Code series (the one you've all been waiting for :P) In it, we will explore the different paths you can follow as part of your web development career.

Path 1 - Iron Man

This is the Node.js (JavaScript)-based framework. It’s like the Iron Man of web development because it started from a fragile base but has grown immensely since then. Its ‘gadgets’ are similar to Iron Man’s. It’s fast, efficient and quick for the development of new tools.

Ok, ok but what's the catch I can already hear you saying. And I want to to be honest with you, so here it is: being relatively new, the Node.js framework lacks maturity compared to other frameworks - like Laravel or even Rails.
Does it really matter? Yes it does.
Should you run away from Node.js then? No, of course not!
Why not? Well, thanks to its very fast growth (see here) and huge community, Node.js is becoming a major player.

What this means is essentially this: when Iron Man wants a new gadget, he buys it; when Node.js needs a new tool, the size of the community means that that tool probably already exists and if it doesn’t, the community makes sure it is developed very quickly.

Due to its extremely fast growth, going down the Node.js/JavaScript path is a safe bet for securing a job in almost any industry - thanks mainly to the fact that JavaScript is the building block of the web.

It is used everywhere a presence on the web is needed. Which. Is. Everywhere. Seriously, you can go into anything with this. Here are concrete examples of big companies using Node.js (the framework for JavaScript):

  1. Netflix - Building With Node.js At Netflix
  2. New York Times - Building With Node.js At The New York Times
  3. PayPal - Building With Node.js at PayPal
  4. Walmart - On Building With Node.js At Walmart
  5. LinkedIn - Building With Node.js At LinkedIn

You’ve got tons of support because the community of NPM (JavaScript's packaging system) which is young but still the fastest growing community, has developed many new tools that are up to date with today's industry.

Node.js, React.js, Angular.js, Meteor.js, Express.js are all recent examples of these new tools and evidence of JavaScript’s prominent role in web development. These new initiatives, React.js (made by Facebook), Angular.js (made by Google) and the Node.js foundation that will be releasing node enterprise edition, make it the fastest growing web development environment.


What exactly is involved in following this path?

Let’s find out by filling up our pyramid (if you missed the article about the web development pyramid, check it out here) so you can understand what and why you need to learn certain things.

Javascript path

Wow that’s a lot of new stuff! Well yes and no.

Let’s use a typical engineering approach to understand this diagram: break a big thing into smaller bits until each bit on its own is understandable. So let’s go through the structure section by section and analyze each one.

Set-up:

  • A simple text-editor, like Sublime or Atom
  • Using your terminal, or console to execute commands
  • Github account - to save, organize and share all the code you produce, but also view the code written by millions of other users. Basically, your community.

With these three things, you’ll be ready to start your coding adventure.


Next comes Front-end. For this you need three things:

  • HTML - a coding language* to create content on your website, web apps, or other apps
  • JavaScript - The big dog of web development languages. Makes your product reactive and dynamic as opposed to static so your user can interact with your product.
  • CSS - another coding language* which allows you to stylize your products, make something blue, round, stick to the side, etc.
*Note: The reason I put language in quotes for HTML and CSS is because it is highly debated whether they should be considered as languages because they are not logic-based like most other programming languages, but operate more on a declarative-style model.

While there are millions of libraries covering the needed instructions for all industries in the world, for our purposes, we’ll look at the major ones for web development:

  • Bootstrap - a library with instructions about forms, buttons, navigation bars, styling templates and many more things pertaining to front-end development
  • jQuery - a JavaScript library that contains instructions to simplify all processes handled by JavaScript, like making animations or simplifying processes with elements of the code

Now comes Backend languages.

  • JavaScript - TADA, there it is again. JavaScript can be used for both front-end and back-end, which is why it’s so magical.

Next are frameworks.

  • Node.js - This is a runtime environment that allows JavaScript to run in the back end. It speeds up processes in web applications and simplifies the process to getting a product up and running.
  • React.js - Could also be termed a library because React gives you so much freedom you still actually decide on virtually everything. It makes your front-end, or User Interface extremely fast and reactive (hence, the name). It’s what powers facebook and Instagram’s User Interface.

Next up are databases.

  • MongoDB - Actually from the word humongous. It stores, gives rapid access and allows you to parse through all your data. Its syntax is in JavaScript (JSON). This is useful because you can use JavaScript in the frontend, backend, and database. Oh and it’s free.

And now, packaging systems.

  • npm - The largest code repository for JavaScript - install, share and distribute JS code here. It’s the default package manager for Node.js.

And finally deployment.

  • Heroku - A deployment service that supports many languages & frameworks, including Node.js.
  • GoDaddy - A huge web hosting company that allows you to deploy your web app. It also offers domain name registration services and sells software for e-business purposes.

There you have it!

My structure with concrete examples from the Node.js-based framework. With this structure, you can easily navigate through the plethora of information available out there while sticking to the essentials. That way, you’ll always have an overview of what you’re doing and why you’re doing it. Let’s now explore the remaining three paths.


Path 2 - The Quick Fix

This is the Ruby, Ruby-on-Rails framework. It’ll lure you to its house and then keep you comfortable. How? The structure. It allows you to quickly build applications if you follow the formula. Sure, sometimes it doesn't go well with other languages and is often not the fastest but it’s a pretty comfortable environment for creating prototypes and that’s enough to make some beginners happy.

Nevertheless, Ruby on Rails offers good prospects in terms of jobs, especially in the startup scene where it is more common. It is far from being as widespread as JavaScript though so there are far less Ruby/Ruby on Rails jobs in the corporate world.

The language is easier to pick up if you want to learn how to build basic products quickly. Whether you're a beginner or a developer, Ruby can get your product online pretty fast. This is because Ruby on Rails hides many processes from you, meaning you cannot optimize them, meaning you may never really understand them.

It's completely fine for many applications you may have in mind though, but if your product gets really big, or you want to customize certain details of your product, Rails just isn't flexible enough for that.

Still, it’s a promising path to follow for beginners (or developers) who really just want to get their project up and running as fast as possible. Let’s use the structure again to get a better understanding of what exactly is at play here.

Ruby path

See how Ruby ranks in the job market against other languages.

As you can see, we’ve only added things to our structure compared to the structure we had for the Node.js-based framework. This is because as I’ve told you, JavaScript is everywhere, so you’ll still need to know about the tools for JavaScript, even when using primarily Ruby.

What was added to the structure was Ruby, Ruby-on-Rails and Ruby Gems. The Ruby-on-Rails framework is what most bootcamps focus on because it is easier to pick up within the typical length of a bootcamp, ~ 10 weeks. It helps the students from those bootcamps get a working product online quickly, sacrificing some speed and performance in the process. So it’s well suited for start-ups who want to get started quickly or for any company who wants a quick proof of concept for their product.

Don't be mistaken by Ruby's seemingly too-easy-to-be-good appearance, you can become a good developer by starting to learn Ruby-on-Rails as it is really good for getting your product up-and-running quickly. It's just that many processes are hidden from you so you might not become that good at optmizing the efficiency of your code.


Path 3 - The Hipster too-cool-for-mainstream

Python & Django (or flask) are relatively unconventional in the web development industry. They, like all 'independent thinkers', want to make a name for themselves. But they don’t know how to sell themselves so they go around town in a Smart car yelling from a megaphone at fear-struck villagers who think the terrible thunderstorm that was predicted in the ancient books is finally coming. Sometimes, the villagers think it’s the cry of females in heat and end up jumping in the Smart car. And then they realize that's not true. But they’re pretty happy with the rest, so they often convert to the hipster lifestyle and stay.

Indeed, Python and Django offer good job prospects and lots of learning tools to get you started. They’re slowly but surely growing to become an important player in the industry. But what's so special with this path?
Let me explain. Python is not better or worse, it's just different. The way that it processes data makes it optimal for algorithmic processing but not for data processing. Example: while Node.js is much faster at things like banking transactions or social networks, Django would be far superior for building image recognition software or performing complex statistical analysis.

Python is present in places like Youtube, Google, Quora and Survey Monkey. Notice that the core business of these companies is dealing with huge amounts of data. So they need fast and efficient algorithms to parse through their data. Python allows them to do that because it is good with algorithmic processing, as stated above. If you think about it, these companies do a lot of statistical analyses and machine learning (the strong points of Python) to improve their product - how do you think Youtube shows you your 'recommended videos'?

The last important detail about Python is that it's scalable. Since Python is very intent on making code readable and fun to interact with, it's not only really attractive to beginners, it also makes it much easier to build on top of existing code because it is easy to read and understand it.
Let’s use the structure again to visualize the tools that are involved here:

Django path

See here the top reasons to use Node.js in web development - from a Django developer!

Again, we’ve only added things to our structure compared to the structure we had for the Node.js-based framework. Specifically, what was added was Python, Django and Pypi (or pip).

Notice that JavaScript is still present. I’ll repeat it again: JavaScript is everywhere, so no matter what path you choose, you will encounter it.

This framework isn’t that popular in the web development industry but it’s gained quite some traction in the education world. That’s because there’s tons of documentation and a great community attached to these technologies. Also, since it focuses so much on being readable, it’s great for students who know nothing and need to understand the material. But it's also very good for statistical analyses, image recognition or machine learning as I mentioned above.


Path 4 - The Survivor Challenge

Java path

This is the Java-based framework. This path will make you wish you’d followed your mother’s advice and got that job at ‘We Love Pizza’ with the fat, hairy, and inexplicably overly affectionate Italian boss. Or your father’s advice, and became a soldier because military bootcamp can’t possibly be that hard.

It’s a hard path but you’ll hear about it because it’s used in many of the big companies with the high-paying jobs. So it’ll send you those gentle reminders that the big projects in this world need it and give you that smug face to let you know it knows that you know. So, if you ever join a big corporation or get involved in the corporate world, it’ll show its smug face every now and again, ready to suck you into the ‘complexity is our thing’ funnel, signed "Lots of love - Java".

Here’s a view of the structure in this case:


Structure Java path




The bottom line is that there is no easy way to get something up and running with Java. That being said, Java is involved in tons of backend processes that run apps & web apps, so if you think it isn’t relevant today, you’ve got it all wrong. Indeed, Java is used in apps for the financial services industry (Goldman Sachs, CitiGroup, Barclays), web applications (OpenOffice, Eclipse), and most Android applications are written in Java!

So there are tons of uses of Java but working with Java will require a substantial effort on your part as becoming a good Java programmer will take years of practice. If you’re a die-hard programmer and you only swear by fast and efficient code, Java will live up to those expectations. Just know that this path is almost nonexistent in web development and is almost exclusively used for backend procedures. My recommendation would be to follow an easier path and then if you’re up for it, learn Java.


Takeaways

  • JavaScript is used everywhere
  • No matter which path you choose, building something on the web requires you to learn about many different tools
  • If you want to build something with better performance that is useful anywhere on the web, go with Javascript/Node.js. That's what we teach in our Fullstack program.
  • If you want to be guided and have a lot of structure when building stuff even if it isn't widely used in the job market (and sacrifice efficiency along the way) go with Ruby/Ruby on Rails
  • If you want to do complex statistical analyses and/or machine learning on your web projects while having clear and readable syntax, go with Python/Django
  • If you want to make a robust backend and want to be employable by big legacy corporations, go with Java even if the learning curve is very steep.
  • Making a real plan, using for instance the why technique described in this article (or here) will save you loads of time and enable you to learn much faster


Suggested Reads

For our more avid readers, I've included additional resources you might want to check out:
What is the best free way to learn full stack JavaScript development starting with zero development knowledge and rudimentary computer skills?

For the more tech-savvy:
What are the pros and cons of Node.js/Express vs Ruby-on-Rails?

For those just starting out and who need more information:
Should I start by learning python CSS HTML or JavaScript?

BONUS: In this bonus article, we will look at an entrepreneur's toolkit in web development. You've got your own idea and you want to launch a startup or business but you don't have time to become a fullstack web developer? This article will tell you only what you need to know, skipping all the unnecessary details.

Subscribe to be the first to get the entrepreneur's web development toolkit!

Comments

Subscribe to our mailing list

* indicates required