Can I get into software development without a CS degree?
Dear Jobsblog: I am in my third year in a non-CS discipline but am very interested into the software development arena. I’ve been told that it seems my skills set would be more suitable for only IT type positions. What are your suggestions?
-Feeling Pigeonholed
Dear "Feeling Pigeonholed": While most of our college hires for the core SDE/SDET/PM roles tend to have CS or CE/EE degrees, we have also hired students studying Mechanical Engineering, Math, Biomedical Engineering, IT and Applied Physics just to name a few. The trend I see that’s allowing them to be successful is the extracurricular activities that exposed them to problem solving, project management, or algorithms. Some students also had experience with coding from high school and simply refreshed the basics while others gained experience through their internships.
But there’s no need to take my word for it. Check back tomorrow for a Q and A with Austin Lin, an Information Science major who just accepted a PM summer internship with the Mobile team (he happens to be one of our 2008 scholarship winners too). He'll share some tips with readers that may be in the same boat.
- Ginny
11 Comments
Airline Travel » Can I get into software development without a CS degree? said:
PingBack from <a rel="nofollow" target="_new" href="http://www.travel-hilarity.com/airline_travel/?p=4482">http://www.travel-hilarity.com/airline_travel/?p=4482</a>
Kevin Daly said:
Even the range of degrees you list there is rather narrow in focus: I have a postgrad degree in French, which has actually served me pretty well (there is a linguistic aspect to programming that is often overlooked, and in the literature courses we were taught a rigorous logical approach derived from the French academic tradition that has been particularly helpful).
Mathematicians invented computing: unfortunately this has led them to mistake their creation for a branch of mathematics.
More unfortunately the obsession with CS degress (and degrees in general) has created a somewhat artificial skills shortage, in that the talent pool is being erroneously pre-filtered. Specific educational history is less important to performance than whether your mind is able to work in a certain way.
Another side-effect of this is that people *without* the requisite aptitude are successfully passing through CS courses and being snapped up by industry, where they soon prove to be fit for nothing other than management (whereas with proper career counselling they might have been more usefully employeed in the supermarket industry)
Yi Qiang said:
I don't think a CS degree is a requirement at all if you want to be a developer at Microsoft. Seriously, if you look at the interview questions (Google for them), most do not ask you anything you wouldn't learn in your first year in a CS degree. This means that if you study up on data structures and algorithms (the most basic concepts) you should do fine.
Really, if you have a passion for software development, there is not much that is going to be able to stop you from pursuing a developer position. Get your hand dirty by working on projects (open source in particular is excellent) and you'll find that your skillset will soon surpass unaccomplished students with a CS degree.
MASTER_MIND said:
What about careers at Microsoft without any degree? (just high school degree). E.g Many of the most famous programmers including Bill Gates, or John Carmack does not have any degree.
Microsoft's JobsBlog said:
As promised , here's my Q&A with Austin Lin, an Information Science major and a Program Manager summer
Fabiano said:
Sometime ago, a topic on a similar issue was posted here:
Monday, April 16, 2007 8:09 AM
If I Could Turn Back Time: Why I Wish I had Studied Computer Science/IT/Technology in College
By: Janelle Godfrey
<a rel="nofollow" target="_new" href="http://blogs.msdn.com/jobsblog/archive/2007/04/16/if-i-could-turn-back-time-why-i-wish-i-had-studied-computer-science-it-technology-in-college.aspx">http://blogs.msdn.com/jobsblog/archive/2007/04/16/if-i-could-turn-back-time-why-i-wish-i-had-studied-computer-science-it-technology-in-college.aspx</a>
That post discussed the observed trend of declining interest in Computer Science courses. Several explanations were presented but this is (in my opinion) the main cause of this lower interest among students: It is NOT necessary anymore to hold a Bachelor degree in Computer Science to get a good developer position and even progress in the career ladder. I'm not advocating it, as this post will make clear soon.
First, a small introduction: I have a B.S.C.S. and I have been in the work market for 12 years.
There are mechanical engineers, electrical engineers, mathematicians and high school graduates working in the field and even managing others. Some may ask: what is the point? Don't they know the APIs and the programming languages? Isn't that enough? The answer: no, no, it isn't. APIs and languages are tools that we use, but we also and mostly use the theory. People who don't have a B.S.C.S. never studied Theory of Algorithms, Compilers, Computer Architecture, Databases and Operating Systems and the dozens of specific courses related to our area.
I have lost the count of times of the projects I joined where people were trying to work on problems in the most inefficient way, sometimes even trying to resolve classical hard problems in Computer Science and being frustrated because they couldn't. Example: once one of my client's managers asked if it was possible to calculate the best and efficient way for all of his trucks to deliver their products. For those who don't know C.S., this is a classical traveling salesman problem, one that has not been proven to have a solution, one so important that if you found its solution you would probably get a Nobel prize (check <a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Travelling_salesman_problem">http://en.wikipedia.org/wiki/Travelling_salesman_problem</a>) and is part of the Millennium Prize Problems (check <a rel="nofollow" target="_new" href="http://en.wikipedia.org/wiki/Millennium_Prize_Problems">http://en.wikipedia.org/wiki/Millennium_Prize_Problems</a>).
Professionals with Computer Science degrees spent 4, 5 years studying all areas concerning computers, so it is no surprise that they learn fast when submitted to new tools, languages and operating systems. On another personal side, several managers were impressed by the little time it took me to master something completely new for me. Take for example a new language. I took a course in college about Programming Languages and another in Compilers. On those courses, you examine everything about a language: the math principles, the theory, tools to create them and examples of existing and past languages. When a new language is presented to you, you just apply that knowledge and grasp the workings.
Workers without a C.S. usually lose the company's money by working more than necessary on problems whose solution is already known. Even worse, most of them believe that they are doing it right, sometimes even defending violently against new ideas and newcomers (job survival instinct or pride, maybe) and preventing change in the company. It may look biased, but the worst superiors I had were mostly from non-C.S. fields, mostly for those reasons.
Why does this phenomenon happen? Basically,
said:
I beg to completely differ with Fabiano's post.
There are *stellar* software engineers with no degree, like John Carmack (a master in 3D graphics programming, he made miracles on DOS systems, with *non*-hardware accelerated 3D cards), or Alex St. John (he worked for Microsoft and was one of the inventors of DirectX, opening the rich world of graphics and multimedia to Windows).
And do you know about Nathan Myhrvold? If my knownledge of Microsoft history is correct, he was a very very important person in Microsoft (he was also the founder of Microsoft Research), and he owns degree in something like mathematics or theoretical physics.
There are really stellar people in the software industry that are great developers, and have no CS degree (or no degree).
Thanks God that there is no "regulation" in the field.
Personally, I have a solid knowledge of C++ (I started with BASIC and assembly on Commodore 64, then moved to Pascal, then C, then C++, then learnt Win32, etc.) and I learnt all these things myself (reading and studying books, experimenting with compilers, etc.).
And I know of people with CS degrees who can't write C code on a blackboard to insert items in a linked-list in sort order!
Of course, there are quality software developers with CS degree, too. The point is that CS degree is *not* a "prerequisite".
BTW: About USA regulation, unfortunately (IMHO) there is some (bad) regulation: in fact I think that people without a degree can't go to work in USA (for example, for Microsoft).
Sys64738
(it's a C=64 thing ;)
PS:
Thanks JobsBlog: this thread is very interesting!
Ginny said:
Thanks for sharing your thoughts! As you can tell, there's not a "right" answer for this particular topic.
I do think the take-away is that we try to hire a lot smart people that may not be the "cookie-cutter" type candidates and if you are one of those folks, you don't have to give up your dream of working here (or another SW company) as long as you can supplement additional experience that builds up your portfolio -- which allows you to excel in the PM, SDE and SDET roles (both in software/product or within the IT arena, where your biggest and toughest client is Microsoft itself).
Finally, a CS degree doesn't guarantee more success but having solid CS knowledge -- both theoretical and practical application -- is vital to be successful as the talents around you become even more competitive!
Rachna said:
I have Master degree in Information Science,can i apply for job in software?
Daniel Crane said:
The big question for me is how do I get into Microsoft, and stay in San Diego, CA?
I've gotten offer to interview for jobs in Redmond, but I can't move.
Ginny said:
Daniel,
Making the choice to move for a position isn't always easy and as Microsoft continue to grow, you'll see expansion in both domestic and international locations (we've seen this in Canada and Boston for example)
We currently only have Northern California offices and you can search our www.microsoft.com/careers for available positions but it's limited to what product groups are located there and in some offices there will be more non-core tech roles
• California: Sacramento
• California: San Francisco
• California: Silicon Valley
• California: Sunnyvale
Unfortunately, even global companies of our size can't be located eveywhere. And while there are special cases of telecommuting roles, those requirements would be listed in the actual job listings on our career site.