Learn core JavaScript concepts and prepare for your software engineering career.

This part-time, remote program aims to build your core JavaScript knowledge, improve your technical communication, and develop your engineering toolkit.
CS Prep is a 2-week program covering JavaScript concepts, engineering best practices and technical communication. The program includes live-online instruction, daily problem-solving workshops, and a passionate coding community to help you prepare for top coding bootcamps, such as Codesmith’s selective Software Engineering Immersive programs, and solve real world problems.
Program Overview
Cement fundamental JavaScript concepts in live-online lectures, such as the call stack, functions, and closure.
Learn from experienced instructors who are both passionate about coding and love to teach! With experience both in the field and in the classroom, you will be learning from the best.
Computer science concepts help you understand the abstract ideas behind programming. CS Prep will help you to learn to code & think like an engineer to build efficient software.
Finances shouldn’t keep you from learning to code. Scholarship applications are available upon acceptance to CS Prep and are awarded on a rolling basis. The remaining CS Prep tuition paid will roll over to one of our Software Engineering Immersive Program's tuition upon acceptance.
Be a part of a fun, yet dedicated community of coders who are collaborative, supportive and passionate individuals learning an in-demand skill set.
Start learning and utilizing current engineering tools and practices. Gain the skills to debug your code, create awesome projects, and communicate effectively.
Curriculum Overview
The CS Prep curriculum will go under-the-hood of JavaScript, challenging you to learn coding fundamentals, refine your analytic problem-solving and build a technical communication skill set. By the end of the 2-week bootcamp prep, you will have developed the essential knowledge of a software engineer, gained engineers best practices, and you will have built 2 awesome projects.
When learning a new skill, you always have to start somewhere! CS Prep begins by laying the foundation of JavaScript tools to help you build your own web applications.

Functions & Their Execution
Functions allow developers to manipulate data and are a quintessential tool in an engineer’s toolbox. You will learn how local and global memory, the execution context, and the call stack are crucial to implementing functions within applications.

Data Types
By delving into the underlying architecture of JavaScript, students acquire a deeper understanding of how data types and primitives can be used to create more complex data structures.
Get a deeper understanding of the flexibility and versatility of JavaScript and why it is one of the most powerful programming languages!

HIGHER-ORDER FUNCTIONS & CALLBACKS
Higher-order functions enable you to abstract functionality in order to create more modular and efficient code. You will not only learn to implement them, but will also learn to recreate higher-order functions from the ground up.

Closure
The concept of closure is widely misunderstood, yet it affords JavaScript a degree of flexibility that has made it an incredibly powerful programming language. You will learn the benefits of closure in order to utilize them in your own functions.
While a computer science background is not necessary to become a valued member of a software engineering team, the fundamentals are extremely helpful to solve complex problems efficiently.

RECURSION & ALGORITHMS
Algorithms allow programmers to solve problems by accomplishing systematic tasks. You will learn about Big O Notation to measure time and space complexity, and to make informed decisions when considering the algorithmic efficiency of a given function.

Intro to OOP & Prototypal Inheritance
During CS Prep, you will acquire an introductory understanding of object-oriented programming principles, such as inheritance, abstraction, and encapsulation, in addition to their distinct implementation in JavaScript with the prototype chain.
Codesmith emphasizes creating well-rounded engineers. Begin refining this set of core capacities by learning effective technical communication & analytic problem-solving skills.

Technical Communication
A key competency of software engineers is technical communication. Throughout CS Prep, you will practice your ability to clearly and concisely describe your code and approach strategy through pair programming and technical presentations.

Problem Solving & Debugging
Understanding how to effectively find and solve a bug is an incredibly sought-after trait in developers. You will learn debugging best practices and develop a toolset to find even the most hidden errors.

DATA ANALYSIS
You will spend the first Saturday analyzing big data, using higher-order functions, like map, filter, and reduce—a mini version of work done by many data analysts at top companies in the US.

