#100DaysOfCode Challenge Updates

Day [61-67/100]

Well it's Day 69 today (nice) and I'm posting something on Twitter and here for the first time in 10 days. Yet again, life got in the way, not to mention Thanksgiving's bountiful activities, friends, and family. So I ended up doing absolutely nothing for two of the days, which have been counted and skipped. This will be an update for the second Scrimba solo project, but the 4th project overall. This is the first time since I've started this challenge where I can actually just get on my computer for 20 minutes and still get something valuable done. My workflow and retention have really improved and enabled this new level of efficacy. Big words, big brain 🧠

First, I went and built the second solo project: a Personal Travel Journal linked above. Along the way, I got stuck on how to dynamically render and style different elements including the horizontal line break. So, I ended up learning a lot about CSS psuedo-classes, which I can already tell is very impactful. Then while styling the project, I realized I should add some sort of footer to get back to my Digital Business Card or just so I can be contacted. This led to me spending an hour or two creating the footer on that page plus retroactively adding it to the Airbnb Experiences Clone project.

I think the footer came out really well, I learned a lot about CSS and even a neat trick to have a transparent border on an element so that it can highlight on mouse hover without having any content shift. The footer looked good, but I realized that I need to start messing with media queries (CSS based on different screen sizes) because this project doesn't automatically look good on desktop and mobile like the business card and Airbnb clone. So I made all of my projects more responsive, and made sure almost everything is in REM and percentages instead of hard pixel values.

Lastly, I went through the Airbnb Experience Clone to really personalize the project instead of just copying the given data from the course. So after 20 minutes on Canva to make 6 images and a new logo, it really looks like something I'd be proud to show off to friends and employers... at least ones that can take a joke. The next two projects have to deal with making the site user responsive. Basically forms rendering elements to the DOM. Once I get a good understanding of that, I think I'll add a form to the Travel Journal and Airbnb clone to be able to render more cards.

On top of the forms for user input, I want to add a floating button to all of my projects that explain how the project was built and what challenges needed to be overcome for everything to work the way it does. I try to explain quickly when I show friends and family, but I can tell it would be useful to add some sort of 'how it works' section to every project. Alright, on to make a meme generator 🤔

Day [55-60/100]

I was going to wait to post till I was done with the second solo project but this Airbnb Experiences clone kind of became a solo project because I didn't use the tutorial. I think it'll be worthwhile to document the solo project in its own blog entry, so here's the week so far.

Initially the project started off explaining that it will be a great way to go over the concept of props, basically passing along data from different components and sources to render things to the DOM dynamically. It asked to just create the Navbar, but I went ahead and made the Hero section and a statically rendered Card component on my own before I went back to check my work. The CSS was really killer, and it was absolutely worth the hours I sunk into learning how to make everything responsive and scalable. There was a moment where I looked at my clock at 6:00, styled some elements, looked back because I thought it was 6:10 but it was actually after 7:00 already šŸ˜…

It got to the point where everything was basically working and mostly styled, but I could not get the images to load dynamically. There's something about Create-React-App that won't take an image path because during bundling it moves to a generated static folder with a unique ID in the URL. So, I tried installing packages, scoured blog posts and Stack Overflow, to no avail. It wasn't until I saw I can pull images from the public folder that it worked. It is not recommended due to bundle size issues and caching, but it was okay just so I could get the project to work without putting these images in a database. It was pretty awesome to figure it out by understanding why it didn't work, not just copy and pasting other people's code until it worked.

I'm feeling pretty confident going into this next solo project (a travel journal), but I am worried that conditionally rendering the travel journal on the digital business card might be a bit tough. If you don't hear from me again, that was the fatal mistake.

Day [48-54/100]

Well, here’s another week of not posting daily and bundling it to a long update. I have had quite an eventful week relationship and work wise. This week I spent time with old and new friends and I loved every moment. I also won an award for outstanding quality of service at my restaurant and received a promotion to bar manager.

I suspect next week will not be a long post again since I’ll have more of my days starting early in the morning rather than the afternoon. There’s something about only getting an hour of coding done (which I know is the challenge, but it still feels minuscule) that makes me feel unaccomplished for the rest of the day after posting an update. I have a feeling I’ll try this challenge again after the 100 days are done and make a rule to post every 3 days or even every week to see how much more or less productive I am.

Anyway, I spent most of the week on Scrimba. It’s amazing that it’s free. I had to push myself into ā€œtutorial hellā€ again but I’m glad I did. The interactive development environment really makes the learning stick. Especially because I’ve gotten enough out of my learning to feel confident starting react projects from scratch. I might post daily updates next week because I have a feeling these projects the course helps you create will be super interesting to build. Just building a digital business was awesome since it was the first time I did something from absolutely nothing. All the dependencies, file structure, CSS, and components were off the top of my head (and my savior Google).

