Ask HN: What should I learn next?

4 points by marcus_holmes ↗ HN
I've got some free time coming up. Finished a project in Go & Vue & Postgres. Really enjoyed that tech stack, but feeling the need to stretch more.

What should I learn next? My inclination so far: - mobile dev (probably Kotlin on Android, not so keen on the Apple stack, and I run Linux desktop) - Lisp (and climb the Emacs learning cliff) - a games engine (possibly Godot, which I like the look of, though Unity is the elephant in the room) - a desktop toolkit (GTK, Qt, Tk, I guess... any others?) - improve my Python and get a ML project done

What's the next big thing in software that I need to be aware of?

11 comments

[ 1.8 ms ] story [ 38.6 ms ] thread
Rather than going for the big thing in software, you should probably try to understand what is the area that interests you and spend more time on topics in that area to compound your knowledge. Always going for the "next big thing" in software will help you gain familiarity with a lot of topics but you risk being spread too thin.

That being said, from the HN community I have seen a lot discussions on Rust programming language. Picking up project to learn Rust can be a good idea to be familiar with the latest trend.

Yeah, it's interesting that Rust is getting included in Linux kernel hacking. That would be cool to learn.
I would look at that in reverse. Instead of looking for the next hot trend instead for the most common boring thing that everybody gets absolutely wrong. The goal of software is automation. My biggest challenge is finding the current problems that can be automated. This is a challenge because most people, especially many developers, don’t see the minor time wasters as real problems in demand of solutions.

Finding those problems and communicating the value of your solution are huge challenges that take practice.

hehe, I'm a bit of a contrarian when it comes to modern tech. I don't see the need for Docker most of the time. I struggle to understand why people use ORMs instead of learning some SQL. I don't agree with the massive use of third-party libraries in most modern development (this is a security nightmare waiting to happen). So yeah, there's quite a few boring things that everybody gets wrong, but I doubt I'm going to be able to convince them of that ;)
Most of the time it is not about SQL itself but the interface. Like, since you avoid ORM, you never ran into a mismatch between parameters/query results in prepared SQL statement vs. surrounding code? Isn't that a security risk too?
not so far, no. I usually create a view as a compound result type for functions, and match the struct for the results to the view. So the SQL compiler tells me if I got a return type wrong, and if I need to change the struct then I change the view to match, and the compiler tells me all the other places I need to change.
One suggestion would be to get some familiarity with Docker and Kubernetes of you don't have any experience with them. IMO is important to broaden your familiarity into different layers of stack and get better understanding how different components fit together. It will improve your systems thinking.
You can deploy the project you just finished to AWS/Google Cloud. That can involve learning Terraform/Pulumi, Ansible, AWS specific technology, setting up CI/CD. Maybe you can write a tool that hammers your API and see how you can scale Postgres (load balancing, replication, sharding, partitioning etc).
Done that :) I didn't mention it, but the project was deployed to AWS, CI using Gitlab, no CD but automated deployment using scripts. I didn't shard Postgres as it can handle around 1000 calls a second with the basics, which is more traffic than this project will ever get.
Ah awesome!

Well I don't know what kind of project you're working on, but I like over engineering my pet projects for learning purposes and found it quite fun!

If you're into web development, there's this really fast JS library called Svelte that's gaining popularity.

You've probably heard this one a lot of times, but I highly recommend you to learn C (not C++!). It may appear cryptic at first, but C really forces you to think. For example, you may have to stitch together your own custom data structures, because linked lists and hash tables are seriously amazing.

For me, learning C was like relearning programming from the ground up.