Software Engineering Immersive : Syllabus

Download as pdf or txt
Download as pdf or txt
You are on page 1of 12

Software Engineering Immersive​ Syllabus 

FULL-TIME REMOTE 
 
 
 
OUR MISSION 
 
Our mission is to disrupt the way software engineering is taught and to develop an 
exceptional network of software engineers, who are technically brilliant, collaborative, 
supportive, and passionate about pushing the engineering community forward. Codesmith’s 
flagship program, the Software Engineering Immersive, builds excellent engineers through 
the comprehensive curriculum, team projects that ultimately solve problems in the developer 
community, and endless hiring support. 

 
ABOUT THE PROGRAM 
 
The Full-time Remote Software Engineering Immersive program is an advanced program, 
designed to help individuals launch a meaningful and successful career! Typically, about half 
of the residents come from technical backgrounds (i.e. CS degrees, data scientists, UX 
designers), and the other half are complete career changers, coming from non traditional 
backgrounds (i.e. bartenders/servers, physicists, musicians). This program teaches an 
immense amount of material, covering fundamental concepts and modern technologies, but 
you are given all the resources you need! From hands-on instruction to 1-on-1 feedback 
sessions, you will have access to guidance and learning opportunities. If you are just 
beginning your coding journey, don’t get intimidated - Codesmith offers a plethora of 
resources, from ​free beginner workshops​ to part-time online programs (​JavaScript for 
Beginners​ and ​CS Prep​), to get you ready for the Immersive program! 

 
 
 
 
 
 
TABLE OF CONTENTS 
 
 

CURRICULUM HIGHLIGHTS 3 
CORE CURRICULUM 4

CODESMITH TRADITIONS 7 
REMOTE EXPERIENCE 7

PROGRAM TIMELINE 8 

CAREER SERVICES 10 

SOFTWARE ENGINEERING IMMERSIVE ADMISSIONS 10 

RECOMMENDED RESOURCES 11 


 
 

 
 
 
 
 
 
 
 
 
 
 
 
CURRICULUM HIGHLIGHTS 
 
The 12-week Full-time Remote Software Engineering Immersive dives deep into every aspect 
of software engineering - computer science, React, Node, design patterns, system 
architecture, machine learning and DevOps. The tech industry is rapidly changing & for that 
reason, the curriculum is iterated on for each cohort to take into account particularly 
important innovations and highlights. 
 
REACT/REDUX 
React is at the heart of the Codesmith frontend curriculum. With the support of Tom Occhino, 
Engineering Lead for React at Facebook, Codesmith brings the most accessible and versatile 
tool for building applications to a new generation of engineers. Codesmith is one of the few 
programs in the world to teach Redux at an advanced level in combination with React. Redux 
is the most used tool alongside React in production and residents will be guided through best 
practices. Ultimately, learning these technologies will act as a platform for innovative 
discussions on application development. Past production projects built by residents utilizing 
React and Redux have reached over 50,000 stars on Github and are utilized by hiring partners 
at top tech companies.  
 
ES6+ 
ES6 (or ES2015) introduces compelling new developments to JavaScript’s core including new 
data structures, promises, iterators and generators. You will be working with ES6+ 
throughout the program. 
 
MOCK INTERVIEWS WITH ENGINEERS 
Residents are given the unique opportunity to do mock interviews with engineers during the 
program. These 1-on-1 interviews are designed to help residents practice articulating their 
technical background and projects in a high stress environment. The interviewer will then 
provide specific feedback to help residents reflect and improve on how to represent 
themselves in a technical interview setting.   
SYSTEM ARCHITECTURE WITH LARGE SCALE CODEBASES 
System architecture is a significant component of a seasoned software engineer’s role, 
however this has not previously been incorporated into a 12-week program. By partnering 
with some of the best open source projects with sophisticated, high quality codebases, 
residents develop an understanding of system architecture with large-scale structured 
production-level code. 
 
BUILDING PROMINENT APPLICATIONS & OPEN SOURCE PROJECTS 
Codesmith residents have built some of the most prominent tools in the React, Node, and 
broader developer ecosystem - projects like Reactide (8800+ GitHub stars), WebDSP (featured 
at Google I/O) and groundbreaking GraphQL and Kubernetes projects. This cements 
graduates’ status as seasoned engineers. Others build applications serving hundreds of 
thousands of users - including Veritas Prep, YouDescribe (in partnership with the The 
Smith-Kettlewell Eye Research Institute) and the University of Wisconsin. Check out more 
production-level projects​ that residents have built. 
 
