I Am a 38 Year Man Novice, Can I Now Start Learning Java and Get a Job
Nearly people's journeying toward learning to program starts with a unmarried tardily-night Google search.
Usually it's something like "Learn ______"
But how practise they decide which language to search for?
"They ever joke about Java on Silicon Valley. I guess I should learn that."
Or:
"Haskell. So hot correct now. Haskell."
Or:
"That Go gopher is just then gosh-darn cute."
And then there's the rest of united states. We'll probably search for something like:
"Which programming linguistic communication should I learn first?"
Few questions are so commonly asked that they become the full infographic treatment. But this is one of them:
Deciding on your first programming language tin can exist a fun process — kind of like one of those "Which Quentin Tarantino grapheme are you?" personality quizzes.
But before you run off to acquire Ruby-red because you enjoyed playing with Play-Doh equally a kid, let me remind you: the stakes are pretty high hither.
It volition have yous hundreds of hours of do to become fifty-fifty remotely competent with your first programming linguistic communication.
So you should consider the following factors:
- the job market for the linguistic communication
- the long term prospects for the language
- how easy the linguistic communication is to learn
- what projects y'all can build while you're learning (and share with friends so you lot tin can stay motivated)
Every year brings new programming languages, and with them, new academic papers. And new web comics.
Seriously. Bank check out this gem from last month:
When it comes to choosing a first programming language, at that place'southward no shortage of options. To narrow information technology down a scrap, here are the most mutual Google searches related to learning programming, over the past 12 years:
Coffee has had its ups and downs.
Python has gradually risen to go the nigh popular choice.
But tucked away below these is the Little Engine That Could, slowly choo-choo'ing up in popularity over the past few years. And that engine is JavaScript.
Earlier I talk virtually these programming languages, permit me clarify:
- I'm non arguing that whatsoever one language is objectively better than any other
- I agree that developers should eventually learn more than than ane language
- I'm arguing that first they should larn 1 language well. And — as you tin probably gauge from the upside downwards text in my headline — that language should be JavaScript.
Allow's kick things off by exploring how programming is currently taught in school.
Computer Science 101
Universities have traditionally taught programming under the umbrella of information science, which itself is often seen every bit an extension of mathematics, or tie-in to an electrical engineering degree.
Of course, as you may take heard by now:
"Estimator science didactics cannot make everyone an expert developer whatsoever more than than studying brushes and paint can make somebody an skillful painter." — Eric South. Raymond
As of 2016, many universities yet treat programming like it's computer science, and computer science like it's math.
Equally a result, many introductory programming courses focus on low-level-of-abstraction languages like C, or mathematically-focused languages like MATLAB.
And department chairs generally stay the course, pointing to annual programming language leaderboards like the TIOBE Index, or this one from the IEEE:
Most of these leaderboards look near identical to how they were x years ago.
But change does happen. Fifty-fifty in academia.
In 2014, Python overtook Java as a the most popular linguistic communication of instruction at top Us Information science programs.
And notwithstanding another modify is bound to… eventually… happen.
Because if you look at the languages really used by the workforce, it paints a very different motion picture:
More than half of all developers apply JavaScript. It'southward vital to front-end web development and increasingly relevant for dorsum-stop development. And it's quickly expanding into areas like game development and the Internet of Things.
Job postings likewise mention JavaScript more than whatsoever programming linguistic communication other than Java:
Information technology'south no accident that we congenital our open source community'southward curriculum around JavaScript. Over the by two years, more than 5,000 people have used Free Code Military camp to go their first developer job.
I'm not advocating JavaScript because I teach information technology. I teach JavaScript because it's the surest path to a first programmer task.
But is JavaScript right for you? Is it worthy of beingness your first programming language? Let's explore those factors I mentioned earlier.
Cistron #one: The job market place
If you're learning to program purely out of intellectual curiosity, experience free to skip this gene. But if yous — like the vast majority of people learning to program — want to use this skill to go a task, this is an important consideration.
As I mentioned earlier, Coffee is mentioned in more job postings than whatsoever other programming language. JavaScript is a close second.
But here's the matter nearly JavaScript: even though it's been around for 20 years, information technology only recently became a serious tool that companies like Netflix, Walmart, and PayPal would build entire applications effectually.
As a issue, enough of companies are hiring JavaScript developers, but there just aren't that many on the job market.
In that location are 2.seven Coffee developers competing for every open Java position. Contest for PHP and iOS jobs is similarly vehement.
Simply for every open JavaScript position, at that place are only 0.6 JavaScript developers. It is very much a sellers' market for developers with JavaScript skills.
Factor #two: The long term prospects
The average JavaScript project receives twice as many pull requests as the average Coffee, Python, or Blood-red project. And on summit of this, JavaScript is growing faster than any other popular language.
JavaScript'due south ecosystem also benefits from a heavy investment of money and engineering talent from companies like Google, Microsoft, Facebook, and Netflix.
For case, TypeScript (a statically-typed superset of JavaScript) has more than 100 open source contributors, many of whom are Microsoft and Google employees being paid to work on it.
This type of inter-company cooperation is harder to discover with Java. Oracle — who effectively owns Java through its acquisition of Sun Microsystems — often sues companies who try to expand upon it.
Factor #3: Difficulty to acquire
Most programmers would agree that high-level scripting languages are relatively easy to learn. JavaScript falls into this category, along with Python and Ruby.
Even though universities still teach languages like Java and C++ as first languages, they're considerably harder to learn.
Factor #4: Projects you lot can build with it
This is where JavaScript actually shines. JavaScript runs on any device that has a browser, right there in the browser. You can build basically anything with JavaScript, and share it anywhere.
Because of JavaScript's ubiquity, Stack Overflow co-founder Jeff Atwood coined his at present-famous law:
"Any awarding that can be written in JavaScript, volition eventually be written in JavaScript."
And with each passing month, Atwood'south Law holds strong.
Coffee once promised to run everywhere, too. You may remember Java Applets. Oracle officially killed them off earlier this year.
Python suffers from much the same problems:
"How can I give this game I made to my friend? Fifty-fifty better, is there a manner tin I put this on my phone so I can show it to kids at school without them having to install it? Um." — James Hague in Retiring Python as a Instruction Language
By contrast, here are some apps that members of our open up source community congenital in their browsers on CodePen. You can click through and apply these right in your browser:
Learn one linguistic communication well. And then learn a 2d one.
If you continue jumping from language to language, you lot won't get far.
In guild to move beyond the basics, you need to larn your offset language well. Then your 2nd linguistic communication will be much, much easier.
From at that place, you can branch out, and get a more well-rounded developer by learning lots of languages:
- C is a cracking style to learn how computers actually work in terms of memory direction, and is useful in loftier-performance calculating
- C++ is great for game development.
- Python is awesome for scientific discipline and statistics.
- Coffee is important if you lot want to work at large tech companies.
But learn JavaScript first.
OK, now I'chiliad going to endeavour the impossible — I'k going to try and anticipate objections from the comments section.
Objection #1: But isn't JavaScript ho-hum?
JavaScript is — for about practical purposes — as fast as loftier-functioning languages.
JavaScript (Node.js) is orders of magnitude faster than Python, Ruby, and PHP.
It is also most as fast as loftier-operation languages similar C++, Java, and Become.
Here are the results of the most comprehensive contempo cross-linguistic communication criterion:
Objection #ii: But JavaScript isn't statically typed
Like Python and Blood-red, JavaScript is dynamically typed, which is convenient. But you tin can get into trouble. Here I intend for exampleArray to be an array. I set its values, and then bank check its length — meaning the number of elements it contains.
exampleArray = [1, two] -> [one, 2] exampleArray.length -> 2 But so I accidentally assign it to be a cord.
exampleArray = "text" -> "text" exampleArray.length -> 4 These kinds of errors happen all the time in dynamically typed languages. Near developers simply put checks in place to prevent them, and write tests accordingly.
If you absolutely must have static typing in your first programming linguistic communication, then I still recommend you learn JavaScript outset. And then yous can quickly choice up TypeScript.
"Typescript has a learning curve, but if you 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 yet recommend learning JavaScript first.
- JavaScript features several tools for making native mobile apps, such equally Athwart Cordova and React Native.
- In order for your mobile app to actually practice anything interesting, it volition probably need a proper back finish, which you'll want to build with a proper web evolution framework, like Node.js + Express.js.
Also, it'due south worth pointing out that the mobile app development's best days may very well be behind it.
For starters, as much every bit people use mobile apps, about one-half of all programmer jobs are web development. Compare this with a mere eight% of jobs that involve mobile app development.
The grand vision of "in that location's an app for that" has not come to pass. Instead, most smartphone owners have stopped downloading new apps.
Certain — they still use apps. Mostly Facebook, Google Maps, and handful of others. As such, much of the demand for mobile app developers is concentrated 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 meliorate tools for building these using JavaScript.
Equally of 2016, pretty much all evolution is spider web development. Everything touches that big platform that is "the spider web." And the next wave of devices that you'll talk to effectually your home, and cars that pick your kids up from school — they'll all exist piped together using the web, besides.
And that means JavaScript.
Objection #iv: Isn't JavaScript a toy language that was written in 10 days?
JavaScript has a quirky history.
Y'all 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 likewise.
So if anybody e'er gives you a hard time for learning JavaScript instead of elite-linguistic communication-of-the-calendar week, just recollect the famous words of the guy who created C++:
"There are only two kinds of programming languages: those people always bitch nigh and those nobody uses." — Bjarne Stroustrup
I merely write most programming and engineering. If you lot follow me on Twitter I won't waste your time. ?
Learn to code for free. freeCodeCamp'due south open source curriculum has helped more than xl,000 people become jobs as developers. Get started
fawcettoncoure1975.blogspot.com
Source: https://www.freecodecamp.org/news/what-programming-language-should-i-learn-first-19a33b0a467d/
0 Response to "I Am a 38 Year Man Novice, Can I Now Start Learning Java and Get a Job"
Post a Comment