I started learning infra via AWS CDK (TypeScript). And by osmosis learned a lot about cloud native application architecture. Which changed my way of creating web apps entirely and rejuvenated my love for software. Still going strong 5 years later. Now with much stronger focus on platform engineering and not working on features much.
Writing my own compiler would be compelling but I somehow have a problem to do things only for sake of learning. Would love to have the knowledge tho. Anyway happy new year!
Pick a language you love, and put together a text editor, or even just a quick utility to search through all your files for a keyword and show the results in a window. Write your own Clock app for Android, just to fix that little niggling detail that no other app quite gets right.
I think you'll be surprised how easy it is to put things together, once you start.
The point isn't to build something anyone else would care about - don't worry about the polish, you don't need to publish it, you don't even need to use it yourself. The point is just to make something. Although, personally, I now have a collection of random utilities that all make my life a little bit better, and it's nice knowing that any time a simple app like "Clock" or "Calculator" bugs me, I COULD fix it.
Anyway, I got the "Writing An Interpreter In Go" book and I think I'll give it a shot either way. I think I'm at a point in my career where I'm finally tired of building the same things again and again. I've also been thinking about doing a design course in Interaction Design Foundation just to get my mind interested in things again and detach myself from the work I've been doing.
I don't do anything anymore these days to advance my career in SWE. Maybe because I am quite jaded because job market sucks, and the job itself sucks (making the rich richer), and any extra time I need to do to advance my career is just doing leetcode monkey grind.
I want to change it this year. I do CRUD apps, and I am very boxed in my brain, thinking that CRUD apps is the only programming there is. I often marveled at people who create database, compilers, emulators, 3D engines, version controls, text editors, etc. Those people are like wizards to me.
I wonder how can I be creative like that? Like, how can you just wake up one day and decide to create magic.
I want to learn how to do those. Any advice is appreciated.
Also I want to do it in Zig because I've never worked with manual memory management language before, and I figured might as well.