How Much JavaScript Do You Need To Know For an Entry-Level Job?
Nerval's Lobster writes: JavaScript is a programming language that's easy to pick up, but extremely difficult to master. Even some of its beginner-level functions are decidedly not beginner-friendly. When someone lands their first JavaScript job, they're going to want to know as much as possible, if only so they can navigate through some of the language's trickier aspects without needing to ask for help. Developer Jeff Cogswell picked through JavaScript and came away with a couple of lists of what he thought were the minimum baseline of skills for JavaScript use in a work context. That list included understanding how to use built-in objects, functions , closures, and DOM (Document Object Model). While his points are comprehensive, not everyone will necessarily agree with what he lists (and doesn't list).
There are no entry level jobs. Not for Americans at least.
> JavaScript is a programming language that's easy to pick up
this statement is the single biggest source of damage to the ecosystem of javascript.
Last week it was "How much C++ do you need to know for an entry level job"
next week it'll be "How much Python do you need for an entry level job"
Must be nice crowd sourcing your job requirements from Slashdot.
Java != JavaScript; not even close, really.
Java sounds like a great reason to get out of IT entirely!
also 90 years of experience with Windows 10.
Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
While Angular and React might be all the rage today, you're expected to be an expert in whatever framework comes out tomorrow.
You should be able to write the same Todo List application several thousand times, justifying the existence of each one.
You should also demonstrate a strong desire to re-implement every single piece of software in existence in Javascript, including Linux (http://bellard.org/jslinux/), 8bit Console Emulators (https://fir.sh/projects/jsnes/), and possibly the software that drives your Kuerig. For example, I would expect you to tell me that you're just dying to start a new github project where you'll re-implement MS Flight Simulator 10 in Javascript, and how awesome the cockpit checklist feature will be.
You must demonstrate a complete misunderstanding of the differences between asynchronous and concurrent, and you must also be able to give a short presentation on what "web scale" means, without being able to explain it. You'll probably win a few favors by throwing in the term "cloud".
This and more, is what it takes to be a 21st century javascript developer.
I'm god, but it's a bit of a drag really...
It's the "If all you have is a hammer, then everything looks like a nail" factor. Which unfortunately is ultra-high for JavaScript right now.
About the only JavaScript I know right now is Array(16).join('wat' - 1) + ' Batman!'
"Ancillary does not mean you get to rule the world." --U.S. Circuit Judge Harry Edwards, speaking to the FCC's lawyer
Real programmers use C and provide the foundation that web kiddies rely on to get anything done.
Now get off my lawn.
Considering the comment, glad you did.
I think the author is wearing blinders based on his previous positions. As someone who has spent the past 4-years 60-70% writing JS (and irregularly since the 90s) most of what he considers important is almost never used.
No trolling, and even though you post as AC, you raise a good point. Slashdot is not functional without Javascript enabled, and so that is how I read it. Nevertheless, it is teetering on the edge of becoming unusable. The moment it crosses the threshold, I will stop reading it. There are many websites that I used to visit (some hosting content by very good writers) but the Javascript jockeys have turned them to mush. The submitter seems to aspire to becoming one of those jockeys. What do I know? I'm just one person - a tiny mote in webserver logs. Whether I am a canary ...
[Way OT - I just used the Post button. What's quick reply?]
One is essentially a toy, designed for writing small pieces of code, and traditionally used and abused by inexperienced programmers.
The other is a scripting language for web browsers.
Most of my career has been bumbling along doing systems programming in c, perl, python, and lately c# writing a lot of console apps/utilities. Unfortunately, everyone now wants web developers and the like, so I find myself in the unenviable position of playing "catch up" and facing the possibility of having to return to a jr. role due to "lack of experience", but I'm not so proud to do these things if it gives me a steady paycheck with room for advancement... I digress...
I'm going through Eloquent Javascript at the moment with a look towards the SImpson "You don't know" series to get a little more in-depth in some of the areas that I see people having issues with.. followed by working with node and angular (basically, the MEAN stack). I don't know where this would put me vs "beginners", but it's the route I'm headed down.. :P
If you were me, you'd be good lookin'. - six string samurai
STFU already Dice. We won't fall for your click bait articles.
If you want an entry level programming job and don't have any experience, you'd had better made something non-trivial on your own time that you can show in an interview and explain the code. If I'm skimming your code and I see you picked a certain data structure or implemented a algorithm when there is more than one way to do it, you should be able to explain your reasoning for coding it the way you did. Also make sure you learn at least the basics of one of the popular frameworks and use it in your demo.
So make a Javascript web app, or something on the server side with a free or low cost hosting account. Make it functional, make it as bug proof as you can, make the code clean and easy to read, and be prepared to show it to a skeptical audience. Think of your interview as an audition and your code as the music you're going to play.
If you can't make something to show, you don't know enough Javascript yet.
It's interesting to me to compare Cogswell's post to Matt Briggs' one on the role of senior developers here. http://mattbriggs.net/blog/201...
It seems to me that Briggs has the right of things; the skills that bring real value to development efforts are less connected with specific language functions or quirks and more associated with understanding how to develop software projects.
You just need to read [JavaScript: The Definitive Guide].
Read it cover to cover a couple times
Why not just read the good parts? Bonus: knowing the good parts of JavaScript may help you tame the fractal that is PHP as well.
Pick a mainstream web page as an example of visually ugly [JavaScript] code! They're everywhere!
That's because mainstream web sites have minified their scripts. This process removes blank space and shortens variable names in order to pass fewer bytes over the wire.
Open the "Reply to This" link in a new tab and you'll get the no-JS version of the comment composition form, which I'm using to enter this very comment.
Slashdot is still quite useable without javascript if you use the Classic discussion system, I find.
Disclaimer: IANAL. This post is, however, legal advice, and creates an attorney-client relationship.
I've been working in JS for years and there is no such thing as some "minimal amount" you need to know; the language and the DOM are just too fucking disorganized and sprawling. The syntax is garbage and constantly evolving, who can remember the differences between innerText and textContent? Then there are the platform specific inconsistencies: event handlers or Ajax requests are maddening without external libraries. Then there is the pseudo-standard tooling for which there is always 2+ competing solutions: NPM and Bower for asset management, CommonJS and AMD and WebPack for packaging, Gulp and Grunt for builds, Closure Compiler and Uglify for minimization/compiling ... it's maddening!
Trying to keep even a fraction of that in your head is impossible. If an employer wanted me to do an intense coding session without Google, I would laugh and just walk out of the interview.
By definition, the answer is "none". An entry level position doesn't need to require experience in a given programming language. It needs to require some familiarity with programming, sure. There is all kinds of stuff you probably should look for in such an individual. Aptitude to learn (from your senior and mid level developers who you picked partly because they are good at sharing knowledge), existing understanding of symbolic logic, common software design concepts like when to use sets instead of lists, the list (pun) goes on.
It is really absurd how snobby software developers are about who joins their ranks. Part of the absurd job req ads in tech aren't just due to hr managers trying to game the h1b system. They are in part there because of clueless software devs who have been moved into management because that is (for god knows what reason) considered a normal career path. Don't respond with "it is better to have no one then to have a bad coder!". You're right, but inexperience with a given language doesn't mean they won't be productive with that language in two weeks to a month. This is the very definition of entry level.
You've not used Microsoft's ASP.NET MVC, have you? you define a view model (class) and add attributes to the properties of that class that define constraints. When HTML is rendered to the client, the html-helpers make use of the attributes to add client-side javascript for validation. When a post to the server brings back the same object, you can check it's valid in your Controller, with ModelState.IsValid - and hence, you do get the same validation on the client-side as well as the server. Better still, is the MVC approach doesn't expect the javascript to even execute on the client-side. It's just nice if it does.
JS alone will get you nowhere. JS is part of todays web ecosystem. And developing for the web today is so hard, people doing it are either inexperienced and naive or - like me - sort-of specialized/focused in some vertical toolstack like LAMP + Wordpress + Bootstrap or something and never really happy with their results.
The problem is, that you have to know HTML5, CSS3, DOM perhaps some jQuery UI or HTML canvas stuff + UX + responsice webdesign + Typography & Layout + a workable set of backend tools (LAMP or such) to do anything usefull with JS. Which makes the whole thing basically impossible for an "entry level" developer to learn.
I suggest you find a team that has a working development pipeline, uses versioning (far to many webshops don't) and puts out good results and learn by doing.
As for JS in general - there's a lot of academic ragging on JS here, but most of it misses the point about JS entirely:
JS alone is like a mix of Python and Ruby made to look like Java (yeah, I know) and doesn't look very modern. However, what makes JS interesting is the fact that as a platform it is available basically anywhere. JS is todays PC of platforms. A toy, not taken seriously by anyone, but available for cheap/free everywhere. Which is why it is going to win in the long run, just like the toy-technology x86 did, eventually squishing every other architecture like a bug on it's way to total world dominance. In the early eighties, people would've laughed you out of the room for predicting that.
I personally wouldn't be suprised if JS eventually replaces PHP, Java and Co. on the serverside and takes over everything but system development on the clientside within the next decade or two. Be it natively or with languages that cross-compile to JS ... We already have a ton of those. Google is heading for bringing the second half of humanity online, and as far as I can tell, they're succeeding. Which in itself does put JS in a future-safe position.
JS, Browsers and the clientside webstack are a mess, but they are truely cross-platform, open and not controlled by a single entity. Very much like x86.
So no matter what you're doing, getting into JS at a professional level one way or the other isn't the worst thing to do.
My 2 cents.
We suffer more in our imagination than in reality. - Seneca