3 ms·
DHH is saying "do" rather than "try". You can memorize every line of the emacs code base, but unless you have a problem with emacs itself that you'd like to so
by run4yourlives 16y ago
DHH is saying "do" rather than "try".
You can memorize every line of the emacs code base, but unless you have a problem with emacs itself that you'd like to solve, it isn't going to get you far.
On the other hand, if you can't find a web-app to manage projects that works for you, and you decide to code one, you will learn much, much more.
- jrockway 16y agoI disagree. I would say I've learned about 40% of what I know about programming by typing stuff in and seeing if I like it. The other 60% I've learned by reading other people's code and stealing the techniques I like. For example, I learned C by myself when I was in middle school. The memory management technique I developed independently was "the library allocates, the application frees". No errors in valgrind, and my app works. Then I started reading other people's C code, and switched my technique to "the application allocates, the application frees". Now C is a lot easier to write! Assuming that you're the smartest person on Earth only gets you to a local maximum. To get to the global maximum, you have to interact with other people. The way you interact with programmers is with source code.
- run4yourlives 16y agoI think you've possibly hit on a fundamental difference between learning styles that people have. I've learned probably 95% of all my programming from doing. I do take issue though with the idea that the learn by doing crowd is somehow less accomplished. It smacks of baseless elitism.
- dlo 16y agoIsn't thinking that others have little to offer to you a form of elitism as well? It seems neither option is particularly humble.
- spiffytech 16y agoIt's not that others have little to offer, it's a different style of learning. Just like some people are visual or auditory learners, some are kinesthetic learners. Seeing other people's code does little for me because I miss all of the reasoning that went into it's creation. However, when I've fought through the same problem myself, I understand very thoroughly the traps, pitfalls, and solutions the task entails. When I reach this level, I can read other people's code and clearly see why they did what they did, and how it's better or worse than my method. I have to take a crack at the problem myself first, though, in order to learn well. Reading other people's code is, for me, a way to refine and reinforce my techniques, not to learn entirely new things. I learn much less effectively when I try that.
- hello_moto 16y agoI read a lot of books, but tend to forget most of them as well.