I'm a 31 year-old back-end developer. I've worked as this job for about 6 years and I learned everything on the job. I got my bachelor's in Software Engineering at 22 but I started working as a developer way later (at 25).
After moving to a new country I realized that going to a terrible college and not learning anything during my undergrad was a huge mistake.
I know a lot about complex, data-intensive systems because I was lucky enough to work at a start-up that hit it big. My resume is impressive in the eyes of the recruiters but goddamn, I am literally clueless about algorithms, data structures, and everything else they teach you about during undergrad so I cannot pass any coding interviews.
Nobody cares about real-world skills and they're all asking me to implement data structures that are just names to me at this point.
How do I unscrew this situation? Get a masters and possibly a specialization? Go to coding bootcamps? Pivot into another job?
I'm pretty good with systems administration too but I feel like I won't have many career options after that.
I'm not looking for a magic fix. I wanna fix this once and for all.
Any help or suggestion is appreciated.
Thanks in advance.
So the question becomes: how do I learn this stuff? In your case you want to learn specific data-structures for cookie-cutter interviews, you can probably just research and do HackerRank.
If you want to learn more interesting CS concepts (or you're getting bored doing HackerRank stuff, or you want to learn actually practical skills), I recommend building a side project. Side projects are how I learned most of the CS stuff I know, and I learned way more from side projects than from college. Alternatively you can look at existing open-source projects and try to learn / contribute to them.
The side project can be whatever you want. I made side projects to try and fix problems that I encountered. For example a toy HTML builder.
If the former, it may be worthwhile to take an algorithms class or two (or even just work through the free MIT OCW Intro to Algorithms class), then focus on improving your interviewing skills. I’ve found classes to be very helpful for building the foundation of general understanding, then if you’re practicing algorithm questions it’s less memorization and more understanding.
If the latter, then a general masters may be of good use to you. Maybe something like Georgia Tech’s online program, where tuition is more reasonable (vs some of the $45k masters) and the focus is on taking a wide variety of classes (as opposed to a thesis).
I definitely wouldn’t recommend a boot camp, since those are geared towards absolute beginners and probably wouldn’t give you the depth to learn deeply.
I’m hardly an expert, but I’ve been pursuing a masters while working full time to help flesh out my CS foundation (after not doing my undergrad in CS). I’ve found the classes to be very helpful.
CLRS and Knuth can be tough sledding, particularly without a knowledgeable mentor or instructor.
Btw I'm also 31
The most basic knowledge is knowing when to make something into a Set/Hash vs searching an array/list (or sort the array to binary search).
As for all the leetcode tricks, I've never practiced them or worked at a company that required passing such an interview.
edit: worked for me. Went from working as a Mech Eng with degrees in mechanical engineering & econometrics to software engineering. Also very similar to yourself re: startup experience.
Good luck!