Open Source and 100 Days of Code: Week 1 Update

Open Source and 100 Days of Code: Week 1 Update

I challenged myself to do the #100DaysOfCode to gain more understanding and also share my learning with the community.

Prologue

My first attempt at #100DaysOfCode was back in October 2021. It also coincided with the Hacktoberfest 2021 (which was in October). I started contributing to Open Source without really intending to. I saw a Repo that had some missing links and just wanted to let the maintainer/owner know the updated one. That was my first OS Contribution

I have written about it in my first Hashnode article: My first Pull Request that was merged and why you must contribute to Open Source.

But, I had to abandon it after 19 days of a continuous coding streak. I did 21 days where the last 2 days were after an interruption.

image.png Git Graph 1.png

I was not burned out but, just skipped a couple of days after the 21st day and lost continuity. It was around the same time that my back started aching as I was spending late nights and weekends sitting on my bed, learning to code. That was a bad idea and I refrained from doing that again.

Though I was not successful in finishing the challenge in that attempt, it helped me customize my Github landing page & build a resume website. I became better at using Git and Markdown.

And the most important part - I rediscovered my passion for programming thanks to supportive communities. I also found a Mentor to help me progress faster.

I can't stress the importance of getting a community and a mentor to support and guide you in this process. The learning that happens in a cohort can't be replicated in an isolated study environment.

Now, I had set up a good environment to get into coding & also got some like-minded people to travel with. The journey had become easier.

Learning 0.0

As Programmers, we are accustomed to starting things with 0. It's theoretically relevant too since I had to restart. So here's what I learned during my first attempt. Some of them are documented as blogs:

  1. Github Submodules and how you can use them for your Projects
  2. Configuring Github's Personal Access Token to Make Code Pushes Easier
  3. Improved my CSS knowledge by playing some games like Flexbox Froggy, Grid Garden & Flex Box Defense.

New Innings

I took some time to re-organize everything after I abandoned my first attempt at the #100DaysofCode. I restarted it in the last week of December 2021. Since there was a gap of more than a month between my first attempt and the second one, I decided to start from 0 rather than continue it from where I left off.

But, even the 2nd attempt was not easy. I could not code consistently because of too much "context-switching". There were a lot of factors that distracted me. I took care of all that in December & sorted it out. After that, I took a week's break and resumed the #100DaysOfCode challenge.

image.png Please don't mind the inconsistency in the Longest Streak figures here and above. It was caused by me deleting a Repo I was working on, at that time.

Learning 1.0

I began to rethink my strategy during the second attempt of #100DaysOfCode. The main intention of the #100DaysofCode challenge was to learn consistently and move ahead to get a developer job. It need not be Coding as such, every day. It could be something like reading documentation, books and papers or solving some mathematical problems.

I read Tiia's Making #100DaysOfCode work for me with new rules around that time which had an overlap with my thoughts. There are a few more points in her article and I agree with those since it aligns with the goal of getting consistently better at programming.

  • I joined the freecodecamp 2022 Become-a-Dev New Year's Resolution Challenge which overlaps with the #100DaysOfCode Challenge.

    Take the 2022 Become-a-Dev New Year's Resolution Challenge:
    📊Max your stats in #LearnToCodeRPG
    ⌨️Start #100DaysOfCode
    🛢️Finish the fCC Relational Databases Cert
    📜Publish 3 tutorials on @Hashnode
    To accept: quote-retweet this saying "I'm in." I'll add you to my Twitter list. 🧵

    — Quincy Larson (@ossia) December 30, 2021
  • Started playing the Learn To Code RPG Game (which was a part of the 2022 Become-a-Dev New Year's Resolution Challenge). Corrected a typo in the game. (Not that important but, it was a good exercise). I would tell every aspiring developer to play that game before you start learning to code. I've written why you should, here:

    #100DaysOfCode

    Day 3: I had to pause my #100daysofcode for close to a week as I got caught up with some personal stuff.

    I played the RPG game of @freeCodeCamp when I got some time over the last week

    Managed to get the stats here.

    But there are a few important lessons... pic.twitter.com/SLTDRJ6hCI

    — Vignesh | Programmer | Writer (@vigneshCodes) January 14, 2022
  • Attempted quizzes at Learn to Code RPG Quiz website.
  • Revisited freecodecamp's Javascript Learning Path.
  • Started working on a few personal React Projects.
  • Started learning Remix to build a website.

An idea for a new Open Source Project

I began to pen down a book, which was about something I started thinking since December 2020. My first attempts to write it were on Google Docs. It was fine till I wrote about 5000 words. After that, it became difficult to organize and re-order chapters in it.

Later, I discovered some specific tools for authors. I made some notes after researching about it here: Writing Tools For Your Next Book.

There were some free tools and some paid ones too. I chose Manuskript to write my book. I also liked Wavemaker and would recommend that too.

These were just two of the many awesome Free and Open Source Software for writing books on Linux. But, they had their limitations which is when I realized I needed a better solution for my problem. So that's when I thought of creating a new tool.

My goal would be to create a new OS Project that gives writers an awesome interface to write books. It may take years but, it'll help a lot of writers who may not be able to afford the expensive proprietary software.

I started a Repo for it on Github. Feel free to join the discussions and contribute.

Resources: