Self taught backend dev here. What's the best DIY way to get a CS background?
17 points| epiphanitus | 5 years ago
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
el_dev_hell|5 years ago
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).
epiphanitus|5 years ago
nenolod|5 years ago
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.
epiphanitus|5 years ago
>> 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'?
wikibob|5 years ago
thedevindevops|5 years ago
Raminj95|5 years ago
To help out with your question this https://teachyourselfcs.com/ is a resource i have heard good things about.
epiphanitus|5 years ago
unknown|5 years ago
[deleted]
chovybizzass|5 years ago
bradwood|5 years ago
Learn a lower level language (like c or rust)
Get up to speed on design patterns and OOP theory.
mraza007|5 years ago
epiphanitus|5 years ago
sedeki|5 years ago