Note: Due to the intensive support requirements and volume of requests, we can’t allow auditors for this course. We have many more sections available this year, so please plan ahead and enroll as usual through your program (or Take 3 for alums). If you are on the waitlist, you are welcome to attend Day 1 so that you can keep up in case someone drops.
The new reality is that every company is a software company. Even in traditionally brick-and-mortar industries, software is performing more and more of the work. And, of course, many companies (especially "lean startups") are purely software-based.
Lacking an understanding of how applications work and how software gets built while working in a software-based world puts you at a disadvantage.
In this course, we will demystify these things and dispel this disadvantage. We believe the best way to do that is for you to just write and ship an app idea yourself.
To do this, you will have to become a full-stack developer — someone who can take an idea all the way to a live app on the internet.
This involves learning much more than just one language. You’ll learn multiple languages (front-end and back-end languages), so that you can write a whole application (not just one slice of it). We’ll also see how to deploy it on industrial-grade cloud infrastructure, as well as how to instrument it with analytics so that you can gather feedback and iterate.
You will ultimately build a functional prototype of your own app idea. To do this, you will learn the Ruby on Rails web application framework. Our objective, though, is not to learn specific technologies. Instead, we want to:
1. Understand how most modern software — specifically, software-as-a-service — functions.
2. Communicate more credibly with developers on our teams.
3. Grow an eye for problems that can be solved with technology.
4. Prioritize features more prudently by developing a better feel for their costs.
5. Research and specify changes we want made to products more clearly.
6. Be empowered with a new, powerful, and just plain fun creative outlet.
Course Format
This course is entirely project-driven. We will build a series of applications together in class. We will start with a simple idea and learn just what we need about various technologies (HTML, CSS, Ruby, Rails) to make that idea real.
We will then build a slightly more complicated idea, and deepen our knowledge of each topic. And then an even more complicated idea. In this way, we will spiral across topics picking up essential, applicable knowledge; what we're not going to do are deep theoretical dives into each topic, one after the other, without ever getting to build real stuff.
In addition, you will build your own app idea. During the first few weeks, you will think of a few of your ideas and we'll then, together, select one that matches the scope of the course. This app will be your final project.
The process will generally consist of the instructor demonstrating a concept in a tutorial app and then giving the class a challenge to practice it and think up questions. You are strongly encouraged to team up and work together on the challenges.
Expectations
This course is designed for a beginner who has never programmed before. It is our goal to make programming accessible to as many people as possible, and dispel the mystique that surrounds it. It's really possible, with passion and persistence, for a beginner to become productive very quickly with today's tools.
Note: it's possible, but not always easy. If you have never seen a line of code before, you are going to be learning a lot of new things all at once, and so should plan to spend a significant amount of time. If you already have some programming experience, you may have to spend less time initially while we learn basics; but once we get into Rails, it will likely be all new to you too.
What you can expect from us in return is a lot of support. We know it's a lot, and we're here for you -- one-on-one appointments, review sessions, etc. We all will help each other on the class discussion board. There is no such thing as a dumb question; we're all beginners here, learning together.