× Terms of Use Privacy Policy

Take me back!! I want my CSS!! Click me to get back :)

The first programming language you should learn is…

One of the most confusing things when you set out to learn technical skills is figuring out WHAT to learn. And nowhere is this more true than when it comes time to pick your first programming language.

Ruby seems cool, PHP sounds useful, you’re not exactly sure what people do with Python and should you focus on Java? Or is it JavaScript?

To make matters worse, you might ask a developer friend what you should learn and either get a “Eh, it doesn’t really matter what you pick” answer or, worse yet, a long winded argument about why learning any language other than C++ is a horrible waste of your time, and you didn’t even know that C++ was an option!

Before I tell you THE ANSWER I want to set up some context: here at Skillcrush we focus exclusively on technical skills related to building websites. That means that we will tell you what to learn and how to learn it if your end goal is to work as a designer, developer, project manager, UX specialist, or in some other capacity building websites and web applications.

Got it?

And then ONE MORE caveat: your friend who said it doesn’t really matter? She was right. But that’s good news for you! But it’s also not THE ANSWER.

Here’s the thing: when it comes to learning your first programming language, your most important task is to start to understand how programming works. You need to learn: what a variable is, and an array, and method, and function, and objects and loops. You need to understand how logic works. And the amazing thing is that these core programming principles apply to all programming languages.

Got THAT?

Alright, now it’s time to tell you THE ANSWER.

Ruby vs. PHP vs. Python vs. JavaScript? (AKA which of the four most common web programming languages should you start with?)

The answer is…JavaScript!

That’s right, if you are setting out to learn your first programming language you should learn JavaScript. Let me tell you why:

Reason #1: JavaScript is easy to use and has an immediate payoff

JavaScript is the only web programming language that runs both in the frontend and the backend (more on that later), which means two very important things for you:

  1. JavaScript comes installed on every modern web browser, so you can LITERALLY start programming in JavaScript this very second on the very browser that you are using to read this article. No muss, no fuss.

    Python and Ruby are both wonderful languages to learn, but unfortunately, the process of installing either one on your machine so that you can start to learn it will make you want to tear your hair and run away screaming, never to be heard from again.

    And you have nice hair.

  2. Because you can use JavaScript on the frontend and because JavaScript runs all the fun interactive elements of websites you can start to use it immediately to sex up your website.

And who doesn’t love a sexy website?

Not THAT kind of sexy. Geez.

Reason #2: JavaScript can be used to make sites pretty and to build crazy fast servers (aka it can do A LOT of different stuff so it’s a great skill to have)

Up until about ten years ago, JavaScript was really only used on the frontend. That means that it ran in your browser and allowed developers to create interactive elements on websites like slideshows and whatnot, but it didn’t do a lot of fancy stuff.

And then AJAX came on the scene. I will let you read the tech term we wrote all about AJAX but suffice it to say that AJAX created the ability to use JavaScript in conjunction with data and made it possible to do all kinds of crazy stuff like load new stuff on a website without refreshing the page.

Think how Gmail loads your new emails or Twitter loads new tweets.

And then JavaScript started to explode.

The past few years have seen INSANE development in the JavaScript language. JSON has taken over as one of the most popular ways to transfer data. Node.js was released and allows you to build servers in JavaScript. Libraries like Mustache.js and Handlebars.js have made it possible to create awesome JavaScript templates. And frameworks like Ember.js, Angular.js, and Backbone.js are powering the creation of thousands of crazy interactive web applications and have pushed the limits of JavaScript way further than anyone thought it could go.

Seriously, JavaScript is ON FIRE.

And I haven’t even touched on how it can be used on the mobile web!

Reason #3: Tons of job growth and high pay for those who know JavaScript

What, you don’t believe me about JavaScript being on fire?? Let’s see if this will convince you:

Indeed is the biggest job listings aggregator website in the world and they have this handy tool that combs through all of the thousands of job listings and tracks trends in job keywords. In other words, what skills are HOT.

So putting aside the fact that all 10 of the fastest growing keywords are tech related, let’s talk about JavaScript.

Some facts:

  • JavaScript is a keyword in fully 1% of all jobs posted on Indeed

  • jQuery (a popular JavaScript library) is ranked #8 on the fastest growing keywords and is found in ~0.5% of jobs posted to the site

  • Jobs advertising for Node.js expertise have grown 80,000% over the last three years

  • Jobs advertising for Angular.js expertise have grown 9,000% in just the last year

  • Jobs advertising for Backbone.js skills start at $60,000 and go up to $140,000 !

  • There are currently over 54,886 jobs on Indeed advertising for JavaScript knowledge

