The Odin Project supports students of all ages and backgrounds who aspire to become web developers by providing an open curriculum focused on collaborative and project-based learning to get you on the path towards acquiring a job-ready skillset. To keep the curriculum responsive to your needs, we highly encourage participation and contribution from both students of the project and the professional developers who will one day seek to hire them.
It takes approximately 1000 hours of work to go from zero to employable as a web developer and it's often a confusing and overwhelming journey. When you first ask how to get started, you usually get a dozen vague resources to look at and a gentle nudge forward. Or you end up staring at the possibility of massive student debt for a CS degree which is no guarantee of employment anyway. If you've got the motivation, this curriculum is designed to provide a clear path forward that utilizes existing (and mostly free) content on the web to get you to where you'd like to be and at your own pace.
Everyone has a different goal and that's okay. Whether you're looking to join a tech company, start a startup, build your own website, retool from another language, try out a new hobby, or work as a freelancer, you'll find value in the content we've roped together.
Check our our meetup group if you'd like to follow the development of The Odin Project and participate in our in-person pairing meetups. We will shortly be introducing a way to find each other to pair online as well.
Use these links to navigate to the appropriate course unit
- Becoming a Web Developer
- Installing the Technology
- Pair Programming and Remote Pairing
- Web Development 101
- Ruby (in development)
- Databases and SQL *
- Git *
- HTML and CSS *
- Ruby on Rails *
- Javascript *
- Tying it all Together *
- Advanced Developer Topics *
- Jobs Jobs Jobs *
- Additional Resources *
* This section is collecting resources
Our philosophy is that you learn most effectively by building things, by working with other people as much as possible, and by having clear context for what you're learning.
We believe that the best way to build a strong community of aspiring developers is to provide a high quality and focused path forward and to facilitate collaborative and paired learning wherever possible along the way.
We also believe that there's more than enough high quality content out there right now... the problem isn't finding too few resources, it's finding too many! What's missing so far is easily identifying the very best path through that content to achieve your desired goal (and that's why we're here).
We assume that you're at square one, so we start out by going over what exactly a web developer does, why and how to pair up with other students, and how to install the necessary software on your machine. The Web Development 101 section will give you a chance to explore several of the languages and technologies you'll need to know on your journey so you have a good sense of context when you push forward into the real meaty stuff. It gives you a taste of HTML, CSS, Javascript, Ruby, Rails, databases, Git, testing and more. We've also created "mini-projects" that will give you a chance to test your new knowledge by actually building something.
The curriculum takes a back-to-front approach to learning a professional Ruby on Rails workflow. That means starting with a strong foundation in Ruby and an understanding of databases before migrating into Rails (which is a framework built using Ruby).
Why Rails? Why not. There are dozens of possible technologies out there to choose from and, frankly, they do pretty much the same things. Rails is attractive because it's a relatively straightforward and very well documented framework that's used by tons of great startups and tech companies today and it has a very strong community of developers and students who support it. It lets you put up a functioning website in hours not days or weeks. The "in" tech will probably be something completely different in a few years, but Rails presents a great platform on which to build the skills you need to carry you to that next phase.
After the high level overview of Web Dev 101, we begin by showing you the path to make your websites function using Ruby, Rails and databases. Next we move into HTML, CSS, Javascript, JQuery, and Backbone to give you the tools necessary to make them come alive by looking good, flowing well, and loading quickly. Along the way, you'll learn git and deployment so you can build your portfolio, collaborate with others, and see your work on the web.
Finally, we'll tackle more substantial project work and learn how to deal with legacy codebases and open-source projects. We'll also do some topical deep dives and cover areas specifically intended to help you when you're looking for jobs. Most of the back end of the curriculum is still under construction, so let us know if you'd like to help!
The units here are meant to break down into approximately 20% pre-learning / 80% building. Your "teachers" will be dozens of different videos, blog posts, tutorials and readings (keeping things as free as possible). Again, this is meant to be a path through existing content as much as possible (we'd rather not reinvent the wheel). Your "classmates" will be the other students who have made it to the same unit as you and with whom you will pair on the project work. You are in the driver seat of your own education... stay motivated and stick with it!
Each step of the way, you should be able to see your progress through the projects you've built and by how far you've progressed along the path laid out here. We'll also do our best to answer the question "So why the heck do I need to know this anyway?". If one piece of content has you stuck, we'll have links to additional resources to help shore up your understanding. Where possible, we'll try to give you the no-bullshit explanation that cuts through the industry jargon.
Navigate through the curriculum using the roadmap listed above. The links will take you to the appropriate files inside the repository for each unit. The whole curriculum currently lives in these text/html files on Github. The links will go live once the curriculum is ready for that unit.
This curriculum is just a suggested path... you don't necessarily need to do things in this order. Actually, we'll try to lay out a couple different options because everyone has different goals. That said, you'll probably be a bit lost later on if you're missing some key foundational knowledge. This is also a path best navigated with help from friends (one or many). If you're in the SF area, join our meetup group or else start one of your own and we'll list it here! If you don't live near a tech hub, fret not! We'll soon give you the tools necessary to work directly with other people across the globe.
This project is very much a work-in-progress and benefits heavily from the contributions of everyone from students to teachers to developers. If you'd like to help out, take a look at our contributing page. The early stuff is fairly fleshed out but there's lots of work to do to pave this road to the finish!
If you have questions about The Odin Project itself, contact us here.
If you'll be linking to the curriculum, it's safest to link to the top-level Table of Contents here since some of the subcategories are likely to change along the way.
[**Why Odin?**](/odin.md)