Book notes: Soft Skills, The software developer's life manual

Reading this book has been an interesting experience. This book can give you some light to many different topics in a software developer’s life. John Z. Sonmez tells his story. You can learn very interesting lessons. I recommend not only read the book, but also discover his story the years after writing it.

As always, if you want to go deep in the topics in the book, I recommend you to acquire it and help the author.

Career

Business mindset. You as a professional offer a service or a product to a client. Can you describe this service in a sentence? You should treating you career like a business. Had you ever thought how do you offer these service to your clients? What do they expect?

What are your goals in your career? What about the next 5 or 10 years? Are you making steps to these goals every day or to other direction? You should keep these goals in mind every day, because the easy path is to stay in the “comfort zone” and live in a horizontal aimlessly way. Take care that making steps without targets can make you walk in circles.

Quit your job and find a new one if you cannot make these goals’ steps in that job.

People skills are more important than you think. Think in all the interactions you got during the day: appointments, emails, discussions, Slack, documentation, etc. This profession is more about dealing with people and situations, than with code.

Boost your opportunities in the interview process. Find companies that have problems that you can solve. Networking it’s very important, because when you are a good professional and make a good work, your teammates and all the professionals/friends you know can refer you. Be referred puts you in a different position in a selection process, but take in account that they probably expect more about you. It’s important to be yourself, selections process are about finding the right person for the job, not the most smart.

There are many options to work as a software developer: Freelancer, independent consultant, consultant, developer in a company, create your product, create your startup, etc. Take all the options in mind.

You should specialize in some areas. When you specialize you close some doors but open many other ones. Think about tools, technologies, and languages. But, focus on a specif area, for example: backend development, mobile development, etc.

There are many types of companies: small/startup, medium, large. And there is a big difference between a software development company and a company with software developers. Think about what fits you.

Promotions are based on visibility and good work. For example, make weekly reports. To get promoted or to just improve as professional you can do things like: teaching or mentor others, make talks, take more responsibility, improve your skills, improve the team, improve the product, or be a problem solver. Some companies have political stuff, but this is less important.

Being professional is different to be an amateur developer, do what is right. Learn to say no. Learn to prioritize and to act. Don’t depend on others, be professional. Don’t fall into no exit ways. Keep your freedom and autonomy, don’t get conditioned or controlled. This happens when you cannot say no, for example when you have to make a decision about generate technical debt caused by a deadline. Find a balance from quality and self-improvement you have to be very careful to decide why and how you can decrease your quality, these depends on the context and what do you can improve instead.

Know all your professional options. If you want to change your path, for example to freelancing, or to live from a product built by yourself, make a parallel change. This is important because you can think that if you were not working you will have 40 hours per week to spend on other side projects, but this is not true, your productive time will never be 40 hours. Remember that you have to pay the bills. Take in account contract clauses with a company when trying to swap these kinds of projects.

Freelancer. How much should you charge to your clients for the work? Probably the double or triple than a normal job. because you have to pay taxes, lawyers, economic administrators, you have to pay yourself your equipment, etc… Remember that you probably will not work 40 hours, and you will have periods without clients or doing other stuff related to the job but not for clients.

Building your own product. Search your audience first, then find their problems, and then the solution. Make sure to do thinks like preorder programs, because someone has to pay that invested effort. Test first the idea, make fast feedback loops, Lean Startup. Take care to enter a game with many competitors.

Creating a startup. What will be the startup type: created to grow with inverstors or one bootstrapped, created and financed by the founders. Think about the startup inversion cycle: Initial seed with angels investors or next iterations with capital investors. What is the startup economic payday plan? Get acquired in a big payday, which is the most common, or to generate a profitable business. The more founders, the fewer benefits and decision power. Take care of the % of the company that is given to the investors.

Remote work. Take care with, schedule, distractions, loneliness, and motivation.

Fake until you make it. Probably you are not the professional that you want to be at 100% today. So you should act as the person you want to be, until you became it. The power of the mind is important here.

Don’t waste your time making the perfect resume. It’s a skill that you will use a very small time in you career, compared with the real work time. So don’t waste time improving this skill. It all depends on the company you want to enter, but, if you really need an effective resume consider to pay to get it generated by a professional.

In case you want to create it yourself, remember that companies need personal to work on problems, its important wich of these problems you can solve or had been solved and what actions have you performed to solve them, pay attention to details, and think different.

