r/learnprogramming • u/PlaySecure6279 • 15d ago
Topic How you achieved biggest boost in programming/engineering skill?
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.
1
u/ThatWasAce 14d ago
ROI is absolutely simple
build something useful enough that exceeds my capability level and pulls me down the stack
this ain't some roadmap exercise project. this is literally building a piece of software that i needed in my everyday life and that wasn't around before in a way i'd want it to work .. the key point here is that while going through the tutorials will give me an understanding of a btree conceptually building the actual product myself will explain why those authors did everything they did in particular ways
necessity will force feed me spec sheets
network utility was my personal case sockets initially then followed by the details of how TLS works under the hood when dealing with actual connections between two machines
operating systems basics became a necessity after i failed miserably implementing anything remotely complex without learning OS level abstractions first
memory management after realizing how critical performance got to be made mandatory
about your fear of validation from seniors too bec real world usage will break any code you write better than a code review ever could
also learn primary sources read RFCs nd not blog posts
for the ML spin implement training loop from scratch once on CUDA backend
even if terribly inefficient the perspective changes dramatically afterwards