skip to Main Content

Computer Science Personal Development Project (PDP)

Here’s the new personal development project I’m starting this week:

Starting with Why:

I am deeply fascinated with the BitcoinSV network and the implications it has for the future of commerce and information exchange. There are many interesting articles, videos, podcasts, and rabbit trails I enjoy pursuing, but I continue to run up against roadblocks created by so many technical things that go over my head. By putting forth the effort to grasp the conceptual foundations of computer science, I hope to partially alleviate that problem.

Additionally, I am very intrigued by other subjects like Systems Thinking, Networking Theory, Knowledge Management, Information Theory, etc. At some point, I need to stop gazing longingly at these topics as distant subjects that I dream of understanding some day. I need to just pick an accessible starting point, dive in, and build on those understandings over time.

I am not studying computer science because I have been convinced that it’s “important” or “necessary” nor am I studying it because I’m under some illusion that I will emerge as the world’s best coder. I am a relentless servant to my curiosity here. And while I acknowledge the possibility that ensuing knowledge/skill could pay off in some sort of pragmatic way, my primary agenda is to have a lot more fun in my Bitcoin research and in my exploration of unfamiliar mental models that can make me a better thinker.

There are two Richard P. Feynman quotes that capture the spirit of my efforts here:

“Physics is like sex: sure, it may give some practical results, but that’s not why we do it.”

“Study hard what interests you the most in the most undisciplined, irreverent and original manner possible.”

So my approach to learning these things may take many “irresponsible” and “impractical” twists and turns depending where my curiosity leads me. For those who study these things because they would like to get a coding job, my approach will likely not bear the markings of a “man on a mission.”

TLDR: “I’m just trying to nerd out, bro.”

What’s the Agenda:

Because I’m managing quite a few projects, I don’t have more than 1.5 hours per day to devote this interest (and that’s with me really pushing it). So I’m going to focus on 1 hour of reading and 10 minutes of coding each day. I initially wanted to put off doing any coding at all until I at least finished a few books on the conceptual foundations first. I love theory and abstraction. Coding doesn’t sound or seem fun to me. A friend has challenged me, however, to just do 10-minutes of coding per day to supplement my studies. His contention is that it will positively affect the way I study and my confidence will increase over time. It genuinely feels painful to even think about coding, so that’s precisely why I’m agreeing to do it all. If it feels THAT painful, there’s probably something good on the other side for me. I know that 10 minutes is such a small amount of time that it’s probably “disrespectful” to the art of coding, but maybe this will increase over time if I find it enjoyable. Based on the recommendation of a friend, I’ll begin with Javascript.

Reading Materials

Here are the two books I’m reading to begin with:

Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook: The Complete Middle School Study Guide (Big Fat Notebooks)

Understanding the Digital World: What You Need to Know about Computers, the Internet, Privacy, and Security

I’m going to devote 30-minutes to each book every morning while I have my AM cup of coffee. My hope is that I will be able to move through a chapter per week for each book. The chapters are relatively short, but also dense. Each book builds from the ground up beginning with very basic things dealing with the core function of computers, the distinction between software/hardware, the key topics/terms in the field overall, etc. Things get more technical as you proceed step by step, so my pace may slow down as I go. Achieving a “sexy” goal like “completing a book a week” is not what’s important to me here. I truly want to internalize my understanding and grasp what I learn in a way that’s substantive. So I will move as slowly as I need to understand whatever topic I’m on. I’m already planning on supplementing my studies with YouTube videos that delve deeper into any topics I struggle with. The two books I have chose seem to have a very well-structured table of content, a simple writing style, and a very sequential process that will be critical for someone with no technical background.

Coding Materials:

Javascript Tutorial via 3schools: w3schools.com/js/default.asp
Javascript Exercises via 3schools: https://www.w3schools.com/js/js_exercises.asp

TLDR: 10 minutes of coding per day, 1 hour of reading per day

Learning Out Loud:

As I make my way through these books, I’ll spend roughly 10-15 minutes per day capturing my understandings, questions, and musings on Evernote. At the end of the week, I’ll do a video summary where I explain what I learned. For me, it’s much harder to fake your understandings when you have to talk about them, so this is a way to help me really ensure I’m getting it. It’s easy for me to read and “think” I understand until I have to actually summarize it and illustrate it.

This process of learning out loud is partially for accountability (ie. it keeps me on my toes to know I have someone who might be watching) and partially for reinforcing the ideas (ie. You retain more when you have to do something with what you’re learning).

I plan on doing this M-F and using my weekends to reflect on my results and refine my approach. Weekends will be a time for me to step back from the details and see what’s working (and not working).

TLDR: One written summary per day, One video summary per week

How long does this last:

When it comes to personal development projects, I strongly belief in setting finite goals, reviewing the experience after you’ve finished, and then deciding where you want to go from there. I think PDP’s become burdensome when treated like a religion or a marriage that you must remain committed to for the rest of your life. So my goal is to not stop until I complete the two books and the complete Javascript tutorials/exercises I’ve cited above. I anticipate that this will take me anywhere from 6-18 weeks depending on how difficult I find things to be. Once I’m done, however, I’ll decide where I go from there. But at the very least, I’m getting through these two books and this tutorial. I’m not walking away without understanding everything contained in those materials.

Back To Top