I’ve been programming for over 20 years, but never studied computer science. I know C, C++, Python, Rust and a little bit of a few other languages.<p>If I’m approaching a problem, I essentially visualise how I think the data should be organised in my head, then turn that into code.<p>So far this approach has served me well but I feel like I’m missing out on many useful data structures and potential shortcuts (by not reinventing the wheel) due to my lack of formal training.<p>What are some good resources for someone like me to fix my foundations?
Another comment mentions teachyourselfcs.com. I can vouch for that. I am a chemical engineering undergrad who taught himself computer science mostly using those resources.I had fair bit of interest in becoming a machine learning researcher and I had good enough experience in programming, so wanted to learn CS in depth.<p>Incidentally, I started a company called Primerlabs(<a href="https://Primerlabs.io" rel="nofollow">https://Primerlabs.io</a>) which creates self paced conversational CS courses to learn on your own. Although there are only two courses now.<p>So, I will say go with teach yourselfcs. Other listicles are too much info, Imho.
Considering that you have 20 years of experience maybe you would find interesting Knuths "The Art of Computer Programming" books (sometimes referred to as TAOCP) although it is a bit "hardcore".<p>IMHO a must-read is SICP ("Structure and Interpretation of Computer Programs")<p>"Dragon Book" ("Compilers: Principles, Techniques, and Tools")<p>Ofcourse there are plenty of online courses on the internet as others mentioned here