this post was submitted on 24 Oct 2023
10 points (100.0% liked)

Ask Experienced Devs

1232 readers
1 users here now

Icon base by Delapouite under CC BY 3.0 with modifications to add a gradient

founded 1 year ago
MODERATORS
 

Hi.

I'm a dev with 3 YOE, mostly in ML and MLOps, and more and more I'm trying to pivot into traditional software engineering. As of now I'm trying to really learn the fundamentals of backend engineering (as opposed to the bootstrapping DIY learning attitude that I had during my ML roles towards backend engineering), and I'm learning Node.JS. I'm getting familiar with the the concepts and the syntax, and so far so good. But one thing that I really lack is the imagination of what a good side-project might be.

So I ask experienced devs here, can you recommend me some good project ideas to work on, to make myself a better dev?

you are viewing a single comment's thread
view the rest of the comments
[–] swordsmanluke@programming.dev 1 points 9 months ago

Welcome! You've just started out on the path off mastery. The first step is deciding to take ownership of your growth and to begin independent study.

But... All the practice in the world won't help if you don't know what you want to learn. Before you pick a project, decide what skill(s) you want to learn in particular.

A list of a few candidates for skills considered "backend"

  • software design patterns
  • <any given language/web framework>
  • infrastructure tools (dbs, docker, etc)
  • api design
  • SOA vs Monolith tradeoffs

I recommend picking a specific topic and build your project around that. Pick anything you like! It doesn't even need to seem useful - everything you learn will make you a better dev - and doing fun side projects is much more motivating than doing "homework".

As an example, here are some of my past side projects and what I learned from them:

  • A terminal multiplexer for a head-mounted PC ** Rust; ANSI escape codes; async software design

  • A CNN to identify Lego bricks ** keras; NN layer types;

  • A Ruby gem of useful language abuses ** edgecases of the ruby language; interface design; a little FP

  • A match 3 game ** Godot game engine; gdscript; ux and game design

  • a python FP wheel ** Functional Programming concepts

  • an LLM-based software writing agent ** LLMs - how do they work?

Each of these was targeted to help me dive into a specific area and improve my skills there.