technical sophistication

As I’ve been digging into learning the command line and text editor, I often get stuck. I’m following the tutorial and something just doesn’t work right. That’s when I remember to hang in there and practice technical sophistication, even when I’m about as unsophisticated as it gets.
Technical sophistication, via Learn Enough to be Dangerous

The phrase technical sophistication refers to the general ability to use computers and other technical things. This includes both existing knowledge (such as familiarity with text editors and the Unix command line) and the ability to acquire new knowledge, as illustrated below. Unlike “hard skills” like coding and version control, this latter aspect of technical sophistication is a “soft skill”—difficult to teach directly, but essential to develop if you want to work with computer programmers or to become a programmer yourself.

(…) It also involves a tolerance for ambiguity: technically sophisticated readers won’t panic if a tutorial says to use ⌘Z to Undo something when it’s actually ⌃Z on their system. They also won’t panic if they see ⌘Z but don’t know what ⌘ means, because they know they can read about it or simply Google for it. Perhaps the most important aspect of technical sophistication is an attitude—a confidence and can-do spirit in the face of confusion that is well worth cultivating.

learning computer science: selection, sequencing, & stakes

In the last few weeks, I broke down (“deconstructed”) computer science into its basic parts. The Meta Learning method prescribes the next steps: selection, sequencing, and stakes. The path is starting to become more clear, and I’m excited to get started, so I’m combining all three into this one post.


It’s pretty clear from all my research that computational thinking and problem solving are the fundamental building blocks to a bottom’s up approach to learning computer science. A lot of the advice I read stated that the first language you learn doesn’t really matter – it’s learning to think like a programmer that matters. So structure your introductory learning around learning these two without diving too deeply into any one language. I’m taking Harvard’s CS50x class to get myself acquainted.


While those two fundamental building blocks are key, it’s important to get as quickly as possible to building the real thing. So the next building blocks will be software development (through Learn Enough To Be Dangerous tutorials) and web technology. I’m skeptical that this will be a linear progression. I think it seems like more of a bottoms up and top down approach simultaneously.

Another piece of sequencing is the time commitment. I’m committing to 30 minutes per day with extended periods on the weekend. Hoping to get to 6-10 hours per week. It’s important to note that this is nowhere near enough (that’s 20 years to get to 10,000 hours), so at some point I need to start increasing that. But I need to start with a routine I can make happen.


I’m going to keep this one to myself, but in the event that I don’t get to 6 hours in a given week, I’ll donate $50 to my least favorite political or non-profit causes.