Jack Kinsella on learning a programming language with a spaced repetition system:
Knowing thousands of commands saves time otherwise spent looking up reference materials. You instantly recall previous solutions when faced with a problem, and dozen of possibilities spring to mind when architecting a system. You will read other people’s code rapidly, confident in your understanding. The closest analogy is fluency in a natural language. You will speak code.
I’ve started applying this with all of my current work. Some of those finicky GIT commands and SQL syntax have already been committed to long term memory. I’ve used Anki before with language learning, but sort of fell of the band wagon. This is by far the best method for learning anything for the long haul. The commitment to daily review is the tricky part, though.
I’ve been thinking a lot about my work recently. I’ve had this idea, as many millennials do, that work should mean something. It should give back in some capacity, right? Starting from my first job at a small software company through all of the various jobs that I’ve had, it’s always needed to “matter”. I found it difficult to go to work at different places if the company’s main line of business that directly affected my work was something I either didn’t like or didn’t agree with. For example, when I worked in a call center, I found it very difficult to show up every day. I would hear about families that were unable to stay in their homes due to the economic recession in 2008 and 2009. I eventually transitioned into a similarly meaningless role to make the backlog of work faster for all of the loan modification applications. I won’t even mention the terrible manager that I had while I was there. Nor will I mention the girl1 that I was after during that two and a half years of my life. It was a difficult season to say the least.
I took on various software development roles and grew my skills in SQL Server, C#, web development, desktop development, server administration, business process improvement, and others. In all of these roles, I grew more adept at being good at my job, but not really good at a singular skill. My salary increased, as did the hours and the responsibility. According to American standards I should be happy. According to the American dream, I should be living the good life. If this was the case, you’d think I’d be happy. Why then is there so much discontent with my work? I spend most of my waking hours at a computer doing work that, for the most part I enjoy, yet I get to the end of my work day and feel empty. I’m sure I’m not alone in this. At 31 years of age, I was sold the same message throughout my childhood and formative years. It is a simple well-meaning message, but it has crippling consequences.
You can do whatever you want. Follow your passion.
These words are the subject of and included in many thousands of books. In most cases, the messenger is wanting to help kids dream big and do what makes them happy. This simultaneously liberating and shackling. I can do anything?! I can do anything…? Wow. If I can be and do anything, what should I do? There are so many so options… I don’t want my contribution to the world to be shallow, right? If I reflect a bit on my roles as a software developer, I never really stuck to one aspect of development. I hopped around to different languages and different aspects of the software development industry. I have the following on my resume as of right now:
HTML & CSS
A very small amount of shell scripting with PowerShell and *Nix systems
Am I really good at any one of those? I couldn’t interview for a senior level position confidently even though I have somewhere in the neighborhood of 5-7 years of experience as a software developer. In my effort to do work that really matters and has some substance, I’ve been on a journey of not really mastering one skill. So the paradox of following my passion (because that’s why I’m here on the Earth, right?) actually creates a shallow career rather than one that has depth and eventually matters. Here’s the point: I’ve spent so much time trying out new languages and different skill sets; is it any wonder that it’s been difficult to find satisfaction in a job? Isn’t it frustrating to be constantly on the steepest learning curve of a new “thing” perpetually? This is basically where I’ve been for the past few years. The way that I see it, I’ve been basically ebbing and flowing between the trough of sorrow and the wiggles of false hope for several years.
So, now that all of this debbie-downer talk is over, here’s the direction I’m headed. Any one of those skills would be fine to pick. I’m smart enough to be really really good at any one of them. Once I’ve decided on one, moving in that direction for a long period of time is going to be the new approach. Becoming very skilled at one or maybe a few very related skills, I believe, will eventually provide the sort of “giving back” that I’ve desired from my career.
I think the challenge that everyone faces that has followed the simple message from above is a perpetual search for the one job that will finally make that person come alive. It’s a unicorn. It posits that if your current job isn’t “doing it for you”, then you should move on and follow your passion to the next big thing. The problem with this advice is that you never reap the benefits of being a craftsman at one particular trade whether that be software, marketing, teaching, or humanitarian work. In the baby-boomer era, men and women stayed at single companies not for just 2-3 years at a time, but for their entire careers. I have one friend whose father was hired at JC Penny at age 18 and worked there until he retired. My own father has been a CPA for his entire post-military career. I’m not necessarily advising anyone do what these two men did, but at some level this is highly admirable. Which path takes more character? Career hopping every year or two, or sticking with one long enough to gain enough experience and credibility to come home from a work day and not be frustrated by the constant trough of sorrow?
The girl ran away for about a year, and she is now my lovely wife. So at least that panned out well 🙂 ↩
I totally know how it goes. You’re sitting down to work on a project, but after 10 or 20 minutes you hit a roadblock. What then? Do you instinctively reach for your phone to check Facebook? Do you switch over to the Twitter app or check your email inbox real quick? Or do you stay focused?
When you are trying to focus on deep work, don’t give up after 15 minutes. Stick with it for an hour.
I’m a new evangelist for long periods of times for focus, but making time to fiddle around with stuff that doesn’t require a serious amount of focus has been essential to my work. More on this later…