My #100DaysOfCode Journey

Hello, I’m Guillermina. And I’m a #100DaysOfCode survivor.

Guillermina Sutter Schneider
Analytics Vidhya
6 min readApr 18, 2021

--

As part of my this year’s Resolutions, I decided to embark on the #100DaysOfCode challenge. Don’t know what this is? No worries, I got you. The challenge consists of: 1) coding minimum an hour every day for the next 100 days, and 2) tweeting your progress every day using the #100DaysOfCode hashtag.

My journey started on January 1, 2021. I decided to go with Python as the main programming language. Overall, I found the experience awesome and would 100% recommend giving it a try.

Also… who doesn’t like a nice activity log on their GitHub profile?

Day 1–5: Uhhh… Now what?!

Ok, so I publicly committed to this challenge without having the slightest idea on how to start or where to start. During this first week I ended up creating a web app that tells you if Chick-Fil-A is open. Because… Who hasn’t been hangover on a Sunday morning thinking about getting Chick-Fil-A just to realize later on that they are not open? Huh?

I used dash and plotlyto create it, together with some CSS for styling. The most painful part of this wasn’t actually dash but CSS. It took me an awful lot just to figure out how to align each of the elements in the page. The different position properties, still give me a headache, and is something I realized I definitely need to work on.

In case you are interested in learning more about dash, Udemy offers a crash course that is easy to follow and I personally found useful.

Day 6–27: Everything Machine Learning

I’m not going to lie, at this point I started getting a little anxious because I thought I was not going to have “enough things to do” during this challenge. That’s when the Data Mining class I took back in Spring 2020 came to the rescue.

I cannot emphasize enough how much I learned during this phase of the challenge. From feature engineering to evaluation metrics, this was probably one of the most useful coding sessions. It made me go back to one of my favorite machine learning books to brush up on the theory and the math behind the different models. I even started creating flashcards with some machine learning concepts that I also posted on Twitter.

Flashcards I created along the machine learning phase of my #100DaysOfCode

I ran a total of 11 models: decision trees, bagging, random forest, AdaBoost, Gradient Boosting, XGBoost, KMeans, KNN, Naïve Bayes, and SVM. Of all these, XGBoost was the one I enjoyed the most. Not only because I got to test it for the first time, but also because it surprised me the way it outperformed in almost every metric the rest of the models. I talk about this more in depth in my journey log.

Day 28–49: Short programming problems

During this period of time, I came across Santiago’s short programming problems tweet. This came in pretty handy because after having reviewed the machine learning models, I felt like I needed to spend more time solving interview-like problems.

I learned an awful lot about how to think in a more pythonistic way. There were times when I went back to my code just to realize there was a much simpler and cleaner way of solving a certain problem. There were also times when I got really stuck and could not seem to find a solution to the problem. But I was just so determined to finish them all, that I went back to the code the following day, gave it more thought, and voilà! These problems *definitely* get more fun (aka more painful) as you move towards the end.

Day 50–53: When math meets matplotlib

Half-way through this journey I started to stress out because no only I didn’t have a plan, but also I didn’t have enough ideas on what to code next. Since I’m a dataviz aficionado, I decided to have some fun with matplotlib and try to plot beautiful math functions.

Can you tell I’m running out of coding ideas? Yes, me too.

Day 54–58: Just when I though I was out…

One of my favorite movie quotes of all times is Michael Corleone’s “Just when I thought I was out, they pull me back in!”

This is exactly what happened when I ran into another tweet from Santiago.

I loved his previous programming problems so much that I had to give these at least a try. Spoiler alert: the more you solve, the more difficult they become.

Day 59–100: Confetti all the way!

I liked the idea of solving interview-like programming problems, so I decided to give Confetti AI a try. Confetti AI is an education and skill-building platform that helps people jumpstart their careers in data science and machine learning. They have both questions and programming problems related (but not limited) to: ML Theory, Engineering and Tools, Productionization, and Applications.

Some functions I built with Confetti AI

I could not recommend Confetti AI enough to those in the search of a new job as a data scientist, ML engineer, or data engineer. (Or pretty much anyone who would like to take a deep dive into ML.) Pssst! If you are considering going Premium, you can use my link. I’d very much appreciate that!

I learned the hard way…

If you made it this far, you probably noticed that on days 50–53 I had no idea what to do or what to work on, until Santiago came to the rescue with his short programming problems. But to be honest, I felt like that almost during the entire challenge.

That being said… One thing I kinda regret is not having planned way ahead what I was going to focus on. Had I listed or at the very least had in mind four or five projects I wanted to work on, this journey would have been way easier and less stressful.

So now you know, plan ahead, way ahead. That’s my #1 advice to you.

Are you planning on doing it?

Tag me in your tweet! I’m really interested in seeing what you do and how you navigate this challenge!

More info…

You’ll find my #100DaysOfCode repo here.

…and more details on the challenge here.

--

--

Guillermina Sutter Schneider
Analytics Vidhya

Argentine data scientist living in Berlin. I like numbers, dataviz, and Germany. Not necessarily in that order.