ENGINEERING EMPATHY 
Becoming a great engineer means becoming a thoughtful team member. The work at 
Codesmith can be tough and the hours can be long, but residents are supported through it 
with care, mentorship, and feedback from team members, fellows, and their peers. Residents 
are guided through combating the imposter syndrome and implicit biases through expertly 
crafted workshops.

CORE CURRICULUM 
 
The core curriculum covers computer science, critical programming concepts, and fullstack 
web development, using React and Node. Residents learn through pair-programming, 
building projects, and interactive lectures that go under-the-hood of important concepts. 
 
 

● Computer Science And Advanced Programming 


○ Data Structures 
■ Computers store huge amounts of data and how we organize that data has 
major implications for its speed of access, ease of manipulation, and efficiency 
of storage. Residents will understand and implement the core data structures 
taught in MIT's Computer Science program. 
○ Algorithms 
■ Designing algorithms is a process of achieving increasingly effective ways to 
solve a problem. At Codesmith, residents will develop algorithms to solve some 
of the most prominent challenges in software engineering including sorting, 
path-finding, and searching. 
○ Time Complexity and Big-O Analysis 
■ The efficiency of an algorithm can be the difference between a product's 
success or failure. Residents will delve into how to optimize the design of their 
algorithm to make it more efficient in terms of time taken and computer 
memory used, following the computer science standard of Big-O notation. 
○ Object-Oriented and Functional Programming 
■ How large applications are structured can significantly impact their 
effectiveness. Two popular paradigms - object-oriented programming and 
functional programming - are both well-supported by JavaScript. Codesmith 
covers both and dives into the prototype chain in order to find out what's going 
on under the hood with pseudo classical inheritance. 
● Frontend Development 
○ Single-Page Applications and Frontend Structure 
■ At Codesmith, residents will become versatile software engineers who are 
experts in the core frontend framework - React - and can quickly adapt to new 
frameworks. Residents will cover front end design patterns, single page 
applications and features, including Model-View-Controller and 
component-based design. They will also understand how DOM-manipulation 
works under the hood. 
○ ReactJS 
■ Facebook designed ReactJS as a new way to build user interfaces and it's now 
used throughout Facebook and Instagram. Also, giants like Netflix, Airbnb, 
Paypal and Twitter use ReactJS for everything from their websites and web 
apps to iOS apps and Smart TV interfaces. At Codesmith, residents learn to build 
the front end of applications with this most versatile of frameworks. 
○ Redux  
■ While merely a tiny 2k library, Redux is a powerful predictable state container 
for JavaScript apps that works especially well with React. It helps engineers 
write applications that behave consistently, run in different environments, and 
are easy to test. On top of that, it provides a great developer experience, such as 
live code editing combined with a time traveling debugger. Residents will 
incorporate Redux into React applications to take advantage of this very 
popular state management  
● Backend Development 
○ Servers 
■ Modern Web apps require rapid communication between users and constant 
interaction with the server. At Codesmith, residents learn the core principles of 
the server-client relationship, HTTP & SSL, RESTful API development and Node 
& Express - ideally suited for fast modern Web apps. 
○ Databases 
■ The curriculum will cover relational and non-relational databases, including 
MongoDB and PostgreSQL. Residents will be required to design your database's 
schema and interact with their database using raw SQL and ORMs. A past 
student project built a full ORM for Facebook's GraphQL query language to 
interact with SQL. 
○ Authentication and Authorization 
■ To build a web app with users, engineers need to be able to securely and 
persistently log users in and out. Doing so requires a deep understanding of 
sessions, tokens and cookies. Codesmith will teach residents how to build a full 
authentication system using Express, PassportJS and OAuth. 
● Advanced topics 
○ Machine learning 
■ This is an immersive introduction to Python, to gain familiarity with common 
machine learning and data science libraries and develop a deep understanding 
of the underlying concepts used daily by Machine Learning Software Engineers. 
The Machine Learning unit is designed to allow residents to build intelligent 
data driven applications 
○ DevOps 
■ In the DevOps unit, residents will take a step back from the application code. 
They will examine and build the development and deployment ecosystem that 
enables team collaboration in a shared environment with Docker containers, 
benefiting from Travis-CI’s continuous integration and deployment platform, 
which pushes your code up to a publicly accessible hosting environment 
configured on Amazon Web Services. 
 
 
 
