Node.js Curriculum Launched!

By Evan Charles

February 1, 2022

At Launch Academy, we teach in-demand software engineering skills that provide a sound foundation of knowledge and set our graduates apart during job interviews. A key aspect of our curriculum development process includes input from hiring managers at companies who are seeking to hire engineers for their teams in the next 3-6 months.   Armed with this information, we make significant quarterly updates to ensure our graduates are walking into job interviews with the skills being sought by companies. The result is more confident candidates who have greater  success during the job application and interview process.   In addition to serving current students, Launch Academy alumni also receive free access to all our quarterly curriculum updates through our Lifetime Access to Alumni Support, (dating back to our first cohort from 2013!). This ongoing access ensures that our alumni working in the field as software engineers can learn new skills to continue advancing in their careers.  

 

Introducing our Full-Stack JavaScript curriculum!

We’re very excited to announce the release of our NodeJS curriculum! In recent years, we have seen the prevalence of full-stack JavaScript applications increase as the tools and frameworks available for backend JavaScript development have grown stronger. Thanks in large part to the feedback of our alumni and our hiring partners, we’ve recognized the increase in demand for full-stack Javascript developers.  While we still love our Ruby (and will still be offering our React/Rails program moving forward!), we’re excited to be able to offer an additional product offering that is focused fully on JavaScript, implementing Express on the backend with React in the frontend! Read on for more information on the new curriculum, including an overview of the stack, a syllabus explaining the specific tools covered, and information on how to sign up as a new student, or access the curriculum updates for free as an alumnus.  

Stack Overview

The NodeJS curriculum teaches a PERN stack: Postgres, Express, React, and Node. Over the course of the 18 weeks of the program, students begin by learning JavaScript basics, and how to build webpages using HTML, CSS, and JavaScript. With a focus on object-oriented programming, we pay special attention to JavaScript data structures, objects, and classes, as well as testing (and test-driving) development using Jest.  Students advance to using Express to build servers for their web applications, first using Handlebars for the templating of their webpages, before moving on to learn the React framework! Finally, in the last two weeks of the curriculum, students learn how to interact with their Postgres databases within their Express applications using Knex (for migrations) and Objection (for their ORM). They get comfortable building out API endpoints for their React frontends to access via the Fetch API, and learn to test their websites using Cypress for acceptance testing.  

The Syllabus

The week-to-week structure of the NodeJS curriculum is very similar to our tried-and-true Ruby on Rails curriculum, but allows us to dive more deeply into JavaScript and its best practices! A brief overview of the weekly topics is shown below.

Phase 1: 8-Weeks Part-Time Virtual Flex

Week 1: Using the Command Line, Values, Variables, and User Input/Output  Here, we get introduced to different data types, how to use `prompt`, `alert`, and `console.log`, how to store values in variables, and different ways to work with and formulate strings. Week 2: Flow Control, Looping, and Debugger  We learn conditional flow control, do/while loops, how to validate user input, and how to effectively use a debugger. Week 3: Functions, Looping, and Arrays   We introduce arrays as a data structure, how to iterate and different looping methods, and how to declare, define, and invoke functions. Week 4: Objects   We learn about objects as a data structure, combining state and behavior via properties and methods, beginner concepts of object-oriented programming, and how to build multi-file projects in Node. Week 5: Classes   We learn how to build classes in JavaScript, static vs. instance methods, and object-oriented programming best practices. Week 6: SQL  In our first introduction to databases, we learn how to write SQL code to interact with data in a database, and cover how to relate data with joins. Week 7: HTML, CSS, and the DOM   In our first foray into building a real webpage, we learn how to write HTML documents, style them using CSS, and interact with them using JavaScript. Week 8: Problem Solving with JavaScript   We review various concepts throughout the Ignition material, and learn how to write and run tests for our code.  

Phase 2: 10-Weeks Full-Time In Person or Online

Week 1: Advanced Object-Oriented Programming   Students dive back into building JavaScript classes, building larger-scale multi-file applications that are run via Node. We spend additional time focusing on key best practices and principles such as encapsulation, the Single Responsibility Principle, object composition, and clear separation of concerns. Students also learn the basics of unit testing with Facebook’s popular Jest testing framework. We finish off the week by learning about the basics of prototypical inheritance in JavaScript, and the difference between static and instance methods. Week 2: HTTP and Express   We build their first web servers using the Express framework! We learn about the HTTP request/response cycle, how to implement an MVC (Model-View-Controller) pattern within our Express applications, and how to set up routing in our apps. We generate dynamic web pages using Handlebars as our templating language, and begin to use Cypress to acceptance test our apps. We also start to look at the Fetch API and how to handle asynchronous code with async/await. Week 3: Intro to React   We dive into the React framework, learning about how to build reusable components and hand props between components, how to handle state with the `useState` hook, and how to conditionally render certain information to the page. Week 4: Advanced React   With a deeper dive into React, we learn how to build forms in React, how to validate user input, how to load data with the `useEffect` hook, and how to implement React Router to set up streamlined navigation around the site without page reloads. We get a brief introduction to interacting with third-party APIs to retrieve and use open source data from the web. Students learn about how to integrate our backend Express JS framework and front-end React framework together using the Fetch API in their React code. Week 5: Migrations, Models, and Data Validation   Perhaps one of the most exciting updates is that students get to work with the Objection ORM, a fast and flexible query builder built over Knex.js. Using Knex for our migrations and Objection as the Object-Relational Mapping for our models, we begin to connect a database to our Express backend. Objection helps us leverage the full power of SQL without the need for SQL statements, allowing us a way to fetch, insert, update and delete objects with Objection models. We validate data in Objection with built-in model-level validation courtesy of `jsonSchema`, set up simple API endpoints for our React frontend to access, and learn how to use Cypress to test our full-stack “monolith” applications. Week 6: Database Associations and Serializers   We review how to build joins in our database tables, and learn about how to set up associations in our Objection models. We also learn how to serialize our data in order to build API endpoints for our React frontend to utilize. Finally, students round out their experience with lessons on sessions, middlewares, user authentication via Passport.js and custom data serialization. Weeks 7-8: Small Group Projects   In small groups of 4-5, students build out a full-stack “monolith” app, while learning about Git workflow and how to work effectively on a software team.  Student learn both technical and soft skills during these two weeks and gain valuable experience which will be helpful in job interviews following graduation from the program. Weeks 9-10: Breakable Toys / Capstone Projects   With a focus on portfolio and career prep, students build a from-scratch “monolith” application in the PERN stack!   If you’re a prospective student looking to join us for an upcoming cohort, start your application  today!