4 ms·
Do the DS&A stuff. Learn the common data structures and their big-O. Do some Leetcode questions. You quickly discover that there were things you could have done
by lordnacho 3y ago
Do the DS&A stuff. Learn the common data structures and their big-O. Do some Leetcode questions. You quickly discover that there were things you could have done better, and you realize pretty fast that a huge swath of problems are actually solvable with a small number of solutions.
Other one is systems. Maybe less relevant for some people, but it's worth having a deeper model for how the OS works. How does virtual memory work, what does the scheduler do, threading, etc.
Finally perhaps programming languages and compilers. Gives you perspective on how the tools be use are constructed.
- rgrieselhuber 3y agoVery much agreed on both. Especially systems. There seems to be a hard cutoff in developer productivity and solution finding that is directly correlated to their level of knowledge in this area. There is just something about being initiated into the UNIX philosophy that helps immensely.
- Byamarro 3y agoAs a web developer, I'm curious - what kind of projects are you talking about and what kind of solutions did you witness being implemented as a result of the creator having knowledge in this area?
- rgrieselhuber 3y agoIn backend dev, it's almost non-negotiable for what I would consider to be obvious reasons but I still see a learning curve for developers coming from self-taught or bootcamp backgrounds. On the frontend, I guess you could make the argument that it's not as relevant but I still don't fully buy that after watching the last ten years in frontend development trends with React, etc. The whole thing just seemed like a way to escape the basics of dealing with web servers, basic HTTP, server-side development in "icky blue-collar" languages (anything not-JS or TS), deployments, SQL, etc. Everyone has their biases and I'm no exception but this has been my experience.