The first time I heard of the #100DaysOfCoding challenge was in 2014. I read an article about Jennifer Dewald and how she taught herself how to code by making a website every day for 180 days in a row. I was incredibly impressed by her accomplishment and doing a challenge like this was on my ToDo list ever since.
I have always admired software developers who would come home after a day at the office, and sit down to work on their side projects. It is obvious that they love coding, are confident in their abilities, and they consider coding as a pastime. These attributes are also what makes them excellent at their job.
That was never me. I am motivated and excited, I love coding, but when I'm supposed to sit down I doubt myself and end up watching Netflix instead. The reason is that I want to avoid dealing with and overcoming my self-destructive thoughts:
- Fears and self-doubt: "I'm not able to do this project. I will fail and once I fail I'll never make it. Better not to start at all to keep my options open!"
- Laziness: "This is hard work, isn't it? I am tired and deserve to relax."
- Perfectionism: "If I do this challenge, it has to be perfect. If I don't make impressive progress every day, it does not count. You know you'll fail, so don't even try."
I know this is a wall I built myself, and I can break it down and make the sky my limit!
(Sidenote: I noticed how these thoughts are similar to those that made me fail at losing weight. Fears would hold me back from even getting started, laziness would keep me in the couch and away from the gym, and perfectionism would lead to black and white thinking which in turn made my weight bounce like a yo-yo until I gave up in exhaustion. Spoiler alert: I cracked this behavior in 2018 and lost successfully 16 pounds and am maintaining my weight with ease 💪)
- Improve my fluency in Python and C++.
- Practice data structures and algorithms.
- Break down the barriers in my head and grow my self-confidence.
- Make it easy to sit down and code, and build the habit to prefer coding over Netflix.
- Implement projects and contribute to open source.
- Get those badges in Codesignal and green up my Github contribution calendar! 💪
- Code for at least one hour per day.
- Take it easy during the week: work on small coding challenges in Codesignal.
- Work on bigger projects and open source contributions on the weekend.
- Summarize what I have learned in a blog post, once a week, written on weekends.
- I can earn a "joker" by coding extra hours. Those will come in handy when I want to go on weekend trips or camping, and I know I won't be able to code on those days.
- Take it slow. Small steps on a daily basis will bring me further than trying too much, too soon, and potentially burning out and giving up. I will get naturally better and faster, and before I know it I'll make big strides on a daily basis.
It has been only three days into the challenge, but I have already learned a lot!
Every time I finish a new coding task in Codesignal, I look at other peoples solutions and compare their code to mine. That way, I learn different ways of thinking, and more often than not neater ways to implement the solutions.
So far I've learned about:
- Differences between Python 2 and Python 3, for example:
/is an integer-point division in Python 2, it is a floating-point division in Python 3. In order to get an integer division in Python 3 you have to use
- You can reverse a list using extended slices, e.g.
Lambdas are anonymous functions. The syntax to use them is
lambda argument: manipulate(argument), e.g.
add = lambda x, y: x+y
- List comprehensions and Dict comprehensions
Furthermore, I do already feel more confident in my abilities, and the wall of self-doubt is coming down fast. The time I need to convince myself to sit down and code get progressively smaller, and once I'm at it, I don't want to stop!
The #100DaysOfCoding challenge is also the kick-off for me daring to write blog posts (see here, it's my first one!), me giving the world a glimpse to my life through social media (follow me on Instagram and Twitter), and me committing to other #100DaysOfX challenges such as:
- #100DaysOfRunning (Aiming for the NYC marathon 2019! Are you on Strava? Become my friend: Strava)
- #100DaysOfUnsubscribing (Gotta clean out my inbox from spam, it's out of control)
- #100DaysOfMeditation (I need to improve emotion regulation and concentration. My monkey mind is out of control as well 😛)
- #100DaysOfStretching (I'm great at being active but real bad at rehab and stretching, but that's about to change!)
I would call that life-changing 🤟