> 3) do the exercises that seem incredibly futile in the second chapter, and do them over and over and over and over all your career.
I got halfway through that paragraph thinking it was crap because it didn't apply to programming, then realised that you're absolutely right.
In programming, the thing we do every day is we write tiny algorithms to do simple things. The abstractions come and go, but the simple "I need to remove a trailing slash on this string" sort of problems are (to me) the everyday practices. Everything else falls out of those little problems - the need for abstraction, the need for tools, the need for tests, the need for libraries, etc.
Imagine I offer you two applicants. They're both fresh out of collage applying for an engineering role. The first one has never heard of MVC and has never actually used TDD. But you ask him to implement a binary search on a whiteboard and he goes to town. The other one will happily explain all the details of the visitor pattern, but when you ask him to manually reverse a string in his favorite language, he can't do it.
I don't know about you, but I'd hire the first programmer in a heartbeat. Its much easier to learn design patterns when you know how to code than the other way around. Maybe its the same with shading in art, and scales in music. But, thats definitely how it works with programming.
I got halfway through that paragraph thinking it was crap because it didn't apply to programming, then realised that you're absolutely right.
In programming, the thing we do every day is we write tiny algorithms to do simple things. The abstractions come and go, but the simple "I need to remove a trailing slash on this string" sort of problems are (to me) the everyday practices. Everything else falls out of those little problems - the need for abstraction, the need for tools, the need for tests, the need for libraries, etc.
Imagine I offer you two applicants. They're both fresh out of collage applying for an engineering role. The first one has never heard of MVC and has never actually used TDD. But you ask him to implement a binary search on a whiteboard and he goes to town. The other one will happily explain all the details of the visitor pattern, but when you ask him to manually reverse a string in his favorite language, he can't do it.
I don't know about you, but I'd hire the first programmer in a heartbeat. Its much easier to learn design patterns when you know how to code than the other way around. Maybe its the same with shading in art, and scales in music. But, thats definitely how it works with programming.