Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I would like to have some ideas for building up my foundation CS skills. I have started programming computers 10 years ago and have made a pretty good career out of it.

However, I cannot stop thinking that the path that brought me here was very particular, and if something goes wrong (e.g. I get laid off) it would be harder to find a job here in the US on the same salary level, OR in a top company. The reason I say that is that I am a self-learner; my degree is not in Computer Science so although I master C/C++/Java, I do not have the formal CS and mathematical background that many other software developers (esp. here in the US) have.

When I look at job interview questions from Apple, Google, Amazon, I have the impression that I'd flunk those technical interviews at some point. Don't get me wrong, I know my algorithms and data structures, but when things dive too deeply into the CS realm I am in trouble.

What can I do to close the gap? I was thinking about a MSc in CS, but will I even UNDERSTAND what's going on there if I'm not a CS undergrad? Should I go back to basics and get a BSc in CS instead?

I always tend to go into self-study mode when I want to learn new stuff, but I have the impression that I will need more formal education in CS if I want to have a shot at working at those kinds of companies.

Thank you!


migration rejected from stackoverflow.com Dec 26 '13 at 11:10

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as off-topic by MichaelT, gnat, GlenH7, Doc Brown, Bart van Ingen Schenau Dec 26 '13 at 11:10

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – MichaelT, gnat, GlenH7, Doc Brown, Bart van Ingen Schenau
If this question can be reworded to fit the rules in the help center, please edit the question.

+1 for sharing the same ghosts. I would have asked this same question had I not found yours. Civil Engg. grad here, 5 years into java and python –  Optimus Jun 10 '12 at 9:49
I am disappointed by the answers though. –  Optimus Jun 10 '12 at 9:54

3 Answers 3

If you have professional experience, employers won't even look at your BCompSc degree.

Experience in the workforce is valued so much more than your degree you've completed. The only thing that I'm concerned about is that you didn't state how many years experience you have as a programmer. You mentioned that you have 10 years of programming under your belt. Unfortunately, that won't amount to a lot (on paper) if you don't have any work experience.

As for your big-name companies, anyone can - and most will - flunk the technical test(s) regardless of whether your bachelor's degree is in arts or computer science. What distinguishes the person that the big-name companies want to employ from the not-so-special programmer is what the person has done independent of their (usually computer science) degree.

Very true------ –  Nick Rolando Feb 19 '11 at 1:34
What If I actually want to self learn to increase the scope of my knowledge so that I can be better at what I do, and get involved in geeky comp-sci discussions my friends have? –  Optimus Jun 10 '12 at 10:00
Sadly this is not always the case. I have built and architected complex, cutting-edge apps/systems, but when interviewing at one of the big tech companies (won't say which one, but it was one of Yahoo, Google, or Facebook), I was rejected simply because I did not have a CS degree, despite doing well at their code challenges and interview questions. –  Squirkle Jul 1 '13 at 20:27

A lot of the jobs you're talking about require a BS in CS related field. Aside from that, I wouldn't have so much doubt. There's nothing wrong with self-study. I'm an undergrad in a CS relative field (GSP), and I would say some things that might help you bridge the gap would be to learn the basics: Design, UMLs, binary, Assembly code, and learn lots and lots of math (algebra, trig., discreet math, physics, and calculus if you want to be lite). Education is is good at giving you a great basic foundation to go from. Most companies don't care for this though, they just want you to hit the ground runnin'. They are more interested in the results, and not so much if you actually understand what's going on behind the scenes, or even how you got it to work XD


If you're serious about self-study, get a copy of Introduction to Algorithms (Cormen et al.) and start reading. It will be a tough slog, but that book thoroughly covers the basics of computer science. And since it's a widely used text book, a used copy should be reasonably cheap.