When I blow up with that software developer pay, Scrimba is getting a juicy donation for sure.

Day [41-47/100]

This was a very interesting week. Shaded by a season and outlook change, I went from feeling like I was not cut out for this to understanding key concepts on a day to day. I think that's what led me to wait a whole week before posting this update. I would start building something and the lose momentum when I encountered a bug. The next day I would have a late start and realize that I just needed to study some core concepts to get back on track. Day after would restart the cycle.

I did learn how React is actually working under the hood by starting a project with a simple html file and nothing else. Even imported the React and ReactDOM libraries via CDN instead of using npm. That has been extremely useful. I'm still figuring out CSS honestly. It's barely a language, but the concept of design is really throwing me off. Maybe this will just be something I have to practice day in and day out, like free throws for a basketball player. That's why I was trying to learn Chakra UI or TailwindCSS, but it just got me more confused.

The result of a week of coding is several projects that are unfinished due to various errors, it feels like I'm playing a complicated game of Sudoku. Right now is the stage where all of the obvious guesses have been placed and I'm just writing in notes for where numbers could be. If you don't play Sudoku, maybe Solitaire is a better example. I'm just pushing until all the cards line up and I can click my way to completing everything.

Day [37-40/100]

After the difficult last weekend I had, I decided to just throw all of my attention at creating a portfolio from scratch for two main reasons:

  1. I use me not having a portfolio with some projects as an excuse for not networking and reaching out to employers.
  2. I've tried to follow a tutorial for a portfolio 4 times now and I don't feel like I learned that much. Diving in the deep end building from scratch seems like the next step I have to take.

One key takeaway I have is that grouping these updates into several days has been great for my mental health. Posting every day even though no one looks at this has been a strain on my confidence and motivation. I felt like I had to keep one-upping myself, not to mention the time it took to write out a blog update, create a cool gif, and write a concise Tweet. If you are reading this, hi! You're a real one.

Day [34-36/100]

I was pretty excited to work on this course and project since the final result seems like something really useful for me to learn and to showcase. Here comes the but. I think it's a mix of the pace of the course and the lack of question support that really confused me along the way. I had to make decisions such as:

I spent time on all the bullet points above, but to no avail. I don't doubt that if I spend more time on Firebase and Next.js, I'll eventually figure it out, but it's apparent that it'll likely be a bandaid fix and I won't understand the underlying problems. For example, I'm not exactly sure how to configure a package.json file, I've been installing what's been shown to me. I went through to get a better understanding of Next.js, React rendering, the DOM, Node.js, and it's a bit demoralizing. I think I know a lot more of what I don't know and now I'm trying to formulate a plan of what to do next so that I don't give up altogether.

TL;DR

After an arduous week of debugging, research, and personal distractions I haven't been able to get the final project working from the Next.js/Firebase course. I'm going to really start at the bottom of the tech to understand why things are breaking so that I can go in and fix this project, finish others, and build something truly from scratch.

Day [33/100]

Day 33 Twitter Post

Day [32/100]

Day 32 Twitter Post

Day [31/100]

Takeaways:

Challenges:

Day [30/100]

Takeaways:

Challenges:

Day [29/100]

Takeaways:

Challenges:

Day [28/100]

Takeaways:

Challenges:

Day [27/100]

Takeaways:

Challenges:

Day [26/100]

Takeaways:

Challenges:

Day [25/100]

Takeaways:

Challenges:

Day [24/100]

Takeaways:

Challenges:

Day [23/100]

Takeaways:

Challenges:

Day [22/100]

Takeaways:

Challenges:

Day [21/100]

Takeaways:

Challenges:

Day [20/100]

Takeaways:

Challenges:

Day [19/100]

Takeaways:

Challenges:

Day [18/100]

Takeaways:

Challenges:

Day [17/100]

Takeaways:

Challenges:

Day [16/100]

Takeaways:

Challenges:

Day [15/100]

Takeaways:

Challenges:

Day [14/100]

Takeaways:

Challenges:

Day [13/100]

Takeaways:

Challenges:

Day [12/100]

Takeaways:

Challenges:

Day [11/100]

Takeaways:

Challenges:

Day [10/100]

Takeaways:

Challenges:

Day [9/100]

Takeaways:

Challenges:

Day [8/100]

Takeaways:

Challenges:

Day [7/100]

Takeaways:

Challenges:

Day [6/100]

Takeaways:

Challenges:

Day [5/100]

Takeaways:

Challenges:

Day [4/100]

Takeaways:

Challenges:

Day [3/100]

Takeaways:

Challenges:

Day [2/100]

Takeaways:

Challenges:

Day [1/100]

Takeaways:

Challenges:

ā€