DEV Community

Cover image for #100DaysOfCode
Aurelia Specker
Aurelia Specker

Posted on

#100DaysOfCode

I don't have a technical background.

I used to work in Market Research, and before that I was doing a degree in Modern Languages. In 2017, I took a coding course with Code First: Girls. This is how I got into tech and what led me to start a new job as a Partner Engineer at Twitter.

A few months into my new job, I felt like I wasn't improving my coding skills fast enough. I needed to find the motivation to code outside of work and force myself outside of my comfort zone to learn new things. This is what led me to take on this challenge.

This post is based on a talk I recently gave about my experience of the #100DaysOfCode challenge.

What

The #100DaysOfCode challenge was created by Alexander Kallaway when he became frustrated at the "slow speed of [his] progress in learning to code" (you can read more here). Alexander wrote an article about this and, as others read about the challenge, many decided to join in. Since 2017, thousands of people have taken up the challenge.

There are two rules:

  1. Commit to coding for minimum 1 hour every day for the next 100 days.

  2. Publicly commit to the challenge and Tweet your progress every day with the #100DaysOfCode hashtag.

You can add any other rule that will help you reach your goals and fit your schedule. For example, I added the following rule: "In order for the hour to count, I have to be working on something new." This meant that the regular day-to-day coding I did as part of my job didn't count.

Why

Join a community of supportive, friendly, motivated and like-minded individuals

The community is very active on Twitter and Slack, for example, and the support I got from others during the challenge was very motivating.

Make new friends

I was surprised at how many people (both at work and outside of work) who follow me on Twitter approached me to ask how the challenge was going. I had conversations that I would probably never have had without this challenge.

Work on projects, not tutorials

Every beginner will one day have to shift away from copying other people's code and following tutorials to start writing their own code. It's a difficult shift to make. The nature of the #100DaysOfCode challenge, and the fact that it spans a long period of time, will help you make this shift.

Opportunity to really commit to learning to code

I'd been wanting to code more for a while. This challenge forced me to not just think about it, but actually do it.

An active GitHub profile

You can clearly see how active my GitHub profile became when I started taking the challenge in January. It's also clear that I needed a bit of a break at the end of the challenge in April. But after that I kept on coding. The #100DaysOfCode challenge is a great way to build a new habit and consistency.

Alt Text

Keep track of your progress

It's easy to not realise how far you've come. Being able to look back at the Tweet thread that tracks what I did every day during these 100 days helps me see how much I learnt and achieved in that period of time.

It's a good excuse to Tweet every day!

Challenges

Finding the time

This was one of the hardest aspects for me. Work takes up a lot of my time, and I'm always busy when I'm not at work. I had to cut down the exercising and socialising to find an extra hour every day to code.

Alt Text

Not knowing exactly what technologies to learn

The diversity of technologies and programming languages that exist is one of the most exciting aspects of tech. And yet, as a beginner, it can also be daunting and it can be hard to know what technologies to focus on.

Not knowing what resources to use

The Internet is brimming with available resources (both free or for a fee). As much as this is amazing, it can also be overwhelming. How do I know which resources are good and trustworthy? How do I know what formats work well for me? Etc.

Feeling hopeless when progress is slow

100 days is a long time and there will naturally be some days that feel more difficult. It's normal to feel discouraged at times. On days like that, it's important to take a step back and appreciate how much you've done so far.

The imposter syndrome is real!

Tweeting about your progress daily can make you feel vulnerable. "What if people think I'm too slow or that what I'm learning is too easy?" "What if I'm not good enough?" It can be hard at times, but it's important to learn to block out these thoughts and ignore them.

How to succeed

Find a way to hold yourself accountable

This was really important for me. Knowing that my colleagues, my managers, my friends were following my progress is what ensured that I didn't give up in the harder moments.

Have a broad plan

You don't need a specific plan, but I would suggest having a list of things you want to do or learn about. My list included items such as using my Raspberry Pi or refactoring a Python project to be object-oriented. As I made my way through the challenge, I found out about new technologies and concepts and added these to my list. This meant that, when I was stuck for what to do next, I could simply revert back to my list and get started on the next item.

It's ok to have a bad day

You will have bad days. Embrace them and Tweet about it. You will likely get support from the community. Having a bad day is part of the journey. Talking about it will also help others feel less lonely when they have a bad day.

It's ok to take a few days off

Similarly, it's important to take a few days off if you need to. Midway through the challenge I took 3 days off, to enjoy some time with my family. I was feeling particularly tired then, because of a busy period at work and in my personal life. Taking a short break enabled me to feel energised and motivated enough to take on the second half of the challenge.

Alt Text

Consistency really matters

Consistency is what will help you develop a habit.

Persevere

It took me ~70 days before I started feeling the benefits of the challenge, before I started drawing connections, and before I started feeling that this challenge was worth it! Learning takes time. If I'd given up any earlier, I would never have realised how much I could learn during this period of time.

Don't be afraid to ask for help

I was lucky to do some code pairing sessions throughout this challenge. Sometimes, you just need someone to sit down with you and explain a concept or help you debug. Don't be afraid to ask for help: there will always be someone out there who is willing to help you.

Resources

The community is very active and there are many resources to help get you started and support you along the way. For example:

A snapshot into my learnings

I chose to get a broad exposure to different technologies, concepts and languages rather than focus on one big project during the 100 days. Here are some examples:

I used a Raspberry Pi for the first time

Alt Text

I learnt about object-oriented programming

Alt Text

I became more familiar with JavaScript and wrote code in Node.js

Alt Text

I looked into what happens when you deploy a project to Heroku

Alt Text

I explored asynchronous programming and promises

Alt Text

I dived into databases and used both MySQL and MongoDB

Alt Text

I honed my bash skills

Alt Text

I used Flask and Jinja to build the front-end for a Python project

Alt Text

And lots, lots more...

Latest comments (9)

Collapse
 
mdhesari profile image
Mohammad Fazel

Very inspiring article thank you!

Collapse
 
seanmclem profile image
Seanmclem

Any particular time of year? Or you just start anytime?

Collapse
 
aureliaspecker profile image
Aurelia Specker

Anytime that suits your schedule for the next 100 days ;-)

Collapse
 
lakendary profile image
Jade Rickerts

You've inspired me to give this ago.

Collapse
 
aureliaspecker profile image
Aurelia Specker

Yayy!! So glad to hear that! Let me know how you get on.

Collapse
 
chrisachard profile image
Chris Achard

Great writeup, thanks. It looks like you accomplished a lot!

Not knowing exactly what technologies to learn

Yeah - that feeling never goes away :/ There's just always so much to do and learn! And you never quite know if you're doing it the "right" way, or the "bad" way, etc...

I've just learned to lean into the feeling of discomfort that comes with learning something new, and just keep pushing! You really hit the nail on the head with:

Consistency really matters

Consistency (momentum) can really make or break a challenge like this.

Thanks for the post! It's great inspiration.

Collapse
 
aureliaspecker profile image
Aurelia Specker

Thanks for reading! I'm glad you enjoyed it. It's nice to know that all of these feelings are normal :-)

Collapse
 
oihamza profile image
Hamza

Congratulations - this is brilliant!

Some comments may only be visible to logged-in visitors. Sign in to view all comments.