○ System design 
■ In preparation for system design questions that are becoming more prevalent in 
interviews, residents will step back and take a high level view of pulling all of the 
tools together in order to build a resilient, scalable system. 
○ UI/UX 
■ In the UX module, residents will learn design fundamentals that they’ll apply to 
layer styling on top of semantic HTML. Adopting a mobile-first approach, they 
will use industry standard tools like Flexbox, CSS Grid, and media queries to 
build responsive sites. 
○ Security 
■ Ever wondered how to hack a website? Find out and discover ways to protect 
projects from malicious trolls.
 
CODESMITH TRADITIONS 
 
An important aspect of life at Codesmith are the activities that aren’t associated with 
JavaScript. The Codesmith Team and students bond through numerous activities including 
remote trivia, video game competitions, and weekly breakaway meetings called ‘circles’ to 
chat about things not related to coding. We also will be coordinating in-person meetups for 
folks that live in the same area so you can get to know each other better! 
 
Family dinner takes place every Monday where the Codesmith team and students tune in and 
share dinner and ‘shout outs’ in a virtual setting - celebrating when another member of the 
community went above and beyond in the past week.  
 

REMOTE EXPERIENCE 
Like our other online programs & workshops, we will be utilizing Zoom as the online 
classroom. This is designed to mirror our onsite experience, meaning you will still have 
interactive lectures, pair programming sessions, and team building exercises. 
 
Although remote, you will still have access to the same resources you’d have in person! From 
1-on-1s to group mentorship sessions to specified Q&A time and more, students will get a 
personalized learning experience and encouraging mentorship despite physical distance. 
 
Codesmith takes pride in the supportive community it fosters in the full-time onsite program 
and we expect the remote program to be no different. Through Family Dinner, Circles (a 
dedicated time to not think about coding!), and Questions of the Day, the cohort will engage 
with each other through non-coding activities to bond and cultivate genuine connection, 
allowing for a collaborative and empathetic culture. 
 

PROGRAM TIMELINE 
 
The Software Engineering Immersive program is centered around producing high quality 
code - code that can be scaled, maintained, and shared. Residents will analyze and contribute 
to open source projects, which are community driven codebases, some supported by large 
companies such as Netflix, Facebook, and Airbnb and that are used in production by 
companies everywhere. In addition to contributing to open source projects, Codesmith 
residents will be guided and supported into building projects that will attract the most users - 
giving them the real-world experience for working with their own users. 
 
CORE LECTURES & CHALLENGES (WEEKS 1-4) 
Lectures at Codesmith lay out the intuitions and fundamentals of a topic. They aim to give 
residents an underlying mental model of how a concept works under the hood, rather than 
code walkthroughs that feel great, but do not generate a deeper understanding. After each 
lecture, residents dive into pair-programming to work through challenges building full 
applications (that can be used throughout the course - including a Slack replacement, arcade 
games and web scrapers) to truly cement the concepts introduced in the lectures. 
 
PROJECTS - SOLO/GROUP/ITERATION (WEEKS 5-6) 
Residents begin incorporating the tools they have focused on in the prior weeks to implement  
full stack web applications that they design on their own and with cohort mates. Residents 
will be introduced to Agile development cycles, using Scrum boards and daily standups in 
order to work efficiently as part of an engineering team. 
 
IDEATION (WEEK 7) 
Ideation Week is designed to provide residents with ample time to conduct research and 
create a plan of action for their production projects. There are no scheduled lectures during 
this time. 
 
ADVANCED LECTURES (WEEKS 7-13*) 
In the second half of the program, in addition to project building & job search prep, there are 
numerous additional advanced and professional-level lectures, covering topics such as 
UI/UX, DevOps, system design, and front end optimization. *The Machine Learning unit is 
taught over 2 days in the week post-graduation. 
 
PRODUCTION PROJECT (WEEKS 7-10) 
The senior portion of the program kicks project building into high gear. Residents will work 
with a dedicated team to build challenging and compelling open source projects that will 
work toward establishing them as a technical authority in emerging technologies, 
frameworks, and developer facing tools. 
 
REINFORCEMENT PROJECT (WEEK 11) 
After diving into the esoteric with their production projects, residents will come back around 
to reinforce the core material around full stack web applications. This will cement these 
concepts in preparation for the interviews to come. 
 
