All Posts

Published Development

Exploring the backend

Screen with code

After 3 years of studying frontend development, I decided to make a slight change in my specialization by starting learning backend stuff. Although I have some experience with databases, creating APIs and working with Node.js, I want to dive deeper into the backend world.

Current progress

During the last month I was exploring Golang: which is a completely new language to me. I was surprised with the standard library capabilities and the performance of the language. By learning about the basic concepts of Go, as well as creating a few backend applications, I feel like my expertise has grown significantly. Oh, by the way, I highly recommend the “Let’s Go” and “Let’s Go Further” books by Alex Edwards. It’s a great resource to start learning backend development with Go.

I gained knowledge about many topics, to name a few:

  • Deep dive into HTTP headers
  • Serving static files
  • Working with databases, both MySQL and PostgreSQL
  • Dynamic HTML templating
  • Using stateless vs stateful tokens for authentication
  • … and many more

Unfortunately, by looking at job offers in my area, I noticed that there are not many companies looking for Go developers. That’s why I decided to learn focus more on the Node.js. I absolutetly do not regret my time spent with Go, as I learned a lot of new concepts and familiarized myself with a new language, which is always a good thing. Maybe in the future I will have a chance to work with Go professionally.

Next steps

My plan is to learn more about Node.js and its ecosystem by creating some projects with it. As I said, I’m not a complete backend beginner, but because of that it’s even harder to find a good learning plan. For now, I think I’m going to focus on the following topics:

  • Exploring Express.js with further plans to learn Nest.js
  • Implement own Auth (JWT, Sessions)
  • Websockets, Real Time Communication
  • Set up a database migration system
  • Dive more into backend architecture
  • Some Systems Design
  • Docker
  • CI/CD: GitHub Actions, Making a deployment to a VPS on pushing to the repo
  • Linux and VPS skills: Nginx, Caddy. Probably will try to deploy a node app on a VPS

Sounds like a lot, and that’s probably true. Well, small steps, you know?

Of course I’m going to continue writing frontend, in fact I’m working on a new project right now. But I feel like it’s a good idea to have a broader knowledge about the backend, as it can be very helpful in the future. Nowadays it’s very common to see fullstack developers, and I think it’s a good direction for me to go.

Do you notice any problems with this post?

Feel free to make edits on Github, as any improvement, no matter how minor, is welcomed!

Edit

© 2024 Volodymyr Mokhun