2015 was a great year for my personal development. I started university, I met new people, and I learned a lot. I want to continue that progress in 2016. Here's a list of things I'd like to have done by this time next year. It's not quite a list of resolutions, more a list of "this'd be good"s.
Yesterday I bought a little Asus netbook in a second hand shop in Cork. I'm going to install Arch on it, and go full CLI; no GUI at all. The installation will (and has already started to) teach me a lot about Linux/UNIX and OSes in general. Using just the command line will further my learning of Linux, and push me into Vim and the like more. Because the laptop is so small, it will probably be the one I take when I go out and about or go travelling. This will fit in with Matthew Might's words of advice:
In short, mold your life so that the path of least resistance is the path of maximum productivity.
If I have no GUI, I'll have less procrastination opportunities (video & music), and no nice shiny text editors or IDEs (not that I use one now though). It'll be vim and emacs all the way. Maybe I can figure out how to symlink
vim, so that I force myself to use it even more.
Keep up with my Project Euler. As of today, I am the 28th highest ranked person in Ireland, with 73 problems solved. I've been trying to solve one problem every day & add the solution to my github repo, with the view of passing out Conor Griffin (currently in 25th in Ireland with 77 problems solved). He's a second year in my course, and as far as I can tell, the highest ranked person in DCU in the system.
I've been enjoying the problems quite a bit, and while they're getting more difficult, I'm learning a fair bit about some aspects of maths I wouldn't otherwise be looking into. My daily problem has made my uptake of Golang quite fast. When I reach my target, I might slow down a bit, or start doing something similar on HackerRank. If I continue I'll also switch languages, for some variety. I've reimplemented the sieve of Eratosthenes enough times in Go I think. Haskell looks appealing.
Do up my site. I'm quite happy with the blog system so far, but there's a lot left to do. I need to implement some sort of view-counter, clean up the processes, make it pretty, and a few other odds and ends. I also need to do the rest of the site; a landing page, a portfolio, a link to my CV. Doing what little I've done has taught me a lot; getting the rest done will teach me more.
I'd like to do more reading this year. I have a lot of books on my to-do list; The Structure and Interpretation of Computer Programs will be my first. There is a full list of topics I want to read about (Haskell, C, LaTeX, and more); I'll have to set aside some weekly reading time. Which brings me to...
I must organise myself better. In my first semester I stayed up late and got up late, and was very disorganised. I'll let myself away with that, it was my first semester of uni after all. But it'd be very wise to get a little more organised. I'll try to get up earlier, structure my time better, and perhaps clean a little more. I'd also like to log things more for myself; take notes on things I read and learn, keep a good calendar, etc. I think those would be good habits to get into for life.
Learn a language! I'm talking about spoken languages here, not programming languages, for once. I'd like to continue learning German. My aunt got me a Ryanair voucher for Christmas; I'd like to go somewhere and be able to speak a little of the vernacular, rather than being the typical English-speaking tourist. I haven't had time for language lately, but if I organise myself a little better and keep myself disciplined, I should be able to find some study time. My first step will be finishing Studien und Plaudereien. Maybe I'll re-watch Deutschland 83 too, I thought it was great.
Do more open source! I'm really slacking in that respect.
Doing more exercise always is a good idea.
Compilers and interpreters are a really interesting subject. Over the course of the year I'd like to read up on them, and write a Scheme interpreter at least. The more depth I can go into, and the more I can do in the field, the better. The implementation of programming languages is fascinating to me. I'll finish the aforementioned SICP book first thing.
I'd like to widen my social circle a bit. Maybe meet some people who (gasp) don't do computers. I have a feeling I'll start feeling claustrophobic at some stage if I just compute compute compute. I should also go into the city more, and not sit in DCU all day every day. Finally, I'd like to engage in some of the active meetup groups in Dublin, and meet with some people who are as interested in functional programming as me :)
I don't know what order I'll end up doing any of these things, or which ones will get done. But I think they're achievable, and I think I'll be all the better off just for trying them.
Wish me luck,