Is this a serious question? To a programmer, very possibly no. One wouldn’t search for that one great book to learn to be a doctor or accountant. By the same token, programming should be accorded that same level of respect. Sure, those other professions are governed by professional bodies and require formal qualification even to begin to practise, whereas anyone (assuming a requisite minimum level of intelligence and aptitude) can become a programmer without formal qualifications. However, I’m talking about programming as a professional and, in that context, notwithstanding qualifications formal or otherwise the fact is that professional programming requires several high-level skills (of which the central skill of coding is but one) that take hundreds to thousands of hours to develop into expertise. And even putting all that aside, technology changes so quickly that it should be clear to anyone prepared to give a moment’s pause that any single book able to adequately school and equip the wanna-be technologist simply cannot reasonably be expected to exist.
Still, it’s a real question that, along with others just like it, get asked often. I attribute it to the rise in interest in programming in the face of increasingly pervasive technology and very public, out-of-this-world valuations. On those valuations, I still find it difficult to get my head around some of the numbers, though I follow the tech press daily. Multi-billion dollar valuations are difficult to really imagine—like imagining a finite universe (or an infinite one). The combined wealth in this comprehensive list of unicorns is beyond mind-boggling.
Browse “Learning to Program” on Quora and you’ll see questions like:
- “How can I learn C++ in two weeks? This is making me depressed!”
- “My dream is to become a software engineer preferably at Google. I’ve been trying to learn programming for the past couple months. I feel like I’m not learning enough to actually be worthwhile. What should I do to learn programming that would actually help me pursue my dream?”, and this gem—
- “I am confident that I am going to build a search engine that will compete with Google at least in the smallest scale possible first, but for now I don’t know any programming. What should I do?”
I don’t want to give the impression that I’m looking down on anyone who genuinely wants to learn and is prepared to earn their dues. Much to the contrary, I would love to be able to offer any useful advice to such individuals who ask for it. And for those who do persist to the point of competence, respect! Some of these questions proceed not from self-delusion but from naivety, and that’s totally understandable. This question (that I answered) seemed to fall into this category: “What book should I read for building my app since I’m not a programmer?”
I gave a much longer answer along the same lines to this question: “What do you recommend someone who wants to learn how to think in programming?”. My answer included the following:
I presume you want to know how to develop yourself into a coder, starting from zero.
As others have said, you will learn most by doing. And you will learn a lot by asking for help: most programmers are very generous with their time (when you ask the right questions!) to help others…
From absolute zero, I would recommend one of the many online courses available today. Check out the list of resources in this article, which talks about the 17-year-old who sold his company for a cool $30 mil.: Learn To Program Like The Kid Millionaire Who Sold His Company To Yahoo…
A word of caution, if you don’t mind: a lot of people want to get into the industry because they know there’s a huge amount of money in it and, at the very least, they can get an above-average salary. By all means, learn if that is the reason, but you have to be prepared to persevere for many hours and endure no small measure of frustration. Ultimately, you will have to enjoy it or it just won’t be possible for you to succeed as a programmer… For me, it is one of the most satisfying, rewarding feelings in life for me when I’ve helped write something and then see it DO something and, best of all, when people use what I wrote to get shit done!
So, can you just read a book to be a programmer? Obviously, no. But that does not mean that you should not read programming books. You should, and then some. I’ll let this article be the final word on this topic: http://blog.codinghorror.com/programmers-dont-read-books-but-you-should/