Program

THE CODESMITH PROGRAM

Codesmith is an immersive software engineering program teaching full stack JavaScript that prepares graduates for positions as mid or senior level engineers.

Our curriculum covers computer science, core programming concepts, and full stack web development using React and Node. Students learn through pair-programming, building projects and lectures that go under the hood of concepts. We select an outstanding group of intellectually curious and determined people to join the program every 7 weeks.

Our Mission

Our mission is to develop the most exceptional group of software engineers - technically brilliant, incredible collaborators, passionate about building and supportive of the community.

Next Cohorts: February 27, 2017 • April 17, 2017 • June 5, 2017 • July 24, 2017 • September 11, 2017 • October 30, 2017 • December 18, 2017

WHAT YOU'LL LEARN

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. You will understand and implement the core data structures taught in leading computer science curricula.

Algorithms

Designing algorithms is a process of achieving increasingly effective ways to solve a problem. At Codesmith you 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. We will dive into how to optimally design any algorithm with respect to time taken and computer memory used following the computer science standard of Big-O notation.

Object-Oriented and Functional Programming

How you structure large applications can significantly impact their effectiveness. Two popular paradigms - object-oriented programming and functional programming - are both well-supported by JavaScript. We'll cover both and dive into the prototype chain in order to find out what's going on under the hood with pseudoclassical inheritance.

ReactJS

React is at the heart of the Codesmith frontend curriculum. With the support of Tom Occhino, Engineering Lead for React at Facebook, we’re bringing the most accessible and versatile tool for building applications to a new generation of engineers.

FRONTEND DEVELOPMENT

Single-page Applications and Frontend Structure

At Codesmith, we want you to become versatile software engineers who are experts in our core frontend frameworks - React and Angular - and can quickly adapt to new frameworks. You will cover frontend design patterns, single page applications and features including Model-View-Controller and component-based design. You will also learn about the DOM and how to manipulate it.

ReactJS

Facebook designed React as a new way to build user interfaces and it's now used throughout Facebook and Instagram. Also, industry giants like Netflix, Airbnb, Paypal and Twitter use React for everything from their websites and Web apps to iOS apps and Smart TV interfaces. At Codesmith, you'll learn to build the frontend of your applications with this most versatile of frameworks.

AngularJS

Angular, maintained by Google, remains one of the most popular frontend frameworks even as React opens up a new frontier of frontend development. We'll cover two-way data-binding, controllers, factories, custom directives and developing maintainable Angular applications at scale.

BACKEND DEVELOPMENT

Servers

Modern Web apps require rapid communication between users and constant interaction with the server. At Codesmith you'll learn the core principles of the server-client relationship including: HTTP, RESTful API development and Node with Express - ideally suited for fast modern Web apps.

Databases

Databases are containers of data, and servers communicate with them to fetch that data upon request. You'll dive into both relational and non-relational databases including MongoDB and PostgreSQL. You will learn how to design your database's schema and interact with your database both with and without using an ORM.

Authentication and Authorization

To build a web app with users you need to be able to securely and persistently log your users in and out. To do this requires a deep understanding of sessions, tokens and cookies. You will learn how to build a full authentication system using Express, JWTs, and OAuth.

Pair-programming

Students spend hundreds of hours pair-programming through projects by the time they finish the program. Pair-programming is the secret hack to accelerating a coding career by mastering your technical communication and problem-solving capacity.

HOW YOU'LL LEARN

CURRICULUM SCHEDULE

Precourse (3 units before start)

Precourse at Codesmith is rigorous and intensive. We want to ensure students have a strong grasp on the fundamentals of JavaScript, programming, HTML, CSS, and an introduction to React, so they can run once they arrive.

Core Lectures (Weeks 1-4)

Lectures at Codesmith give you an underlying mental model of how a concept works 'under the hood' - in the style of JavaScript The Hard Parts - rather than simply walking through code at a high level in a manner that does not generate a deeper understanding.

Core Challenges (Weeks 1-4)

After each lecture you dive into pair-programming with another student to work through challenges building full applications (that you’ll use throughout the course - including a Slack replacement, Arcade games and Web scrapers) to truly cement the concepts you’ve been introduced to in the lecture.

Building Projects (Weeks 5-12)

While you will work on projects every day during the first half of the program, the challenges are relatively structured. In the second half of the program, we focus almost entirely on projects built from the ground up. These group and individual projects focus on building full stack web applications and developer tools.

Modules (Weeks 6-10)

During the project period students complete additional modules covering topics including security, Redux, deployment and build tools.

Advanced Lectures (Weeks 5-12)

In the project portion of the curriculum we explore numerous additional advanced professional-level themes. Lectures cover topics including software architecture, frontend optimization and SEO.

Codesmith and the Engineering Community

Codesmith hosts one of the largest React meetups in the US where students and graduates regularly present.We love that we are the center of the fastest growing tech region in the US alongside some of the leading tech companies in the world: SpaceX, Tesla, Snapchat and SoCal Headquarters of Google, Facebook and Yahoo.

MORE WAYS YOU LEARN

Tutorials

In your mock interviews you will work with a senior software engineer to discuss advanced topics and practice articulating your technical background. The interviewer will then provide specific feedback on your responses to help you improve how you represent yourself in a technical interview setting.

Speakers

Codesmith regularly hosts private talks, panel discussions, and Q&A sessions with some of the most prominent engineers in the country. Recent speakers include the Head of UI at Netflix, Senior Engineers from Google and the CEO of Heal.

Hackathons

Students usually code late into the evening. Additional hackathons test your ability to build an incredible product in less than 24 hours. Students present their projects to the entirety of Codesmith, and winners are awarded prizes.

Production Level Code

Writing clean, commented, modular code is vital to code maintainability and adoption by others. We emphasize these production-level coding best practices throughout the program especially in your projects.

HOW YOU'LL GET HIRED

In addition to the production project, the last five weeks place special emphasis on hiring preparation.

Technical Interview and Resume Preparation

Students have multiple technical and non-technical mock interviews with each other, engineers on staff, and engineers from outside Codesmith with a focus on technical depth, personal story, and presentation. Students go through several iterations of resume submission with review to refine the technical highlights of their projects and experience. This is paired with further developing and refactoring of past projects to strengthen their technical challenges and code cleanliness.

Whiteboarding

Whiteboarding through a coding challenge plays a significant role in the hiring process for most software positions because it tests more than just problem solving ability. Students prep for algorithms daily throughout the program, but whiteboarding at Codesmith reinforces the best practices interviewers look for in addition to a candidate's analytical thinking.

Recruitment Event

Students' 12 weeks culminate in Codesmith's one-of-a-kind Hiring Day in which students present to and interview with dozens of companies from Los Angeles and around the country. Companies that attend are looking to hire for mid- or senior-level engineering positions.

Apply to Codesmith

To apply you must complete a coding challenge and questions about your experience. You may also apply through the special challenge available at JavaScript the Hard Parts sessions. If you are successful you will be invited to interview for the program.

The two interviews assess your potential in the five areas that make an exceptional engineer. The first interview is non-technical, the second is technical.

In the technical interview you work through coding challenges with an engineer on the team. We're interested in seeing how you tackle problems and communicate your ideas. We realize that the Codesmith admissions process can feel intimidating but we have created numerous free public classes to help you prepare - you can find them all here.

Start Your Application