Don’t miss any important application related emails from us!
Add classes@codethedream.org to your contacts in the email account you share with us now!
Applications are currently CLOSED, but will reopen in June 2023. Please visit the Apply Now page to complete a form if you would like to be notified when applications reopen. To view the dates of upcoming classes see below.
Upcoming Classes
Important Dates for Upcoming Classes
Important dates for upcoming classes
Dates from the Current Application Period:
Application deadline ✅ | April 9, 2023 ✅ |
Pre-Work sent out ✅ | April 10, 2023 ✅ |
Pre-Work deadline | April 23, 2023 |
Code the Dream Reviews Pre-Work Submissions |
April 24 - 28, 2023 |
Students notified of acceptance/rejection of application |
May 1, 2023 |
Tentative Orientation Date | May 17, 2023 |
Class Start Date | May 31, 2023 |
Class End Date | September 26, 2023 |
Add classes@codethedream.org to your email contacts so you don't miss any communication about important dates from Code the Dream!
Application Process
Who can apply?
Code the Dream offers a pathway to careers in technology for people 18+ who might not otherwise have the opportunity to pursue tech jobs. Everyone, regardless of background, is welcome to apply, but we strongly encourage people under-represented in the tech industry to apply, including:
- Individuals from low-income backgrounds
- people of color
- undocumented people and those with DACA status
- immigrants and refugees
- people from rural communities
- women
Please note that classes are held in English.
Do I have to have coding experience to take a class?
Want more details about what you should know before you start each class? Click here.
Intro to Programming
We recommend that you have tried coding before taking a class with Code the Dream. The Odin Project's Foundations Course is a great free resource to become familiar with basic computer programming principles.
Advanced Classes
For our advanced classes (React.js, Node.js, and Ruby on Rails) you will need to know some coding basics:
- JavaScript basics (arrays, objects, loops, conditional statements, etc.)
- HTML and CSS basics
- Git basics (how to link local folders to a GitHub repo, push, pull, etc.)
- API fetch (we do provide tutorials on the API fetch portion in the event you are comfortable with the other material and just need some guidance on fetch.)
Code the Dream is a pathway to a career in tech. Our most successful students are committed to pursuing a tech career and have already begun exploring coding.
If you aren't sure whether or not coding is for you, we strongly encourage you to first try out some of the many free resources that are available online:
What is the cost?
Code the Dream classes are completely free for students.
Our program is very resource-intensive and expensive to operate. We are constantly fundraising to make this program possible, and we depend on grants from foundations and donations from individuals to ensure we can keep our classes free.
Once you get a job, we will ask you to consider making an ongoing donation to Code the Dream to help make the same opportunity possible for other students.
Many coding bootcamps cost $10,000-$20,000. Others don't charge you up front, but require a portion of your paycheck for many years after that. We do not require salary contributions, but we do hope you will remember Code the Dream once you land that high-paying tech job later! That's the only way this program can continue.
What is the application process?
Step 1: Apply! Fill out the online application found here: https://codethedream.org/apply-now/. If our application period is closed, you can fill out a form that will notify you when applications open.
Step 2: Pre-work.The day after the application deadline, we will send out a pre-work assignment which potential students must complete before being considered for any of the classes. You will have two weeks in which to begin and complete the pre-work, but the work itself is typical of the amount of work you should expect each week of class. We estimate that the Pre-Work will take around 10 to 20 hours of work.
Step 3: Selection. Code the Dream staff will make final selection and notify students approximately two weeks before class begins. Code the Dream classes are very competitive (e.g. 500+ applications for 120 slots). All individuals who apply and submit pre-work will be contacted to let them know if they have been admitted to the class. If you are not admitted to the class, you may re-apply for a future class. If you have not received word about the status of your application by the date listed on our "Important Dates" table, please check your spam folder and contact CTD.
How do you decide who gets in the class?
Code the Dream classes are very competitive. It is always a difficult decision to select which students are admitted, but here are some examples of the criteria we take into consideration:
- What are the applicant's career goals?
- What is the applicant's experience with and interest in coding?
- Does the applicant have the time to commit to be successful in this class?
- Could this be a life-changing experience for the applicant?
- Is the applicant part of a network that could provide additional support?
Class Details
What are CTD Classes like?
Considering whether or not to apply? Hear what current apprentices say about CTD classes.
When and where are your classes?
All of Code the Dream's classes are fully online. There are no live teaching sessions – you can complete coursework when it best fits your schedule. We offer small group mentor sessions multiple times a week in which you can work with classmates and get help from volunteer mentors.
How long are the classes & what is the time commitment?
Intro to Programming is a 16-week course. Our advanced classes – React.js, Node.js, and Ruby on Rails – are 17 weeks each. At the end of each advanced class, students may join an 8-week Pracitcum, in which a small group of students create and deploy an app.
Most students spend 15-20 hours per week on the coursework. In addition, students are required to attend two online mentor sessions each week. These are small-group sessions hosted by a volunteer experienced software developer.
Coding is not easy. It is frustrating and takes a lot of practice, as well as self-motivation to seek out help for the many challenges that will inevitably come. Our most successful students commit to the full 15-20 hours per week of work and take advantage of the additional resources CTD provides.
What kind of computer and software do I need?
For the Intro to Programming class:
- Laptop or desktop
- Webcam preferred but not required for attending mentor sessions
- Chromebooks and similar two-in-one devices can work for this class, but there may be extra steps you need to take when we get to the last half of the class and they will not work well for the advanced classes
- Reliable Internet access
For the advanced React and Ruby on Rails classes:
- PC or Mac computer
- Chromebooks and similar two-in-one style devices do not work well for advanced classes because their operating systems and hard drive space usually is not sufficient for development
- Recommended machine specs and operating system versions as of February 2021 are:
- Mac
- Needed for iOS development
- 8GB RAM min, ideally 16GB RAM
- macOS version at least at Mojave, ideally Catalina (Upgrading to Big Sur has resulted in some issues)
- Avoid M1 for now as it is new and there are still a lot of unsupported apps (Most relevant for Back End developers)
- PC (Windows)
- Intel Core i5 or i7 processor, AMD acceptable as well
- 8GB of RAM
- PC (Linux)
- Preferable to Windows, but you would need to install it yourself and the install and config process is more of an expert-level option
- Two popular options are Ubuntu & Fedora and these are marketed to new Linux users, making configuration a bit more manageable
- Mac
- Reliable Internet access
- GitHub account
- An Integrated Development Environment (IDE) such as Visual Studio Code or Atom (there are other options too, these just tend to be the more commonly used ones)
We aren't sharing the above details with the intention of any student or applicant going to the expense of getting a new machine. If you have questions about if your current computer will work, please contact us first before purchasing anything to replace your current machine.
If you are very committed to learning software development but do not currently have access to a computer or internet access, contact us and we will see if we can work with you to identify options.
How much English is required?
Learning to code means learning coding languages; programming uses words and concepts that will be likely unfamiliar even to people who are native-English speakers!
All of our coursework and mentor sessions are in English. Class participants will need an intermediate level of English, however, to learn computer programming, participants probably do not need to be as proficient in English as required in many other industries.
Code the Dream seeks to reduce barriers for English-learners in our classes. Our course materials are designed to allow students to re-wind videos and translate articles if necessary. Additionally, we provide student-led study sessions in some languages other than English when possible.
What Will I Learn?
What will I learn?
Code the Dream offers four different classes (Intro to Programming, Front End React.js, Back End Ruby on Rails, and Full Stack Node.js/Express) throughout the year that each have a different curriculum. Please consult the Upcoming Dates and Deadlines option at the top of this page for details on when each of those classes will be offered next.
Want more details about what you should know before you start each class? Click here.
Topics covered in each class are as follows:
- Intro to Programming:
- JavaScript (basics, functions, loops, arrays, objects, DOM manipulation)
- HTML (basics, forms)
- CSS (basics, layouts)
- Introduction to Git
- How the Internet works and Debugging
- AJAX basics and API fetch
React.js:
- Project Setup
- React fundamentals (React DOM, components, props, state, handlers, hooks and fragments, and more)
- React router and class components
- React styling
- React maintenance and testing
- Handling sorts, searches, pagination in React
- Deployment
Ruby on Rails:
- SQL basics
- Ruby collections, loops, conditionals, methods, classes, blocks, testing
- Rails basics, active record associations, testing
- Bootstrap specifically in relation to it's use within Rails
- APIs and Swagger
- Calling API using AJAX
Node.js/Express:
- Node.js Basics: JavaScript outside the browser, for server side web application development
- The Node module system
- Synchronous and asynchronous patterns and event processing
- Web applications with Express
- Accessing the MongoDB NoSQL database
- Creating APIs
- Authentication with JSON Web Tokens
- Testing
- Creating a front end for authentication and Create/Read/Update/Delete operations
Node with Express is the leading JavaScript web application back end. It is widely adopted in information technology departments worldwide, and it is growing rapidly. Ruby on Rails and React.js are widely used in various industries and in companies of all sizes. Noteworthy websites like Hulu and Airbnb were built using Ruby on Rails. Facebook and The New York Times use React.js to run their sites. Netflix and PayPal are some of the large companies that built their sites using Node.js. We are always assessing trends in the industry and may make changes to our class offerings or curriculum so please check back with us often!
Want more details about what you should know before you start each class? Click here.
Code the Dream partners with Treehouse for the video content of many of our online classes. CTD partners with Robin Wieruch to provide the text for our React Front End classes.
Intro to Programming Class Description
Our Intro to Programming class builds a strong foundation for applicants wishing to become software developers. We recommend all students that complete the Intro to Programming class apply for our advanced classes as those are the classes that really prepare you for an entry level job in development. If you are just starting the career change towards development this is the best class for you to apply for and complete first.
The curriculum topics covered in the Intro to Programming class are:
- JavaScript (basics, functions, loops, arrays, objects, DOM manipulation)
- HTML (basics, forms)
- CSS (basics, layouts)
- Introduction to Git
- How the Internet works and Debugging
- AJAX basics and API fetch
Upon completion of the course students will have created a simple portfolio page to be able to build on as they learn additional skills and gain more experience in development.
Code the Dream is partners with Treehouse for the video content of many of our online classes.
Ruby on Rails Class Description
Note: The Intro to Programming Class is a pre-requisite for the Advanced classes (React.js, Node.js and Ruby on Rails). To skip the Intro class and enter directly into the advanced classes requires completion of a Pre-work assignment to demonstrate knowledge of GitHub as well as Fetch API.
Our Ruby on Rails class begins by learning and practicing foundational programming concepts using Ruby, a language designed to "make programmers happy." We also do a deep dive into many topics including HTML, CSS, SQL and databases, Model-View-Controller design pattern, and version control using Git and GitHub. Both of our advanced classes have an individual work section and a Practicum group project section.
The curriculum topics covered in the Ruby on Rails Back End class are:
- SQL basics
- Ruby collections, loops, conditionals, methods, classes, blocks, testing
- Rails basics, active record associations, testing
- Bootstrap specifically in relation to it's use within Rails
- APIs and Swagger
- Calling API using AJAX
By the end of the individual section of the course students will have built a functional Rails app of their own concept and design using Ruby on Rails.
The Practicum section of the course divides students into small groups of 3-5 person teams. Each team will build one app. During this section of the class students will learn:
- project management
- to scope a project and prioritize bug fixes and adding features
- to resolve merge conflicts in GitHub
- to work collaboratively in an agile-like team setting
Code the Dream partners with Treehouse for the video content of many of our online classes.
React.js Class Description
Note: The Intro to Programming Class is a pre-requisite for the Advanced classes (React.js, Node.js, and Ruby on Rails). To skip the Intro class and enter directly into the advanced classes requires completion of a Pre-work assignment to demonstrate knowledge of GitHub as well as Fetch API.
Our React.js class builds on the JavaScript basics and other web basics skills applicants or past Intro to Programming class students already have in their skillset. The class gives a comprehensive education on all the aspects of React that make it one of the most broadly used libraries today. Both of our advanced classes have an individual work section and a Practicum group project section.
The curriculum topics covered in the React Front End class are:
- Project Setup
- React fundamentals (React DOM, components, props, state, handlers, hooks and fragments, and more)
- React router and class components
- React styling
- React maintenance and testing
- Handling sorts, searches, pagination in React
- Deployment
By the end of the individual section of the course students will have built two React apps, one that you build alongside the instruction and information provided by the text, and another (a To Do List app) that you build using your weekly coding assignment instructions.
The Practicum section of the course divides students into small groups of 3-5 person teams. Each team will build one app. During this section of the class students will learn:
- project management
- to scope a project and prioritize bug fixes and adding features
- to resolve merge conflicts in GitHub
- to work collaboratively in an agile-like team setting
Code the Dream partners with Robin Wieruch to provide the text for our React Front End classes via Robin's Road to React curriculum.
Node.js/Express Class Description
Note: The Intro to Programming Class is a pre-requisite for the Advanced classes (React.js, Node.js, and Ruby on Rails). To skip the Intro class and enter directly into the advanced classes requires completion of a Pre-work assignment to demonstrate knowledge of GitHub as well as Fetch API.
Our Node.js class builds on the JavaScript skills learned in the Intro to Programming class and requires the level of JavaScript/HTML/CSS understanding that the Intro class provides. With Node, these skills are applied to back end development, to web serving, and to the creation of application programming interfaces that use such standards as REST and JSON. Asynchronous programming patterns are used throughout. The Express framework is used to speed web application development, and data is persisted in the widely used MongoDB NoSQL database. Authentication and security are also introduced. The curriculum topics covered are:
- Introduction to Node and the Node module system
- Asynchronous program flow and event processing
- Streams
- Web applications with Express
- Static page serving
- Creating APIS
- Middleware and error processing
- Authentication with JSON Web Tokens
- MongoDB access using the Mongoose module
- Manual testing with Postman and automated testing with Mocha and Chai
- Front end access to authentication and to database operations
What’s next after the class?
CTD Labs – Paid apprenticeship in software development
After completing the Code the Dream classes, participants have the opportunity to apply for CTD Labs, a full-time paid apprenticeship in which student developers work on real-world web and mobile development projects supporting nonprofit organizations and small businesses. Additionally, apprentices are expected to make a minimum nine-month commitment in which time they will not be actively looking for a development position with another company or organization. This program is a great opportunity for students to build their resume and strengthen the skills they learned in class through their work on real projects for real clients. You can see some of our projects here.
Please understand that due to capacity and funding, we cannot offer all CTD students a spot in the apprenticeship. However, following full completion of our program, including the advanced classes and the practicum, our graduates are well poised to begin their job search.
In some cases, CTD class applicants have more background in software development and might be ready to enter the apprenticeship directly. To read more about the CTD Labs Apprenticeship, click here.