However, I was in a recent job interview and got asked about the time complexity of an algorithm and totally bombed it. I know of the concept generally, but absolutely don't have a firm grasp of it. I also gave pretty mediocre answers to some OOP questions because that's just not a concept I deal with much in my current role. And there are times when I feel like I need to improve my math skills. The last math course I took was Statistics in high school.
The bachelor's degree I already have is in an unrelated field, and my master's was very design-focused. I'm wondering if it makes sense to go back to school part time to get a CS bachelor's to learn some of the basics that I essentially skipped before landing my first dev role. To be clear, I don't really care whether an employer would like seeing this on my resume. I'd 100% be doing it for my personal benefit/knowledge.
So, what do you think? Should I enroll in a bachelor's CS program part time or are there other options I should explore?
I'm someone who graduated with a CS degree over a decade ago and I still have to brush up on data structures and algorithms before I do interviews or else I'll struggle with them also. So don't beat yourself up too much about it.
I know another guy struggling with these things lately, and there's a book that seemed pretty promising, although I haven't read it myself yet to verify. It's called "A Common-Sense Guide to Data Structures and Algorithms, Second Edition" by Jay Wengrow.
MIT OpenCourseWare also has a lecture series for 'Introduction to Algorithms' that I play in the background while doing dishes sometimes to brush up on. They've recorded it a few separate years, so just search data structures and algorithms mit in Youtube and try the different years/teachers until you find one you like. Here's what looks like the most recent one, though, from Spring 2020: https://youtu.be/ZA-tUyM_y7s
You can also sign up for a free self-guided course online, which is what my friend ended up doing.
Also if you're wanting to get a handle on time complexity specifically, you'll want to watch some videos on something called 'Big O Notation'. Like they were probably wanting you to say something like "Well I can solve it in this way, and it's O(n), but I can make it faster by doing this and it'll be much faster at O(n log n)". Here's a video that demonstrates the idea behind it: https://www.youtube.com/watch?v=itn09C2ZB9Y
Get some books, watch YouTube videos. There's a lot of content out there.
Once you've got the basics, you can jump on leetcode.
You may simply have applied for a role that wasn't suitable for you. It's seems that the role you currently play doesn't require a CS Bachelor.
they have 1-year MBAs -- i'd be curious if there are any 1-year Masters in Comp Sci.