Self taught backend dev here. What's the best DIY way to get a CS background?
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 :)
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.
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.
edit: added better title I'm also self taught (to an extent). 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). I also explored several MIT open courseware materials. There's a great experiment by this guy that's basically answering your questions directly: https://www.scotthyoung.com/blog/myprojects/mit-challenge-2/ 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). I'll check out those MOOCs, thanks! George Varghese's Network Algorithmics is a good book for backend-oriented people to learn various fundamental CS algorithms. 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. 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. I'll check out Network Algorthmics, thank you for the recommendation. >> 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 These days my goto resources are SO, Slack, Github issues, etc. Any recommendations beyond that? Or by 'where to acquire knowledge' do you mean 'how to categorize problems'? 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 but 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! To help out with your question this https://teachyourselfcs.com/ is a resource i have heard good things about. Thanks. Getting into this was purely accidental. I had an interest in machine learning that required more and more complex pipelines to feed it. I kept adding on layers of complexity until I was running a Kubernetes cluster and a database. Learning kubernetes meant learning about bash and containers, which were useful later. Find an online course/material on data structures and algorithms. Learn a lower level language (like c or rust) Get up to speed on design patterns and OOP theory. Hey,
Quick question how did you get hired while being a self taught developer I used a combination of linkedin and my github projects. I see
That’s nice I'd check out Coursera, or get my hands on a good book.