As we draw on the final hours of 2018, the only words I feel appropriate are: “wait, it’s really January tomorrow?” The past twelve months have felt deceivingly short despite everything that’s happened in that span of time. I had a number of rough job interviews, met Richard Stallman in person, installed Gentoo, became a legal adult, graduated high school, and finished my first semester of university, all in what seemed to me like just a few weeks.
“Productive” is how I’d characterize the year, but I’m having a hard time rationalizing why it is that I feel that way. Yes, I reached two major milestones in my education, but I still don’t know what to make of everything else I did. I’d probably feel better about my accomplishments if I had a goal and a means of assessing whether or not I achieved it, but alas, I didn’t set any out of the same cynicism that drives me to point out resolutioners contributing to the January gympocalypse.¹ I’d like to mend that cynicism for 2019, though. One year really isn’t a bad span of time for setting goals – it’s long enough that you can be ambitious in your planning, but short enough that there’s pressure to continue making progress throughout the year.
So, I’ve come up with some goals for myself, and I’ve decided to write about them to impose some level of accountability.
This year, I managed to put out seven articles. Last year saw four, and the year before saw one. A linear regression suggests that I’ll be putting out ten this year.
I kid. As tempting as it is to make “write more frequently” one of my goals, my focus will be on quality over quantity. In 2019, I plan to:
- Read through all of my past posts, drafts, and favorite articles, taking notes on how they’re written, and synthesizing a writing style that can be thoroughly described on paper. If you’ve read my earlier writing, I anticipate that you’ve noticed significant variance in the presentation of each piece. It’s time for me to identify the aspects of style that work, and find a way to consistently incorporate those aspects into my future writing.
- In a similar fashion, develop a consistent method for doing research and managing sources throughout the writing process. I believe my technical writing will benefit if I make a habit of perusing the existing corpus of research prior to putting words down on paper.
- Expand my writing endeavors to Wikipedia. I’ve collected a number of sources for expanding Wikipedia stubs, and my goal is to turn every entry on that list into a series of edits. Ideally, I’ll go beyond that, but given the preceding goals, I think that it makes sense to start small. Writing for Wikipedia will expose me to critique from more experienced writers, and give me experience writing in an encyclopedic style.
No hard article count goals this year, because again, quality over quantity. If I’m forcing myself to write to fill a quota, my heart won’t be in it.
Contributing to Free Software
I’d like to migrate all of the projects I maintain to sr.ht, but I’ll be keeping my GitHub account for sending pull requests to projects that live on there.
Originally, I had a list of projects that I wanted to contribute to in the new year, but I haven’t read a single line of code from any of the entries on that list and there’s a good chance that I’ll have second thoughts about contributing following the first perusals, so I’ve decided that a more reasonable goal is to become a regular contributor to at least one project. By “regular contributor,” I mean gaining enough of a presence that people are coming to me to ask questions about the code.
I have tried, and failed, numerous times to get through Hal Abelson and Gerald Sussman’s Structure and Interpretation of Computer Programs. Now that I’m more mature in terms of rigor, I’ve decided to finally buckle down to make my way through the text and all of its exercises. It’s a fat 657 page book, but I’m more than capable, and I have an entire year to do it.
My more lighthearted goal is to put out at least one demo on either the Super Nintendo or the Nintendo DS. I’ve always wanted to program for a platform where I’m constrained by the limitations of the hardware.
Capture-the-flag used to be a more significant hobby of mine; I mostly dropped off the scene when I graduated high school, but I’d like to get back into it. In a similar vein to my SICP goal, I’m aiming to finally get through a book that I’ve failed to finish in the past, Reverse Engineering for Beginners, and complete at least 50 of its exercises. 50 is a about one per week, which I think is reasonable.
I’ve tried several times in the past to learn “electronics”, and never progressed beyond the laws of Ohm and Joule. I think the issue was that I didn’t know what I wanted to learn; I set out to study “electronics,” which wasn’t specific enough. This time, I’ll be more diligent in finding curriculum that’s relevant to me. I want to learn to read boards and gain the knowledge necessary to repair my Commodore 64, so my focus will be on the design of electronic circuits. I’ll achieve this is by going through the coursework for MIT’s 6.002: “Circuits and Electronics”. It’s a course I wanted to go through when I was a sophomore in high school, but at the time, I was discouraged by the list of prerequisites in the syllabus.
Another goal of mine is to join an amateur radio club. I’ve already got two in mind: SDFARC and the one that runs the local 2-meter repeater I frequent. My thought is that joining one will give me an opportunity to find an Elmer whose brain I can pick about RF electronics.
One of my favorite courses in high school was Mandarin Chinese. I took it for four years, and while I wanted to continue studying it at university, I sadly couldn’t fit any classes into my schedule. The four years of study left me with a grasp of the language’s fundamentals, however, and I think that I could reasonably continue to learn the language on my own accords. Throughout the year, I plan to:
- Learn the vocabulary on Wiktionary’s list of the 1000 most frequently used words in Mandarin. I already know a number of words on the list from my four years of study, and learning the rest should give me a good base for reading from newspaper articles and books. I plan to learn the words’ definitions and pronunciations through spaced repetition, and I’ll handwrite the character every time I review the card for it. Although the ability to handwrite characters isn’t a specific goal of mine, I’ve found that it helps me in learning to recognize the characters.
- Read C程序设计语言. I have a translated copy of Kernighan and Ritchie from when I went to 王府井, so that should be reading that’s both engaging and full of the kind of vocabulary that I’m interested in learning.
- Make friends with at least one of the international student in my dorm. I’d feel bad conscripting someone solely for the purpose of helping me learn Mandarin, but I figure that if I befriend someone whose native tongue is Mandarin and spit a bunch of broken Chinese at them, they’ll be inclined to correct me (through laughter, perhaps).
To recap, my goals this year are:
- Move my software projects to sr.ht.
- Join an amateur radio club.
- Make friends with at least one of the international students in my dorm.
- Synthesize a consistent writing style and document it.
- Synthesize a method for performing research and document it.
- Turn my list of articles into a series of edits to Wikipedia stubs.
- Learn the 1000 most frequently used words in Mandarin Chinese.
- Read C程序设计语言.
- Read SICP and complete all of its exercises.
- Read RE4B and compete at least 50 of its exercises.
- Complete the coursework for 6.002.
- Put out at least one demo on either the Super Nintendo or the Nintendo DS.
- Become a regular contributor to at least one free software project.
Too ambitious? Well, I guess we’ll find out in 365 days when I write another post like this.
1: I don’t get back on campus until the 22nd, thankfully. The university rec center gets crowded enough.