In other words…JavaScript is where the party is AT.

So come join us!

If you are ready to try your hand at JavaScript, I want to invite you to join the next session of Skillcrush 102: Go Interactive with JavaScript, jQuery and APIs. This three week class starts on Monday, April 14th and will give you a solid foundation in all things JavaScript so you can go out and get yourself one of these 54,886 awesome open jobs and/or start making interactive websites for yourself.

If you have any questions about JavaScript or the class or what you should learn to maximize your earning and employment potential, shoot us an email at hello@skillcrush.com. We would love to give you advice!

Adda Birnir

Adda is not only the CEO and founder of Skillcrush, but also an instructor. With her self-taught tech skills, she’s worked on building sites for the New York Times, ProPublica and MTV.

When Adda isn’t developing or teaching on Skillcrush, she enjoys watching Hall & Oates videos on YouTube.

Your email address will not be published.

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

25 comments

  1. Pat Replied

    There is no doubt that knowing JavaScript is important, but I think this is the hardest language to start learning programming basics. Why? Because vanilla JavaScript comes with so many tripwires…

    I.e. the way types are resolved (“undefined” is not null, typeof null === “object”); Prototype inheritance has a different perception of how attributes etc. are inherited; Variable scope and the fact that missing the “var” keyword causes the variable to be global; JavaScript is asynchronous, which in my honest opinion is the hardest thing to wrap the head around (pyramid of doom, concept of promises) and my personal favorite: People often don’t know the difference between “==” and “===” and enter the land of programming by coincidence… When I started learning programming in school, we used classic C for understanding control flow, memory management, simple sorting algorithms, recursive functions etc etc. which led us to learn OO with Java… After 2 years of programming JavaScript with Node.js, I realized that each language / platform has it’s caveats, but it’s never a bad thing to be proficient in many different environments… So, don’t worry and happy coding :-)

  2. Bryan Replied

    There are good reasons listed, but I’d say that Ruby & Python are better initial languages because they have a much easier syntax.

    What keeps people from learning languages is difficulty & frequency of overcoming errors. And a complicated syntax creates more instances where syntax errors hinder progress.
    Compare something like JS’s: for (var i = 0; i < cities.length; i++){}
    to python's: for i in cities:

    It's easy to learn the concepts with a lighter syntax, and then transition to javascript after you understand variables, arrays, loops, and functions.

    • nazzanuk Replied

      I think much of the syntax is pretty similar, as evidenced here:https://blog.glyphobet.net/essay/2557 and the main point is the wide usage of JS for web / server / mobile apps.

      Also, JS does have: for (var i in cities){} not too much different.

  3. Ryan Le Replied

    I do applaud the article for emphasizing the explosive growth JS has, but I disagree with the bashing of OOP languages like Ruby and Python. Ruby is an excellent starter, and no, it doesn’t make you pull your hair out to get it installed.

    The best advice I have for anyone who wants to get into programming is to ditch Windows and hop on the OS X / Linux express train. Learn to use a command-line and plain text editor (Atom or Sublime) and study HTTP thoroughly before even embarking on a language.

      • Ryan Le Replied

        http://www.gluglug.org.uk/why-you-shouldnt-use-microsoft-windows/ is a good place to start.

        K, coming from a lot of bias and personal opinion here:

        Proprietary.
        Not open-source.
        Unless you plan on developing strictly Microsoft-oriented (i.e., ASP .NET), Microsoft’s bastardized flavor of SQL, with their (sad) MS Server editions.
        Linux/OS X.. stock with Perl, Ruby, etc. right in the distribution. Windows? Jump through hoops of fire to get third party installers and hope they work well. Lack of a default terminal (Command Prompt doesn’t count, have to get Putty or the likes for VPS control). And, my biggest peeve of all coming from a Tech Support role, security vulnerabilities to the heavens. Most targeted OS in the world for hackers, malware, etc.

        Another thing — head to dev/tech conferences and you’ll probably see 5-10% using Windows. Rest of everybody will probably be running some debian flavor of Linux or Macbooks.

      • Ryan Le Replied

        I should also probably mention that 9/10 of the resources (books, e-courses, talks, etc.) I’ve used to learn always advise Linux/OS X where possible, with little to no instruction to get started as a Windows user. And there’s always more caveats to dev’ing on Windows.

      • Lewallen Replied

        Again, no valid points. What is this 9/10 of the resources? Name them all. I have books filled up in my bookshelf that teach in Linux and Windows (unless it specifically says XXX for Linux). It’s because instructors know devs will use either. I’ve never heard of devs all using 100% Linux unless their company is an exclusive Linux environment.

      • Ryan Le Replied

        So you’re implying it’s just as easy to develop, say, a Rails application Windows as it is on Linux or OS X? Zero caveats on Windows, right?

        And who would want MS SQL on Linux? No valid point.

        I will name them all, and highlight every point where they bash Windows. Just wait until I’m done working in my 100% Linux workshop because ownership sees no value in a proprietary, closed sourced environment. ;)

      • Bryan Replied

        The OS is not the limiting factor for learning any of these languages.
        To suggest that a platform switch is *required* is quite ignorant.

      • Ryan Le Replied

        To suggest I said a ‘platform’ switch is “required” is quite ignorant. It’s a preferential suggestion, that it’s easier to work on a local OS distro that is similar to the environment you’d deploy to (I don’t know any Microsoft devs personally, anyone I know who works with a linux web server works on a local unix OS). Thanks for putting words in my mouth.

        Again, it’s opinion and bias I’ve gathered over the years of personal experience and meeting people who have had all the reasons to make a switch from Windows to unix for ease and experience.

      • Adam Replied

        Maybe you didn’t say required, but you certainly worded it in a way which suggests it “best advice I have for anyone who wants to get into programming is to ditch Windows” – Personally I use Linux a lot and do like it and I’ve used various Macs and still prefer my iPhone over the Androids… But all your points are complete crap from an OS basher.

      • Ryan Le Replied

        I’ve never heard of devs who wake up each day and decide to write their code on different OS’s. I think you and I are thinking on two different terms. As a starting developer, it was a hell of a lot easier for me to throw Windows 7 out the window when I launched my first VPS running Ubuntu 12.04 and decided to install Ubuntu Desktop 12.04. I learned more sysadmin by working in the OS I deployed web-apps onto. Ever try to chown or chmod on Command Prompt? Lol

      • Lewallen Replied

        You make no valid points for ditching Windows. You can install MySQL on Windows, can you install MS SQL on Linux? You can install Python, Apache, and Perl in Windows just fine. And why doesn’t command prompt count for terminal? You can telnet and ssh just as well. You’re making Linux administrators look bad by bashing Windows.

      • Herwin Gill Replied

        Thanks for sharing your thoughts – I’ll give some thought to what OS makes sense for my purposes

      • Ryan Le Replied

        Herwin it really just depends on your goals and the type of work you want. If you grew up and learned on Windows, it doesn’t hurt to expand your horizons and learn popular Linux distributions like CentOS or Ubuntu. Like I’ve been saying, speaking a lot of bias and personal experience. Whatever direction you head in, figure out what most of the community uses and go with the flow. It helped on my resume to mention experience in different OS distro’s, because it means flexibility, adaptation, and not afraid to try new things. I feel those are a couple things important for any employer in any profession.

      • Herwin Gill Replied

        Yeah, agreed that flexibility, adaptation, and willingness to try new things is a plus for employment. I’m currently in Finance, and playing around with coding for exactly what you cited; I like trying new things. I believe coding will be an important skill in the future. Even if I don’t end up a programmer, still good to have some background in it.

    • Brad Replied

      I completely disagree with you. Sorry to tell you but I suspect the majority of companies in the country are running on a Microsoft platform (in whole or in part) and are running MS products – and their developers are most likely using a combination of languages which includes some open source as well – not strictly.  Also, to suggest the MS SQL platform is sad is , well I am not sure what it is… retarded??  Have you used it in a large business environment even?  I have used Oracle, MS SQL, Dec Rdb, IMS, DB2… the list goes on… MS SQL is a great product and scales nicely…  I would take it over any of those other ones all day every day… I am not convinced you know what you are talking about…

  4. Good, but JavaScript (not counting Node.js) is only a client-side language. Sooner than later the programmer has to “graduate” to PHP, Ruby or Python for server-side scripting. That aside, why I’d suggest learning JavaScript is because it is the only option for the Web.

  5. Marcin Wietlicki Replied

    I really think of JavaScript as a building a puzzle which parts always don’t match each other in the end. It is very frustrating… remontowisko.pl

  6. Mrt Ozcn Replied

    can you write user generated websites or like online databases in javascript? is that enough to make such a website? i want to make various communities.

  7. Jotte Replied

    Such an useful article! I’ll start on JavaScript right now

  8. JL Replied

    Agreed! And you can also use JS and HTML5 to create mobile apps for both iOS and Android using things like CocoonJS or Phone Gap build, etc. The only problem I think is that you have to know some html and some css.

Want more articles like this?

Sign up to get the most recent tech news, tips and career advice.

x
Wondering if TECH might be right for you?

Sign up for FREE for weekly updates & fun lessons!