On July 23rd I was not sure what I was getting into. I felt the need to see the progress I was making & needed some pressure to do some actual coding instead of just reading about creating stuff and indulging in startup porn.
I really wanted to share what I was doing, but hated that I had to show off how shitty my coding skills were. Turns out, people don't care, but are mostly supportive - who would have known?
"Every day that you consistently code, you’ll build momentum. That momentum will make it easier for you to learn more advanced topics. You won’t have to spend extra time trying to remember what you did previously. You can stay in the “flow” of coding"- from the 100days of code website
Read on if you are considering the challenge or if you want to read my own analysis of the last 100 days :)
I started to learn Computer Science in January this year with the MOOC "Introduction to Computer Science" from Harvard. Highly frustrating, but also highly recommendable. After that I see in my github repository that I played a bit around with Python & Django, but besides that I do not remember what courses I was taking.
But since starting the 100 days I have a clear log of all the things I have been trying to learn and it works as great motivation to see where I was, compared to where I am today.
For example, in the beginning, I was very frustrated with making basic authentication & setting up projects.
Looking back, I see I was overly optimistic about my capabilities back then. Without knowing anything about storing sessions, connecting to an authentication service, how did I expect to make this work? Now I know enough to get this working (or at least know the middleware to make it work)
Day #2 of #100DaysOfCode: failed hard trying to setup Microsoft Graph authentication within a Microsoft Teams app 😩. Did learn about configuring an app to authenticate as a standalone app.— Jeppe Rasmussen (@jepras_) July 24, 2018
Tip: At some point during my journey I got frustrated that I would not remember simple function structures I had learned days before on freeCodeCamp. After that I focused more on slow learning, meaning that I would actually look up the functions I did not understand & search to understand the outcome of every line of code.
On my 9th day I started to read the documentation about the site generator for React, Gatsby. Reading that 90 days ago it was almost pure gibberish. Now I am happy to say that I kinda get it (at least to the point to make this website!)
I tried making an application with Gatsby that pulled data from Facebook to show you all the sneaky data they have on you.
.. But then I found ways to just reuse styling and take advantage of the amazing tools such as webflow & all the great css frameworks to make something that does not hurt ones eyes.
Day #23 of #100DaysOfCode: Wasted way too much time figuring out how to render just the first name instead of the full name, until I found an annoyingly simple way to do it 😣 But happy with the way the sidebar turned out at least! pic.twitter.com/xHmPyrIXq0— Jeppe Rasmussen (@jepras_) August 15, 2018
Tip: On days with low motivation watch step-by-step tutorials. On days with a busy schedule do freeCodeCamp challenges in the morning.
Day #44 of #100DaysOfCode: 2 hours of shifting between thinking; "fuck, I am an idiot" & "I am a genius".— Jeppe Rasmussen (@jepras_) September 18, 2018
In the end, I managed to save some data from a form into a database. Not sure that is enough to call myself a genius 🧐
Understanding how to develop with APIs was always something I wanted to do. Having done several projects using APIs, I can now say that I feel comfortable with using basic apis.
Tip: At some point I was reading Deep Work by Cal Newport, which significantly increased my progress. Doing 3 hour sessions immersed into one subject at a time ment that I finally understood complex topics. Looking into something for just half will never enable me to grasp something completely. But struggling, researching & trying out things for 3 hours straight means that some dots finally start to connect.
This was a huge achievement for me
Day #51 of #100DaysOfCode: Managed to get a full stack application setup and working. Next step is to add own functionalities to it and see if I also can manage to deploy it. pic.twitter.com/ITlHHQo34X— Jeppe Rasmussen (@jepras_) September 25, 2018
And it gave me the lust to create more. At this stage I was not certain how to do any of this..
Day #62 of #100DaysOfCode: Studied single-page-app architecture, routing & rest APIs. The goal is to create a new app setup with backend only providing the data from the db through an API & then only let React handle that in the frontend .. Let's see 🙃— Jeppe Rasmussen (@jepras_) October 5, 2018
But steadily the functionalities increased
And after many days of googling/watching tutorials/trying out I finally made it work
Day #78 of #100DaysOfCode:— Jeppe Rasmussen (@jepras_) October 21, 2018
- Finished fcc redux track.
- Started on another React/Redux tutorial to use it for my own test project. Feeling a little bit proud of my process, while still pulling my hair out because I havent had the aha-moment yet 🥴 pic.twitter.com/vrTxd7diLc
After that I found even faster ways to set it up with Firebase and to add even more "complicated" functionalities such as conditional rendering based on the Team you were in.
Day #79, 80 & 81 of #100DaysOfCode:— Jeppe Rasmussen (@jepras_) October 24, 2018
- Have spent way much time to create this random quote machine for the freeCodeCamp challenges: https://t.co/IELLw7N4tZ
- Investigated how to create teams in the Team Reporter app .. Quite lost 🥴
It is actually quite motivating to see how often I tweet about frustrations & days after then see the problem solved.
Day #84 of #100DaysOfCode:— Jeppe Rasmussen (@jepras_) October 27, 2018
- Created own React/Firebase boilerplate for quick future project spinup: https://t.co/FZypVY1pbz
- Might finally understand Redux interaction with the database enough to figure out how to only show tasks logged per team 🥳 (thanks to @Firebase) pic.twitter.com/4s6yfbihfO
.. And now in the end I actually have a live (somehow) working application! It is not perfect, and not that valuable, but it has the basic capabilities that are the fundamentals for all apps.
On day 92 I noticed something. Instead of following tutorials for everything, I was actually starting to build things my own way. I was suddenly starting to structure projects in my own way & finding my own solutions instead of just following step-by-step guides.
Topics I had no clue about before, but that I kinda understand now
Doing 100 days of coding was not easy. Finding time to code after a full-time job that was draining a lot of energy was not always fun. It also meant saying no to a lot of fun stuff. The challenge did help to prioritize coding higher than many other things, and it helped me to do even a tiny bit - even on the days I did not feel like it. In the beginning I also skipped many days, but towards the end I hardly skipped any days.
Before the 100 days I did not know anything about authentication, fetching data from APIs, hooking up to a database or managing state of an application. I am still not mastering any of those topics, but for now I feel proud just to know that I can make these things work 🥳