Notes after reading Passionate Programmer

There are a lot of useful notes and bits of advice that are useful at any point in time in an IT career.

Product

Be ahead

It is important to have broad-minded about technologies and follow the trends in IT. It will help to find a new job, learn something new, suggest a new product/technology when it will be required. On the other hand, there are too much different types of new software, libraries, and frameworks, so it will be great to have knowledge or to be familiar, with the most popular ones. There is a great list of GitHub repositories that allows to quickly identify the most popular libraries and frameworks, e.g. https://github.com/kamranahmedse/developer-roadmap.

Only writing code is not enough

Currently, in pandemic time, you will have to start working remotely at least from time to time. So your communication skills, your additional knowledge outside of the programming area, your certifications, your ability to self-learning, and find the answers by yourself are starting to play a more important role. I think it is important to have some additional hobbies related to programming or areas of business that are not directly connected with your current job.

Find a guy who is smarter

There are a lot of great professionals which worth following. Reading blogs of such guys will help to grow you as a programmer and professional. E.g. The morning brew is RSS with a collection of great articles mostly related to .NET/Frontend development.

Invest your time in getting knowledge

If you don’t know how to spend your time, invest it in yourself. There are a lot of free courses and certifications which you can quickly check and learn something new. It doesn’t really matter if you stop learning it at the beginning or at the middle of the course, or you will fail certification after the course. The most important fact is that you will have an idea about the selected topic and will be familiar with it. Coursera, Udemy and the best one is https://www.freecodecamp.org/.

Be a specialist in your current primary technology

Following new updates/fixes in your primary technology and framework is very important. It will allow you to fix the issues in products which you are working on, improve performance and stability. Adding new features to the product is only part of the programmer responsibility, supporting and improving the existing functionality and general stability of the product is another.

It is great to know additional areas and technologies. E.g. if you know .Net, learn any frontend framework, data science topic, DevOps, or any other related areas that will help you to sell yourself as a specialist.

Your current job is not you

Don’t forget that you can always leave your job or business and find something new if you want. It is very hard if you are the owner of the business, I believe, but you should always keep it in mind. In the end, the life and time that we have are limited.

Enjoy what you are doing

If you like what you are doing, you will feel happiness and satisfaction. It is not possible always to do only what you like, but, in general, you should like your job, your responsibilities, and your path in your career to be a good programmer.

Invest

Ask questions

Don’t hesitate and ask questions. If you did your research and weren’t able to find answers, you have to escalate and ask questions to your team. Even if you will find out that the answer is simple, you need to ask questions and be prepared to explain them. Avoid XY problem.

Understand your product niche

Understanding the business problems which are solved by the product you are working on allows you to make fewer errors and ask a bunch of questions. It will help you to show your interest in what you are doing, broaden your knowledge and increase your productivity.

Find a teacher or become a teacher

If you don’t know the product well or the business of the product, try to find the person who wishes and will help you to understand it. So you will become the expert on the topic. If you know a lot about the product already, become a teacher! It will help you to structurize your knowledge and fill gaps in it.

Practice in what you are learning

Knowledge without practicing costs cheap. Find the possibility to use your knowledge and practice new frameworks, libraries or approaches.

Learn and understand other’s code

Today software applications are created by many different people, so the ability to understand and read others’ code is crucial. Review, ask and suggest improvements in others’ code if you have a possibility to do that. It will make you a better programmer and also improve your communication skills.

Automation

If you are doing the same task twice - automate it if possible! It will save your time next time, allow you to ‘record’ the procedure to avoid potential mistakes, and allow you to share it with others.

Execution

Do what you can do

Even if the area of work is very big, you need to start working on something. So find a small task that you can complete right now and start with it.

Predict others’ requests

Thinking about any future requests or possible changes or features that might be requested is a good way to do your job right. If you know what to expect, you can prepare yourself and your working environment for upcoming changes and make your life easier.

Record your daily achievements

Having a list of what you did and what you achieved is important to be self-motivated and check the progress. It will allow you to stay focused.

Remember who is your boss

You always have to remember who is your boss and what he expects from you. Your boss can be anything: business, clients, or yourself. All your work should help achieve the main goal of your boss.

Be on your spot

Look forward to new opportunities, but do your current job well. If you don’t want to do your current assignment, it is better to find a new job!

Nobody cares

You should accept and always remember that you are not important for business as a person or individual. Even if you are very good at the current assignment, you can be replaced at any time. Do not forget and be careful!

Take a break

Developing yourself as a programmer and specialist is not a sprint, it is a marathon. Take a break if you need it. Mental health (and health in general) is more important than any type of work.

Lose is ok

Do not be afraid to miss something or be wrong. Nobody is perfect. If you are not doing mistakes, it means you do nothing. And there is no win without loses (otherwise, you are an extremely lucky guy and you should start gambling :))

Start saying ‘NO’

It is more connected with managing your time and fear to disappoint others. You can’t do all work and can’t be nice to everyone - accept it! And start saying ‘NO’.

No panic

Long story short - panicking is a waste of time. Just remember it and your first thought in a critical situation should be ‘No panic’.

Say, do, show

Announcing your promises, fulfilling them, and reporting results is the best strategy to be promoted. It shows that you can plan ahead, do your job on time and be transparent.

Marketing

Reputation matters

Reputation is important in your life and it is important in your career. Be careful what you say publicly (and even privately) as today your bad reputation can ruin your life.

You are what you can explain

Others can understand you only if you will be able to explain your thoughts and ideas. So practicing in public speaking and doing presentations.

Know with whom you are working

Today it is almost impossible to work alone. So knowing your colleagues will help you to do your job better via sharing and getting knowledge about the product domain.

Talk with others

If you are interested in any topic, try to find a group of people who is also interested in it. Or try to find specialists in this topic/framework/library and follow them!

Outdated

Your knowledge is outdated already

There is a tone of new technologies coming each quarter. Try to follow trends and be familiar with the most interesting and promising ones.

The final goal is important, but the steps to it are more important

The outcome of each work is a result that is valuable. But all steps/subtasks are important to have a well-designed, high-quality result.

Follow the plan

It is very easy to waste time doing non-important work without a good plan. So there should be always a plan for how to achieve the goal.

Look at the market

You need to know what vacancies are open now and what requirements are applied to them. Go to interviews at least once a year to check yourself.

Do yourself evaluation

Evaluate yourself as much as possible to find the weakest parts to be able to improve them. It is much easier to accept such evaluation from yourself than from others.

Better than yesterday

Each day is 24 hours. Spend this time to be a better version of yourself than you were yesterday.

Be independent and enjoy your life

We have only one life, so happiness and independence are very important to be a good programmer, specialist, or human.