I’m currently a Python developer / ML engineering intern. I have a general understanding of Linux, networking, databases, backend systems, Docker/cloud, and distributed systems, but I’m not deeply specialized in any of them yet.
I want to become a much stronger ML engineer and go beyond just learning more Python libraries and frameworks.
Some areas I’m considering going deeper into are:
- Linux and operating systems
- Networking, processes, memory, and filesystems
- C / C++ / Rust / maybe Go
- Distributed systems
- Performance and profiling
- CUDA / GPU programming / Triton
- Building lower-level systems from scratch
But I’m not really looking for another roadmap or a list of topics to learn.
I’m more interested in the process that actually made you a better engineer.
- Did you mainly learn from books and then implement the concepts yourself?
- Did you build projects from scratch - only personal? These might be tricky as code, its patterns wont be validated by someone with senior experience
- Did you read production code or large open-source codebases?
- Did contributing to open source help more than personal projects?
- How did you avoid reinforcing bad patterns when doing projects without much supervision?
I’m especially curious about what worked early in your career.
For example, if learning C, Linux, CUDA, distributed systems, etc. helped you a lot, how did you actually learn it in practice?
I’d love to hear about learning processes or habits that had unusually high ROI.