Hey folks. Self-taught backend dev here. I learned to code and got hired off LinkedIn thanks to my Github projects and fire in the belly. Sometimes my love of coding feels like a drug addiction :)<p>I've learned a lot from my first job but I get the sense that there are some things I'm missing out on with no formal CS education. I also work a lot and don't have a ton of free time.<p>Are there any recommendations that y'all might have for getting up to speed, or leveling up as an engineer? I work mostly in Python and Bash these days, but am open to any resources you think would be good.<p>edit: added better title
I'm also self taught (to an extent).<p>When I was making the transition to tech, I dived into the fundamentals very deeply with a collection of MOOCs (CS50 by Harvard is a great place to start regardless of your current skill level).<p>I also explored several MIT open courseware materials. There's a great experiment by this guy that's basically answering your questions directly: <a href="https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/" rel="nofollow">https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/</a><p>If you're not familiar with object-oriented (OO) fundamentals, I'd probably start there since you're on the backend and will probably be exposed to OO eventually (perhaps already).
George Varghese's Network Algorithmics is a good book for backend-oriented people to learn various fundamental CS algorithms.<p>It presents various CS topics from the perspective of backend optimization, so it's a good book for approaching theoretical CS from a background you already probably understand.<p>But, ultimately, the best asset for somebody with a CS background is not so much having immediate knowledge, but knowing where to acquire knowledge as necessary. If you have a general idea that for a specific scenario, you can acquire X knowledge in Y resource as you go along, then you're already doing quite well.
Is there any opportunities to get a mentor in your current workplace? Most of what you'll be able to learn is from books and the existing codebase <i>but</i> not all of it, there will be places where decisions were made that cut corners and for good reason - but only people who have worked on it will be able to tell you why and what you should take from it.
I would actually love to know what resources you used to teach yourself backend development if that is possible!<p>To help out with your question this <a href="https://teachyourselfcs.com/" rel="nofollow">https://teachyourselfcs.com/</a> is a resource i have heard good things about.
Find an online course/material on data structures and algorithms.<p>Learn a lower level language (like c or rust)<p>Get up to speed on design patterns and OOP theory.