If you’re looking to break into web development and start a new career, it’s going to take a lot of work and you’re going to need to learn a lot of new skills. However, it can be tempting to look for shortcuts and try to limit the amount of things you need to learn by choosing to only learn a single programming language.

But the reality is this: in order to be an in-demand developer, you will need to learn multiple programming languages. Knowing multiple programming languages is known as being a polyglot programmer, and polyglot programmers have far more opportunities than programmers who only know a single language.

Programmers who have experience with a single programming language will be limited to work opportunities using the programming they initially chose to learn.  Programmers who have experience with multiple programming languages can be qualified to work in any programming language, whether they know it or not. That’s because they’ve leveled up and shown that they are capable of, and willing to, learn different languages.

It’s not uncommon for hiring managers to hire candidates with zero experience in the programming language they will be using for the position. Most people who hear this new initially are confused by this fact.

The path to becoming a self-sufficient developer, who understands how to learn programming concepts, is more important than the details of the programming language itself.

Learning your first programming language will be difficult.  There are a few skills you’ll need to learn at the same time: syntax, programming language constructs, and problem solving ability. Contrary to common misconception: the syntax (the rules of how the language works, or really just the language itself) is the easiest.

The most challenging aspect when learning your first programming language is learning how to break down complex problems into small, manageable ones. When should you use an “if” statement? When should you use a loop? When should you define a method?  

Learning your first programming language will teach you a valuable experience in problem solving.

Don’t try to think like a computer, try to think like a human, then force the computer to think like a human.

For a first programming language, you need to develop this important skill: know how to systematically break down the problems into things you understand, acknowledge what you don’t, and work with what you do understand to get you steps closer (while saving things you’re unsure about for the future).  

Learning a second programming language will require you to program at a higher level. And you won’t truly understand the first programming language until you’ve started to learn a second one where the mindset is different. It’s because there are bigger differences in programming languages besides the syntax you type in (i.e. the specific code).

Programming languages will have similarities and differences too.  Learning how to map the concepts that are similar from a different programming language to a new one, but also accepting that there will be some new concepts, is an experience that helps developers level up.

There are a couple of different programming paradigms, or in other words big picture programming language types.

Different programming languages generally push you as a developer to solve problems in certain ways.  

Ruby is an object oriented programming language.  It wants you to organize your code in a very specific way.

The Ruby language was designed with one main principle in mind: developer happiness. It’s a programming language that was designed to be easy to read, fast to learn, and simple for developers to use to solve complex problems. The learning curve to master Ruby is less steep in comparison to other programming languages, and after just a short period, you will be able to write and execute Ruby programs and solve complex algorithm challenges. In addition, mastering Ruby first provides you with an ideal springboard to learn another programming language at an accelerated pace.

There are other object oriented programming languages, and learning them once you know a programming language like ruby is generally pretty easy. There are small cosmetic differences with the details of how the language works, but if you understand ruby, learning other programming languages in the same category it is not difficult.

JavaScript focuses on functional programming ideas, meaning it pushes you to solve problems in a different manner.

JavaScript, on the other hand, includes a lot of functional programming ideas, meaning they generally push you towards a very different approach to solving problems. JavaScript was influenced by functional programming languages and has some concepts similar to LISP, clojure and erlang.

This means a JavaScript developer breaks problems in a much different way than ruby developers do. The way JavaScript embraces first-class functions makes you use a different approach to solving problems.

Learning programming on the extremes of different programming paradigms will teach you how to breakdown problems in different ways. As with everything in programming, there are tradeoffs to each approach. There are some situations where using a traditional object oriented language is practical. And there are some situations where using functional programming languages is practical.

Today’s user interfaces depend heavily on JavaScript to create a smooth user experience.  JavaScript skills are an essential software engineering skill for today and tomorrow. While JavaScript is a powerful and efficient programming language, it’s notoriously difficult to learn as a first programming language. Instead, it’s perfect for your second language.

Learning both ruby and JavaScript will force you to learn a diverse set of programming ideologies.

Learning ruby and how to break apart problems in a traditional object oriented manner will prepare you to solve problems using that approach, which is incredibly important. Learning JavaScript and how to solve things with a more functional programming approach will allow you to understand that mentality as well.

But choosing to learn both will set you up to succeed in your future programming efforts, whether you look to land a job as a software engineer who programs in ruby, JavaScript or even other programming languages like Python, Java, C#, or swift. You should not seek out to become a ruby programmer.  And you shouldn’t seek out to become JavaScript programmer.  Instead, you should seek to become a Software Engineer, who uses the right tool for the job.

In-demand software engineers know multiple programming languages; they’re polyglot programmers. When you have experience with more than one programming language, you enable yourself to choose the right tool for the job rather than use the same tool for every job. Having the ability to draw on this flexibility and experience is exactly what will make you in demand.

AuthorKen Mazaika

Ken Mazaika is the CTO and co-founder at Firehose. Previously, he was a tech lead at WHERE.com (acquired by PayPal) and a member of the PayPal/eBay development team in Boston.

Leave a Reply

Your email address will not be published. Required fields are marked *