The "Work out what you want to learn next" thread!

The dev world doesn’t sit still, in fact it is probably one of the fastest paced industries around - meaning to stay current we are continually learning and honing our skills.

Luckily for most of us, we have a natural tendency towards investigating what’s new and pushing the boundaries to improve on what was before and what we’re doing or want to do next - it’s this striving for innovation that keeps driving the industry and the technology we use move forward at a lightening pace (the pros and cons of which we could probably discuss in another thread :laughing:).

So this thread is for when you want to thrash out ideas and thoughts on what to learn next - who knows, perhaps someone will nudge you in a direction that you didn’t first think of, or maybe you will inspire someone to follow or join you in your journey… because it’s much more enjoyable (and sometimes tolerable!) when you do things together after all :blush:

Corresponding tweet for this thread:

https://twitter.com/dev_talk/status/1355611754676555777

Share link for this tweet.

Here’s some of the things I want to learn myself - if anyone is interested in the same please say! I’ve really enjoyed the Programming Erlang book club (which I am eager to get back in to!) and am eager to get involved in more of these community focused threads.

  • Want to brush up on modern CSS (perhaps starting with @noelrappin’s Tailwind book as well)
  • Want to check out the modern JS landscape including…
    • TypeScript
    • Svelte
  • Want to finish learning Elixir & Phoenix (specifically the Phoenix book)
  • Want to learn more Erlang (after the Programming Erlang book)
  • Want to learn Rust (already bought @herbert’s book in preparation!)
  • Want to learn Swift but ideally if there was an easy Swift to Android app framework or tool (something like SCADE perhaps)

I’ve probably missed loads out :rofl:

2 Likes

Focus has been a huge problem for me ever since I work as a programmer (so 19 years and counting). For the first time in my life I am seriously questioning my generalist approach and I want to focus some more and have several deep skills. Working on it but it’s extremely challenging to reprogram your own brain. It’s a daily battle.


What I am learning currently

  • Erlang/Elixir's OTP in more detail. It’s a ton of fun. I think I should rework some of my experiments into small demo projects on GitHub. They could be useful as a teaching material to others.
  • Rust to the maximum. It’s a constant fight that hasn’t stopped for ~2.5 years, on and off. Some of Rust’s concepts, especially the lifetimes, just take a while to settle in my brain.
  • Any and all data analysis and visualization command-line tools. Just today I discovered jp and miller and already used them for basic histograms and bar charts right there in the shell. Loved it! But also xsv, jq, yq and a ton of others! When I finally start blogging, I’ll have an entire section dedicated to such immensely useful tools.
  • Home servers, owning your data, and ZFS in particular. I bought a cheap and quiet home server and tinkering with it is (usually) a joy.

What I want to learn in the future

  • OCaml. The language and the compiler are amazing. The compiled binaries are faster than Golang and little slower than Rust – quite the achievement! The community does not seem very welcoming though. Plus some basic features aren’t there, like first-class UTF-8 strings. But I’ll still learn it. For quick scripting at the very least.
  • A subset of the modern JS and CSS tooling. I want to be informed how do people actually bundle, minimize, optimize and remove dead code when working with JS and CSS. And to be able to deploy my own websites using those tools.
  • More command line tools for processing, analyzing and visualization of data. I want to be able to almost not reach for scripts if such a thing is even possible. I want to have a lot of tools in my belt!
  • Containerization technologies and maybe their deployment. Namely Docker/Podman and optionally Kubernetes/Nomad. It’s obvious they are not going anywhere and are used more and more. I want to become comfortable with them (even if Kubernetes is a nightmare incarnate and needs tons of accompanying tools if you want to get anything done with it, and to save your sanity).

What I probably should learn but don’t care much about

  • Elixir's Phoenix and Absinthe in detail. Even if all of my Elixir work revolves around one of these two, I always kind of [re-]learn them on a good-enough level and just move on to the real interesting work which is the business logic and the proper organization of code. Now don’t get me wrong, I’ll orient myself in any Phoenix/Absinthe project and will be productive within the day. It’s just that I am beginning to think that I am just not into some of the plumbing technologies…
  • Modern JS and TypeScript. Yeah, it would probably add extra potential money to my career but I can’t bring myself to learn those. I don’t want to.
  • Kubernetes. My last job made a heavy use of it. I believe I hated it for life but who knows, I might get around to it.
6 Likes

Nice topic @AstonJ,
This year one of my resolutions is: read more tech.
And as January comes to a close I’m happy to report that I’ve been quite disciplined. :smiley:

I’ve also started reading a book called Cult of the Dead Cow. It’s the story of the hackers group of same name which has inspired me to learn more about Unix.

So for now my learning plan is:

  • Spring Web MVC & Webflux a Java framework
  • Modern Java versions (9-15)
  • Unix basics

Going to try and keep it as simple as possible and just stick to those for now.

As @dimitarvp has mentioned, Kubernetes is something we probably need to learn but it doesn’t interest me either at the moment, although Docker might be on my radar later in the year.

Just out of curiosity:

  • how much time (daily, weekly) do you spend learning?
  • Does your company give you time for learning?
2 Likes

