Originally, when I decided to focus my career towards programming and eventually into Machine Learning research, I was led to believe that the path laid out for me was mostly predefined: Get started with coding, learn enough, gather some experience and then move on to review, manage or direct others. This was not just shockingly false, but also thankfully a growing trend in the opposite direction. It turns out that individuals that actually have some degree of passion for programming or research in the computer world can grow to much higher levels of proficiency, efficiency and satisfaction than it is commonly thought. In commemoration of this fact let me share some reflections as an older programmer/researcher looking back:
- Compared to my younger self, I feel like I am steadily walking towards my best. Clearly, the acquired technical knowledge helps, but experience and knowing how to approach work and challenges makes a much more significant difference. I see myself as a much more rounded professional than 10 years ago, with a growing list of things to learn and better suited to connect things, see trends and enjoy the process. The feeling of being always on "learning mode" is a joy rather than a frustration.
- Working with people you can learn from is an incredible source of motivation. Both, at a professional and a personal level.
- I am more aware of the issues, challenges and potential side effects of the choices I need to make, so I give myself the opportunity to prepare for them.
- My desire to manage people tends towards null. Stronger with time.
- My desire to discuss technical stuff with people, both to help and be helped, and to define ideas, is at all-time highs.
- I have a more clear idea about what things I should double down and which ones had enough attention. I fight my battles now with more motivation but with less obfuscation.
- I used to be very sensitive to tone and manners in the work place... That hasn't changed.
- Initially I used to get stuck on anything falling in my way without much hesitation. Now I listen, evaluate, discuss, prototype and make a decision using a high degree of passion.
- My tolerance for context switching and shallow projects is becoming very narrow. I learned to be quicker at analysing and prototyping in order to see depth and give myself a change to dive into more fruitful and meaty projects.
- Communication is a fundamental skill. It takes a long time to develop and it's quite scarce in the research world. Developing it, teaching it and using it is a defining factor.
- I have grown very sceptical of some pervasive tools like pair-programming. The obstacles to overcome to make it a useful practice are typically too costly to consider it often.
- Recurring meetings are evil. Make an agenda and share it early. If the work items listed cannot be solved through text communications, then talking could be useful.
- I love new projects and new challenges. I love sitting down and talking about how to create new ideas.
- I am a researcher at heart. I love finding out why and how something works and find ways to generate something new out of some other initially seemingly unrelated proposals.
- After almost 4 years of remote work it is starting to feel like going back to the office is going backwards.
- I need to work with people that care about what they do and about others. Making a cohesive and friendly environment makes all interactions a joyful daily prospect.
- I am skeptical by default about any new hot thing in the programming space. I am however always thrilled about new and hot things in the research space.
"No programmer who continues to grow need fear the future." --Daniel Read (This also applies to Computational Research)