I know that it is possible to get into software development without a degree in computer science, but is it possible (or rather, common) to be able to get an embedded programming job without the computer science degree (or any engineering degree as well)?

  • How are you defining 'embedded programming'? Do you include apps for iPad and Android in your definition?
    – oosterwal
    Jan 31, 2011 at 15:00
  • @oosterwal - I wasn't including iPad/Android in my definition, although I guess that it would fit the overall definition. Although, I'm really not interested in iPad/iPhone/Android app development although I would be interested in the operating system development for those devices.
    – Jetti
    Jan 31, 2011 at 15:33
  • CMU's Software Engineering degree with focus on Embedded system could be a good fit for your requirement. It is a good program for Electrical engineers transitioning to Embedded systems. They have specific courses that help in this transfer. CMU has a good reputation in Software Engineering and can get you some good job interviews. mse.isri.cmu.edu/software-engineering/web1-Programs/MSIT-ESE
    – phcd
    Oct 21, 2011 at 16:08
  • Yes, it is possible.
    – idoby
    Jul 5, 2014 at 7:23

7 Answers 7


Dijkstra once said "computer science is no more about computers than astronomy is about telescopes." You don't need a degree to program, though it helps to know how to use the instruments necessary for programming. Assuming you can, I see no reason why you shouldn't be able to.

However you'd need to get your foot in the door, and if you can't do that with a degree, you're going to have to be able to demonstrate it instead. My advice to you is create an impressive demo of some sort.

  • 3
    +1 for creating an impressive demo. A degree says you spent a handful of years doing projects. Good or bad you did work for a few years and got your feet wet. Without the degree on your resume you need concrete evidence you know what you are doing.
    – Chris
    Nov 10, 2010 at 15:56
  • 3
    Also, any chump can learn php, css, javascript but it takes a certain individual to learn low level stuff which a computer science degree usually at least says you have experience with.
    – Chris
    Nov 10, 2010 at 15:57
  • 2
    Astronomers require good knowledge of math for many things. Think Kepler fixing the "earth-is-center-of-universe"-bug
    – user1249
    Nov 10, 2010 at 17:26
  • Granted, not suggesting you don't learn anything from a degree, however he wasn't asking if he was capable of programming without a degree, but rather if he could be hired without one. It's not inconceivable that a person can learn how to program without a degree, is it? :)
    – Neil
    Nov 11, 2010 at 10:29
  • @neil - no its not inconceivable. However, getting a degree in something bigger than comp sci is a good idea for embedded stuff. You need to know lots about electronics as well as programming and an electronic engineering degree avoids the "don't know what I don't know" problem. Jun 14, 2011 at 5:58

Some background in electronics (or at least a desire to get into it) is pretty much needed to be successful in embedded programming. I've been doing this for 30+ years, and did the formal way (BSEE + MSCS), but I've run across a lot of good self-taught embedded programmers along the way. They all had one thing in common though -- somewhere in their background they had some electronics education (formal or otherwise).

You're going to be doing a lot of bit twiddling and working with lots of low-level I/O registers, with so-called datasheets that might run several hundred pages, like this one (so if that document doesn't look interesting, forget about embedded programming). You'll be using lots of serial busses like UART, SPI, I2C, and USB. Eight and 16-bit timers. Lots of interrupts.

You don't have to be able to design a circuit, but it's best if you learn to read a schematic since you will probably be probing a circuit board with an oscilloscope or logic analyzer.

Assuming you're working with medium-sized devices, that might have only 32K to 256K of program memory, and 4K-16K of RAM, you'll probably be doing most of your programming in C -- but C with proprietary extensions (different for each chip), because most of these processors are Harvard architecture and have separate address spaces for fast RAM, extended RAM, and code space and pointers can get really complicated.