Open your mind in the tech world, do not be dogmatic ever, this will only limit yourself, never be religious about frameworks, technologies, or languages.

Marketing yourself

You should treat you career like a business, and yourself as a brand.

Find your niche, thinks about what value or entertainment you can give to others.

Making talks, blogs, podcasts, screencasts, Youtube videos, etc. are well methods nowadays to have a presence and to generate value to others. If you want to became relevant, with the time in some area, you have to create a strategy. Expose your talent is equal or more important than having it.

You are a brand consider, find your niche, tagline, elevator pitch, visuals, etc. The same in social networks.

Public speaking. Remember that the people remember the concertsm not the times they reproduce a song in Spotify. You should consider to speak at conferences.

Do not be afraid to look like an idiot when you start, all good people start for something. Whit the time your skills will improve. You will have to deal with positive and negative opinions during the process, it will be hard. But it’s important to keep in mind that takes the steep to start is the most important one and is what normally people don’t dare to.

Learning

Transform your learning path in a game, cause playing a game is most easy. Think about a topic, then find the 20% of knowledge you need to solve the 80% of the problems. You don’t need to know in deep everything, even a complete book, even these post. You don’t need to consume what you don’t need.

Ten steps strategy:

  1. Get the big picture
  2. Determine scope
  3. Define success
  4. Find resources
  5. Create a learning plan
  6. Filter resources
  7. Learn enough to get started (repeat these steps for each module)
  8. Play around
  9. Learn enough to do something useful
  10. Teach

Learn to teach and learn to explain will make you improve your understanding ability for things.

Fill gabs in your knowledge of the tasks you usually do can help you to be much more productive and do much more with less.

Financial

Find assets and avoid liabilities. Get much money doesn’t necessary means economic freedom. Take in account inflation when you think in long term.

Stocks, options and futures, real state investment, passives incomes. You should know a bit about all the options and the benefits and drawbacks of all of them.

When talking about job offers. Know first your numbers, then the company numbers. If you want to enter the game of negotiations you must know very well the strength and weak points, be in a disadvantaged position is usually a bad point of start.

What about your retirement plan? Had you ever thought about it? Had you thought when you want to retire and how much you need to generate to do that? How some people get retired at 33? How can this be possible? Is this your goal? Had you ever thought about how retirement plans works in other countries?

Debts are evil. Paying an interest directly means pay to another one to make him rich. Take care with interests, common failures when dealing with multiple debts are:

  1. Having debts and trying to save money at the same time.
  2. Debts are not prioritized based on the type of interest. The higher the interest is the most it should be prioritized.
  3. Unnecessary debts. Example: buying a car. If you want to be 5/6 years paying a car, why not save that money for the car and buy it in 5/6 years instead of paying a bill without interest. You save a lot of money in the long term.
  4. Taking debt without thinking about how and when paying it. If a debt is not going to give you an economic advantage in the future, maybe you should not take it.

Retirement at 33 book example: get enough passive incomes until you don’t need a 40 hours work. Prioritize debts and reduce as much interest as you can. Invest in real states. Take the opportunities that only happens once in life.

Spirit

The power of the mind. If you are a positive person, these will increase your health and you will have a better life with many more possibilities, opportunities, and chances to succeed. Mindfulness. Think about the placebo effect. When you act as you will like, your mind will control your body to make it possible. Don’t be a victim of each situation, the world doesn’t conspire against you. Only you with your mind can change things. Things happen, but you don’t already know if something is good or bad at first instance. Create a positive mind.

If your target is to fight with mediocrity, don’t put rocks in your way. Stop telling you cannot do something, or you are bad in something. The bigger enemy you have to defeat will be you.

Build a strong self-image. Had you ever thought about how you act depending on the clothes you wear? We act differently, because our mind has a mindset according to the clothes. The same happens when our body changes due to an operation. We act differently. This is in our subconscious. So this is the same but at a mental level. Your self-image should work for you. Act like the person you want to be someday until you be that person.

Don’t have fear to fail. A fail is not a defeat, only if you don’t want that will be the end. Most people that made a step of success in life come from the worst fail step in life.

Force yourself to go through uncomfortable situations to get better in things, deal with confort.

Decide what life you want to live, and go for it.

Productivity & Fitness

Nothing new for me about these topics, in this book. Feel free to go deep there when you need it.