Hacker News new | past | comments | ask | show | jobs | submit login

Assuming the author's convictions are true, how would one apply a 'rote learning' technique to programming?

I believe in repetition, but, personally haven't been able to find a useful way of implementing it to become a top-notch programmer.

Why? Well, take calculus. Buy a book, pound problems. Do 1,000 derivatives. Next chapter. 1,000 integrals.

Is there a similar "exercise" for programming?




Depending on what you want to learn, sure. Googling for "[someLanguage] practice problems" appears to turn up good results for most languages.

For data structures, write some unit tests and then make them pass.

I personally wouldn't recommend you bother learning the implementation details of algorithms: just learn the names and use-cases. Make some Quizlet flash cards and you're good. If you're having trouble finding some to learn, try Googling "sorting algorithms" or "sorting algorithm for [someDataStructure]". Go from there. I'd recommend a similar approach for design patterns.

If you want to get better at building applications, practice by reimplementing apps you use every day in your favorite language (or just come up with your own). "Building applications" encompasses a wide variety of things not mentioned above that you'll only be exposed to by building stuff, so do that.


> "[someLanguage] practice problems" It might also be fall under "Études"

such as 'Études for Elixir' http://chimera.labs.oreilly.com/books/1234000001642

which is a collection of exercises that slowly introduce you to a programming language.

I can read stuff out of a book, but I won't have that 'muscle memory' until I've spent that time in Vim and the compiler/REPL. So that when something new gets thrown my way, I'm not having to think back to the basics.


Project Euler. Also, the whole 'kata' movement, where you write and rewrite relatively brief solutions to problems until you master them.



When I was learning C, I would write my program, then run it step-by-step in the debugger (I was using Visual Studio at the time) until it was pointless to do so because I knew what would happen next. If I made a change and did not have a mental model of what would happen, I would run the debugger.

Learning how to solve problems is a different process, but this gave me good understanding of basic code structures.


Drop in to the REPL, this is why languages that have Read, Eval, Print, Loop are super popular. BASIC, Python, LISP, SQL, Ruby, etc. You can get proficient in such languages faster than C, Java


> Is there a similar "exercise" for programming?

Project Euler?




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: