You may remember in August I wrote my first blog post about beginning the #100DaysofCode Challenge. A couple of days ago, I completed the Challenge and, to be honest, I couldn’t actually code for 100 days in a row! Although I was unable to code every day, I learned 5 major things about myself and programming I thought were important to share.
1. I questioned the challenge halfway through
There were days I just became overwhelmed with whatever code challenge or exercise I was doing and decided to take a step back, enjoy other activities, and then come back to my editor’s window:
Looking back on the challenge, I would say I went through two phases:
Phase 1: Hype & fast pace
During the first 50 days of the challenge, I was on fire. I progressed a lot in Free Code Camp’s coding challenges. Also, I spent more time working on my personal projects and others, until I felt completely burned out.
Phase 2: Why I’m I doing this?
During the second half part of the challenge I started to question it:
What’s my real motivation to doing this? What’s the hidden purpose of making my progress accountable on Twitter every time I coded?
I know these statements may sound like a deeper/philosophical issue, but stay with me. Questioning myself allowed me to switch gears. I started to focus on the challenge’s benefits instead of the challenge itself. Then the answer appeared:
2. I just want to become a better programmer.
Understanding this was the real motivation for the challenge helped me stick with it until the end and allowed me to focus.
3. Being a coder is not the same as being a programmer
I know this may sound like just my opinion, but this was a key part of getting the most out of the challenge for me.
There’s so much to learn and practice from programming languages and frameworks. There are a lot of tricks, best practices and standards. There are tons of helpful articles of ways to set things up and every framework has its own culture of doing things. For example, during the challenge, I was able to get very familiar with setting up mini projects using different flavors of JS and Rails retrieving data from other external API’s, building my own API, handling RESTful requests, visualizing data nicely and cleanly and save things on a database. I would deploy the work and be done…
But, is this really programming?
I found myself wanting to enhance my programming thoughts and logic. So, instead of throwing myself onto the keyboard to code instructions in a certain way to win a badge in whatever website with code challenges, I started to study and practice problem-solving during my last days of the challenge. Spending time practicing problem solving is a great investment. For example, Codility is a great place for challenging yourself to solve problems in whatever programming language you feel comfortable.
This represented a huge twist in the challenge for me. Though I continued to make myself accountable on Twitter sharing my progress, I focused more on refreshing my problem-solving skills than actually coding. This involved digging into topics like algorithm time complexity, sorting/searching algorithms and math problem solving.
4. Get a “thinking” notepad
When solving problems, it is very helpful to have a small notepad where you can doodle around the solution, before beginning to actually code. Sometimes you can just abstractly solve a problem in your mind, but it helps to map your solution before you begin.
The notepad forced me to think a little more instead of just jumping in and coding my solution right away. Doing this has helped me to consider more scenarios and cases for whichever problem I’m solving.
5. The challenge is only the start
Day 100 arrived and I submitted my last piece of code. I was writing some Ruby tests and it felt good to keep up the challenge to the very end. But, at the same time, I was anxious about what’s next. I would recommend any developer from any level to take this 100-day challenge. There is no question that it will help to improve your skills and problem-solving abilities. For me, every day helped me to be more confident about my solutions and gave me the freedom to adapt to different programming languages. Finally, I gained the ability to be resilient when I got stuck with a specific problem.
Have any questions about the #100DaysofCode Challenge or thinking about participating yourself? Leave a comment below and connect with Gorilla Logic and Victor on Twitter.