Each and every day, I work hard to become a better developer as well as a better human-being. This means that I’m constantly on a quest for new knowledge. The Internet has brought new ways to consume content, but, sometimes, a well-detailed and logically-organized book about a subject is easier to read than 100s of blog posts. After following John Sonmez’s Entreprogrammer podcast and reading his blog, I decided to read the book he has written. Here is what I think after reading Soft Skills: The software developer’s life manual and how it influenced my life ever since.
I think it’s important to challenge ourselves and push our limits in every area of our life, either professionally or personally. To build up the challenge, we should set realistic and measurable goals. They must be realistic so we can eventually achieve them and stay motivated. They also need to be measurable, so we can assess when a goal is reached and set a new one. I find these kinds of goals drive me forward.
Also, in almost any job, we need to interact with others. As a software developer, I must develop empathy toward my users to understand their needs and goals. I also need to be able to communicate with my colleagues or external resources about the work being done. These activities require soft skills. Social skills, like any other skill, must be practiced and developed. The best way to improve soft skills is to put yourself in situations where you need them!
Regarding skills, especially in a fast-paced environment such as software engineering, it’s impossible to be an expert at everything. That’s why I think it’s important to have a solid knowledge of core computer science concepts. Then, you can apply them to specific technologies when needed. I find it easier to have broad theoretical knowledge and narrow it down to a specific technical environment than the opposite. But sometimes, you just have to learn stuff on-the-fly. This is when the idea of fake it until you make it comes into play. You need to be ready to do everything it takes to learn/do what you have to. You must build self-confidence to believe you can achieve your goals, you can go beyond your own expectations.
Whether you want to find the best job or look for great opportunities, you must build a brand for yourself and become an authority in your area of expertise. This is especially true for digitally driven jobs such as developers. We can work from anywhere and craft software to solve a wide range of problems. This flexibility can lead to very interesting challenges. But to be able to access the greatest opportunities, you must put yourself out there so people can find you. The simplest way, not the easiest though, is to start blogging. Expose your thoughts, what you learn, the challenges you solve, in other words: share your knowledge! While blogging can create pretty nice online interactions, you could also take the next step and start speaking in conferences or local meet ups. There are a lot of events you could take part in, but if there is none close to you, you could even create one!
An important part of our job when working in tech is to learn. Technology, by its very own nature, is an ever-changing environment so we are continuously improving our core knowledge or learning about new frameworks/platforms. But it can be hard to structure our learning to get the most out of the time we invest. John Sonmez describes his 10-steps learning process which really helps plan what you really want to learn. The idea is to establish precisely what you want to learn by doing an overview of the subject, then define clearly your objective and what defines success. Only then, you can get to work and iterate on 3 steps: learning, playing around and applying the things you learn. Ultimately, the only way to know if you really understand something is to teach it. Write a blog post about it, prepare a talk, make a video tutorial on YouTube, anything to make you challenge what you think you know.
We all know that time is a limited resource. This is why I think productivity, in any area of our life, is pretty important. In a professional setting, we must be able to focus on the task at hand. We must resist the urge to go compulsively check our social media and emails. It takes a great amount of self-control to achieve that, but some techniques are available to help us. One I especially like is the Pomodoro Technique where you set a timer to work a certain amount of time(a pomodoro) such as 25 minutes during which you let nothing distract you. If you ever lose focus, the pomodoro is considered invalid and must be restarted. After every pomodoro of focused work, you take a small break of 5 minutes, then start another pomodoro. When you have completed a sequence of 4-5 pomodoros, you then take a longer break of 15-20 minutes. During your break time, you really take a break. Stand up, walk around, go away from the computer for a few minutes to cut your brain some slack. Sometimes, it might be hard to stop what you’re doing to take a break. This is why it’s important to break up tasks in small units.These breaks are important, even if you don’t feel tired, you will come back re-energized from them!
Also, it’s important to develop habits. When you want to achieve something, try to make a habit out of it. For example, if you want to try to do more exercise, schedule time every night for a 30 minutes walk. At first it might seem like a chore, but after some time you will likely begin to like it and look forward to it. The human brain likes habits, this is why it’s so hard to break the bad ones! The hardest part in developing a habit is to start. So get started then keep at it and in less time than you think it won’t be hard to keep at it.
Most of our time is dedicated to our work(well, our awake time). We work hard to live the life we want and save for our retirement. The major part of our income come from our salary. We must be able to demonstrate that we bring value to our boss. Then, it should become obvious that to keep us they need to give a fair compensation for our work and time. Having built a personal brand/authority can become handy when negotiating. If it’s well recognized that we are an expert in our field, this proves our value right away. It’s also important to start to plan early for retirement. Think about the kind of life you want to live and put money aside to be able to sustain it. You might find that you need more money than you initially thought. This might be a good time to decide what you want to do with the rest of your active years, how you want to invest your time, and take action accordingly.
Working in technology usually requires to sit for long hours at a desk and stare at a monitor. This is not the healthiest thing when done for many hours straight. Our health is very important! It allows us to enjoy life outside of work. The first thing you can do to take care of your health is to be careful about what you eat. Prefer a balanced, low-fat and without processed sugar diet. Then, you also need to do some exercise. You don’t need to become an ultra-marathonian or a body builder. But try to take advantage of every occasion you have to move a bit. Use the stairs, stand up during phone calls or meeting, use a standing desk, take a walk during your lunch break or take the bus a stop/station farther. All these little changes add up to make a difference.
I definitely think that what drives us forward is our mindset. It’s important to recognize the influence of the mind. This is what makes us try new things, push our limits. But we must trick ourselves into thinking that this is the right thing to do. Our basic instinct will always try to protect us. If something gets us out of our comfort zone, our mind might try to stop us from doing it for our survival. Being positive and having a strong self-image will certainly help. You will feel less endangered if you think you got things under control.
But what happens when you try something new? You can’t always succeed… This is why you must learn to embrace failure. Otherwise, your mind will surely try to avoid that feeling in the future. Be aware that failure is very different from defeat. Failure is temporary, defeat is permanent. I really love the following Japanese proverb to express this thought: “Fall 7 times, stand up 8”. Never ever give up, fail as many times you want, but never accept defeat.
Even if the book is titled the software developer’s life manual, a lot of the content applies to other fields than software development. Everybody could benefit from advice to advance their career, build a personal brand, gain more knowledge, explore productivity and finance tips or improve their health and mindset. The book gives a lot of practical advice and motivates the reader to take action. It positively influenced many areas of my life and I hope reading it would benefit to you too.
Take action! The best time to start was yesterday, the second best time is now!