I am a third-year junior developer who's been working in physical security field.
To be exactly, I've been working as a firmware developer for NVRs, meaning I mostly work on embedded system.
I suppose people tend to think about an firmware developers have a profound knowledge about system-OS, memory, CPU, etc.
That may be correct, but not for me.
All I've done so far is mostly related to adding some features by just writing code or debugging. And I thought that was enough. I didn't think about learning about the 'system' itself. I just focused on the code only.
And now, I regret it and started feeling ashamed. Lately, I asked myself. "How can I call myself a firmware developer when I don't know much about the system itself, even though I've been working for years?" I couldn't answer.
I don't mean code is not important. Of course code IS important. But what I missed was the environment around the running code.
So I started looking for materials about CS. But I soon realized that most of lectures and classes are too boring for me.
I personally think when it comes to learning, long-lasting motivation is the most important thing. And for me, fun is the biggest motivation.
So even though I was looking for materials to learn about CS, I didn't want to just sit and memorize knowledge. And I found nand2tetris.
It look REALLY intriguing. I watched the introduction video and that was enough to draw my attention. I immediately decided to try this, and no I am building basic logic gates using only NAND gate(project 1).
I am happy enough because it's been quite a long time since I learn something new with this interest.
I will write articles about nand2tetris journey.
I don't know how far I'll get.
Maybe I'll quit halfway through.
Maybe I'll end up building the whole computer.
Either way, I think it's worth trying.
Let's see where this journey takes me.
And if you're interested in CS as well, I recommend you also get into this journey!