Which Language Should I Learn
About people's journeying toward learning to programme starts with a unmarried late-night Google search.
Usually it's something like "Learn ______"
Only how do they decide which language to search for?
"They e'er joke about Java on Silicon Valley. I approximate I should larn that."
Or:
"Haskell. Then hot right now. Haskell."
Or:
"That Go gopher is just so gosh-darn cute."
And then there's the rest of u.s.a.. Nosotros'll probably search for something like:
"Which programming language should I learn first?"
Few questions are so ordinarily asked that they get the full infographic treatment. But this is one of them:
Deciding on your first programming language can be a fun process — kind of like one of those "Which Quentin Tarantino character are you?" personality quizzes.
But before y'all run off to learn Red because yous enjoyed playing with Play-Doh as a kid, let me remind you: the stakes are pretty loftier here.
It will take you hundreds of hours of exercise to become even remotely competent with your get-go programming linguistic communication.
And so y'all should consider the following factors:
- the chore market place for the language
- the long term prospects for the linguistic communication
- how easy the language is to learn
- what projects yous can build while you're learning (and share with friends so you can stay motivated)
Every twelvemonth brings new programming languages, and with them, new bookish papers. And new web comics.
Seriously. Cheque out this gem from last calendar month:
When information technology comes to choosing a first programming language, there'due south no shortage of options. To narrow information technology down a bit, hither are the virtually mutual Google searches related to learning programming, over the by 12 years:
Java has had its ups and downs.
Python has gradually risen to get the almost popular choice.
But tucked away below these is the Little Engine That Could, slowly choo-choo'ing upwardly in popularity over the past few years. And that engine is JavaScript.
Before I talk virtually these programming languages, let me clarify:
- I'thou non arguing that any one language is objectively meliorate than any other
- I agree that developers should eventually larn more than than 1 language
- I'm arguing that showtime they should learn one language well. And — as you tin probably guess from the upside downwards text in my headline — that language should be JavaScript.
Permit's kick things off by exploring how programming is currently taught in school.
Computer Scientific discipline 101
Universities take traditionally taught programming under the umbrella of information science, which itself is often seen as an extension of mathematics, or tie-in to an electrical technology degree.
Of form, as you may accept heard by now:
"Figurer scientific discipline instruction cannot make everyone an expert developer any more than studying brushes and paint tin make somebody an expert painter." — Eric Due south. Raymond
Every bit of 2016, many universities notwithstanding treat programming like information technology'southward informatics, and computer science like information technology'south math.
As a outcome, many introductory programming courses focus on low-level-of-brainchild languages similar C, or mathematically-focused languages like MATLAB.
And department chairs generally stay the class, pointing to almanac programming language leaderboards like the TIOBE Alphabetize, or this one from the IEEE:
Most of these leaderboards expect nearly identical to how they were ten years agone.
But change does happen. Even in academia.
In 2014, Python overtook Java as a the most popular language of instruction at top US Computer Scientific discipline programs.
And yet another change is bound to… eventually… happen.
Because if y'all expect at the languages actually used by the workforce, information technology paints a very different picture:
More than than half of all developers use JavaScript. It's vital to front end-terminate web development and increasingly relevant for back-end development. And information technology's rapidly expanding into areas like game evolution and the Net of Things.
Task postings also mention JavaScript more any programming language other than Java:
It's no accident that we built our open source community'south curriculum around JavaScript. Over the past two years, more than 5,000 people have used Gratuitous Code Military camp to get their beginning developer task.
I'thousand non advocating JavaScript because I teach information technology. I teach JavaScript because it's the surest path to a first developer job.
Just is JavaScript right for yous? Is it worthy of being your starting time programming language? Permit's explore those factors I mentioned earlier.
Factor #i: The job market
If you're learning to program purely out of intellectual curiosity, feel costless to skip this cistron. But if yous — like the vast majority of people learning to program — want to utilise this skill to get a job, this is an important consideration.
Equally I mentioned earlier, Java is mentioned in more job postings than any other programming language. JavaScript is a shut second.
But hither's the thing about JavaScript: even though it's been around for twenty years, it only recently became a serious tool that companies like Netflix, Walmart, and PayPal would build entire applications around.
As a outcome, plenty of companies are hiring JavaScript developers, but there only aren't that many on the task market place.
In that location are ii.seven Java developers competing for every open Java position. Competition for PHP and iOS jobs is similarly vehement.
Merely for every open JavaScript position, there are just 0.6 JavaScript developers. It is very much a sellers' market for developers with JavaScript skills.
Factor #2: The long term prospects
The average JavaScript projection receives twice every bit many pull requests as the average Coffee, Python, or Cerise project. And on top of this, JavaScript is growing faster than whatsoever other popular language.
JavaScript's ecosystem also benefits from a heavy investment of money and engineering science talent from companies like Google, Microsoft, Facebook, and Netflix.
For example, TypeScript (a statically-typed superset of JavaScript) has more 100 open source contributors, many of whom are Microsoft and Google employees being paid to work on it.
This blazon of inter-company cooperation is harder to find with Coffee. Oracle — who effectively owns Java through its acquisition of Sun Microsystems — often sues companies who try to expand upon it.
Gene #iii: Difficulty to acquire
Most programmers would agree that loftier-level scripting languages are relatively easy to larn. JavaScript falls into this category, along with Python and Ruby.
Fifty-fifty though universities all the same teach languages similar Coffee and C++ every bit first languages, they're considerably harder to learn.
Cistron #4: Projects you tin build with it
This is where JavaScript actually shines. JavaScript runs on any device that has a browser, correct there in the browser. You can build basically annihilation with JavaScript, and share it anywhere.
Because of JavaScript's ubiquity, Stack Overflow co-founder Jeff Atwood coined his now-famous law:
"Any application that can be written in JavaScript, will somewhen be written in JavaScript."
And with each passing month, Atwood'south Law holds strong.
Java once promised to run everywhere, too. You lot may recall Coffee Applets. Oracle officially killed them off earlier this year.
Python suffers from much the same problems:
"How can I give this game I fabricated to my friend? Fifty-fifty better, is there a mode can I put this on my telephone and so I can show it to kids at schoolhouse without them having to install it? Um." — James Hague in Retiring Python as a Instruction Language
By contrast, hither are some apps that members of our open source community congenital in their browsers on CodePen. Yous tin can click through and use these right in your browser:
Learn one linguistic communication well. Then learn a second 1.
If you keep jumping from language to language, you lot won't go far.
In order to move beyond the basics, you demand to acquire your first language well. And so your second linguistic communication volition be much, much easier.
From at that place, you lot can branch out, and become a more well-rounded programmer by learning lots of languages:
- C is a dandy style to acquire how computers actually work in terms of retentiveness direction, and is useful in high-performance computing
- C++ is keen for game development.
- Python is awesome for science and statistics.
- Java is of import if you lot want to piece of work at large tech companies.
But larn JavaScript start.
OK, at present I'chiliad going to endeavor the incommunicable — I'm going to attempt and anticipate objections from the comments section.
Objection #ane: But isn't JavaScript ho-hum?
JavaScript is — for most practical purposes — every bit fast every bit high-operation languages.
JavaScript (Node.js) is orders of magnitude faster than Python, Ruby, and PHP.
It is also about equally fast as high-performance languages like C++, Java, and Become.
Here are the results of the most comprehensive recent cross-linguistic communication benchmark:
Objection #2: But JavaScript isn't statically typed
Like Python and Ruby, JavaScript is dynamically typed, which is convenient. But you tin become into trouble. Hither I intend for exampleArray
to be an assortment. I prepare its values, then check its length — meaning the number of elements information technology contains.
exampleArray = [one, 2] -> [1, 2] exampleArray.length -> ii
But then I accidentally assign it to be a cord.
exampleArray = "text" -> "text" exampleArray.length -> iv
These kinds of errors happen all the time in dynamically typed languages. Well-nigh developers but put checks in place to prevent them, and write tests accordingly.
If you absolutely must accept static typing in your get-go programming language, then I however recommend you learn JavaScript starting time. Then you can quickly pick up TypeScript.
"Typescript has a learning curve, but if y'all already know JavaScript, it will be a smooth one." — Alex Ewerlöf on TypeScript
Objection #3: But I really want to make a mobile app
I withal recommend learning JavaScript first.
- JavaScript features several tools for making native mobile apps, such as Angular Cordova and React Native.
- In order for your mobile app to actually do anything interesting, it will probably need a proper back end, which you'll desire to build with a proper web development framework, like Node.js + Express.js.
Besides, it'south worth pointing out that the mobile app evolution's best days may very well be behind it.
For starters, every bit much every bit people use mobile apps, nearly half of all developer jobs are spider web development. Compare this with a mere 8% of jobs that involve mobile app evolution.
The grand vision of "there's an app for that" has not come to pass. Instead, most smartphone owners take stopped downloading new apps.
Sure — they all the same use apps. Mostly Facebook, Google Maps, and handful of others. As such, much of the demand for mobile app developers is full-bodied in a few large employers.
The outlook for those mobile development jobs is hard to forecast. Many aspects of developing, maintaining, and distributing mobile apps are easier with JavaScript. So companies like Facebook and Google are investing heavily in better tools for edifice these using JavaScript.
As of 2016, pretty much all development is web evolution. Everything touches that big platform that is "the spider web." And the next moving ridge of devices that you'll talk to around your abode, and cars that pick your kids up from schoolhouse — they'll all exist piped together using the web, too.
And that means JavaScript.
Objection #4: Isn't JavaScript a toy language that was written in 10 days?
JavaScript has a quirky history.
Yous will undoubtedly hear people crevice jokes at its expense.
Well people love to hate on C++, too. And like JavaScript, C++ has succeeded despite this hate, and now it's pretty much everywhere also.
So if everyone e'er gives yous a difficult fourth dimension for learning JavaScript instead of elite-language-of-the-calendar week, just think the famous words of the guy who created C++:
"At that place are only two kinds of programming languages: those people ever bitch about and those nobody uses." — Bjarne Stroustrup
I only write well-nigh programming and applied science. If y'all follow me on Twitter I won't waste your time. ?
Larn to lawmaking for costless. freeCodeCamp's open source curriculum has helped more 40,000 people get jobs as developers. Get started
Source: https://www.freecodecamp.org/news/what-programming-language-should-i-learn-first-19a33b0a467d/
Posted by: wilsongeody1976.blogspot.com
0 Response to "Which Language Should I Learn"
Post a Comment