The growth path of a great JavaScript programmer
I think back to when I was still young, my interests and hobbies spanned various unrelated fields. I love mathematics as much as I love history. My goal is to be like the multi-talented greats of the Renaissance - excelling in multiple areas. It was a tall order—suddenly I found myself in danger of “jack of all trades and sparse of none.”
I began to consider delving into certain fields, so that at least I could become a person who is "proficient in certain fields". So what can I do to specialize in one area while still learning a lot about software development?
This article mainly outlines the techniques and resources I use to become a good JavaScript developer based on my 5 years of work experience.
Most web developers today face a common problem: they have to stay ahead of others in many different areas - from databases, to back-end architecture, to front-end user interfaces, to using good CSS knowledge to correct the user interface.
Read books
First and most important, you have to put in the effort to stand out. Although you can also pick up bits and pieces unintentionally, for example, by reading a few blog posts from time to time, and honestly, since the initial investment of time and energy required by this method is much lower, it's simpler. Such a learning model will obviously take more time than your dedicated and deliberate learning process. The solution to this dilemma is simple: read books.
Books are the ladder of human progress. Words are the tools by which we pass knowledge from generation to generation in condensed form. One of the problems with becoming a web technologist is that you have to learn when to step away from the web itself. The Internet is inherently confusing and distracting, so the first tip I would give is to read books on the subject.
For JavaScript, you can start with the following books: "JavaScript the Good Parts" is like the "Bible" in JavaScript. Although this book is a bit old, it is still the best place to start. JavaScript: the Definitive Guide is also a must-have, although you may think of it as a reference book. "Secrets of the JavaScript Ninja" by jQuery founder John Resig is also worthy of attention. In addition, you can also read e-books, which is very convenient. Many online e-books are free. In addition, although JavaScript Guide is not a book, it is deeply trusted and favored by Mozilla developers.
Learning, using and reading script libraries
The next most important step is to understand the script library. Books teach you how to read the language, and libraries teach you how to apply it. There are two important things you need to do with script libraries: use them and read their source code.
For the use of libraries, you need to know the following key libraries: jQuery, Backbone, underscore, and one of React, Angular, and Ember. This doesn't mean you have to use these libraries, but any decent JavaScript developer should have at least some experience (good or bad) with these libraries.
The second most important thing to do to improve your JavaScript skills is to read the source code of these libraries. I highly recommend reading the source code of Backbone and underscore as they are very beautifully written. Reading and understanding underscore can improve your functional programming skills. Another library worth reading the source code and recommended to me by other developers is mootols (I personally don't use mootools and haven't read its source code.)
The rest of the libraries like React and Ember, etc., may be difficult to understand, but well worth it. You should also browse the source code of other libraries to see how they structure the code base and try to explore some new patterns. Other well-known libraries whose source code can be used and read include D3, highcharts, and moment.js.
Practice and Ask Yourself Questions
The key step to becoming a good JavaScript developer is to practice, lots and lots of practice. Ideally, the focus of the exercise is not on the DOM but on the language, so be sure to have a testing tool that can run node.js. Do various trivial and extensive node.js exercises. Study coding techniques and experience different ways of using JavaScript: closures, prototypes, extended arrays (map, filter), etc. While doing the exercises, start to form the basic ideas of JavaScript in your mind.
A friend of mine, Armagan, is an excellent JavaScriptprogrammer and is also a teacher who uses "Pro JavaScript Design Patterns" for lectures , so this book is worth reading.
While learning, try to answer some questions, such as: How does prototype inheritance work? What is the definition of closure? How does the keyword meaning change? How to use apply/bind/map/filter/call? Collect a series of common source points that JavaScript developers need to face and try to explain them in your own words. Explaining these concepts to another person in written or oral form can greatly improve your skills. As you practice, try to think about “what if that were the case?” scenarios. For example, "If I use bind twice, what does "this" mean? How does jQuery ensure that this keyword points to the jQuery object instead of the global object? How does this library complete certain functions?" etc., these are Common questions you should always ask yourself.
Learning Standards
The next thing you need to know is the EcmaScript standard. Study the latest copy of the EcmaScript standard. Also, try to learn about upcoming features in JavaScript, such as ES6 and ES7. Recently, new features such as promises, modules, generators, and comprehensions have appeared. Read the standards carefully, and you can also read professional books, such as "Understanding EcmaScript 6" by Nicholas Zakas or "Exploring JS" by Dr. Axel Rauschmayer, which may be helpful. . Learning standards from primary sources and exploring new languages is the way to go on the path to specialization.
Use network resources
I mentioned before that it is dangerous to use the network to understand the network, but what I want to propose now is that we can also use the network to obtain the best resources. Hacker News is a good source, but continuous tracking usually takes more time because the proportion of truly useful information is very low. Instead, just aim for a weekly digest like JavaScript weekly. Over time, you will naturally understand which libraries or technologies become more and more attractive. You can find influential JavaScript developers on Twitter. Other online resources include blogs such as Toptal Blogs, Rebecca Murphey’s blog, and Nicholas Zakas’ blog.
Another very important online resource is video conferencing and educational videos. When it comes to conferences, the quality of the JSConf series is very high. As for educational videos, I highly recommend Pluralsight because of their army of developers with experience writing high-quality courses.
In short
Reading books contains the essence of information.
Learn about basic libraries such as jQuery, underscore, and Backbone, and read the source code.
Exercise, try to explain common JavaScript concepts, such as inheritance, in your own words. Give presentations and lectures on the above topics.
Read through the new version of the standard, using the latest added language.
Take advantage of web resources, view abstracts and blogs, as well as video conferencing and educational videos.
Conclusion
Repeating the above steps and participating in a large number of projects will help you quickly improve your JavaScript skills. But always keep in mind that only by paying will you be rewarded and will you be expected to become a professional. I consider myself a good JavaScript programmer, but I still have a long way to go before I can become a professional, and I still need to continue to learn and master knowledge and technology.
Finally, I wish you a happy study and hope to encourage you together!
The above is the detailed content of The path to becoming a great JavaScript programmer. For more information, please follow other related articles on the PHP Chinese website!

