When people ask how to improve their programming skills invariably they are told to write more code, to dive into open source projects or to build a replica of a well known piece of functionality. All of those tips are great but at the same time they can reinforce bad habits or lead you to the situation where you can make something work but you don’t know why!
Why your programming doesn’t work out the way you plan The key to improving your skills is to both practice programming but also to read more on the subject, by reading I don’t mean spending 2 hours on Hacker news everyday (although that can be fun!). A solid concerted effort to work through particular programming books will pay dividends in your future abilities and critical thinking. By expanding your knowledge of core concepts you can spend more time on the domain problem and how to work efficiently rather than coding by coincidence or wondering how your program works… In this article I’m going to provide a selection of books that I have found to be excellent reads that have not bored myself to tears. Not all are obligatory to read and some will be less relevant for the functional programmers or NoSQL people out there.
...