Bootcamp
Search…
📅
Course Schedule
0: Language and Tooling Teaching Guide
1: Frontend Basics Teaching Guide
2: Backend Basics Teaching Guide
3: Backend Applications Teaching Guide
4: Backend Structure Teaching Guide
5: Full-Stack Applications Teaching Guide
6: Frontend Infrastructure Teaching Guide
7: React Teaching Guide
8: Advanced React Teaching Guide
9: Advanced Topics Teaching Guide
🧮
Algorithms Teaching Guide
💼
Interview Prep Teaching Guide
☺
User Experience Teaching Guide
Overview

Overview

Welcome to Software Engineering Bootcamp!

Software Engineering Bootcamp is Rocket Academy's flagship career conversion course. It builds on material taught in Coding Basics. On successful completion of Bootcamp, students can expect to be job-ready full-stack software engineers.

Current Batch Schedules

  1. 1.
    ​Full Time Batch 4​
  2. 2.
    ​Full Time Batch 5​
  3. 3.
    ​Full Time Batch 6​
  4. 4.
    ​Part Time Batch 1​
  5. 5.
    ​Part Time Batch 2​

Learning Objectives

What makes a good software engineer? Rocket aims to teach not just technical skills but mold students into well-rounded members of any high-level engineering team. This requires practicing many other things besides specific technical knowledge.
Our learning outcomes were informed by top-level industry standards for what an excellent engineer does, including rubrics implemented by companies like Medium: https://medium.engineering/engineering-interviews-grading-rubric-8b409bec021f​

Hard Technical

Gain proficiency in specific technologies that employers are looking for
  • Javascript ES5 & Browser DOM (Document Object Model)
  • CSS & HTML
  • ES6
  • Nodejs & System-level runtime-environments
  • Nodejs and ESModules, code modularity with NPM
  • HTTP & HTTP file servers
  • Express.js and data-backed RESTful web applications
  • SQL and ORM (Object Relational Mapping) libraries (Sequelize)
  • MVC architecture
  • AJAX
  • Webpack
  • React.js
  • React data-handling and Create React App package

Soft Technical

Have a deeper understanding of the act of software development
Expertise in specific technologies is only one aspect of being able to write high-quality software. Topics such as system design and architecture, basic CS knowledge and code fluency are extremely important for employers to distinguish between candidates.
  • Algorithms
  • Code format best practices
  • Database design
  • HTTP / Internet fundamentals
  • Runtime environment fundamentals w/ Node.js
  • Javascript runtime fundamentals, callback and asynchronous behaviours
  • Web Authentication
  • Web 2.0 architecture
  • Modern full-stack web application evolution and architecture
  • Minimum Viable Product & Lean Startup methodologies
  • Agile software development workflows
  • Git & version control workflows & best practices
  • UX & product / user-centered development
  • Code refactoring
  • Web application security principles
  • Googling

Soft Skills

A strong software engineer is not just good with code, they are good with people.
Good engineers can communicate their ideas clearly to a range of stakeholders- e.g, technical discussions with other developers, or non-technical discussions with designers, marketers or business people. They have empathy to work well with others. Understand that software specifications are written for humans and by humans.
  • Pair Programming
  • Code reading
  • Code reviews
  • Video demos
  • Technical documentation
  • Project Presentations
  • Project / software development time estimation & time management
  • Group work, project specifications & code collaboration
  • Project completeness & polish
  • Technical Interviews

Curiosity and an eagerness to learn

Cultivate the ability to solve new problems and formulate questions.
It is normal not to understand things. A software engineer is not afraid to ask questions. We seek to develop an awareness of what you know and what you don’t know, so you can ask more intelligent questions to further your learning.
  • Practice asking questions
  • Practice formulating product specifications
  • Pair Programming
  • Practice designing applications at all levels of the process
  • Understanding Project / Exercise Requirements
  • Dealing with requirement ambiguity
  • Practicing how to google / use the internet to gather information

Principles

Spark curiosity, don’t provide a rabbit hole.
In an effort to create T-Shaped individuals, our materials go 2 levels deep. It is then your curiosity that will take you deeper, especially in the projects.
Get it working first, then gain a deeper understanding.
Projects and Exercises have base targets, then expand into comfortable / more comfortable levels.
Finding and fixing bugs is a skill to be shared.
We use pair programming to help students develop communication skills, as well as develop the skill of reading other people’s code.
Understanding the WHY, helps you understand the WHAT and HOW.
To create depth and a general awareness of the Web Development industry, the materials are arranged in a sort of chronological order of Web 1.0 to Web 2.0. The history of JS is particularly interesting, as it has been a work in progress for over 20 years.
Reading Code, Writing Code, Googling Code, and Modifying code are separate skills
and are developed alongside one another.
Linear learning to build a foundation. Gestalt learning to expand.
Linear learning in the first half trains you in the key foundational areas layer by layer until you: Have a basic understanding of how software and the internet works reach a maturity that you can define and learn new things independently.
Gestalt thinking refers to learning many small things and putting them together into a big idea/project. The second half trains you in selected technologies commonly used in the industry. These are disjoint tools that you can use as needed.
  • We do linear learning in the first foundational part of the course, building up to a final web-application form.
  • We do linear learning in non-project sections of the program by building proscribed applications with specific requirements.
  • We do Gestalt thinking in the second part of the program by putting together the different parts of the system we’ve created.
  • We do Gestalt thinking during projects by encouraging independent work as a summation of previous linear work.

