When you learn to code, there is a moment when everything begins to change. At Firehose, we like to call this the inflection point of coding(编程拐点). After this phase, the way you operate as a developer will be dramatically different. Building up to the inflection point is the process of becoming self-sufficient in programming, to the point where you no longer need any hand-holding. It can be a frustrating experience, but once it’s behind you, it is incredibly empowering.
the graph of learning when you learn to code
At Firehose, our goal isn’t just to teach you Ruby, how to build web applications, or how to write tests. Although we do teach these skills and more, our primary goal is to accelerate students past the inflection point so they gain the ability to solve any problem they encounter. We believe that being able to problem solve on your own is an invaluable skill, and this method of teaching will take you much further than simply learning how to build a set of apps.
The Tutorial Phase (3-8 weeks of serious coding)
When you start out learning to code, there’s a lot of information that you don’t know yet. This information is called domain-specific knowledge. Examples include: knowing how to write a loop in ruby or how to extract something from a database using Ruby on Rails. Domain-specific knowledge encompasses the protocols unique to a certain programming environment.
The first step to becoming a self-sufficient developer is learning how to do specific tasks. Once you master certain tasks, the broad strokes of how the pieces fit together will start to become apparent. Over time, you’ll begin to recognize patterns and eventually, the things that initially seemed confusing and foreign will become second nature.
For students starting out, the most important skill to acquire is attention to detail.
Paying close attention to detail is important when going through materials like documentation or tutorials. Even the most minor typos and misspellings will result in error messages or bugs. Seeing error messages is a frustrating experience at first, but it’s a crucial step in the learning process. Dealing with error messages and problems in this phase teaches you one of the most important skills of programming within a safe environment: being detail-oriented.
Debugging error messages is incredibly important. The fact of the matter is, error messages are just a part of programming: they are seen by inexperienced and very experienced developers alike. The only difference is, the more experience you have dealing with error messages, the less time you’ll need to spend trying to fix them. Here’s why:
- Over time, you will learn how to read error messages and extract the
relevant details of the problem quickly. The first time you see an
error message, it will take you a while to decode what it actually
means. But after you’ve seen hundreds of error messages (and you will
see hundreds!), you will be able to pinpoint the problem’s location
and the relevant details you need in order to fix it. - You should learn from each error message that you resolve. Don’t just
fix the error and be done with it; understand what is wrong with the
code you’re fixing. By learning from each of your errors, the next
time you make the same mistake, you’ll be able to fix it much faster. - Initially, you will probably ask for help on each error message you
see. Over time, you’ll learn to ask for help less frequently by
double-checking your code and conducting smart Google sear