6 min read

Days 46-50: Code with Benny

πŸ‘‹
Welcome to Days 46-50 of my 100 days of coding challenge!

If you're curious what this is all about, check out the Introduction to Code with Benny

Check out my last two posts: Days 36-40, Days 41-45

Follow me on twitter! All of these logs are posted there daily in short-form πŸ™‚

What I've done so far:

This week, I'm hopping between a few islands near Bali called πŸ“"Gili" and "Lombok".

Marathon training is going very well. I'm consistently setting new personal distance records, and have gone up to 18mi/29km. The marathon is just a few weeks away, and I'm feeling more and more confident as the date draws closer πŸ’ͺ

πŸ’‘
Check out my Notion Learnings Database for details on what I'm learning. I log all my notes there - daily!
The path to the beautiful villa I shared with 11 other friends in the Gili Islands!

Day 46 (April 28th, 2023)

What I covered/did

Short day today: Read over Week 6 problem sets/labs/practice problems of Harvard's CS50, and a bit of Week 7! Week 7 continues with some python concepts

  • Flat-File Databases (python)
  • Learned how to create a dynamic program that counts up certain elements in a csv file in a way that is agnostic of the csv column positions, and whether or not an input exists yet, and then uses for loops + dictionaries to store and analyze the data in the csv

Resources I used

Thoughts

Today was my personal-record-breaking 18mi/29km run, so coding took a backseat to prep, run, and recovery of that run (3hrs 17min of running!!).

That being said, I got to jump back into SQL today, which I have very brief experience with from my time working at Qorvo, Inc. (a semiconductor manufacturing firm) where I used some SQL to query a database of Qorvo products. I'm not sure knowing SQL is 100% useful to my indie hacking goals, but I think I trust CS50 enough to provide some value with it, and given they decided to include it in their intro course, I think it's worth going through the lecture, at the least, and then taking any data querying skills I may gain with me (since these skills are probably transferrable to a variety of context - basically anywhere that includes a database).

Day 47

What I covered/did

A lot of Week 7 of Harvard's CS50!

  • learned how to use python's automatic sorted function for dictionaries
  • lambda functions
  • relational databases (thus initiating my brief dive into SQL!)
  • CRUD (Creating, reading, updating, and deleting data)
  • A bunch of SQL syntax/commands (AVG, COUNT, DISTINCT, LOWER, MAX, MIN, UPPER, WHERE, LIKE, ORDERBY, LIMIT, GROUPBY)

Resources I used

Thoughts

Enjoyed learning some additional python skills, and diving a bit into SQL. I like how CS50 introduced relational databases and then SQL by explaining where it fits into the modern tech world (e.g. Google, Β Twitter, and Meta using relational databases to store info at scale). I have heard this phrase "relational database" get thrown around before, so it's interesting to understand what it actually means (similar to the other concepts I have re-learned so far).

Cool thing is how dynamic python is - from my vantage point so far, it seems like every language/tool can be imported into python (you can use SQL in python too!). Really enjoying the fact that I'm picking this language as my "base" language.

Day 48

What I covered/did

Most of the remainder of Week 7 lecture of Harvard's CS50!

  • Diving into how to query relational databases (schemas, primary keys, foreign keys, etc)
  • ASC, DESC sorting, UPDATE command
  • sqlite data types (BLOB, INTEGER, NUMERIC, REAL, TEXT)
  • Nesting queries
  • JOIN

Resources I used

Thoughts

I take back what I said in Day 46 thoughts about SQL potentially not being useful to my indie hacking goals - the ability to quickly and more efficiently query data is definitely useful and I can imagine situations where user data/data that feeds into building the product needs to analyzed or pulled into other places in the backend of what I end up building.

Hurt my foot yesterday playing tennis barefoot - not recommended for those training for marathons...

Day 49

What I covered/did

The rest of Week 7 lecture of Harvard's CS50!

  • Indexes
  • Using SQL in Python
  • Race Conditions
  • SQL Injection Attacks

Resources I used

Thoughts

Wrapping up an active week with some friends in an island called "Gili Trawangan". I've been saying that it's the most "islandy island" I've ever been to - as tropical, laid back, and beach-y as you can imagine. Makes wanting to work a challenge :)

That being said - I'm moving forward through the CS50 lectures slowly but surely. I've put building ShouldIReadTheNewsToday on pause in the meantime, but plan to reinitiate work on it in the next few days.

Unfortunately, the foot injury looks like it may last a few more days, so marathon training is on pause for now. A bit concerning given how close I am to race day, but I'm confident I'll heal quickly and pull through.

Day 50

What I covered/did

Week 7 Lab/Problem Sets/Practice Problems, and some of Week 8 lecture from CS50!

  • Operators and additional SQL functions
  • Overview on Routers, DNS, HTTP, and IP/TCP protocols

Resources I used

Thoughts

Nice to dive back into HTML/CSS, and get a CS50-style introduction to Javascript (which I did briefly in high school). I covered HTML/CSS in the 100 days of Python Replit course, but I don't think that was a particularly robust introduction, and I'm curious to learn more about the computer science history and context around the development of this very internet-y language.

I'm finding myself heading to more and more remote places as of recent, and am currently writing this from a villa in a bit remote of a place in a bit remote of an island (Lombok). It's been a unique experience, as I round out these 50 days, to reflect back on how I have made this 100 days of coding challenge work (and how I have gotten in my own way πŸ˜‰). I will be releasing a halfway-point reflection piece in the next few days, and in it, I want to weigh the pros and cons of the hectic lifestyle I've pursued over the past 7 weeks.

Preliminarily, I think that I have, for the most part, optimized for fun, adventure, and social enjoyment, and coding/marathon training have filled the gaps. Now, I want to optimize for something different: routine, focus on coding, and content creation. When I wrote my initial plan, I underestimated the role adventure would play in my life, and imagined that I could do everything all at once. I think I am becoming better acquainted with the tradeoffs I need to make now that I have lived the digital nomad/Bali lifestyle for the past few months. Now, I'm more prepared to make those tradeoffs, and stay in one place for a while.

All this being said - my itinerary is set, and for the next 2.5 weeks, I'm still optimizing for travel, adventure, and marathon training. But around Day 70, I want to close out the last 30 days of this 100 days challenge with a renewed focus on this part of my life.

Anyways - thanks for following along. See below for some fun pictures :)

Some pictures from this past week πŸ˜ŠπŸ‘‡

A picturesque mosque in Lombok, right across from where I'm staying for a couple nights
A local Gili port - I hopped on one of these boats to get to Lombok Island, and my phone signal was good enough that I was able to call my parents from the boat 😊
A photo in Bali I snapped while on my 18mi run. These terraces never get old to look at
A beautiful sunset in Gili Islands

That's all for this week - thanks for reading. HALFWAY THERE! 50 days left!!

πŸ’‘
Don't forget to follow me on twitter - all of these daily logs are posted there in short-form πŸ™‚