The node. JS Developer Learning Path

Source: Internet
Author: User

As with all emerging and rapidly adopted technical frameworks, the first challenge is to add efficient talent to your technical team. Before we get a quick conclusion about turning Javascript into a node. js factory, let's take a look at the core issues of node and the product development environment. In short, the core issue is:

node. JS has event-based programming style

The Web tends to be smaller with a responder/message-based architecture

Finally, most of the problems we're trying to solve still need to be supported through an extensible backend architecture rather than a UI.

Let's analyze these issues one by one and uncover the challenges they pose. That leads to the people we need to recruit.

Event-based programming

Compared to the traditional threading model, the main difference between node. JS Development and the traditional model is around the event model. In relation to the traditional threading model, the framework manages the control flow in the event-based program design. In the traditional model, the developer must carefully handle the flow of the model in the control flow, actively write the control flow and return the code, to fully understand how the task after the completion of the following process should continue. The event model with full control of the loop returns to where it will go, and you can only cross your fingers and pray for good luck. The challenge, then, lies in how you organize your logic, from the process model to the understanding of the input and response models of the application system. That's the point.

A good candidate can discuss the traditional problem through the way of events. Can they know which type of application is more appropriate for node? For example, an I/O is tied to CPU-intensive applications. The famous chat server is a good example. Ask him what kind of complex changes need to use this pattern to put together the code. A good candidate should be able to explain the concurrency model, the difference between event loops and multithreading, and how they affect extensibility.

Development comes from testing, both hands in hand. JavaScript is a weak type of dynamic language, from the world of java/c#, you suddenly lose your security (your "compiler"). In addition, the experience of writing code-handling events in a model to test drive development (TDD) is really getting useful. In my opinion, TDD is more suitable for event-based programming. In fact, the best developers have already done this, even with a single line of code before testing. More crucially, you want to make sure that the developers you want to hire have the idea of using test-driven code design, not just thinking about it. The following will be introduced.

In this way, we have two key skill points to look for candidates, namely: coding capabilities and test-driven design! This is not much different from what I said before, except for some subtle differences!

Paradigm Shift

You may have noticed the paradigm shift of the Web page: We are fast moving from a traditional page load to a smaller sensor-like message, quickly accessing small pieces of real-time information. You will also notice that through the Open API we go to sensor connections, device connections, and mobile access. The case of node. JS, which is also open source, consists of a small module API that provides access to rich information. Coupled with the growing ecology of growing modules, I observed its astonishing growth---about 30% since I joined Strongloop for about 18 months. So any node. JS Developer you hire should be good at working with a development model that accesses a small portion of real-time information.

In general, I believe this means developers who are good at interactive development, quickly code test water, write small reusable code snippets, and follow API-based development.

The experience with key modules like Express, Connet and Async is definitely a plus. GitHub experience, open source contributions have to be heightened points. In fact, the candidate works with GitHub to peer code, focusing on node. JS's active community in Google and StackOverflow, as important as his ability to write code. With many modules of the module ecosystem, finding existing modules, fixing other people's modules or patching others ' modules is a key skill. I want to check the trend and quality of the candidate GitHub contributions. Are they good members of the community? Did they fix the code? Do they implement clean and healthy features branch, PR, submit?

If you do find someone who actively contributes a node core, well, hand it over to a nearby office.

Security, backend architecture, training

With code open source, node. JS is also based on JavaScript, which can lead to security implications for your app. Developers should be familiar with server-side injection and know how to avoid these risks by coding. node. js is single-threaded, so it is easy to be compromised by a denial-of-service attack. One that can take these malicious scenarios into account and write code that will withstand good testing can be very valuable in your node. JS Group.

node. JS is relatively new compared to other programming languages, so finding an ideal employee can be a challenge. In some local small gatherings, you may find some hackers, or you may find some experienced Java engineers who want to develop to node. js. Or why not consider sending some of your fellow Java engineers with extensive experience in large back-end architectures, handling large-scale problems, and fault tolerance to a good training session? Are you ready to start? Strongloop provides training and certification to individuals or organizations.

Related Courses recommended:



Developing Web Instant chat system based on Node.js+express.js+jade+mongodb

Http://www.ibeifeng.com/goods-462.html

Original: http://www.ibeifeng.com/tech-69524.html

The node. JS Developer Learning Path

Contact Us

The content source of this page is from Internet, which doesn't represent Alibaba Cloud's opinion; products and services mentioned on that page don't have any relationship with Alibaba Cloud. If the content of the page makes you feel confusing, please write us an email, we will handle the problem within 5 days after receiving your email.

If you find any instances of plagiarism from the community, please send an email to: info-contact@alibabacloud.com and provide relevant evidence. A staff member will contact you within 5 working days.

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.