Moshfegh (Mosh) Hamedani is a software engineer with 14 years of professional experience. During his career, he has been involved in numerous projects of various sizes and complexity, including web applications, mobile apps, frameworks and desktop applications.
He has a Master of Science in Network Systems and Bachelor of Science in Software Engineering. He is also a Microsoft Certified Technology Specialist, Application Developer and Professional.
Preface
You could be a great driver in terms of knowing how to control the car, ensure the safety of passengers, and follow all the driving rules. But knowing how to travel from A to B in the quickest way is different.
Its the same with programming. You could be a great programmer with years of experience, or maybe youre new in the field. No matter how many programming languages you know, delivering more in less time is a different skill. And thats what youre going to learn in this book.
Ill share with you lots of simple tips that help you stay focused, increase your productivity, and produce better software more quickly.
You may be skeptical and argue that good software cant be produced more quickly. I disagree! Why?
I think we programmers waste a lot of our time and brain energy due to the nature of our job. Ill tell you about some of the common mistakes among programmers that lower their productivity.
Ive been a professional programmer for 14 years and Ive learned a lot from my own mistakes and those of others. Chances are you make some mistakes that slow you down and frustrate you, without being aware of them. By applying the information in this book, you can deliver the same performance (if not better) working only five hours a day, and spend the other three hours doing the things you love.
Have you ever felt you havent achieved anything during the day? Perhaps you spent all day fixing a bug or implementing a feature that you couldnt finish. At the end of the day you felt exhausted mentally and physically. Perhaps you felt lost and werent sure what to do next. Deadlines were coming closer and you were stressed. Or perhaps you spent days or weeks working on something and then you were told that wasnt what they wanted.
Do you know about repetitive strain injuries, or RSI? Do you know that as a programmer you are at risk for RSI due to excessive typing? You might have heard of programmers suffering from pain in their wrists, forearms, neck and shoulders. I struggled with RSI for a year but was lucky enough to recover. Im going share with you some simple tips that can help you prevent RSI or reduce your pain if youre already suffering.
Im a big believer in less is more. Ive tried to keep each chapter pragmatic and concise, with lots of useful, simple tips that you can apply immediately. No beating around the bush. No detailed or irrelevant stories. Less is more!
Reading this book should take just over an hour, but youll save yourself years of frustration. Youll learn how to deliver more, write better code and maintain your physical health. If you apply these simple tips for just a couple of days, youll immediately see the results in your productivity as well as your mental and physical well-being.
The Blueprint for a Productive Programmer is the game plan that every productive programmer needs.
Who This Book Is For
I believe this book is what every programmer needs to increase their productivity, deliver more in less time and prevent or treat repetitive strain injuries (RSI).
Most, if not all, programmers are at risk for RSI. Books about programming languages and frameworks dont teach us how to prevent or treat RSI. I suffered from RSI for a year. Thats why I decided to share what I learned about recovery with you, so you wont experience the pain I did.
Whether youre a senior programmer with years of experience, or just starting out in the programming field, youll benefit from the productivity tips in this book. Youll learn to stay focused and use your time efficiently.
This book is not about programming languages, platforms or operating systems. Do you use Windows, Mac or Linux? Fine! Do you use .NET, Java, PHP, or Python? Still fine! This book gives you the blueprint of a productive programmers mindset. It teaches you how to think and act when facing difficult situations such as solving complex problems, deadlines, and the like. It teaches you some of the most common things programmers do that waste their time, with the hope you wont make the same mistakes.
How This Book Is Organized
This book is written in short chapters with practical tips that you can apply immediately to increase your productivity.
Chapter 1 talks about the essentials of problem solving. This is one of the most common issues in the software industry. Ive seen many examples of developers wasting their time providing a solution to a nonexistent problem. If you want to become a productive programmer, you need to use your limited time in solving what really is needed, nothing more and nothing less.
Understanding the problem is just the beginning. To write great code in less time, you also need to stay focused. Chapter 2 provides you with tips to reduce distractions and stay focused.
As a productive programmer, you also need to use your limited time and energy efficiently. Perhaps youve experienced days where you spent hours and hours on a task without achieving anything. You just tired yourself out. So Chapter 3 provides you with some valuable tips that you can take onboard to turbocharge your efficiency.
Your health, both mental and physical, is extremely important to your productivity. Chapters 4 and 5 provide you with a lot of tips to prevent and treat repetitive strain injuries and maintain a healthy and relaxed state of mind. This is especially important when working in environments with a lot of tension and tight deadlines.
Chapter 6 explores some common productivity killers among programmers. This is not a complete list by any means, and I plan to expand it in future versions of the book. So be sure to follow me on Twitter ( @moshhamedani ) to receive updates.
Finally, the last section provides a summary of all the tips youve learned, so you can always review them without having to go through the entire book again.
Acknowledgments
First, thanks to my dear brother and best friend, Mani, software engineer and author, for supporting and reviewing this book.
To my best friend, Yanna, for encouragement and help with choosing the cover.
To Lorna Simons for editing.
To my good friend Scott Fuhrmeister for input on the title and choosing the cover.
To my good friend Aidan for advice on publishing.
Introduction
So you have taken the first step to increasing your productivity and writing great code faster. Congratulations!
Before we start, I need to emphasize something extremely important. Reading this book is one thing, putting it into action is another. If you dont practice what you learn in this book and continue with your bad habits, youll be just wasting your time. Youd better put the book down now and go do something else!