DEV Community

Discussion on: If I were to restart JavaScript again from scratch then I will follow this roadmap.

Collapse
 
alchemist09 profile image
Luke

Sorry to say this, but I think your opinion is not only wrong, but highly outdated and totally misguided. Some of those folks you've listed like lawyers and accountants, have switched careers and ended up as being very competent software developers.

Unless you want to be a language designer, knowing the internal details of how a compiler/interpreter works is not necessary to shipping working software. In fact, most CS graduates don't know that stuff since it's just a single unit in the vast CS curriculum as recommended by ACM, and it's impossible to cover it in its finest details together with other course units within a 4-year period. Language designers are more of researchers, than active day-to-day software engineers. So they are more likely to submit their recommendations to standardization bodies such as ECMA-262 that specifies the standards for ECMA-compliant scripting languages such as JavaScript. This is normally a long process, and developers of applications will most likely not have that time to wait before a new standard comes out before they can ship working software. Instead, the best bet of software engineers is language documentation, and not SPECIFICATION. The ECMA-262 is formal document for implementers of ECMAScript-compliant JavaScript engines. But it's the Mozilla Developer Network's(MDN) Web Docs that document how to use the various features of JavaScript. So software engineers use MDN docs to build applications, not the formal ECMA-262 docs.

In short, a programming language is a TOOL. And software engineering is about using that tool to build a working product. So Ankur Tyagi's advice is right. Someone learning JavaScript will benefit from his outline of what to learn, rather than going to ECMA-262 docs and try coming up with a new JavaScript engine, which we're not sure who will use if the existing browser vendors refuse to switch their JavaScript engines.

Software engineering is a SKILL that's best acquired via internship at software engineering firms, or firms with active product development divisions. Those firms higher devs to BUILD software, not tinker with interpreters/compilers, unless that's their core line of business.