Understanding how JavaScript engine works internally is important to developers because it helps write more efficient code and understand performance bottlenecks and optimization strategies. 1) The engine's workflow includes three stages: parsing, compiling and execution; 2) During the execution process, the engine will perform dynamic optimization, such as inline cache and hidden classes; 3) Best practices include avoiding global variables, optimizing loops, using const and lets, and avoiding excessive use of closures.

Python is more suitable for beginners, with a smooth learning curve and concise syntax; JavaScript is suitable for front-end development, with a steep learning curve and flexible syntax. 1. Python syntax is intuitive and suitable for data science and back-end development. 2. JavaScript is flexible and widely used in front-end and server-side programming.

Python and JavaScript have their own advantages and disadvantages in terms of community, libraries and resources. 1) The Python community is friendly and suitable for beginners, but the front-end development resources are not as rich as JavaScript. 2) Python is powerful in data science and machine learning libraries, while JavaScript is better in front-end development libraries and frameworks. 3) Both have rich learning resources, but Python is suitable for starting with official documents, while JavaScript is better with MDNWebDocs. The choice should be based on project needs and personal interests.

The shift from C/C to JavaScript requires adapting to dynamic typing, garbage collection and asynchronous programming. 1) C/C is a statically typed language that requires manual memory management, while JavaScript is dynamically typed and garbage collection is automatically processed. 2) C/C needs to be compiled into machine code, while JavaScript is an interpreted language. 3) JavaScript introduces concepts such as closures, prototype chains and Promise, which enhances flexibility and asynchronous programming capabilities.

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

JavaScript's applications in the real world include server-side programming, mobile application development and Internet of Things control: 1. Server-side programming is realized through Node.js, suitable for high concurrent request processing. 2. Mobile application development is carried out through ReactNative and supports cross-platform deployment. 3. Used for IoT device control through Johnny-Five library, suitable for hardware interaction.

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

MinGW - Minimalist GNU for Windows
This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

EditPlus Chinese cracked version
Small size, syntax highlighting, does not support code prompt function

SublimeText3 Chinese version
Chinese version, very easy to use

SublimeText3 Linux new version
SublimeText3 Linux latest version

Zend Studio 13.0.1
Powerful PHP integrated development environment