Bootcamp Structure

Module 1: Basics Cont’d

This part of the program is mostly a continuation of the work done in Coding Basics, with the pace and technical complexity increased to Bootcamp levels.
  • Expand upon basics work to understand the wider context of JavaScript in the browser.
  • Ramp up the complexity of programs we write.
  • Introduce new levels of program abstraction, representation & complexity.
  • Create mobile-responsive web layouts with CSS

Module 2,3,4,5: Web Application Fundamentals

The part of the program builds knowledge of web applications from the ground up, starting with running a simple one-line program and building up to a complex internet and data-backed application. Even though some of the content is not the latest industry-relevant technologies, these modules provide fundamental knowledge and practice in how the disparate parts of modern web applications are constructed, by constructing one yourself, piece-by-piece.
  • Introduce system-level runtime environment with Node.js
  • Introduction to HTTP & Internet fundamentals
  • Database & data storage fundamentals
  • Web authentication
  • Backend application fundamentals with NPM
  • Web 2.0 full-stack architecture
  • MVC
  • Cloud deployment with AWS

Module 6,7: Modern Web Application Fundamentals, Core Libraries & Architectures

These modules transition towards a modern, full-stack application by adding on necessary layers to encapsulate and abstract parts of the system we had previously constructed “by hand”.
  • Modern web-application architecture with Webpack
  • Managed cloud deployment with Heroku
  • React.js front-end DOM libraries & architecture

Module 8: Final Form

This module is the summation of all previous material, culminating in the final form of our app, incorporating the latest libraries and technologies.
  • Front-end & Backend isolation with Create React App
  • Front-end state management with reducers
  • Popular React Libraries

Syllabus

Rocket's Bootcamp syllabus is divided into 10 modules (listed in the table below). Each module covers key topics in software engineering that are highly relevant in today's industry. Our course schedules and content are subject to minor alterations as we strive to fulfil the changing needs of our students and the industry.
Module
Weeks
Name
Topics
Stack
1
1-2
​Frontend Basics​
HTML, CSS, Intermediate JavaScript, ES6
Frontend
2
3-4
​Backend Basics​
Node.js, HTTP, File Servers, Command Line Programs
Backend
3
4-8
Web Application Servers, SQL Databases, Authentication
Backend
4
9
​Backend Structure​
ORM, Sequelize, MVC
Backend
5
10
AJAX, APIs
Full Stack
6
11-12
Webpack
Frontend
7
13-16
​React​
React
Frontend
8
17-20
Create React App, React Context, React Router
Full Stack
9
21-24
Testing, Security, Mobile, Data Science
Full Stack
A
10-24
​Algorithms​
Complexity Analysis, Arrays, Hash Tables, Stacks, Queues, OOP, Linked Lists, Recursion, Trees, Graphs, Heaps, Dynamic Programming
N/A

Projects

Project
Name
1
​Video Poker​
3
​Full-Stack Game​
6
​Capstone​

Project Requirements

The goal of each project is to demonstrate working knowledge of the the concepts learned in the previous modules.
Project completion is a requirement to continue in bootcamp.
If any project is not completed up to the given project requirements, that student may no longer be eligible to continue in bootcamp.

Schedule

Students are expected to spend a minimum of 8 hours a day (ideally from 10am-6pm) on weekdays on coursework. This includes the 2 hours of live sessions from 10am-12pm GMT+8 and the 1 hour of Rocket Q&A typically from 12-1pm GMT+8 on Wednesdays.
Our schedule is organised by Course Days and Schedule Days. Course Days mark days of the course from 1.1 to 23.5. Schedule Days correspond to calendar days, e.g. Week 13 Day 4, where each Schedule Day has a designated Course Day except for public holidays during the course. Please see the Batch X Schedule page for your batch's schedule, where X is your batch number.
The Course Weeks pages list deliverables for each day of the course. Deliverables typically consist of videos, reading, and coding exercises. Each day's deliverables are due by the start of the day's class. We work on exercises based on each day's deliverables in pairs during class.

Class Agenda

  1. 1.
    Review of post-class exercise(s) from the day before
  2. 2.
    Review of the day's pre-class material
  3. 3.
    Completion of the day's in-class exercise(s)
  4. 4.
    Introduction of the day's post-class exercise(s)
Last modified 14d ago