How Much CS Knowledge Should a Non-CS Major Developer Study?
After completing a government-sponsored bootcamp and landing a job at an SI company, I often feel a lack of CS knowledge while working. I'm especially weak in networking and operating systems, so I end up relying on Google every time I troubleshoot. Since it also comes up in interviews, I know I need to study, but I'm not sure where to start. Could you recommend some books or courses?
10 answers
I'm also a non-CS major, and I approached CS knowledge with the mindset of 'study it when needed.' For networking, 'HTTP: The Definitive Guide' was helpful, and for operating systems, I recommend starting with 'Easy-to-Learn Operating Systems' instead of the 'Dinosaur Book.'
For interview preparation, the book 'CS Major Knowledge Notes for Interviews' was great because it's concise and covers only the essentials. Troubleshooting naturally improves as you gain experience, so don't stress too much.
Relying on Google searches is similar for both non-majors and majors. I grasped network concepts through the YouTube channel 'Easygoing Developer,' where explanations with diagrams helped me understand quickly.
When working in SI, you tend to focus on specific tech stacks rather than CS knowledge, but in the long run, a solid foundation in operating systems and networking is essential. I recommend 'Operating Systems: Structure and Principles Learned Through Diagrams'.
I had the same concern, but I ended up starting with 'Computer Networking: A Top-Down Approach.' It looked intimidating because it's thick, but I just picked out the TCP/IP parts that come up often in actual work.
After hearing CS questions in interviews, I realized it's important to be able to explain basic concepts in your own words. Studying by organizing them in a blog can be helpful.
I'm a non-CS major in my third year, and honestly, my CS knowledge naturally filled in as I worked on projects. If you're in a hurry, I recommend skimming summaries like 'CS for Tech Interview Prep' and diving deeper only when needed.
It's only natural to use Google for troubleshooting. However, what's important is the habit of looking into the underlying principles after solving the problem. YouTube's 'Yalpakhan Coding Dictionary' also explains things in an easy-to-understand way.
Some say that if you're from a government-funded training program, it's better to focus on practical coding rather than CS. Even CS majors forget most of it in the field. A strategy of looking things up only when needed isn't bad either.
I started with 'Computer Architecture + Operating Systems for Self-Study,' and I liked it because it was tailored to non-majors. After finishing the book, I found my thoughts were more organized when troubleshooting.