Why This Data Scientist Learned To Code
Hey, so can you introduce yourself?
Hi Pete! I’m Manfredi, a Chemistry Ph.D. turned data science geek. I currently live in Bologna, Italy. I moved back from Ireland in 2021, where I spent 8 years. All my professional career started and grew in Ireland, where I was lucky enough to join Stripe when the Dublin office was shy of 50 people.
How did you learn to code on the job at Stripe?
By waking up at 5AM and study until 8.30AM, when I stopped to have the fantastic breakfast at the office :) At the beginning, it was a steep curve, and I started with SQL only. It took me a couple of months to become familiar with SQL, but mostly, with the way of rephrasing my questions to answer them through tables and queries. Once I felt independent with SQL, I moved to Python.
A small clarification here, being independent in a language for me means that you are able to independently unblock yourself, mostly through documentation and google search, and so you are not tied anymore to courses or other help.
As tools, I used (and still use) YouTube and online courses. Mostly Udemy and DataCamp (this being my preferred source up until I was professionally aware and independent with Python). Nowadays I also use books from O’Reilly, Packt etc.
How has your life changed since learning to code?
For me, the biggest positive change that programming has brought into my life has been flexibility.
Only now I was able to obtain a fully remote position but, thanks to COVID, it’s been more than two years that I haven’t been going daily to an office. For me, this is the best perk of being able to code.
The second best perk is continuous learning. I’m in a field where there is no lack of new things to discover and learn and I feel like I can always strive for new levels of mastery. For a character like myself, being always distracted and curious by new things, this is a must have to not get bored.
And yes, the salary and an extremely dynamic job market are nice to have as well. Of course, moving from Ireland to Italy I had to cut my salary a bunch, but I was able to obtain, after one year, a salary increase that for the Italian market is comparable to a management role (not being a manager). In addition, I feel (and this has been my experience so far) that in a couple of months I can always find a gig, which is peace of mind in a world that is always ever changing.
What does a typical day look like for you?
That depends on the job. For instance, in my current role in consulting the daily tasks can vary on a daily basis depending on the client’s need. However, I like to break down my ideal day as follows:
My stack is Python + SQL + DevOps tools (Azure/AWS/Docker).
When I started, I thought that a Data Scientist job was to build the best model possible and only spend time on fancy stuff. Boy I was wrong! A good Data Scientist is someone who really takes the time to understand the data and their context.
I see my job very much as a service job, where I’m providing decision making tools to my stakeholders. To do so effectively, I need to build trust on my output, and I can only do that if I know and understand the ins-outs of the data I’m responsible for.
- prototyping /learning/reporting: this can entail prototyping new analysis or ways to visualize information, apply some new modeling library
- bug fixing: It is probably underestimated the number of bugs that a data scientist has to solve. And the more senior you become, the more bugs you are probably going to solve, especially if you don’t want to burden you data eng/eng teammates.
- communication: This is as underestimated as bug fixing, especially, in my opinion, from junior profiles. The importance of having clear requirements and good relationships with your stakeholders is essential for a data scientist
Have you ever had imposter syndrome?
All the time! I’m now at a point where I can try and cope with it and take it under control. I guess, the more experienced you become, the more you are able to handle it, but I don’t think (for me) will ever go away.
Do you have tips for people who want to learn to code without doing a degree?
Practice makes perfect! I think that there is a period, the first 6 months/year where it seems like a never ending failure.
This is the steep curve, where you have to put the time and will to endure the fact that you don’t know what you don’t know and to solve even simple tasks it requires a lot of time and brain energy.
Once you feel like you’ve become independent (see previous definition), that’s when things are going to get interesting.
So, to summarize:
- Be prepared to face hard times at the beginning, but know that this is normal
- Try to enjoy the process, and find the things of programming that you enjoy. For me, it was visualization, now it’s automation and containerization. Also, it is useful if you have a field of interest (in my case is investment and finance), so that you can couple mini-projects with your interests
- Once you have the basics, stop following courses and jump into the ocean. Think about projects (or get help to design them) to face challenges yourself. This is, in my opinion, the best way to become a professional in your field.
- If you have time, use and participate in Kaggle. It is one of the best community for Analytics I’m aware of and you can learn a ton from them
What are your career goals for the future?
I’ve been trying to write consistently to my personal website but it’s been hard for a number of personal reasons. I started two years ago a YouTube channel (PhD2DataScience), but it was COVID time and now that we are (rightfully) starting to live again, this project has been paused.
I have a personal project in the works, related to crypto and time series analysis.
I’ve been mentoring sporadically, but I’d love to do this on a regular basis, and maybe build some online courses on top.