I loved reading this article on writing a book for programmers. It reminded me of the books I read in college. Rooms with high walls and uncomfortable wooden benches. Classmates who were only concerned about passing the next exam. Pursuit of knowledge, passion and doing something were at the bottom of everyone’s list. Sure, everybody wanted to get a job. But not because they liked computers or programming. For the sake of a job.
I did not gel well among them. I was ambitious and incredibly passionate about computers. I already knew the contents of my curriculum years in advance. I had written complete programs (products from Anisoft is what I called them), played with most programming languages and was proficient in developing for and using both Linux and Windows. But I was not good at other subjects; my mind was tuned to work well only when it comes to computers. I reached out for like-minded souls on campus and was fortunate enough to find one who remains a best friend.
To make the best of my time, I read a lot of books at night. I slept during the day, often in the classroom. Teachers often woke me and asked questions related to what they were discussing. I would answer correctly, ignore their chagrin and keep my head down.
The books I read were recommended by Amazon or books that were deemed the best at explaining the topic. Not what the University prescribed or pertaining to the topic the University chose to include in the curriculum. I believe this was crucial in shaping me for what I am today.
There is a world of difference between a good book and a bad book. Take Hennessy and Patterson’s Computer Architecture. The writing is clear and there are so many case studies and actual history that makes the book come alive. The difference that I can see is in the passion. A book that explains something for the sake of explaining or to help you pass an exam can only do so much. It cannot give you context, it cannot free your mind into exploring new directions which no book can teach. A book should illuminate, convey about the process of understanding as well as the actual topic.
Some of my favorites are The Art of Computer Programming, Petzold’s Programming Windows, Tanenbaum’s Computer Networks and Structure and Interpretation of Computer Programs. This post will not be complete without mentioning Paul Graham’s essays which have always inspired me.
The Indian education system needs inspiring teachers who actually want to teach and are passionate about the subject. Not people who have retired and passing time or worse, people who had to become a teacher as a last resort. Maybe this has changed, maybe I was stuck in the wrong college. But what worries me are the hordes of programmers passing out of such colleges every year.