Today is July 8th. I am beginning my multi-step plan to becoming a software engineer. Today, I will be going through week 1 of CS50's curriculum, titled "C".

I first came upon CS50 in January 2022 and passed lecture 0 - Scratch. There, I made a cute little musical note identification game that I would use for my students to play with at the middle school I taught at. It used loops, abstraction, conditionals, and other basic coding tools without me even knowing about them. I fundamentally was able to understand loops and conditionals through Scratch's little code blocks.

After that, I took a 4 month hiatus from the course to focus on learning HTML/CSS, before trying again in March, completing the easy parts of week 1, then stopping again until today.
This time, I am finally taking CS50 seriously. It is HARD. I already have a degree in Music Education which had me learning abstract 20th century music theory and currently hold a 4.0 GPA in my graduate studies, but this still went over my head the first time. I will admit - I had to search up some more hints/walkthroughs for the harder version of each problem set but I debugged and worked through as much as I could myself, trying to fully understand the code I created and/or debugged. "Mario Less" was fairly easy, and with some mild help I was able to figure out "Mario More".
Cash was also easy. At first, I solved it using if/else statements. I passed, but looked at other solutions and saw that others used while loops, a topic introduced in the lecture. It was much more efficient than my method. Loops, man. I was doing it the hard way with if/else statements taking up dozens of lines of code.

Credit was WAY over my head. I had NO clue how to solve the algorithm problem in order to select every other number starting from the second number of a credit card number. I knew arrays were a thing, but we hadn't learned that yet. It turns out it had to do with some modulus (%) and division (/) witchcraft, but I was STUMPED. I created some boilerplate and wrote my pseudocode, but could not figure it out. I will admit - I looked at a solution to guide myself here. I am not taking CS50 for credit at Harvard, and do not have access to their office hours & tutoring so I'm giving myself a little leeway :). I tried to only look at the one step I was stuck on only after spending at least 15-20 minutes attempting to solve the problem myself. I ended up following along a solution but ended up with very buggy code with multiple errors through Check50, CS50's grading tool. CS50 debugger came to the rescue. After many, many different simulations with the debugger, I slowly but surely chipped away at all the bugs preventing my program from passing. I went from a 5/15 on Check50 to a 15/15, signaling that my project was finally sort of "correct". I spent nearly 4 hours on this project and learned a ton about debugging, so I think it's a win, even if I wasn't able to figure out Luhn's Algorithm myself! Onwards and upwards to Week 2!