One of the most interesting discoveries among all the shit that populates social media in the tech field is Salvatore Sanfilippo’s YouTube channel. Believe me, it has been an incredible and a pleasant discovery. As far as I understood, not knowing Salvatore if you are in the programming field is a blasphemy and I feel ashamed to say that I didn’t know him until 2-3 weeks, but it’s better late than ever. He’s the creator of Redis, which is a kind of database widely used by many companies (even Twitter). Sorry for this shitty description, but it’s not what I want to talk about.
For a few weeks now, Salvatore is posting many videos on his YouTube channel by alternating technical contents (mostly about AI, at least currently) and “philosophical” contents, which, for those who are not completely interested in AI, could be the most interesting ones. However, my YouTube feed suggested me a 2-hours long interview that an HR specialist (maybe) did with Salvatore. The entire video is full of wisdom and interesting things to listen to, but I want to focus the attention on a specific part (starting at 1:32:32), in particular when the interviewer asks Salvatore “What are the key essentials for excelling as a Software Developer/Engineer?”:
- Never spend a day without writing a single line of code: if you have a project you have to go ahead every day. You must not delude yourself to go on by doing useless meetings or writing useless code (i.e. taking a piece of code that works and refactor it to get a little bit better code). Just go ahead. If you do this for years, you can really do a lot of things.
- You must be technically excellent. If you deal with machine learning, it’s useless to know the big framework like PyTorch without knowing what is happening under the hood. You must be able to compute the derivative of the error of the activation functions in your neural network by hand. You must be able to write a neural network from scratch in your favourite programming language, even if you’ll use big framework in your application. It’s not enough to know your field “a bit”, but there must not be limits to your competence.
- Go where you can write the code that really matters. Go where you can apply the skills you have acquired. Stay with smart people and with strong programmers (in person, not in remote session).
- Be a kind human being. Be grateful to others for what they have done, for all the ideas they have given you. Do not speak ill of people at times when there are many people, but it is preferable to write an e-mail in private in polite tones.
The second point is the most important to me in this current stage of my life. I am studying and taking this blog just because I want to become technically excellent. It’s not easy, but I’m trying to do the best. What I’m really missing is a kind of mentor or someone who can guide me to do things in the correct way, in the correct order, studying from the correct resources.