- The sed and awk command line tools. So far I've used these for one-off tasks, but nothing of any real depth. Everyone I know who really uses these tools alludes to a great deal of power in them.
- Haskell. Last year I spent some time learning Elixir and built a few small projects with it. Elixir is a great language and I predict it has a very bright future. In learning it, I took my first plunge into pure functional programming with its immutability everywhere, and in doing so became interested in other functional languages such as Haskell. My impression of Haskell is that it's of mostly academic interest, but regardless I'd like to learn it if for no other reason than to expose myself further to other ways of programming.
- Build a simple compiler. This is a big one; even a simple compiler is a large task. However, the challenge itself is intrinsically appealing to me. Plus, writing a program which converts a piece of high-level source code to a machine executable binary would, I imagine, greatly enhance my knowledge of my craft and convert a lot of abstract knowledge into something more material.
I've probably left some things out, but this is probably plenty for now, given there are just six months left in 2015.