I really want to learn more about how to split loads across different machines. How does it work? Ya know? :rofl:

I also want to learn c++ for some reason, I’d never use it and it sounds like a pain in the ass; but I feel like learning a language will be super satisfying, especially if it’s an annoying one. :joy:

Lastly, this isn’t a language, but rather 3D rendering. That stuff sounds cool and there’s just something about some artworks that just make me feel satisfied :sweat_smile:

1 Like

From a quick search, this is not a bad article: https://www.bennettnotes.com/how-to-build-a-supercomputer/

2 Likes

So for me for this year (exactly in this order):

  • Azure Administration certification (AZ-104)
  • Kubernetes (already proficient with docker and especially docker swarm, but kubernetes won the “container orchestrators war”)
  • additional languages specifically for writing CLI tools (toolsmithing)
    • already can write in: python, node.js (js/ts), ruby, perl, golang, PowerShell, C# partly
    • want to learn: C# properly, Rust
  • openSUSE (used mostly red-hat,ubuntu and Solaris, but having additional RPM based distro might be good)
  • Xamarin or Flutter (for iOS/Android development)
  • MS MAUI (for cross-platform gui apps, but this will probably come later with .NET 6)
    • hate writing cross-platform apps in electron or java
    • might try ReasonML (onivim2 proved that it is possible)
  • re-learn bash (using fish for long time and recently realized I have problems to write pure bash scripts)
  • CSS (I am terribly bad with styles)
  • I am seriously considering getting back to Elixir world, but have doubts as my current job have exactly 0 opportunities, however I used to love Elixir (Phoenix, OTP)
2 Likes

I am at a stage where I can’t decide what I want to learn. :frowning:

2 Likes

What about learning Elixir:

  • build highly concurrent and distributed systems
  • build amazing realtime apps.
  • learn how to use LiveView to build single page applications without the need to write too much javascript your self.
  • the new upcoming possibility of running Elixir in the GPU’s.
  • and much more

I have I sold you on it :innocent:

3 Likes

Do you have any idea what you want to do? Frex, do you want to write web, mobile, desktop, command-line, or some other kind of apps, or OSes and their associated utilities, or something else entirely? That can help narrow it down. If you’re “into” some particular ecosystem (e.g., Windows, Mac, or Linux), that can narrow it further by indicating or excluding things; frex, if you want to write mobile apps and you’re into Mac, Swift is the obvious choice.

Alternately, if you’re casting about for a programming language to learn, you could try learning whatever is most different from what you already know. Done a lot of duck-typed OO scripting languages? Try a strongly typed functional or imperative compiled language. There may be such a thing already out there, but you could compose a list of the top twenty or so popular languages, marked by whether they’re OO/FP/imperative/logical/declarative or whatever, strongly or weakly typed, statically or dynamically typed, interpreted on the fly or compiled and linked ahead of time, and so on. That will make it easy to check whether your knowledge is missing some particular option in any column. Try to cover them all, and then if possible all combinations. :slight_smile:

3 Likes

I learned a little bit of Elixir before. I’ll try to go back to it. Thanks.

3 Likes

I guess I am experiencing a bad case of imposter syndrome. :frowning:

2 Likes

My background: Currently I use JavaScript (sans node/deno), Ruby, Elixir and Go. In the past I’ve used PHP and have developed sites using CodeIgniter and WordPress.

I have to steal time for learning. Starting with Swift, I will be learning the following things:

  1. Swift and Kotlin,
  2. iOS and Android,
  3. Kotlin Multiplatform Mobile,
  4. Polish OTP (with PragProg: Designing Elixir Systems With OTP)
  5. Learn to use Phoenix’s real-time capabilities better (with PragProg - Real-Time Phoenix)
  6. Learn to create distributed services with Go (with PragProg - Distributed Services with Go)
  7. Erlang,
  8. Rust,
  9. Quarkus (and using it with Kotlin),
2 Likes

Please share how you were/will able to steal time to learn all this… I am honestly interest :slight_smile:

2 Likes

This sounds like getting retired early and still working 18h a day… :flushed:

1 Like

It’s actually a long term goal. :slight_smile:

2 Likes

Just wanted to check in and give an update:

  • Finished reading Spring Web Mvc & Webflux
  • 3/4 way through Modern Java

Thinking about focusing Functional Programming in Java and then on Reactive or Networking next … obviously none of what I read sticks, just gets deleted by the next paragraph … :rofl:

2 Likes

It never goes away. You just have to learn to deal with it. Here I am with mumblety-mumble years of experience and I still catch myself thinking I’m Not Worthy when I see what some other people have accomplished in half the time.

One trick is to remember that for each such highly successful person you see, there are thousands in our field who haven’t done squat beyond show up for work, do a barely good enough job not to get fired lately (they may have been before, hell I’ve been, more than once), and go home and not do anything to sharpen their skills, let alone share them. Don’t let the top 1% fool you into thinking you’re bad. Just the fact that you GAF enough about your craft to hang out on forums, is evidence that you GAF, and will therefore probably develop your skills (if you haven’t yet), more than the vast majority.

3 Likes

Despite the fact that Jose now lives in Poland, I don’t think OTP is any different there than anywhere else. :wink:

2 Likes