As Developers, we love to write code , we love working on tough algorithmic challenges , and we love to design and build cool new tech. We hate having to deal with the mundane issues of daily life, bureaucracy at work and extraneous engagements (like non-productive meetings).
When I first joined Microsoft straight out of college about 10 years back, all I wanted to do was get into work at 10 am , code for 8-10 hours straight, build something cool and go home. That is all I needed to feel happy, satisfied and accomplished. But as time passed, I started realizing that there are things beyond writing code that rounds up a developer and paves the way for a successful career. I like to categorize them into three buckets : Technical skills, People Skills (or Soft Skills) and Personal Finance.
But why do I need people skills ???
While majority of seasoned developers will laugh at anyone asking that question, in reality I’ve faced that question from a lot of new hires and interns. They have the same mindset that I had about 10 years ago – If I’m a solid engineer with superb design and coding skills, that's all I’ll need to be successful. Unfortunately, that’s not how things work. I learnt it the hard way when one of my promotions was delayed by 6 months because I did not possess the required project management and soft skills. My manager ended up sending me to Dale Carnegie training course , which to be honest , changed my entire perspective on things in my personal and professional life. The things I learned helped me secure two promotions in the next 2.5 years.
And why do I need knowledge of personal finance ??
A lot of new developers starting out are overwhelmed by the financial decisions they need to make right after joining their first job. What kind of 401k options should they sign up for , what kind of insurance coverage they should get, should they use Employee Stock Purchase Plan etc. I had no idea about these when I first joined Microsoft – and for all I can tell, I didn’t give any importance to these things. It was only with time and having made my fair share of financial mistakes, that I started taking Personal Finance and Investing issues seriously. Having a solid financial footing just opens up a lot of possibilities in your life – how many times have the following thoughts crossed your mind:
- I wish I could join that startup and really take a chance on hitting it big !
- Wow – I really like the new job offer but it does not pay enough to sustain my current lifestyle.
- I just had a baby, I wish I could take a job where I can work from home for a few years.
- I just hate my job – but I don’t have the necessary financial buffer to leave it and search for a new one right now.
Well, many of us thinks about these things from time to time. Now think about how you’d feel if you knew that your living expenses were taken care of for 2, 5 or 10 years ! Would you make different career and life choices ? I bet you would. This is what Financial Freedom gives us – the ability to focus on what you really like without worrying about the financial ramifications.
So whether you’re young and just starting out, or a seasoned developer who’ve not had the time to learn about these additional dimensions of having a successful career, the list of books below will set you on the right track. I know you’re busy, so most of these books (except the technical ones) are a fairly quick read. But I find myself re-reading them from time to time to just reinforce the learning and keep on the correct track for my life and career.
Books To Sharpen Your Technical Skills
If you’re in your first year of college, you should consider getting a copy and start reading it. If you’re a seasoned developer, you should at least read through and see if you’re familiar with the concepts. In today’s world, Job Security is like a fairy tale – you have to be prepared for technical interviews all the time. Even if your job is secure, you’d want to be always prepared such that you can capitalize on any good opportunity that crosses your path.
Based on almost eight years of experience interviewing for Microsoft, I can say that if you’re familiar with the material covered in this book, you’ll most likely do fine in a technical interview. The other thing I like about this book is that it is not loaded with computer science theory and math. It teaches the material in a lucid way using a question- answer format. It shows you multiple ways to solve the same interview question. I recommend to buying it , reading it and internalizing the concepts so that you’re ready to tackle interview questions anytime.
The reason why so many otherwise smart new developers are unable to write clean code is because most universities do not teach what writing professional code looks like. Case in point, most of the algorithms and data structures courses I took focused solely on code correctness as tested by sample inputs and outputs. Even the software engineering courses I’ve seen at multiple universities do grading based on UML diagrams, code documentation , software demo and a final presentation. They simply do not have the resource to look through thousands of lines of code for each student in the class and give them feedback on their coding style and clarity. This is where Clean Code will help you – in making the transition from a computer science student to a professional developer.
A software design pattern is a general reusable solution to a commonly occurring problem within a given context or problem domain. The conventional advice to learn design patterns is to read the classic GoF book. But I’ll go against the grain and advise you to read “Head First Design Pattern” because it’s much more accessible. You’re much less likely to fall asleep reading this book than you’re likely to start snoring while reading the GoF book 🙂 . It’ll take a few readings for you to get the concepts, but it’s worth the time. In my experience 15-20% of the technical interview questions involve some sort of design pattern concept – so it’s helpful from the job interview perspective as well.
The first edition of the book was named “ My Job Went to India” and had a graphic of a coder holding a placard saying “Will Code for Food”. The author has since renamed the book to something more professional and less provocative.
But as with the first edition, the advice contained in the book is worth it’s weight in gold. This book provides guidance on how to strategically position yourself for success in your career. A fairly quick read that I wish I had read in college.
Books For Developing Soft Skills
The longer you’re in software development, the more you realize that you cannot do it all by yourself. You’ll need to coordinate with external teams, collaborate with fellow developers, testers and program managers, drive projects to completion and leverage the skill set of other people to ship software. In short, you’ll need to work with people on a daily basis. You’ll need to convince people to help you when necessary and need to inspire them to follow your lead.
This book will help you to win people over to your way of thinking without arousing resentment. This is crucial because at the end of the day, no matter what business you’re in, you’re definitely in the people business. I’d recommend this book strongly.
Developers are known for their smarts and often their stubborn opinions. During a typical day at work, there are debates and arguments on selecting the right design, negotiation of deadlines, code reviews and even what the seating arrangement should be in an open space. Needless to say, these are crucial conversations – you need to make sure that your ideas and needs are not stomped over while trying to make sure you don’t antagonize someone (whose help you might need down the line) permanently !
This book gives you the tools you need to step up to life's most difficult and important conversations, say what's on your mind, and achieve positive outcomes that will amaze you. But reading is not enough, you’ll need to actually apply these skills in real life situations. Fortunately( or unfortunately) , you won’t need to look very far for crucial conversations brewing up if you’re a developer 🙂
I’m not saying that you can get a developer job at Google or Microsoft just because you know someone there. That still solely depends on how you perform in the technical interview. However, knowing someone who already works for a company you’re interested in will at least ensure that you can get your resume read by a hiring manager and be at least called for a screening interview. That is a big deal because often there are hundreds of resumes submitted online for these coveted positions. Knowing someone inside the company might mean that you get a shot at proving your worth in an interview.
Working Towards Financial Freedom
I know you’re busy – if you’re just starting out , you’re probably spending all your time just learning the ropes of your new job. The last thing you need is a theoretical treatise on finance. This is simply the most concise , yet complete personal finance and investment guide I’ve ever read.
This guide will help you get started in the right direction towards attaining financial freedom from the get go. One of the reasons I did not panic and sell out my mutual funds during the 2008 financial crisis was because I had read this book and internalized it’s teachings. This has translated into over 200% gains of the holdings I’ve had in the recent bull market – and I owe this largely to this book and the BogleHeads forum.
Let me ask you flat out – do you want to be financially well off (or rich) someday ? If the answer is yes, then you absolutely have to read this book. It totally changed my perspectives on how millionaires actually make their money and stay rich.
The authors have spent the last 20 years interviewing members of this elite millionaire club and filtered out seven rules that has the potential to transform your financial life in the long run. So if you plan to leave your financial worries behind someday and become truly free to work on things you like, you cannot afford to ignore the advice in this book.
Last But Not The Least
#10 The Alchemist
For many developers, once they get adjusted to their current position, they become too comfortable ; they stop challenging themselves to learn new skills – in other words, they stop growing. This is equivalent of career suicide. The only way to learn and grow is to step out of your comfort zone and explore new possibilities.
All the other nine books in this list will help you build the right technical, interpersonal and financial platform to grab the next life changing opportunity that crosses your path – but this is the only book that’ll rekindle that fire inside you to listen to your heart and follow your dreams – dreams that have become a haze in the grind of our daily lives.
So what are you waiting for ? You can make these books your friend, philosopher and guide as you venture out to realize your true potential and your dreams. And don’t be intimidated by all the things you need to learn – always remember the old saying – a journey of 1000 miles starts with a single step. Good Luck !