If you search on google, what books a software engineer should read, you will get several websites and blogs, which look like copy paste of the same book titles again and again.
My goal is not to give the list of book titles, my goal is to give you the variety of subjects and thought process that should go into reading for a software engineer.
When I started my career I was more leaning towards microprocessors and DSP programming in my mind. My job was into java applications development, what I ended up doing was I was physically working on java applications and my mind was towards DSP’s. It was killing me in my job, by the time I realised I am doing the wrong thing, I was out of Java and now the management has put me on windows development. I was still not performing as my mind was somewhere else.
This time I took a step back and looked at my team, everyone was doing an excellent job, I was the load on them. I assessed the job at hand, it was a good job, it had decent challenges as my DSP programming interests, so I took a U-turn into windows development. I was still not performing, in-spite of a lot of effort, others of the same experience were doing a good job with ease. When I requested my peers for help to improve my windows programming skills I felt that they were not opening up for some reasons, I could not understand.
I did not stop, I approached my mentor, explaining I am not able to get it, he shared his experiences, he shared his favorite book titles. Then one day I found this library in the building that is deserted most of the times. I started researching what I really need to get the job done. I got interested in the exercise, it opened up to the wealth of information. In this research my AHA effect was that learning to program is unlike reading a book of multiplication, its more than that. I started reading many books that were not checked out from that library for a very long time, many international magazines, experimented techniques, wrote some goofy apps, my confidence started building, I started to write better code. I started sharing!! Sharing is a lot of fun!!
One should have a need, one needs a motivation, one needs an immense interest to pick something, read and to perform something useful. It has always fascinated and allowed me to learn when one comes up with a brilliant idea or solution to a problem in the team. Reading allowed me to gain courage and take up ownership of complex problems.
Let me quote some better examples from other people. APJ Abul Kalam reads poetry, why do you think he reads that? In what way it helps a rocket scientist like him? Many stock investors read about Warrent Buffets investing or his life, why do they do that? One could easily say its their interest. But its more than that, it helps them keep going in tougher scenarios in their everyday work life.
As of this writing APJ is a living example of reading poetry and using it in his entire career of rocket engineering to keep himself motivated, 1000’s of engineers, nation, during his setbacks, during his achievements, etc., what a great way to keep going.
There was a period in my life, I read Stephen Covey’s and it gave me a very positive outlook and kept me going as the happiest person for the next 3 years of it. What an impact or a miracle a book I picked from a platform could make in my own life, I am amazed looking back.
A software engineer needs to develop an interest in regular reading on varied subjects, not restricting to just programming. Some of the areas are given below:
1. Programming books – coding, software engineering, debugging, operating systems and more. visit my first blog post.
2. Philosophy
3. Non engineering subjects
4. Mathematics
5. Autobiographies
6. Blogs
7. Product reviews
8. Management – time, human resources, team, emotions, projects, etc.,
9. Motivation
10. Enterprises
11. Economics
12. Community articles
A software engineer is a practitioner, he needs to learn these varied subjects whenever it interests him and over a longer period of time. He should manage his time and energy in such a way that it should not burden him.
I have also realized that some people get into the reading fun 24/7 and loose hold at work. So caution is advised that reading should not become an obsession curtailing its purpose to become an effective software engineer.
Happy reading!!