Application Deadlines
If you want to start classes in… | Turn in your Application by… | And your Pre-Work by… |
---|---|---|
Spring 2024 | October 8, 2023 | October 22, 2023 |
Summer 2024 | March 17, 2024 | March 31, 2024 |
Fall 2024 | July 14, 2024 | July 28, 2024 |
Spring 2025 | October 6, 2024 | October 20, 2024 |
Upcoming Classes
Frequently Asked Questions
Application Process
What and When are Trimesters?
Our year is broken into three seasons - Spring, Summer, and Fall. Every season, we'll offer Intro to Programming, Node.js/Express.js, and React.js classes. Every other season we'll offer Ruby on Rails classes.
With the trimester schedule we'll be able to also offer open applications. This means anyone can apply for any of the classes in the coming year whenever they want**! That means you don't have to wait and try and remember when the best time is to apply. Just meet the application deadline for the trimester you want to begin learning.
**Be sure you apply BEFORE the application deadline for the trimester that you want to begin classes!
When are the trimesters?
- Spring trimester - classes begin in January or February and end May or June
- Summer trimester - classes begin in May or June and end in September or October
- Fall trimester - classes begin in September or October and end the following February
When are the application deadlines for the trimesters?
If you want to start classes in... | Turn in your Application by... | And your Pre-Work by... |
---|---|---|
Spring 2024 | October 8, 2023 | October 22, 2023 |
Summer 2024 | March 17, 2024 | March 31, 2024 |
Fall 2024 | July 14, 2024 | July 28, 2024 |
Spring 2025 | October 6, 2024 | October 20, 2024 |
Add classes@codethedream.org to your email contacts so you don't miss any communication about important dates from Code the Dream!
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?
- Request an application - Request an application on the Application Process page. Once the form has been submitted, please immediately check your email for the application form (a link in an email message). If you do not see it, please check your Trash/Spam folders. If you still do not see the email, complete the request form again, being sure you have entered your email address correctly.
- Complete the application - Follow the link in the email to complete the application form. When you submit the application you will immediately receive an email with pre-work instructions. All applicants must complete the pre-work assignment to be considered for a spot in the program. There is no time limit on the pre-work assignment other than submitting it by the deadline. See below for application and pre-work deadlines.
- Complete the pre-work assignment - The pre-work assignment needs to be submitted to us by the pre-work deadline date for the class you are applying for. We planned the pre-work assignments to imitate what one week's worth of classwork would be. You can take as much or as little time on your pre-work assignment, but remember to be sure your submission works and meets the requirements then submit it by the deadline in order to have a good chance of being accepted.
- WATCH FOR RESULTS - we will notify applicants on the date listed below if they have or have not been accepted.
If you apply/applied for classes starting in: | You'll receive application results by email on: |
---|---|
Spring 2024 | November 6, 2023 |
Summer 2024 | April 15, 2024 |
Fall 2024 | August 12, 2024 |
Spring 2025 | November 4, 2024 |
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?
CTD Classes are a "flipped classroom" model. This means students will read/watch lesson materials first, then bring questions they have about materials to mentor sessions. While covering lesson materials is an independent process, we do have several support structures in place to help students make sense of the lesson materials they read/watched on their own including one-on-one mentor sessions, group mentor sessions, student study sessions, and in some classes student study sessions in native languages of Russian or Spanish. All of our group and one-on-one mentoring sessions are held in English. Asynchronously, we have systems in place to allow students to post questions about lesson materials and assignments any time of the day or night so any other students or mentors that may also be online can help if they're able.
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?
Currently our Intro to Programming class is a 16-week course. Our advanced classes – React.js, Node.js, and Ruby on Rails – are 17 weeks each. BEGINNING IN 2024 all classes will be 18 week long courses. At the end of each advanced class, students may join an 8-10 week Practicum, in which a small group of students create and deploy an app.
On average, most students spend 15-20 hours per week on the coursework. Students are required to attend two online mentor sessions each week. These are either small-group sessions or one-on-one sessions led 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, React.js, Ruby on Rails, and Node.js/Express) 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
A more in-depth look at the class curriculum can be found here: Intro to Programming
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
A more in-depth look at the class curriculum can be found here: React.js
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
A more in-depth look at the class curriculum can be found here: Node.js / Express
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
A more in-depth look at the class curriculum can be found here: Ruby on Rails
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.