One of the things about self-identifying as a “Full Stack Developer” or “Solution Architect” is that there’s no shortage of things to learn, and oftentimes it’s good for your career-wise to at least have some passing knowledge of a bunch of technologies. It helps that I really like the field as well. I try to make sure I study or learn at least one new programming language or framework every year (though I am willing to stretch that definition as needed). Here’s a list of tech I’m looking at learning in 2019:
- Rust or Golang. Between Python and JS, the last few years for me have been mostly focused on dynamically-typed languages that don’t require precompilation. With my recent revisit of C++, I’m a bit interested in checking out a new statically-typed compiled language. Rust and Golang or the primary candidates here, I’ll probably toy around with both to see which one I like better. The problem here is that I typically do web-based programs, so finding a project where it would be worth using one of these might be challenging.
- Swift. Since I recently bought a Macbook Air, that opens up the possibility of trying out Swift. I was involved in a mobile project when Swift came out and found it interesting when I was first going through the documentation - maybe because I thought Objective-C was a hot mess (or at least our codebase was back then). I never did get a chance to try it out, so maybe I will this year - if I find an appropriate mobile app to work on.
- Kotlin is to Java and the JVM as Swift is to Objective-C and iOS. It’s young, but as a JVM language it has direct interoperability with Java programs, and it’s supposedly a first-class language nowadays for Android development. If I do decide to work on a native mobile app, Kotlin is a prime choice for the Android version. (Assuming I’m willing to dive back into the JVM ecosystem…)
- CSS Grid. I’ll be the first to admin I’m a bit behind on frontend practices; my default layout framework is still Twitter’s Bootstrap. If I get the chance, I’ll do some of my personal web projects using CSS grid.
- Vue.js. Speaking of frontends, I never got too deep into the current crop of frontend frameworks. Funny story, we were meeting with a database vendor to discuss solution options for a client and I mentioned I had already built a small prototype web application using their product. They asked me what framework I was using on the frontend and when I told them I wasn’t using any, I was told that was “hardcore”. While I do think it’s helpful for full-stack web developers to be familiar with vanilla JS, I am interested in trying out at least one of the three prevalent frontend frameworks - Vue, React, and Angular. I have kind of tried React a bit with React Native, but at this moment, I’m leaning more towards Vue.
- Machine Learning. Specifically, I want to try out some text generation using recurrent neural networks, like those posts where people generate screenplays etc. I’m not too conversant with the theory, but reading some examples and tutorials I think this is something doable. Just need a reasonable corpus of texts to work with…
- TDD. Yup, test-driven development. I’m way behind the curve on this one. I understand the theory and the benefits, but I’ve never been in the position to have TDD in my projects. It’s difficult sometimes to get management buy-in. At my past job, all of the testing was still manual. I’ve dabbled in TDD a bit, tried out some frameworks, but never full-scale in one of my projects. Maybe I’ll try to write some tests for one of my side projects this year.
That’s it. I think it’s quite a lot actually. I’ll review this post towards the end of the year to see which of these I end up doing. Or maybe I’ll get into a freelance project that involves something new not on this list, who knows?
What about you, what’s your list for 2019?