Final Project
Students spend the final weekend of CS Prep working in small groups to plan and execute a project completely from scratch. Recent projects include a Texas hold-em game, a modern version of The Oregon Trail, and a soccer management simulator.
Daily Schedule
CS Prep operates on an alternating schedule between PST-based and EST-based cohorts. See below the approximate daily schedule breakdown.
6:30PM - 7PM
MONDAY-WEDNESDAY PART 1 - PROBLEM OF THE DAY SOLUTION
You will work through the solution of the previous day’s challenge, often live-coded by the instructor, and discuss as a group the various approaches to solving the problem.
7PM - 7:45pm
MONDAY-WEDNESDAY PART 2 - LECTURE
During this time, the instructor will teach and walk you through a new JavaScript or computer science concept. CS Prep teaches in the “Codesmith Style,” meaning, the lectures are highly interactive and often include diagramming to really break down these complex concepts.
7:45pm - 8:45pm
MONDAY-WEDNESDAY PART 3 - PAIR PROGRAMMING
Codesmith believes pair programming is one of the best ways to learn! You will work with a partner to tackle an intricate coding challenge, where you will experiment with your new coding knowledge and refine your problem-solving skills. Your instructor will be meeting with each pair through this time to talk through any questions that may arise as you practice your programming.
8:45PM - 9:30PM
MONDAY-WEDNESDAY PART 4 - Q&A & PROBLEM OF THE DAY GIVEN
This is a time for you to ask your instructor questions, get tips for technical interview prep, and discuss your future career in software engineering. At the end of each class, you will receive an algorithm question to help you cement newly learned concepts and help you prepare for the technical interview at Codesmith. These problems will be reviewed during the following class session. Although the official class is over at 9:30pm, it is common to continue working through challenges and discuss the newly learned concepts with your peers.
12pm - 3pm
SATURDAY 1 Part 1 - PROBLEM OF THE DAY & LECTURE: CALLBACKS & HIGHER-ORDER FUNCTIONS
During this time, the instructor will review the previous Problem of the Day and will give a lecture on Callbacks & Higher-Order Functions.
3pm - 6pm
SATURDAY 1 PART 2 - PAIR PROGRAMMING & PROBLEM OF THE DAY
The second half of the class is spent pair-programming through a longer challenge, where residents use the concepts covered in class to analyze a large data set. The Problem of the Day is then released at the end of class.
12pm - 3pm
SATURDAY 2 PART 1- PAIR PROGRAMMING & LECTURE: JAVASCRIPT CLOSURE
On the second Saturday, the instructor will review the previous Problem of the Day and give a lecture on JavaScript Closure.
3pm - 6pm
SATURDAY 2 PART 2 - PAIR PROGRAMMING, GROUP PROJECT & ASSESSMENTS
The second half of the class is spent pair-programming and taking the assessment. After a short lunch break, the students are assigned to their groups for the final project and will spend the rest of the class working on it.
Upcoming CS Prep Start Dates
CS Prep runs Monday - Wednesday and Saturday for two consecutive weeks, with a 1.5 hour presentation on Monday of the third week. Weekday sessions will run from 6:30-9:30pm in the local time zone (either EST or PST) and Saturday sessions will run from 9am-3pm PST (12pm-6pm EST).
DEADLINES:
Application deadline: Jun 08
Phone screen deadline: Jun 13
DEADLINES:
Application deadline: Jul 06
Phone screen deadline: Jul 11
DEADLINES:
Application deadline: May 25
Phone screen deadline: May 30
DEADLINES:
Application deadline: Jun 22
Phone screen deadline: Jun 27
Meet Your Lead Online Instructors

Allison Jacobs
Senior Software Engineer @ Ally

Camera Kendall
Software Engineer @ AnagraphQL

Gregory Palasciano
Full Stack Engineer @ Diamond

Helen Regula
Full Stack Developer @ BigID

Matt Peters
Front End Engineer @ Cvent

MJ Lafontant
Software Engineer @ Notion
Tuition, Scholarships & More
Codesmith has a variety of tuition assistance options for you to ensure this accelerated JavaScript education is accessible to all.
The total tuition for CS Prep is $875.00. Tuition covers 2 weeks of live instruction from experienced instructors, daily coding challenges, project building, and access to a supportive community of coders!

