Note:I started 100 Days Of Code challenge on November 14th, 2018 and completed it February 21st, 2019.
Coming off of a tech reprieve for 3 months, I saw a tweet on Twitter about a developer mentioning the 100 Days Of Code challenge. I decided to participate in the challenge to re-develop my relationship with programming.
The 100 Days Of Code challenge provided a lot of flexibility to the participants. There are only two rules:
1)Code for a minimum of an hour everyday.
2) Tweet and/or share your progress using the #100DaysOfCode Challenge.
The flexibility of the rules allowed me to fit the challenge to my schedule. As an individual who worked close to 40 hours a week this gave me an amazing amount of freedom.
Although I’m a developer now, when I made the decision to do the 100 Days Of Code challenge, I was working full-time as a site coordinator for a public school system. So, all of the coding I did was outside of work.
That being said, my approach to this challenge was not set up to create a certain number of apps in 100 days.
My main thing was coding, being enmeshed in technology. It was literally (LITERALLY) the act of turning on my computer, opening up my Terminal, and Text editor without anxiety was my main goal. I wanted to prove to myself that I can code and enjoy technology again.
After I made the decision to do the challenge. I had begun to think about what I would do. However, thinking about doing a challenge is a lot different than actually doing “doing” the challenge.
Programming is a muscle that you will always have to continue to flex and grow. I stopped programming for 3 months. At this point when I had returned to programming, I was super out of the loop because I had made moves to disassociate myself from that community due to my experience with Girl Develop It.
While I was participating in the challenge, I found that there were some key takeaways and/or tips that helped me finish 100 Days Of Code Challenge. To that end, this is the advice that I can give to you in completing a coding challenge:
Disclaimer: The tips I am about to give you are not be taken as gospel. These pieces of advice helped me, so hopefully it will help you.
Think about what you really want to do in 100 days.
(either before the challenge, during the challenge, etc.)
Make a plan for what you would like to build during the challenge. For example, you can decide to only build and/or learn things about ReactJS, or another library/framework. Your plan doesn’t have to be super detailed. However, I have found it was good for me to know what I was going to do before turning on my computer everyday after work.
In my case, for daily plans,I would make a list of things that I didn’t get completed the day before, so the following day, I knew what I needed to work on. I had to write these things down, or else I could easily forget what I was going to do.
You will need self-motivation to work on the challenge every single day. Write reminders to yourself. Ask people to check on you because it's you, and yourself that will do this challenge. You can pair up with another developer for support, but
even if you work with another developer, you still must hold up your part of the bargain, and put in the time and work to complete the challenge on your end.
My minimum daily goal was an hour, and once I met an hour, then I would get up to do some chores, and then come back to coding.
FYI, a sub-rule to the challenge is that if you miss a day, you add the hour to the following day.
There are two things about time that I found important: First, the rules stipulate you have to code for an hour everyday. The rules don’t say you have to code for a straight hour everyday. You have complete control over your time. For me, I know myself. There were somedays when I could come home and have the energy to code without pause. But, other days, I needed breaks. Sometimes I would split my daily hour up into either 20 minute or 30 minute increments. I kept track by timing myself. Timing myself brings me to my second thing about time: I would recommend that you use a timer to keep track of your hour. If you have an accurate sense of time, good for you.I do not have a sense of time. But, this is a challenge, so having a stop watch/timer never hurt anyone. :)
Be patient. Don’t beat yourself up because you can’t think of a solution right away. The premise of this challenge was to push yourself and expand on your programming skills over 100 days. You have 100 days(and more) to get things down. No one said that you had to understand something immediately.
Googling/Stack Overflowing/Slacking your problem, and trying different solutions still counts as coding. Coding/Typing, I have found, are often seen as the same thing.Coding and Typing go together, but they aren’t the same thing necessarily.(depending on the situation). I feel that it's not taken into account that there are bugs that come up in your code so you do have to take some time to figure those out before trying again.
If a bug gets you down, get up and walk around. Staring at a screen hoping for a solution is wasting time and can be draining. Again, you can split your time up if thats better; Give yourself some breathing room. But, if you are timing yourself--make sure to pause the stopwatch before taking a break so you don’t throw off your time.
If you like noise while you code, find a show that you know you can binge, or a playlist that you love.(Start the music or show before starting to code).If you don’t like noise, then create a space where there is minimal chance of sound disrupting your flow. If you like large spaces, or small spaces, etc. find a place and/or environment where you can relax and focus for a set period of time.
This includes snacks, drinks, chargers ,etc. No matter how you decided to complete your hour every day, I would recommend having everything you need for coding around you before you start. There is nothing more irritating to me than having to get up when I’m in a good focus and get something which breaks my concentration.
Why is this important? You get attention! Tweeting, blogging, etc. about you participating in the challenge puts you on the map, or on someone’s timeline. Tweeting about my experience, gave me more exposure which was beneficial to my career as a jr. dev. I received technical interview practice, I met new developers in the Twin Cities and outside of the state, I got interviews(informational and technical), and just got overall advice about working in tech.
If you want to do it for you, and keep it small, like telling your family or friends, you can send updates to them throughout the challenge. I would recommend to share what you are doing to someone. You should be proud of what you’ve accomplished so far, no matter how far you are into the challenge. Remember that!
100 days is a lot of time. Try not to think about the 100 days as a whole, but in pieces..parts...etc. I really had to work on this a lot. For example, I made check-ins in my calendar and planner when I reached the double digit days, or Day 50. I bought a large calendar and placed that on my wall. I broke my time up in different ways to make it more manageable.
Although I've shared with you the tips that worked for me, not everything while coding for 100 Days was peachy keen.
For example, I didn’t think about how using Twitter everyday for 100 Days would create a dependency on the social media site. Second, I experienced Imposter Syndrome a lot while working on things. Finally, I wish I had done the challenge with another dev for more moral support.
Despite the few downsides, I really did have fun and began to relax more when it came to programming.
The real true goal of completing this challenge was me actually completing the challenge. I wanted to push myself. I followed through the 100 days to see if I still felt that I could make a place for myself in the tech community, and if I still wanted to pursue programming as a career. 100 Days goes fast!
The good news is that while finding out I wanted to continue to program, I did a lot of amazing things.
Here is a list of things that I completed doing the #100DaysOfCode Challenge:
- Starting a Udemy course
- Completed an entire site of Python3 practice problems
- Updated my portfolio
- Participated in a hackathon
- Learned the basics of Big O Notation
- Practiced for tech interviews
- Applied for close to a 100 jobs and/or apprenticeships
- Attended a JS conference in Hawaii
- Finally(finally!) got to the 3rd book in the You Don't Know JS (YDKJS) series
- Received my first full-time job offer as a programmer
- Improved my skills in searching for a solution online
- And, most importantly,I completed the challenge
I would personally recommend that any dev participate in a coding challenge/competition. It's a great opportunity for your professional growth.
If any dev is thinking about participating in the #100DaysOfCode Challenge, hit me up on Twitter! I love to see devs joining the challenge.
Note:This post was originally given as a talk at Minneapolis Junior Devs in June 2019.