Node.js training
Last updated on November 12, 2024 at 5:56 PM
First released in 2009, Node.js has completely revolutionized the perception of JavaScript and server-side software infrastructures. Being extremely performant, nice to use, and blessed with a thriving ecosystem and vigorous community, Node.js now boasts numerous top corporate users and large-scale actors along with impressive performance and lots of success stories.
Check out our new edition, significantly overhauled with a focus on producing modern, performant and secure APIs! As always with Delicious Insights, our sessions massively resort to hands-on practice.
- ES2017+ (incl. ES0215 modules)
- Heart of Node (event loop, streams…)
- npm, modules and scripts
- MongoDB & Mongoose
- Test-rich development
- Modern APIs (REST + GraphQL)
- Strong security topics
- In-house and cloud deployment
Goodbye (and thank you for all the fish)
Delicious Insights is going out of business. A judicial liquidation procedure started on July 25, 2024 for about 6 months. After having held firm against ever-increasing headwinds these past 5 years, it was time to acknowledge the situation. Maxime and Christophe are now living new adventures… Our free online educational material remains available (on this site, on YouTube, and so on), but we're not doing trainings anymore.
The world of professional dev training in France has changed a lot in recent years, and although you were a great many to express your sadness — sometimes your consternation – at seeing us go, we just couldn't stay afloat any longer whilst remaining tree to our values and ways.
Thank you all for calling on us since 2011, talking about us, trusting us, learning with us. Keep learning, keep growing, stay curious and committed to doing quality work. Take care.
Goals
The Node.js training gives you all the keys to best leverage the power of Node.js by professionalizing and industrializing your JavaScript development practices, with a specific focus on the production of high-quality, latest-generation APIs. It empowers trainees to:
- know how to install and upgrade Node.js and npm,
- search for, install and upgrade Node modules,
- work efficiently with Node thanks to a tooling that enables rapid development cycles,
- elegantly manipulate complex asynchronous code, notably with the
async
module and promises, - know and leverage core modules built in Node,
- understand and master pivotal aspects of Node such as events and streams,
- structure their code using Node best practices, both for the server and client sides,
- automatically test their code, both with unit and integration tests,
- produce modern APIs, both as REST and GraphQL
- Secure their code by following state-of-the-art practices
As you can see, it’s not just a “simple” technical training, but truly a complete set of know-hows that not only gives you the keys to immediate productivity, but also equips you with the means to write maintainable, high-quality code that’s built to last.
Curriculum
Getting your bearings
Hi Node!
- Installation and upgrade methods
- Node, a history in 5 minutes
- My first program
- Running a JS file
- A richer example
- Shebangs and “executable” files
Node’s module system
- Configurable modules
- Deferred initialization
- Built-in modules
- Module loaders and alternative syntaxes
- Module paths and the nitty-gritty about
require
Debugging
- With Visual Studio Code
- With Google Chrome
- A few words on WebStorm et al.
- Debugging when using nodemon
Testing
- All about automated tests: unit tests, integration tests…
- A rich test harness with Jest
- Rich assertions with Chai
- Mocking methods, objects and modules
npm
- Module packaging
- Searching for modules
- Local installation vs. global installation
- Production vs. development dependencies
- The end of version conflicts
package.json
details
Some core modules
console
process
andos
fs
andpath
util
- Global objects
- Quick overview of the other core modules
Events
- The
events
module EventEmitter
- Mixing event handling in existing code
Critical skills
Asynchronous programming
- Callbacks
- “Callback Hell” and “Pyramid of Doom”
- Mitigating the issue using proper function declarations
- Node-style callbacks
- Complex callback combos with
async.js
- Promises: principles, examples and native support
- “Promisified” classic async APIs
async
/await
Streams and buffers
- Stream types
- Stream modes and mode switching
- Buffers
- Text encodings
- Pipelining
- Stream all the things!
Key security best practices
- Updating Node itself; regular vs. LTS releases
- Deprecating risky APIs
npm audit
,npm audit fix
- Node Security Project
- Node Certified Modules
- Automatic vulnerability auditing on GitHub
- Install scripts
- Managing credentials and secrets
- Choosing your crypto algorithms wisely
- General data storage principles
- Third-party attack foiling services
Modern data storage with MongoDB
- About NoSQL
- Intro to MongoDB
- A few words on CouchDB, ElasticSearch, Firebase…
- MongoDB’s native API
- Getting comfier with Mongoose
- A quick tour of GUIs (e.g. dbKoda, Robo 3T, Compass)
Developing a REST API
- REST principles
- Hypermedia
- Versions
- Content variation
- Testing a REST API
Developing a GraphQL API
- A whirlwind tour of GraphQL
- Designing a useful schema
- Auditing performance
- Testing a GraphQL API
Securing an API
- Request / Query validation
- Rate limiting: REST and GraphQL variations
- Authentication: tokens or sessions?
- About JWT…
- Authorization
- 2FA / MFA
- CORS
Deploying an API server
- Manually on infrastructure
- On PaaS: Heroku, Azure, GCP, Now
As a file?
Testimonials
-
Amazing training. The trainer’s ability to track down the origin of a bug near-instantly is quite mind-blowing! Every course item is taught with brio. […] Writing a whole app from scratch, just like the 360° JS training course, feels fantastic.
-
An excellent, crystal-clear, precise and most useful training course. The pace is quite strong, so you must hang on a bit as we go through a large number of concepts, but the trainer is really good at imparting his knowledge and efficiently teaching all this. The cost/quality ratio is a real steal, even as a freelancer (with no financial incentive or tax break of any kind). A truly pleasant experience, with lots of laughs, much food for thought and great lunches! You come out of this confident and reassured, eager to put all your newfound skills intro practice. I know this sounds very much like a marketing pitch, but I can’t recommend this training enough 😊
-
This training is truly great and ahead of the competition. The trainer has outstanding teaching skills, and the pace is perfect. I recommended this class a lot around me already.
-
You don’t just walk out of this with a better understanding of Node.js, but also a clearer view of the tooling and real-world production use around it. Factor in the great location (Paris 11st), a lovely venue and an excellent trainer, and you’ll have the perfect blend for a content-rich training you won’t regret.
-
Boosted my learning curve by taking me to many places I hadn’t ventured in yet… Node.js runs impeccably… This is just the beginning of the journey… The ecosystem is amazing… All my expectations were met… Node.js is definitely the next big technological leap!
-
A very promising tech… Great technical quality… Fantastic modules… Very beneficial to any web project… All the pieces finally click into place… The training is very thorough and made sense of everything… Discovering Node is truly an energy boost to me as a developer…
-
An efficient and relevant Node.js training, I came out feeling I had made a leap towards tomorrow’s technologies.
-
I heartily recommend this training. But don’t go there unprepared: you’ll get a truckload of knowledge. Great content, outstanding trainer, an an environment honed for efficient learning.
Trainer
Christophe Porteneuve
Christophe has been doing professional web work since 1995. He co-created Europe’s first production JSP portal in 1999, moving to J2EE before going with Ruby, Rails and finally Node.js.
A best-selling author of“Bien développer pour le Web 2.0” (“Best practices for modern web development”) at Eyrolles, he also wrote the reference book “Prototype and script.aculo.us” at Pragmatic Programmers, articles in various online magazines (most notably the widely-acclaimed A List Apart), and speaks at a number of conferences big and small.
In France, Christophe enjoys a solid reputation of expertise in the areas of front-end web dev (most notably JavaScript), Node.js, Git and Rails.
Christophe is the founder and CTO of Delicious Insights.
Want a bespoke training?
Need this training in-house, using our proven curriculum or going full bespoke? Fear not: we got this!
All our trainings are available in-house and can be tailored to your needs (subject to trainer’s approval). The pricing on this page for in-house training assumes no curriculum change.
When going bespoke, a customization fee is to be expected, which will naturally vary depending on just how much tailoring your needs would require. Once we hash this out together, our trainers will estimate the workload for it so we can issue a tight quote for you.
Choose your adventure
- On location at your office or third-party venues, anywhere in the world
- Remotely via Zoom or Teams
- Hybrid, depending on your trainee’s on-location or remote requirements or preferences
A wealth of benefits
- Questions during an in-house training obviously focus on your own business needs
- Our trainer can often do some quick, free consulting during questions, breaks and informal discussions
- When at the office, your teams *use their regular work environment and can access their actual projects (We can sign an NDA for looking at your codebases when fielding questions, if need be).
- It’s usually a lot cheaper to pay for just the trainer’s travel expenses than for all your trainees’.
- Even for remote trainings, when your trainee count gets close to our capacity thresholds (usually 5 and 10 persons), the core teaching cost is usually cheaper than having them attend a pre-scheduled, multi-client session.
Sounds good?
We agree! 😊 Use the link below to send a qualified query our way, we’ll get back in touch in no time.
Usually, the training fee for an in-house session of this course is a flat fee starting at €10,000 (which covers up to 5 trainees).
Intended audience
This course targets developers. A decent knowledge of JavaScript is mandatory; anyone already using JavaScript on a daily basis, ideally beyond just jQuery-based stuff, is likely comfortable enough.
However, trainees might want to “study up” ahead of time to make learning all of this easier once attending the training proper. Future trainees will likely benefit from browsing this list of quality contents Christophe compiled.
This preparation is also quite desirable for back-end developers who have never worked with JavaScript.
Overall, you should:
- Having already used at least one back-end technology in production (e.g. PHP, Python, Java, .NET, Node.js)
- Know the fundamentals of JavaScript: variables, data types, loops, functions, the language’s standard library at least as of ES3 (1999).
Pre-requisites
There is no pre-requisite for this training course (as in, verifiably acquired knowledge, through degrees, certifications, tests, etc.).
Logistics
- Every session is held synchronously, “live,” including remote sessions. This is not about pre-recorded videos.
- We are currently not scheduling new multi-client in-room sessions before, at the earliest, April 1st, 2022.
- Comprehensive course material is provided, acting as a common thread. It usually includes numerous slides and starter codebases or repositories for every exercise and lab.
- Trainees can ask questions at any time.
- Sessions always alternate between theory and hands-on labs, in short intervals (5 minutes to 1 hour).
- Hands-on periods rely on real-world use-cases (which can be bootstrapped through starter codebases, Git repositories or online assignment labs).
- Hands-on periods may be completed individually or as sub-groups that may vary from one period to the next, to foster pair programming and collaboration.
- Remote sessions use a Zoom recurring meeting, accessible through a provided link using both the installed app and the pure-web, no-install client. They mostly use features such as video thumbnails, screensharing, chat, breakout rooms and possibly quizzes, annotations and whiteboards.
Deliverables & assessments
- Every session half-day requires attendance signing (paper sheet or digital tool). For remote sessions, should a trainee fail to submit their entire attendance sheet in due time, Zoom participant logs will be considered authoritative.
- At the beginning of every day’s first period, we run a “debrief”: during about half an hour, we help collectively resurface skills and knowledge first tackled on the previous day. This helps put everyone back “in the zone,”, consolidate learning and boost group dynamics.
- Throughout the course, assessment of skill acquisition is done through the successful completion of hands-on labs (exercises, mini-projects, labs, use cases, etc.). Interactive quizzes may supplement this. The trainer remains available for any question during hands-on periods.
- Should a trainee exhibit significant difficulty, the trainer may opt to provide one-to-one mentoring for a while using the trainee’s computer as a working base. This also applies to remote sessions using Zoom’s dedicated features (e.g. one-to-one / individual assistance).
- When the session ends, every trainee may request a completion certificate (or at least attendance certificate) and, for remote sessions financed by a French institutional entity, we issue a standardized completion certificate in order for financing to be able to proceed smoothly.
- Once the training is over, every trainee receives a link to an online “hot” feedback survey, so they can express, among other things, whether they feel they achieved the stated goals of the training (or believe these will be achieved in the short term).
During the session, trainees receive at the start of every period access to:
- all the related slides and supporting material in a web-based format, so they can easily follow along,
- the starter repository for the common-theme app developed throughout the course.
Once the training is done, they also get:
- an extremely content-rich debrief e-mail,
- a reference archive with all related slides, finalized codebase with full documentation and tests, and various complementary resources.
Acquired skills are assessed throughout the session, looking for successful completion of the development steps of the common-theme app and the successful execution of automated tests (both trainee-written and provided ones).
Hardware & software requirements
- Use a sufficiently powerful laptop, properly set up (in particular, having followed whatever training-specific setup guide might have been linked to in the summons e-mail or training’s web page).
- This laptop must be equipped with a webcam, microphone and audio output (preferrably using a headset or earphones, to avoid feedback).
- Use an internet access with a minimal bandwidth of 1Mbps both ways, with an ideal minimum of 5Mbps (test your bandwidth here)
- Be able to run Zoom, either as a regularly installed software, or through their 100% web-based client. You can verify your installed client works fine using this test.
- Node.js courses require some prior installation on your computer: instructions can be found here.
Registration & deadlines
Regardless of the modalities you’re looking for (single- or multi-client, in-room or remote), your initial request (for quotation or contract) should be made online from the training’s web page. You can find further up contract request links for every available multi-client session, a proposal request button for a single-client session, and for any other enquiry can use the contact button further below. Please favor our online forms as they speed up processing by avoiding numerous e-mail back-and-forths in order for us to get all your necessary information.
For multi-client, fixed-date sessions, we reply to quotation or contract requests within at most 2 business days (and usually within minutes). For single-client, custom sessions, we usually get back to you within 3 business days to fine-tune your requirements and create a bespoke offer.
The e-mails we send to provide quotations or contracts, as well as our online training pages, provide a link to an online survey prospective trainees can use for fit-for-needs assessment; this information should get to us ASAP, ideally before contract signing, so we can verify our training offer is a good match for the audience.
Summons are sent by e-mail no later than 7 days prior to the session, at which time a potential cancellation decision (usually because two few trainees registered) is made. If the session is guaranteed ahead of that deadline, we can send your summons earlier at your request.
For multi-client sessions, you can register online (requesting a contract and sending it back signed by e-mail) until the day before the session starts, provided the required amount of seats remain free. If you finalize your registration after the usual summons-sending deadline, your summons are sent immediately by e-mail.
However, when French nationals contractualize with us in their personal capacity, French law mandates a withdrawal period (10 calendar days for in-room sessions, 14 calendar days for online sessions). In order to allow such clients to register later than this, they are provided an opt-in choice in their contract request online form to waive their withdrawal rights if the schedule requires it.
For French client entities applying for third-party financing (e.g. OPCOs, Pôle Emploi, Regions, EU), it is imperative that financing agreements be sent to Delicious Insights no later than the last day of the training session. Should financing be denied or only partially provisioned, the client is liable for payment of the balance of the fee.
You can find more information on the details of registration, cancelling and getting refunds in our Terms of Sale.
Disabilities & special needs
The French law dated September 5, 2018 for “freedom to choose one’s professional future” aims to facilitate accessing and retaining a job for people with disabilities or special needs.
Delicious Insights is very keen to help everyone, regardless of their particulars, move forward professionally.
We can often adapt the modalities of our trainings to fit your needs: let’s just review your situation together.
Do feel free to get in touch with our point person for Disabilities, Christophe Porteneuve, by e-mail or phone.
Do feel free to get in touch with our point person for Disabilities, Christophe Porteneuve, by e-mail at handicap@delicious-insights.com or phone at +33 662 059 656.
Financing your training
If you work at a French company, there is a wide array of options for helping you finance professional training. We’ll assume you then speak French (or the relevant person at your company does), so you should direct them to the French version of this page (use the language link at the end of the top navigation bar) our our French page about financing so they get all the information they need.
Otherwise, depending on your company’s location, there might be other financing helps available. Your HR department likely knows about it.
At any rate, a training can be handled like any other service: we invoice your company directly, and you pay us by bank wire within 30 calendar days (“30net” terms).
Need an in-house / custom training?
If you’d like to get a version of this tailored to your needs, in our office or videoconference setup, remotely or anywhere in the world, let us know what your needs are.
Usually, the training fee for an in-house session of this course is a flat fee starting at €10,000 (which covers up to 5 trainees).