Broad Teaching Goals (an aside)
Here are some of the core things to know about my perspective on teaching software development:
- Immersion is the best way to learn. Since you signed up for the Iron Yard, you probably agree with this, but just to say it: we’ve found that you’ll learn the most when you focus on software development full-time. Most of us learned how to code through full-time work, and the accountability that you have while being a part of the culture is essential.
- It’s best to truly understand the fundamentals. In the Rails community, some developers prefer to find pre-written tools to offload as much coding effort as possible. For the first six weeks of class, we resist that and work with core tools to understand the basics. After that, we embrace the ecosystem. Chances are, one of those two approaches makes you nervous. We’ll talk about that.
- Each new concept should expand your boundaries. If we do our job right, you’ll be outside your comfort zone every day, but you’ll have just enough knowledge on which to hang each new concept. We’ll talk more about this on the first day of class.
- We should form real-world coding habits as soon as possible. Out in the wild, work is done in teams, tests are written in advance, and Google is always open in a separate tag. We practice all of these things in class, sometimes writing code from scratch, and sometimes building on what already exists.
- Agile, iterative development should be taught early on. When you start with the smallest set of features, treat it like a standalone product, then iterate, it’ll be easier to catch your mistakes, you’ll be more effective at course-correcting, and your software will be more likely to be awesome.
- Feedback is critical. This is true in any human endeavor, and in this class, it goes both ways. You’ll do best if you ask questions immediately, and we’ll also be polling you for your state of mind every day. Short exercises will be interspersed in lectures, and we’ll be reviewing your nightly homework in depth.