I graduated about 3 years ago from a relatively strong CS program, but don’t remember any of the stuff I learned. Operating systems, programming languages, networking, databases, theory of computation, etc. I’m somewhat comfortable with data structures and algorithms since I had to review that stuff to practice leetcode and prepare for interviews, and as a backend engineer there are SOME networking/OS/DB concepts that I use regularly at work.
However for the most part I find that debugging, refactoring, and coding is kind of disconnected from all the theory I studied in college. I often wonder if I should go back and relearn all that stuff, but realistically I don’t have time to reread my old 1000+ page college textbooks nor take lengthy online classes especially since I’m already spending a lot of time on leetcode and personal projects after work. At most I watch YouTube videos or read Wikipedia articles or documentation to learn only the things specific to my work tasks.
Will my “weak” CS fundamentals eventually hold my career back as a backend engineer? And if yes, then what can I do about it with the limited time that I have?
- Have you considered going to community college to get a culinary degree and become a line cook?
CS changes so much every few years and if you aren't keeping up, you'll be some middle aged guy complaining that you lost your job to someone younger with more recent skills.
All the top engineers on my team have a solid grasp of fundamentals and systems.
- I mean, I think I’ve done a good job of keeping my skills and knowledge up to date. I attend conferences, meetups, work on personal projects and projects with other people, and subscribe to mailing lists for technologies of interest. So I doubt not keeping up is a problem for me since I genuinely like this stuff. But yeah I do think I need stronger fundamentals, just not sure how to go about it at this point.
- Microsoft / EngMP3moreThe amount of information you can work with in the moment varies from person to person. Your mind purges information that is not being used. This is a good thing, as it frees up your working memory for what is ACTUALLY relevant in your life. The things you studied in college aren’t completely forgotten, they simply aren’t active in your currect working memory. If you were to take an OS fundamentals book and read it over the course of the week I’m sure you’d start recalling all the stuff you learned in college about OSes. You’ll be recalling it which is 100 times quicker than learning it all over again.
It is insanely hard to compete with younger people on the field where they have the advantage. Therefore your long term strategy shouldn’t be about playing on the same field using same rules as them as it will become increasingly harder as you age, but using your experience, connections, knowledge, to move to a different “field” altogether. It is more advantageous to learn how to learn, where to find relevant information and people, than it is to keep up with all the changes in the field yourself.
I had an Indian coworker whose coding skills were abysmal compared to mine. But he had great personal relationships with many experts in very different fields whom he could reach out to for help at a moment’s notice. With my coding skills, his ability to find people with the right information, two of us would finish a weeks worth of work of 5 people in single day.5d1
- So my more serious answer from 25 years in tech is to figure out what really interests you and dig into those areas. Want to be a thought leader? Blog about interesting topics, give talks, consider writing a book if you are an extreme masochist.
If you are doing all that you say you are, then I'm not sure why you don't think you have what it takes to keep up with the fundamentals. One of the excellent engineers on my team who didn't feel he had a good systems background took the Steven's APUE book and read it from cover to cover. Things like that are helpful.5d1
- Oracle 🔴vs🔷I use only 5% of what I learned in college today. To get the job, all you need is to know data structures and algorithms which is like 2 classes in college. The rest you pick up and learn at work. What are you worried about?
Also 1/3 of my coworkers don’t even have a CS background. One guy has a music major and the other has psychology. My friend has an art degree. You don’t need college to learn this stuff.
- Intel / EngheRx87Matters more for early career positions before you have a solid delivery track record. Without that, interviewers try to get any usable signal which (sometimes? usually?) means giving disproportionate weight to whiteboard-algorithms type questions. Once you have built up some solid project experience with clear contributions people generally take for granted you are capable of writing a b+ tree or whatever, if you really had to for some reason, with access to reference materials because that’s how it would happen in a real work scenario.
This comment was deleted by original commenter.