How are graduating EECS majors' software development/engineering skills?

<p>Background: I graduated a couple of years ago in a non-technical major and shortly thereafter started a software company. As such, I am continually educating myself on software development and engineering theory/practice. Part of what I do is inspect EECS and CS curricula to target topics that I need to learn. Knowing as much as possible about the programs helps me address my industry knowledge gaps.</p>

<p>Question: I know that tons of EECS guys end up as software engineers. So, one thing I’m curious about when I see Berkeley’s EECS curriculum is: in terms of software skills, what result do most students end up with when they graduate? Is it like most other majors, where you get a strong theory base and then just learn the practical stuff on the job? Or, do you come out as master builders of rock-solid, super-maintainable, agile systems? Is there a significant difference between ECE guys and CSE guys?</p>

<p>

Yes. Most EECS majors dont know anything about how develop software systems or what tools/workflows/practices/techniques are used in the industry. And if they do, then they didn’t learn it in school. In school they learn about some of the theoretical details behind certain technologies.</p>

<p>

An EECS degree doesn’t really say anything about your skills. If you focus on EE you may graduate without much knowledge in software. And if you focus on CS you may graduate without much knowledge in EE. So yeah, there is a significant difference. I don’t really think the 5 options discussed on the EECS website are strictly enforced (no one ever asked me what option I want to do), it simply depends on what the person is interested in.</p>

<p>+1 to Thomas_
Berkeley’s philosophy is that if someone learns first principles and develops an intuition for computer science (not programming), any application of the concepts should be within reach.</p>