Like A Girl

Pushing the conversation on gender equality.

Code Like A Girl

#100DaysOfCode: How I pledged to this for the millionth time

I have a bachelor’s degree in Software Engineering and I would consider myself as a good coder. However, being good never really satisfied me and I have always wanted to be the best. I have always known the areas where I have lagged in terms of programming. I genuinely like coding. I didn’t jump into this field by chance; I had opted for it and always had a thing for it.

Like every other programmer who wants to get out of their comfort zones, I wanted to learn and grow as a coder. As soon as I landed my first job, it became very clear that learning doesn’t come from a full time job. Yes! You heard me and I can see some faces nodding in agreement too. If you’re at a good company, you’ll get the chance of working with good technologies, learn coding discipline, get a chance to review others’ code and get your code reviewed too, however, this is just the tip of the iceberg. Sooner or later, your tasks become redundant and if you sit down and analyze your day, I can guarantee that 90% of the people would say that they didn’t learn anything new at work today.

I, like all other passionate developers, wanted to learn things on my own. This is how I stumbled upon Alexander Kallaway’s article. The article was amazing and I could relate to every word written in it. I felt motivated and determined and I set out to take this challenge. That was 6 months ago. Since then, I have tried starting this challenge a gazillion times, but you know what? My amazing procrastination abilities always got the best of me

Sometimes I felt overwhelmed, the other days I was too tired to work or had some really important thing to do like binge watching Gray’s Anatomy (nothing can beat that now, can it?)

However, there were days when I felt exceptionally motivated and determined to start off things. There were days when the Rational Decision Maker in my brain won from Instant Gratification Monkey.

If you haven’t read this article, you need to read this NOW!!

Why didn’t I code on days when I was feeling exceptionally motivated?

On days when I was feeling motivated, I used to sit down and make a huge list of topics that I needed to go through. The list was very well organized, it had bullet points in too (Yes! Bullet points! No list is complete without bullet points now, is it?) I used to color code things and give pretty headings too, but there was one thing that I kept on doing wrong

Trying to learn everything, all at once

This is how my brain used to act when I was making a list:

  1. We need to learn a new language. Yes! We need to. I think let’s start with JavaScript first. But wait! It would make sense to start JQuery too because you’re not a front end developer if you don’t know JQuery. But how can you be a web developer if you don’t include a back end language in this #100DaysOfCode challenge. Let’s add thattoo. For back end, we should start with Java. But it’s all about Node.js nowadays. How about we include Java, Node.js and Python, all three languages at once and learn them in parallel?
  2. Since we need to focus on design patterns too, therefore, let’s google ‘Best Design Pattern Courses’ and enroll in everything. Of course, we’ll have time to watch all these EVERYDAY
  3. Wait! We can’t forget about Big O and Algorithms now, can we? Let’s download really huge books and let’s dedicate an hour or two daily for this
  4. Let’s get signed up at LeetCode, SPOJ, HackerRank and every other website that you can get and let’s focus on them DAILY

Can you see what’s wrong here? I wanted to do everything at once. Not to forget, I already have a bachelors degree in Software Engineering and I work as a full stack developer. Instead of trying to learn everything from scratch because that’s how I am, I should have focused on one thing at a time. I used to have this huge list of things that I had to do everyday. Of course, that was not possible with a full time job. Then I used to decide on what was important and since everything seemed important to me, it was next to impossible to pick one.

I used to enroll in courses, find them too easy for me, leave them there, find something else, get engaged there and then after some time, hop on to the next bus. One day, in my quest of knowledge, I stumbled upon Quincy Larson’s interview where he said something similar to this,

“Pick one thing and then focus on it”

Pledging to something publicly

It is important is to pledge to something publicly. I can share dozens of journal entries where I have written down what I had done that day, but it’s of no use if you can’t stick to that routine for long. I think this is why the main element of #100DaysOfCode is to tweet your progress and fork the github repo where you can share your daily progress. This not only holds you accountable for things, but also lets you get in touch with people who are dealing with similar problems. I never pledged to the challenge publicly so on days when I didn’t feel like coding (which was almost every other day), I didn’t really care about it. I would just think to myself that I can skip this day and I would start the challenge again tomorrow

What is different this time?

I don’t want to procrastinate anymore. I don’t want to waste my days anymore. I don’t want to tell myself that I could’ve been better at my job only if I had tried to. This time I want to start this challenge and really commit. It’s not even about coding anymore, it’s about self discipline and commitment. It’s about starting one thing and then doing it till it’s finished. This challenge is not only going to help me with my coding skills, but it’s also going to help me grow as a person. Today, I am going to start this challenge. I am not only going to tweet about this daily, but will also push commits to the github repo.

This is what my list is going to look like:

  1. Complete Object Oriented Programming in Java — Coursera
  2. Complete Java Masterclass — Udemy

These two are important for me because the job I am going to start next requires experience in Java, Apache, Spark and Hadoop

3. Work on FreeCodeCamp

The reason why I have included FreeCodeCamp in this list is because FreeCodeCamp gives a very clear and concise map to work with. The algorithms part is amazing. I know this for a fact because I got stuck there a lot. It also hands out certifications and provides an opportunity to work with non profit organization, something I have been dreaming to do for a long time. Plus, in the midst of those mind blogging threads and processes, FreeCodeCamp would prove to be a heaven.

Let’s see how far I go this time!!

Week 1 and 2 Update:

It’s been almost two weeks since I started this challenge. This is what I have completed in these two weeks:

  1. Completed 5 weeks of OOP course on Coursera, just left with the last week. Once I complete this week, I’d get my certificate and can move on to the next course of specialization
  2. I ditched Udemy’s master class because I was too busy with Coursera’s class. It’s still on the list, but not a priority right now
  3. I am halfway through Basic HTML and HTML 5 lessons on FreeCodeCamp

I am guilty of taking 4 days off because I had to go out of town and couldn’t work there. However, since it was planned and I knew beforehand that I wouldn’t be able to work on 4 days, I had made up to that by working extra on the previous days