JOB SEARCH PREP (WEEK 12) 
The program’s central focus shifts to the job search & interview preparation. Residents 
participate in advanced technical interview workshops, white boarding exercises, and mock 
cultural interview and phone screens. The week also covers job search strategies, writing 
effective applications and messages, and developing compelling online profiles.  

 
CAREER SERVICES 
 
TECHNICAL INTERVIEW & RESUME PREPARATION 
Weeks 11 and 12 place special emphasis on hiring preparation – coding interview 
preparation, whiteboarding and resume/portfolio development. Residents will have multiple 
mock technical and conversational video interviews as preparation for hiring. 
 
WHITE BOARDING 
Typically half of an interview for a mid or senior level engineering position will be 'white 
boarding' through a coding challenge with your interviewer. Students complete interview 
coding challenges daily throughout the program but in the final two weeks you will work with 
instructors and mentors from outside Codesmith on whiteboarding. 
 
POST-GRADUATION 
The support continues after a student's cohort ends, with graduates coming back for remote 
check-ins and mock interviews. Even after landing their first position post-graduation, if 
graduates are looking to move positions or companies in the future, the Codesmith team is 
always there to provide guidance and support. Career development never ends, and once a 
student, residents are forever a part of a community that will constantly push them to be 
better, to be more impactful, and will support them along the way. 
 
 
SOFTWARE ENGINEERING IMMERSIVE ADMISSIONS 
 
1. Online application -​ ​apply now 
a. Codesmith team reviews applications and determines candidates to invite to 
interview  
b. Attend one of our workshops to get a Fast-Track code, which includes a special coding 
challenge, & if completed you are guaranteed an interview! 
2. Non-technical Interview  
a. Give us a sense of who you are - your background, what led you to Codesmith & your 
long-term goals! 
3. Technical interview  
a. If you do not meet our admissions standards we’ll give you feedback and invite you to 
come back and interview again (3 times max).  
4. Admissions decision (typically within 5 days of your technical interview)  
 

 
RECOMMENDED RESOURCES 
 
We look for five capacities in applicants: technical communication, problem solving, 
JavaScript and programming knowledge, non-technical communication, and engineering 
best practices (read more on ​Quora​).   
 
CS PREP 
CS Prep (Codesmith’s part-time, remote, ​bootcamp prep course​) is designed to prepare you 
for admission into the Software Engineering Immersive. The program covers foundational 
and intermediate JavaScript concepts, computer science fundamentals, and engineering 
best practices. You will refine your technical communication skill set through pair 
programming sessions and technical presentations. 
 
At the end of the program, you will take an assessment, which can fast track your application. 
Additionally, your tuition rolls over to your full-time program tuition, essentially making CS 
Prep a free program.  
 
FOR TECHNICAL COMMUNICATION, PROBLEM SOLVING & BEST PRACTICES 
● Pair-programming and going under-the-hood of JavaScript at JS The Hard Parts and 
other ​Codesmith workshops 
● Coding Challenge sites like: ​Codewars​, ​Coderbyte​, ​LeetCode​, and ​HackerRank 
● Web development challenge sites like: ​Nodeschool​ ​and ​Exercism.io 
● PythonTutor​ - Allows you to run through your code line by line similar to the JS the 
Hard Parts whiteboarding approach. 
● JavaScript30​ - Build a project with simple JavaScript each day for 30 days - excellent 
for improving your problem-solving (tackle the problem before watching any solution) 
● Building chrome extensions​ ​- this project lets you focus on JavaScript 
problem-solving, not on copying and pasting boilerplate code 
 
FOR JAVASCRIPT & PROGRAMMING KNOWLEDGE 
● CSX​ - Codesmith's Free Online Learning Platform 
● freeCodeCamp 
● Codesmith workshops​ - Intro to JS, Web Development Fundamentals, & JavaScript the 
Hard Parts (in NYC, LA, and online) 
● The Complete Web Developer Course 2.0​ ​- HTML & CSS are important to all 
developers. Codesmith recommends learning these languages as a pre-req. 
● JS the Weird Parts​ on Udemy 
● ReactiveX LearnRX challenges​ (Higher order functions) 
● Angus Croll on JavaScript​ (Closures, Execution context etc) 
 
INTRODUCTORY RESOURCES 
● JavaScript for Beginners​ - Codesmith’s part-time, online intro course 
● Codecademy JavaScript 
● Codeschool JS 
● Team Treehouse 

You might also like