5 things I learnt from completing #100DaysofCode
I learnt some important lessons during my #100DaysOfCode challenge. In this article, I've put them together to perhaps, inspire someone else.
This is a guest post written by Microbiology Graduate, Fiyinfoluwa Akinsiku.
On February 8, 2020 I completed my #100DaysOfCode challenge which I started on September 12, 2019.
When I decided to start this challenge, I had some fears, especially the fear of criticism. But the fears aside, I believed it was going to be a smooth ride. Write some code, post it on Twitter every day for 100 days, how hard could that be, right?
September 12, 2019
It turned out to be quite challenging. I had not factored in other aspects of my life.
Life won’t pause for you to do something, you have to find a way to do it no matter what you might be going through.
So, instead of 100 days, I did the challenge for 145 days. In the process, I improved my coding skills, but there was more, I learnt important lessons about life and getting work done. In this article, I will be sharing five of those lessons with you.
1. The importance of a supportive community
It always takes a village to raise a child.
During the #100DaysOfCode (which became 145-Days-Of-Code for me), I had a lot of moments where I wanted to quit the challenge but one the things that kept me going was the amount of support I received from Twitter, especially the tech community.
I had Twitter bots retweeting my programming related tweets, and experienced developers on Twitter refactoring my code (even though I didn't ask because I didn't know I'd done something incorrectly or inefficiently). Also, well-wishers sent me internship and vacancy links to wide range of job opportunities (including the ones I was obviously not yet qualified for). In addition, having even "non-tech" people cheering me on every once in a while was super encouraging.
Though sometimes, to be sincere, it felt like pressure but I believe it was necessary and helpful.
My last entry was going to be on Monday, February 10 because I had a really busy weekend and I did not plan to code at all. But when I posted my 99th entry, my Twitter family started congratulating me in anticipation of my 100th entry. I was surprised, I didn't see it as a big deal and I had not thought anything of it until then. So, in spite of how exhausted I was, I excitedly brought out my laptop that Saturday and did what had to be done.
2. You need to be visible for people to support and encourage you
For people to support and encourage you on whatever journey you're on, they need to see that you are actually doing the thing.
When you do the work, it shows.
This was a little difficult for me initially. Because by putting my #100DaysOfCode challenge online, I was giving people permission to hold me accountable and see all my silly mistakes. But on a second thought, it isn't really such a bad thing because it would also help your learning process, which is what it did for me.
I also don't think anyone would have sent me any links to apply or materials if I didn't put it out there that I was working towards becoming a developer.
3. Be flexible in your learning approach
Most of my learnings on this journey of becoming a developer has been through videos; sometimes, I would read one or two articles if I got stuck.
During my #100DaysOfCode, I was also following a YouTube tutorial playlist on Django framework and about four videos into it, I still didn't really understand what the tutor was doing. Besides the fact that I was new to the topic, the tutor spoke really fast and had a different accent from what I was used to.
Despite not understanding much from the videos, I kept watching because I felt since I'd started it, I must complete it. But after speaking with a friend, he advised me to read instead. So I read some articles and documentations, and to my surprise I understood the Django framework better by reading.
There are many ways to learn; by watching videos, reading, or being in a physical class. The most important thing is that you are actually learning.
Be open to change. If a particular method no longer serves its purpose, feel free to switch to something else.
Disclaimer: If learning in a school is not your thing, please don't take this as an encouragement to drop out. Just try to adapt, and then you can now use the learning method that fits you during your leisure time. Do not let your school fees go to waste, please.
Also, if you're learning a particular programming language and it seems difficult after trying all learning methods, move on to another language. More so, when other programming languages that can do the same thing as the language you might be finding so difficult to learn.
Editor's note: There are might a thing or two to say here about Programming Paradigms and how someone might start-out learning to code with like Haskell, which is a language that follows a functional programming paradigm and when they switch to like Python (structural programming paradigm), they start to understand things better.
4. Know your "why"
Why are you learning to code? Why are you going into tech? Why are you even doing anything?
Do you know why you do what you're doing?
Knowing your why—the reason you do what you do—is very important. It is the one thing that will keep you afloat when frustration comes. Note that I said when not if, because frustration is inevitable. This is why it is important to have a foolproof 'why' and not just do something because others are doing it too: the bandwagon effect.
5. It is okay to take breaks
Seriously, rest. Sometimes, it's not that you don’t know how to solve the problem, your brain just needs to take a break from it.
Sometimes, it is not that you don’t know how to solve the problem, your brain just needs to take a break from it. By the time you come back to the same problem (cause it won't go away while you rest), even if you still do not have the solution, it would be easier for you to think properly. There is a science to it.
Also, don’t take a break so long that you even forget you were trying to solve something.
The past 145 days have been more than I can put into words. I started the challenge by feeling like I could conquer the world, then it all got so overwhelming, then I plateaued for days. At the end, I realize that it is all part of the learning process.
Again, the most important thing is that I am actually learning. I no longer feel like an illiterate when I don’t understand something because I know that overtime I will understand it if I just keep putting in the needed effort. But in case I don’t get a grasp of it? I bring out my flexibility suit.
My two cents to any beginner reading this is: You are learning this thing for the first time so take it easy on yourself. Mistakes are great, they force you to learn. Don’t put yourself under any pressure to learn or accumulate certificates quickly, it is counter-productive.
When I started the Microsoft Entry-level Software Developer track sometime in September 2019, my goal was to complete it by December by finishing a course per week. This way I'd have enough time to do the final project. The entry-level software developer track had 13 courses which also had at least 10 modules each, but somehow I believed I could do it and I probably would have but I didn't.
I was under so much pressure because there were some parts of the course I didn’t understand and as a result I couldn't put them to use without going back even after I had assumedly completed and passed the course. This was when I decided to quit.
Although edX gave me a 90% scholarship and I wasn't paying much, I just couldn't keep wasting money and time if the purpose would not be fulfilled. It was painful for me because I really wanted that certificate. I felt that adding the certificate to my CV would show how serious I was, but what happens when I'm asked to defend the certificate?
I think it is more important to actually understand a concept and know how to apply it, than to have several certificates deceiving people that you understand the concept.
Fiyinfoluwa Akinsiku is a Microbiology graduate from Covenant University, who is transitioning into tech. She is passionate about user-friendly consumer-facing technology products that improve the quality of life. She is also keen about personal development.
You can connect with her on Twitter