10 things I want to learn in 2019
Part of being a software engineer is accepting that you will be a lifelong learner. Things change at such a fast pace that you must constantly be learning to try and stay up to date and remain employable.
Luckily I love learning. I have such a desire to know more that it keeps me awake at night. Normally I don't have much of a plan, I just learn what currently piques my interest. This is not a great approach as I then tend to flit between things. This is going to change this year. I am going to put pen to paper (kind of) and plan out the next 12 months of learning. Obviously, these may change as I don't know what the next 12 months of projects work will throw up but hopefully, it will tie in with what I have written below.
The next 10 items are things I want to learn for both personal and professional reasons. Some of the things I just find interesting, others will be more geared towards the work I do for my job.
1. Application security
I am lucky enough to get to work on a really broad range of projects, both web, and mobile. I want to make sure the code I am turning out is not only stable but also secure. This is such a massive subject I am not expecting to become an expert (I can try though 😉) but anything I can do to harden the software I write can only be a good thing. Aside from this making me a better engineer, this shit is so cool. Every kid at some point wanted to be a hacker. This is my chance!
Containerisation is not a new subject for me. I am happy writing Docker scripts but I know there is so much more available to me and this is the year to explore that.
3. Computer science fundamentals and algorithms
Being a self-taught programmer I did not study CS at any level so kind of feel like I am missing a key area of knowledge. This is not to say that I can't do my job as well as somebody who has studied CS as that would be crazy. The need to learn the fundamentals of CS is a personal challenge. I am genuinely interested in the subject and it is what I do every day so why not understand it a little deeper.
4. C# and unity
I don't really have any interest in making games, so this one might seem a little strange. But some of the best mobile VR and AR experiences are written in C# with Unity and this is something I am interested in so I am going to give it a whirl. I know the basic C# so hopefully, I will be churning out some incredible AR experiences in no time.
5. Public speaking
I am keen to give public speaking a crack. I am not really sure what I would speak about but I feel like it is something I need to do this year. I have always struggled with confidence so wonder if this may help alleviate this. Getting up in front of a crowd and talking about something you love should not be hard but it seems to kick me in the butt.
6. Kotlin and gain a deeper understanding of android application architecture
I get to write mobile apps at work, the majority are written in React Native but lately, we have been bringing in more and more native code. I am comfortable with the Android SDK and writing Java but I am not sure whether I am clear on the best way to architect a big project.
Having taken a brief look at Kotlin, it looks great. It is so concise and easy to read. I am gonna start of refactoring some of my Java scripts in Kotlin and see what all the fuss is about.
7. Advanced Vim
I have been a Vim user for a while now using it for the majority of my daily programming but I kind of feel like I am only really scratching the surface with what I can do. It is time it increases my Vim qi.
8. Advanced Bash
Similar to Vim, I live in a terminal and so use Bash all the time but I want to know more. Being able to bring together a bunch of modules to perform a complex task is so powerful. I want more of that power! I will start by automating the tasks I do regularly and go from there.
9. Video editing
I am keen to start a youtube channel to support this publication, it would contain tutorials, reviews, live coding streams, and general ramblings but I don't know a huge amount about the creation of this content. So I am going to get the channel going and learn what it takes to make good content.
I just find this stuff super interesting. I am not saying I am going to learn about the maths behind the encryption methods but I do want to have a much deeper understanding of hashing, public key encryption, symmetric key, signatures etc.
What will you be learning in 2019?