31st January 2019
I've been told that it's good to physically write down your goals to try and elaborate a bit more on the what, how and when. Unfortunately, I'm also a month into 2019 and only just getting around to doing this, so not a good start. Luckily I've never been a stickler for sticking to deadlines...
Let's get onto some of the things I want to do for this year!
This one shouldn't come as a surprise, but I like learning things so I want to try to invest more time into it this year. On reflection, I wasted the relatively large amount of spare time I had last year, and didn't quite get my teeth into all the things I wanted to. I'm hoping to make 2019 a bit more fruitful in this regard.
For this year I will be focusing on the following:
Concurrency programming. This should logically fit into my Exploring Concurrency series I started all the way back in April last year. The next parts will focus on looking at the various abstractions in Java (thread pools, etc) and then Kotlin and its new exciting coroutines goodies. If there's time, I'll try and look at Rx/Reactor as well.
Haskell. Even further back in Christmas 2017, I started looking at Haskell to try and get a better intuition for functional programming (FP). At the time I started reading Learn You a Haskell for Great Good, but unfortunately ended up leaving it unfinished around the 60% mark. There are still a bunch of topics I need to cover, such as in-depth monads and IO. I hope one day I'll finally understand what a monad is (and hopefully even be able to explain it).
I think some of my failure to really knuckle down last year was due to my fairly inconsistent reading material. Despite reading code, articles and Reddit on a daily basis, I've generally found it hard to get through more than 2-3 books a year and unfortunately, lots of good learning material is in book format.
To improve in this area, I'm going to try and make a habit of reading books more. For books related to the topics I'm interested in, I intend to try and read 15-30 minutes periods every day, reading once in the morning and once in the afternoon.
Once I start picking up some of this knowledge, I want to try and reinforce the learning, which brings me nicely onto my next goal...
Another area that I also didn't capitalise on last year (despite my free time) was writing blog posts. Originally I wrote that I would try and write roughly one post a month.
Unfortunately, this actually ended up being 8 posts in 12 months. Better than nothing, but certainly shy of my target, so this year I want to try and make good on that goal and write at least one post a month.
The main challenge with writing blog posts is mostly a matter of content. It's difficult to start writing about something if it doesn't feel right.
Sometimes you start on a topic, but then quickly realise that it might not be interesting enough to write an entire post about. It might even be that you still have a significant knowledge gap on the topic, or the post itself starts spiralling out of control.
To avoid these traps, I think it would be good to try out new styles of posts. Most of my posts thus far have been relatively deep-dive style, resulting in 2000+ word behemoths that take me days to construct. Instead, it would be good to try writing shorter posts with narrower scope, potentially with a more advanced audience in mind.
This feels like a good start, but like my first goal, I want to try and allocate some actual time to achieve it. I think a reasonable amount would be to commit at least one hour every week. The intention would be then to pull everything at the end of the month into a coherent post.
Whilst I generally consider myself to be quite a productive developer, I've generally found it difficult to do side-project work that isn't paid. Whilst this isn't necessarily a bad thing, it does mean that I haven't really tried to work on some of the various ideas I've had for apps or open source projects.
It would be good to start one project up this year and actually commit a decent amount of time to it. It also doesn't have to be complex, but it would be good for it to be on a topic that keeps me engaged (and is beneficial).
Committing to side projects is hard as the majority of time, there are plenty of reasons not to do them. Has someone already done this before? Is the project too complex? Is it interesting enough?
Instead of worrying about what the project is, I should try and pick a small and feasible project that can actually be completed relatively easily.
Unfortunately, this is likely to fall by the way-side if my main freelance work keeps me busy over the next year, but it would be good to at least get something started by summer. I already have a few ideas rolling around but the first step is always the hardest!
Hopefully I haven't set myself anything too outrageous for 2019, but I can already see myself having my hands quite full! I would say that it should be at least possible to achieve goals 1 and 2, however 3 is more vague and difficult. I'm hoping that I'll have a better idea of where to take it in the coming months and hopefully I'll be able to write some more about what project I eventually try and pursue.
If you haven't got your own goals for the year, perhaps it's worth thinking about what you can improve about yourself! Make sure you're not overestimating what you can achieve, but don't be afraid to try and push yourself a little bit more to be the best you can be.