Notes about passionate programmer
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.
Be a guy who knows related technologies
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.