Well this year I met only a smattering of my original New Year’s Resolutions from earlier this year, described in this post. Let’s take a stroll down memory lane and see what I planned for myself.
Go on a date (PARTIALLY MEETS EXPECTATIONS): So I actually did have one date lined up the day I was going to fly out to Michigan for Christmas – literally the morning of. That’s the degree to which I procrastinated. The date fell through due to scheduling conflicts, like two other dates I had scheduled with two other people: one on the last day of classes at Duke, and one in high school (that I still regret to this day). Not to worry too much, though; since the ball is rolling they should happen early next year.
The ukelele has been sitting out on my plastic table for about a year now, and I haven’t really touched it. Suffice to say I still don’t know how to play ukelele.
Dancing, I went to one salsa dancing class at Cafe Citron for a Meetup late last year but didn’t do much otherwise. So my dancing skills are still slowly atrophying.
Knitting, I haven’t done at all. Don’t know and never knew how to knit (a bad thing if you’re wearing socks and shirts with holes in them).
Become noticeably more fit, especially around my chest and my midsection (DOES NOT MEET EXPECTATIONS): I did go running with a running club based out of Clarendon, but I don’t think I jived with the social scene there and eventually pulled tendons in my legs and the colder weather, along with missed dates, got me out of the habit. I did sign up for a gym membership, and I have been going at least once a week (at least whenever I am not traveling), but with no noticeable physical change, which is hugely disappointing. Of course, abs are made in the kitchen, and this is likely more of an issue with nutrition and setting a routine.
One good thing I did do this year is record every day I am supposed to do workouts in a planner, even the days I skip. In addition, I also make sure to do ten push ups every day, which is absolutely nothing in terms of physical fitness, but does keep a skeleton routine alive and prioritized in my head.
Learn to cook well (DOES NOT MEET EXPECTATIONS): With increased time dedicated to studying, and with no routine in place to schedule meal prepping, I gradually increased the frequency where I ate out over the course of this year. Not only did this likely burn a pretty large hole in my pocket financially, but I fear I may have acquired a taste for eating out and don’t know if I can fully transition back to cooking.
One good thing I did do is discover Trader Joe’s and its frozen foods section, so many times I would buy a pack of frozen edamame or something and cook it with a little salt in my rice cooker, or defrost some meatballs in some tomato sauce. Frozen foods have their place in my mind now, especially frozen vegetables, since washing and prepping vegetables is very time-consuming for me.
Go to a software conference (DOES NOT MEET EXPECTATIONS): It simply did not happen. I did purchase early bird tickets to PyCon 2019, so that is happening this year no matter what. I may go to another conference like !!Con or RustConf, but in order for that to happen I’d have to probably prepare more (learn a new programming language and use it) because I’m definitely paying my own way as there’s no educational budget available and I have to expect to get a solid return on investment for me to make that initial commitment.
Create 3 software products for my personal use (DOES NOT MEET EXPECTATIONS): Yeah no, this didn’t happen either. I think my mistake is thinking I need to make a product or do nothing at all, and I ended up doing nothing at all. Even with a good manager and a strictly enforced 40 hour workweek, I still had other commitments like going to the gym (2 hours including showering), other meetups like writing, and chores. Those are execuses though, and this is likely more of a time management issue, as I definitely could have spared at least 30 minutes a day working on something or other.
One good thing I did like is how I spun up Bytes by Ying and separated out my engineering content from my personal blog content. That site has analytics and mailing lists and better support for engineering-related material. I wouldn’t count this as part of a software project because the amount of coding required was trivial.
Fill in the gaps in my computer science education (PARTIALLY MEETS EXPECTATIONS): I took and am still taking a whack at this problem by starting to read through CLRS, but I still haven’t covered most of my algorithms knowledge to working proficiency, and I haven’t learned too much about operating systems yet. About the only good thing this year in terms of moving towards this direction is how after switching companies, everything (and I mean everything) is Linux. And with macOS’s coming (came?) downfall and well, Windows being Windows, having a strong proficiency in Linux is a step up from last year. Another good thing that happened is how I’m trying to craft incentives for myself to do difficult things like read computer science textbooks from front to back, like going to a coffee shop and buying lattes for myself every three hours until I finish the section I wanted to get through.
Speak at a software conference (DOES NOT MEET EXPECTATIONS): Did not happen. I think I only went to one DC Hack and Tell (which was a blast) but didn’t have anything to present at that one. Ultimately, I think this is probably the best place to start off with in terms of public speaking and conferences in the D.C. area, so it’s not a matter of finding another group, but committing to the one I already know about.
Earn $100 from a software product that I make myself (DOES NOT MEET EXPECTATIONS): Yea no, not gonna happen until I have a software product in hand. This is probably going to tie into next year’s resolutions.
Read at least one book every two weeks (EXCEEDS EXPECTATIONS): I read a total of 31 books last year, fewer than the 37 I read last year, but well more than one book every two weeks. In addition, this time around I also wrote book reviews for all the books I read (although these reviews are so bad they border on shitposts). Right now it’s a very spiky pattern: I’d read one large book that takes me several months to get through, then go home for break or something and read one book every day for a week. This means my ability to read larger books (more than 300 pages and with harder technical content) is still limited.
Read at least one research paper and understand it every two weeks (DOES NOT MEET EXPECTATIONS): This did not happen. I still have the printout of one paper on updating software for distributed systems on my microwave. I did find a fairly good cache of software papers at Google AI, located here. I think I will just work through these papers to start off with if I continue to pursue this resolution, instead of the horrifyingly large archive on ACM or ArXiV or whatnot. Generally, these papers (especially the ones on software architecture and systems design) should be fairly good.
Peruse 3 well-known codebases and be able to explain how they work (DOES NOT MEET EXPECTATIONS): This did not happen. I am planning on reading the online book The Architecture of Open Source Applications and reviewing the codebases referenced therein, and I think I will commit to helping develop an open source project at PyCon, so this is something I will probably at least partially do next year.
Publish a software engineering book on O’Reilly (DOES NOT MEET EXPECTATIONS): This did not happen. I think before I publish on O’Reilly, I would probably want to publish on Leanpub. Also be able to find a good circle of editors and publishers. This wasn’t high on my list of todos and it dropped over time, so I don’t know if this will be a thing for next year (unless I am writing to make money, in which case things may be different).
Complete Udemy courses I already have (DOES NOT MEET EXPECTATIONS): Nope. This frustrates me because I paid money for those courses and yet over time, if you don’t use them, they become more and more deprecated and less and less relevant. I will definitely spend good money on education, and I think I will still try and work through these courses (and not forget they exist), but I will probably be purchasing them and completing them one at a time from now on. They’re also geared more towards beginners, and I would prefer to buy a book or read an online tutorial to go at my own pace.
Get into computer science or data science competitions, especially those that are worth the time (DOES NOT MEET EXPECTATIONS): I don’t think this is a viable resolution going forward, unless I want to become good enough to do freelancing or get hired directly by some company, where I would need proof of comparative quality.
So that’s that. Not a great score overall, which is not a great sign for demonstrating commitment over time.
I think this is the first year I listed publicly my resolutions. So, what did I learn from doing this?
Unimportant resolutions are not resolutions: Next year, I think I will limit the number of resolutions I do to three, and get rid of priorities. Too complicated, and if they’re important enough they’ll be circling in my head anyways. I came into my Thanksgiving and Christmas breaks with zero expectations, and as a result I got a lot of stuff done. It’s ironic, but also understandable; if you feel like you’re not bound by some prior agreement with yourself, the sky’s the limit and if you don’t fly that high you won’t flagellate yourself for it.
Formulate specific requirements: The lack of specific requirements killed a lot of the initial motivation to get the ball rolling. Because when you have to spread yourself too thin and overreach your capabilities, nothing gets done. And when nothing gets done, nothing continues to get done, and that’s the snowball that ends up rolling.
The only easy day was yesterday: A lot of these resolutions I set for myself don’t really change things in a meaningful way. To really push the limits, the resolutions I set should be hard (mentally or emotionally). Maybe frame it so that it appears deceptively simple, but meaningful enough to change the course of my life. It doesn’t have to be big; even setting the goal of cooking and meal prepping for myself will save thousands of dollars and quite a large percentage of my take-home salary.
Closed feedback loops, and hard data, are invaluable: The purchasing of my habit mobile app was probably my best decision of 2018. The introduction of feedback loops and some sort of hard check was what got me to actually do ten push ups every day, and brush my teeth regularly, and fill out the rest of my data sheets like logging my sleep cycles and gratitude journals and such. Additional feedback loops, like getting feedback on my writing and going to a physical cafe to read difficult material, branch off of that to accomplish more specific tasks.
I have to work to like myself: And that’s okay. I have to be able to forgive myself for past mistakes to really be able to achieve things in the present.
Interesting people do interesting things: Doing nothing is boring and leads to an unfulfilling life. As long as I don’t regret the time I spend here on Earth, I think that makes the mark. But that means doing things.
The inflection age is coming up; I’m 24 and apparently people don’t change much after their mid-20s are up. I need to set resolutions to steer myself towards the life I want, not the life I’ve been leading (two very different things right now). So I end 2018 with hope, but also apprehension.