When you are accepted into the Full-time Software Engineering Immersive or Part-time Software Engineering Immersive, your CS Prep tuition rolls over to your full-time program tuition.
CS Prep offers scholarships to make the program accessible to all candidates committed to excellence in software engineering. Applications are available upon acceptance to the program and are due 10 days before the start date. Scholarships are awarded on a rolling basis.

To qualify for a CS Prep scholarship you must exemplify a passion for coding, exceptional engineering potential, and bring something special to the community.
The teachers in this program were absolutely amazing and showed passion in teaching the content. The amount of information I learned and practiced in just two weeks was more than I learned by myself in six months. I highly recommend CSPrep for someone who is new to coding and also to people who want to understand what is happening under the hood in JavaScript.

Stone F.
CS Prep Graduate
How to Get Accepted to CS Prep

Submit Application Online
Set up a time to talk with a CS Prep admissions team member. This is a time for us to get to know you and your background a bit better and an opportunity for you to ask questions about the program and your future in software engineering. The interviewer will ask about the resources you’ve used to learn JavaScript, as well as your progress in CSX. Please have the Precourse Part 1, Precourse Part 2, and Functions & Execution Context units on CSX finished prior to your phone interview.


Phone Interview
Set up a time to talk with a CS Prep admissions team member. This is a time for us to get to know you and your background a bit better and an opportunity for you to ask questions about the program and your future in software engineering. If you have completed your Initial Interview for the Software Engineering Immersive, you will be given a fast-track code to bypass the CS Prep Phone Interview requirement.


Decision
An admissions team member will reach out after your interview with an admissions decision. Once accepted, you must submit payment for your tuition to confirm your spot in the cohort.

Prepare for CS Prep

CSX Units
Free online JavaScript learning platform
We ask all students to complete Precourse Part 1 & 2, Functions and Execution Context as the Precourse work for CS Prep. These units will help give you the foundational understanding of JavaScript to set you up for success in CS Prep.

JavaScript for Beginners
Remote, Part-Time, Introductory Program
This online, part-time course is a perfect way to kick off your coding education. It's great for those who have never coded, or who are looking to fully cement the fundamental concepts. Once you have completed JSB and passed the assessment, you can gain automatic acceptance to CS Prep and have the tuition you’ve paid rollover.

Intro to JavaScript Workshops
Free workshops hosted in LA & NYC online
Our beginner workshop series, Intro to JavaScript, covers concepts that are the foundation of all web development, such basic HTML, CSS, objects and arrays, and much more.
Start learning now!
Dive into functions and execution context with our CEO, Will Sentance. Get a sense of our teaching style, and how much you can do with code.
Frequently Asked Questions
Does CS Prep guarantee me acceptance to the Software Engineering Immersive programs?
CS Prep does not guarantee acceptance, but it is our recommended way to prepare for the immersive programs. CS Prep is designed to teach you core JavaScript fundamentals and covers concepts that are tested on the technical interview for the immersives. If you have questions about this, please reach out to csprep@codesmith.io.
Is there pre-course work to starting CS Prep?
Yes, before beginning CS Prep you will need to complete the Precourse Unit (Part 1 and 2) and the Functions and Execution Context Unit on CSX, Codesmith’s free JavaScript learning platform. These units must be completed before beginning the program, but you do not have to complete them before applying.
How does the remote classroom work?
CS Prep uses several platforms to facilitate your online classroom experience. You’ll receive access and instructions before the course begins on what you’ll need to have installed. The classroom environment allows you to ask questions during the lecture, collaborate with other students, and personalize your own learning experience through annotation and note taking capabilities. Many past CS Prep students were impressed with the engaging and supportive experience with both their instructor and their peers.
Are there any requirements for taking CS Prep?
We look for students who have a working knowledge of foundational JavaScript concepts, especially those covered in the precourse material listed above. We encourage all prospective students to work through the CSX online learning platform, as well as attend at least one live remote workshop, whether that be Intro to JavaScript or JavaScript the Hard Parts, to get to know the Codesmith instruction style.