I’m fairly decent in React and Typescript (and Jest, Webpack, etc) but I prefer working in the back end. It feels more rewarding, like solving puzzles instead of fighting to align flex items to look nice.
What technologies would you recommend to learn becauses Express.js, SQL and/or noSQL? Right now I have some experience with Postgres, Mongo/Mongoose, Google Cloud Run and Cloud Functions, and Cloud Firestore. I’m thinking of expanding into Kubernetes, Ansible, Jenkins, and Terraform. I hope to add a monitoring tech in there too based on whatever guides I follow for these other ones.
I have only vague ideas of the value of container orchestration, CI/CD and Inf. as Code but I’m sure learning and practicing those techs will clarify the path further.
If you want to learn the Node backend, then Express, SQL and noSQL are good places to start. The other things you mention are too. It keeps changing. Just keep learning. Everything you learn will be helpful in some way and it’s impossible to predict what the ideal combination is going to be for wherever you end up.
Solving puzzles in this context have very little to do with tools and technologies. At the end of the day (if we talk about the web), the only puzzle you need to solve is “how do I make my lighthouse performance at 99%?”. And in most cases it would boil down to the same old data structures and algorithms, rather than picking up correct tool.
SPOILER ALERT: There are by far many more puzzles on the front side of the things.
If you feel bored from that, I suggest you try to go to so called “gateway”, part of the front-end on a very edge between front-end and back-end. Things like PWAs, GraphQL and user specific data handling will definitely bring few rollercoaster moments in your life - this is where all the fun is
Just a slight note of warning re the complex DevOps-focussed tooling: all of these tools are designed to manage infrastructure, and often don’t make a lot of sense if you’re just building small things. If you’re learning to build Node apps and you want to deploy your app at the end of it, and you use (say) Terraform and containers and a Kubernetes cluster, that’s like using a nuclear weapon to hammer a nail in, or solving the problem of needing to clean the bathroom by building a new house – it’ll do the job but it may also be overkill to a staggering amount (the nail might be being driven into adamantium, or you may really need a new house! Or not) .
This is not in any way to say they’re not very useful things: they are, and DevOps skills pay extremely well, but what’s involved is often quite different to just “building server application” skills – yes, the whole set of skills has drawn a lot closer to pure coding, but they’re still basically system administration skills that involve setting up a series of configurations. Lots of these tools are designed to manage extremely complex build/deployment scenarios for organisations with lots of things to build and deploy. Also, if you’re going down this route, be prepared to read lots and lots and lots of [exceptionally dry] documentation regarding writing config files, and probably learning a language like Python or Go (or at least getting good at Bash).
Also, DevOps doesn’t really discriminate between arbitrary categories like “backend” or “frontend” – this stuff still probably needs building and deploying whatever.
And CI is A Good Thing, and again doesn’t matter if its front/backend. You don’t need complicated infrastructure tooling to use it, you can hook up things you have already to CI providers to automatically run tests etc. Just try out stuff bit by bit
To be honest, I just use asp.net. I’d recommend scaling up in terms of the complexity of the project instead of learning all those different tools.
I always find using geodata fun, and it’s been a pretty big part of my job (even if it is quite niche). Get a leaflet map in there, load in some geojson and see what you can do!
Either way, good luck!