HTML, CSS, JavaScript, Python, React, Java, C#, Swift, SwiftUI, PHP, C/C++, Ruby, GO. The list is endless. It’s no wonder learning programming is daunting for so many folks! The sea of options feels like less like a sea and more like Miller’s Planet: just an entire world of water ready to drown you with her 4,000 foot waves. But here the waves aren’t water. They’re information.
Last post I mentioned I have been really interested in learning how to code so that I can build my ideas instead of just sitting around dreaming of them, as fun as dreaming is. To be honest, I probably spent more time than I should have researching where to start. However, after watching several YouTube videos from career developers, I landed on Harvard’s CS50 course which is on freecodecamp.org’s YouTube channel and also now CS50’s own YouTube channel, completely free. In total it’s about 24 hours of lecture broken up into 12 sections covering various computer science topics and languages, such as algorithms, memory, Python, HTML+CSS+JavaScript, etc. It’s a great way to understand the foundation of coding.
The nuggets
So far it’s really fascinating! Here are the takeaways:
Computer science is more about learning problem solving
A compiler translates our written code into binary so the computer can run it
An algorithm is just step-by-step instructions for a program
Some building blocks of code:
Functions are actions you want the program to do
Boolean expressions are basically forks in the road
Conditionals are what it does when the program gets to a fork in the road
Loops can repeat actions over and over without additional code
Pseudocode is a natural language, shorthand way of writing your program idea
An IDE is just a dev environment like Visual Studio Code for example
MIT’s Scratch
The beginnings of C
It’s really beautiful starting to see the dots connect. Using ChatGPT(4) has been a fantastic resource. Many question the validity of its code it writes, but I’ve actually been using it more as a mentor to help explain things like I’m 5. It’s a really great prompt to understand complex topics if you’re having trouble with something.
Now I figured this might happen, but after getting a couple hours into the CS50 course, it’s starting to get to the point where taking notes of code is quite tricky and cumbersome and I’m thinking there’s probably a better way to approach this. I still think watching this course is valuable and I do plan to finish it, but taking notes on code vs. actually coding are two different things with different outcomes, the latter having a higher likelihood to progress faster and actually retain knowledge.
So I’m thinking I’ll continue watching the course on the side but pivot my primary focus to immediately start building something. Just for practice. This will be a (hopefully) simple metronome app since I’m really interested in music. I have an idea that could put a more useful twist on it but I’ll save sharing that for another day.
This early stage of learning I’m in is known as unconscious incompetence: where I literally don’t know what I don’t know. I like to think of this also as the puppy love stage. I’m just gawking at everything with wonder, chomping at the bit to see my designs no longer sit static. Ideas with legs instead of living rent free in my head.
I’m essentially blissfully staring at Everest’s base, excited about conquering it but ignorant of how truly large the climb is, standing there pensively while I look up at its mysterious peak shrouded by clouds and fog. I enjoy this blissful ignorance and don’t want it to end, but I know with experience it naturally will and the silver lining of knowing how to take action on my ideas is worth the tradeoff.
Next steps
Here’s what I’m planning to have taken action on by the next post
Find a tutorial on building an iOS app
Possibly explore Flutter, which allows for simultaneous iOS and Android development
Continue watching CS50 course, but only take important, higher level notes
What else I’m up to
📕 Currently reading
Show Your Work by Austin Kleon
🎵 On repeat
Speaking in Tongues by Talking Heads
🔗 Recently bookmarked
Dithercore - A Figma plugin that turns images into 90s pixel art
Lettering Da - Beautiful signage from 15 different Italian cities
Every piece of advice I could think of after 4 years as a Solopreneur - Tweet thread
That’s it for today. Hope all is well! I’d love to know what you’re looking for out of this newsletter so I can make sure it’s giving you value in exchange for your time. Leave a comment if you feel strongly about anything.
See you soon,
Troy
Troy, I just started watching the CS50 course, too! In my quest to transition from Design to PM. What I've discovered so far is that I've been exposed to most of these concepts already throughout the course of my career (and cooking: algorithms = recipes!). But I'm still going to try to go through the whole course. Just for the additional brain stimulation that comes from seeing things through a new lens.