Facilitating the Spread of Knowledge and Innovation in Professional Software Development

Write for InfoQ


Choose your language

InfoQ Homepage News Do Software Engineers Need a Degree in Computer Science?

Do Software Engineers Need a Degree in Computer Science?

Leia em Português

This item in japanese

The role of a software Engineer” does not necessarily require a degree in Computer Science. However, since Yahoo’s Chief Executive Scott Thompson was stepping down recently due to a fake computer science college degree, it has been a point of discussion if someone needs a  university degree. For instance, in his article for Dr. Dobb’s, “Software Engineers All!” Andrew Binstock discusses whether software engineers really require a degree in computer science to perform an excellent job.

According to Binstock,

Software engineer" is only the latest term to undergo this peculiar disconnection from the reality it implies. In earlier generations, the title of "analyst" was the favored term. In the data-processing world of yore, the entry level was "programmer." When a change of title was needed to reflect tenure, the programmer was elevated to a "programmer/analyst." Then ultimately, an "analyst." This metamorphosis might have implied that programming was an activity the employee had finally left behind. But in fact, most analysts did even more programming than their more junior brethren. Analysis was not often a large part of the job, except insofar as some of positions did require analysis as an adjunct to programming.

The article refers to Mark Zuckerberg and Bill Gates as software engineers who were successful without having a degree in computer science. Thus, Binstock’s conclusion is:

The ill-defined "equivalent" affords plenty of room for candidates with demonstrated coding prowess but lacking the academic formation. In sum, all are welcome to the party. And with that in mind, I raise my pen to you, dear readers — software engineers all!

Not all readers who have commented agree with Binstock’s conclusions. For example, user pjmlp explains,

In every profession there is a learning path that proves that the person in question has the required set of skills and it able to offer a certain quality for their work. My experience was that self taught programmers are not able to deliver the quality most software shops expect, because their skill set is reduced to what they were able to learn on free time.

RussG has a different viewpoint:

Sadly, a degree in computer science does not reliably make one a good programmer. Computer science and computer programming are generally very different things, and most graduates seem to come in with expectations that work in academia but not very well in a large team building million-line applications.

Another important point of discussion in this context might be more specific roles in software engineering such as software architects. Does a software architect who is responsible for the backbone of a system require a computer science degree or can she also be a self taught software engineer? Or do engineers need both academic education and profound practical experience? As Einstein once said, “In theory, theory and practice are the same. In practice, they are not”.

Rate this Article