Just some advice I would give to my younger self today.
This post is supposed to be a self reflection on things I failed on or learned along the way, but it might also work well for any developers that are starting out on this business. There is a big mix of topics not in any specific order.
The list 👇
- Be curious. Be proactive on asking questions. Don’t be afraid of feeling dumb or exposing yourself. Your team mates are not there for judging you, and they might also not know many things.
- Be humble, accept knowledge and suggestions. Never be cocky. Listen, understand and apply the feedback even if you didn’t ask for it.
- Don’t be too defensive about code. It’s just code. And you’ll not care much as soon as you leave the office, so it is not worth it.
- Don’t fight unnecessary battles. They’ll end up undermining the team’s mood and motivation. Pick battles that are worth it for the overall team progress.
- Read tech books if you enjoy doing it, ask for good book recommendations.
- Create, have side projects. They can boost your motivation and creativity a lot. They also help to try things out. Putting your hands into something teaches more than reading a thousand articles or books.
- This might sound contrary to the previous points, but do those things only while you still enjoy. Use them as a hobby, never as an obligation. The moment it starts feeling like work, do a hard stop 🙅♂️
- Find hobbies unrelated to programming. I’m learning to play the piano and use to exercise for example. This makes a huge difference at the end of the day.
- Don’t push yourself too hard. You don’t need to be good at everything.
- Don’t be hard at you if you fail at work, or your team mate had to explain you something. Tomorrow will be better. One more time, you don’t need to be the best on everything every single day.
- Don’t be too competitive or ambitious. Learn about the good values along the way. A bit can be good, but being too competitive leads to frustration when your end goals are not fulfilled.
- Learn to identify and find devs more experienced than you and ways to work with them (professionally or not). Ask them for advice, use them as mentors somehow.
- Be empathetic with everyone. Specially on the days you feel down. Many times a not very communicative developer is actually a person with a personal issue. Work on your communication with this person, more improvements will come later.
- Use your initial years as a professional to build up a career. Responsibilities you need to take care of likely grow with your age. Always keeping an eye on your mental health ofc.
- Don’t be scared of moving abroad, or even just to a different region within your country. Live other cultures.
- Never be afraid of sharing knowledge. There will always be a person taking good value of it.
- Embrace failure. Fail as many times as you need to learn something.
- Shipping and delivering is always better than perfect.
- Hear your business people. Be empathetic with the company needs, make it happen. Deliver if you said you’d deliver. That’ll earn you value.
- Learn to axe stuff. Removing code or features can be very positive ultimately for both developer quality of life and the product (if that’s your thing).
- Relax. Life is not work, it actually happens outside of it. Learn to separate things well. It’s great to have a good relationship with your workmates, but your family is at home.
- Once you feel fed up, consider moving back to your hometown and work remotely if you have the chance. That’ll help you to stay closer to who you really are, and your people.
- Expose your progress, highlight it, make it visible to managers. They will not remember everything you did right when the time comes since they have other priorities also, and probably a lot of people to care of.
- Ask for salary raises or any other perks when you feel you deserve it. Many companies will negotiate an initial salary for you and keep it like that forever if you don’t explicitly ask again. They’ll assume you are happy with it.
- The same but the other way around: learn to identify when you are underperforming and you don’t deserve more. We are sometimes all about our rights but, are we providing enough value to the company? Both points of view are equally relevant to make things work.
- Your mental health always goes first. If you are not happy somewhere and you have an option to leave and move to something more appealing to you, do it. Don’t waste your time or put your mental health in risk for the wrong reasons. No money or perk can pay for that.
- Take care about yourself. Exercise, eat well, sleep well. There is no work or project that is worth not doing this.
- Give high priority to improve work-life balance. Things like salary are great but remote work, free time and working hours flexibility can have an invaluable impact on your happiness.
- Do one thing at a time, and do it well. Be an example for your team mates. Multitasking or spamming a thousand PRs might not be worth it, neither pushing code to production on day 1. Bragging about these things is stupid.
- Never accept crunch if you are able to. It can’t yield any positive outcome under any possible scenario.
- Don’t be afraid of saying no. To unrealistic deadlines, to estimations with no clear requirements, to too ambitious features. Don’t push yourself to say yes and then work twice as hard to make it happen. That will drain you fast.
- In the same way, learn to provide alternative paths. Saying no might save you from burnout, but maybe you can help to reprioritize and provide a shortcut or a more desirable way to achieve the same or similar goals.
- Be communicative. Rancor and isolation can’t lead to anything good. Don’t hide your feelings. If you’re not happy about something, tell your lead / manager / whatever, and keep telling her/him on every 1on1 if it is not addressed.
- Be positive and productive when reviewing code. Think on being unlocker rather than blocker. It doesn’t make any sense to block progress because of a variable name. Leave a suggestion, approve.
- Leverage one of the biggest advantages we have in our profession: interact and learn from people from other countries and cultures.
And for sure I’m forgetting a ton of things. I’ll probably keep adding more.
Most of these tips I still need to repeat to me today. Theory on things is great, reality is always different and applying these becomes harder many days. So feel free to use it as a cheatsheet and come back every now and then if it works well for you. I will definitely need to.
Thanks for reading! 🙌
More interesting stuff to come 🙌