(I consider small micros to be ones with just a few K of program memory and a few hundred bytes of RAM. Those are still mostly programmed in assembly. Then there are larger microprocessors that can run Linux and have MB of flash and RAM, but that's not really where main-stream embedded programming is either.)

  • 2
    I've been doing embedded design/programming for 12 years. This is pretty much exactly how I would answer the question as well. I will point out that there are embedded coders who just put out basic C or C++ code for the job, and then there are designers who work on the algorithms, architecture of the software, and interface/setup more complex hardware. Those areas may require a lot more work and study for someone new to some of the concepts. All that said, I've met great and terrible embedded programmers, some with a formal education, and some not.
    – MattG
    Oct 21, 2011 at 16:50
  • It requires a vocational mindset, a willingness to dig into the details, whether it happens in a vocational school or in an accredited university.
    – rwong
    Jul 5, 2014 at 15:09

As noted by Neil, in a lot of cases, a Bachelors degree in computer science is going to be more about getting your foot in the door with an entry level job than anything else. Likewise, it is also one of the check boxes that HR departments are going to be looking at when they are filtering applications and at some companies, the degree is mandatory for the given job, but they usually aren't software companies.

In terms of getting your foot in the door without a degree, some sort of proof that you know what you are doing is going to be needed so it might be a good idea to look around to see if there is some sort of class that you can take on the subject. This would give you some formal training that you can list on your resume and would also give you a chance to interact with people that know the subject so they can point out some things that might take you longer to come across on your own. Also, you might want to look into user groups that are in your area and start attending meetings so. The networking opportunities that such meeting get your name out there if you get a chance to do a demo at one of the meetings.


A degree isn't needed for any programming job but it certainly helps get you through the door.

I'm guessing that there may be ways to work your way up within a company or ways to get a role based on stuff you've done in your spare time but I'd imagine that 95% of people in IT in all areas have degrees. Maybe not Comp Sci degrees (I don't - mine is electronic engineering and I've worked with historians who were good coders), but degrees in something.

But if for one reason or another you don't want to or can't go to university there will be alternatives, you just need to work out what they are.

  • Thank Jon! I do have a degree, however it is in Economics. In my area there aren't many part-time/evening Universities that offer Computer Science (that are reputable) so that's why I'm wondering if I would be able to do without the degree.
    – Jetti
    Nov 10, 2010 at 16:04
  • @Jetti - I'm a development manager and I happily recruit non-CS graduates. I'd spend my evenings messing around with technology and then apply to an open minded employer who will see you for more than what you decided to study when you were 18. Nov 10, 2010 at 16:06
  • there's no way its 95% of all IT people with degrees, you are using way too broad a brush Oct 22, 2011 at 5:22

For low-level programming, you need to know some electronics and circuits, and some of the math behind it. Not a ton per se, but enough.

A degree is always nice.


I started my career back in 2006 as software developer, I worked in many companies during 2006 to 2011 but believe me nobody asked me about my qualifications (degree). The interviewed just asking the field related questions nothing about degree.

  • 1
    What kinds of things were you working on? Was it low level or was it web apps?
    – Jetti
    Jun 14, 2011 at 23:16
  • front end engineer(Archetic) since last 4 years.
    – Pir Abdul
    Jun 15, 2011 at 4:46
  • Although i am well qualified.(Master Of computer science) but no body asked me about degree. that may not be the case in your country.
    – Pir Abdul
    Jun 15, 2011 at 4:47
  • 1
    me too, actually I've never been asked about a degree in an interview (or formal schooling really), recruiters ask about it sometimes but if you can get to the interview, with real tech people, it seems they generally don't care and mainly care about what you did last Oct 22, 2011 at 5:23
  • 1
    That's because HR looked at your degree and decided to put you into the ok pile in the first place...
    – MarcusJ
    May 8, 2018 at 19:54

As a hiring manager for various companies whose core products include embedded system, I can say that I would simply not hire anyone who did not have a degree in either CS or EE from an accredited institution. The degree shows that the person is committed to a deep understanding of their field and will not simply blunder through problems.

I have, on multiple occasions, taken over groups in which a mix of degreed and non-degreed engineers were on the team... My observation is that, by far, the non-degreed engineers were lightweights and were suitable only for certain grunt-work types of programming where they couldn't do any real damage. The architectures and real thinking had to be done by the guy with degrees.

It makes sense too, when you think about it... the original poster of this thread is essentially saying "I want bypass the learning curve and just jump to front of the line". I'm not saying it is impossible, but when you finally land that embedded job you've been seeking you might be surprised at all the things you find you don't know.

  • I would disagree about most of the things you said. In fact, I would prefer to hire based on past job performance, demonstrated ability to come up with good solutions to complex problems, and eagerness and ability to learn new things. No formal degree is going to show you that, so simply dismissing anyone without a degree is just bad practice.
    – miraculixx
    Jul 5, 2014 at 7:58
  • You're part of the problem.
    – MarcusJ
    May 8, 2018 at 19:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.