Skip to content

Latest commit

 

History

History
74 lines (39 loc) · 7.99 KB

getting_started.md

File metadata and controls

74 lines (39 loc) · 7.99 KB

Getting Started

About The Odin Project

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 to get you to where you'd like to be and at your own pace. All while colearning with other beginners from around the world.

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.

We know that not everyone wants a job as a web developer... some just want to make a cool website as soon as possible, and we've tried to identify points where someone like that might benefit from moving on instead of diving too deeply into certain material.

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. Check our website at theodinproject.com and join up to connect with other people across the world!

Our Philosophy

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 plenty of 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).

What You'll Learn

We assume that you're at square one, so we start out by going over what exactly a web developer does, how to install the necessary software on your machine, and how to pair up with other students on projects.

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 (ideally with another student!).

The curriculum takes a back-to-front approach to learning a 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!

How it Works

The units here are meant to break down into approximately 20% pre-learning / 80% building.

Your "teachers" will be dozens of different readings, videos, blog posts, quizzes and tutorials (keeping things as free as possible). Again, this is meant to be a path through existing content since we'd rather not reinvent the wheel.

Your "classmates" will be the other students on the same journey as you, and with whom you can work remotely using the pairing techniques we've laid out. 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.

Navigate through the curriculum using the roadmap in the sidebar. The links will take you to the appropriate files inside the repository for each unit. You're viewing this online but the whole curriculum really lives in a bunch of markdown files on Github that you can easily contribute to.

Work In Progress!

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 theodinproject.com/curriculum since some of the subcategories are likely to change along the way.

Final Note

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! You can work with other students across the globe using the open-source scheduler tool to set up times to pair remotely on curriculum projects and we'll shortly be putting into place some tools to find and work with other students in real time. Stay tuned, and happy coding!