What is the difference between a computer engineer and a computer programmer?

What's the difference between computer scientists and computer/software engineers?

  • Answer:

    The degree programs vary a lot depending on the university. Computer science programs range from those with almost no low-level/hardware/systems component at all, to those that spend almost half the program on it. Similarly, computer engineering degrees range from basically "EE with computational flavor" on one end of the range, to "CS with low-level/systems flavor", on the other end of the range. After you've been out of school for a few years, I don't think it matters much at all; people will care a lot more about your experience.

Mark Nelson at Quora Visit the source

Was this solution helpful to you?

Other answers

A computer scientist primarily concentrates on researching abstract data structures and algorithms that can be used to optimize systems (e.g. speed and efficiency). For example, I worked on a project for a professor of computer science at MIT, and he did not touch a line of code. Instead, he thought out the inner workings of the system, and I used his ideas to design the system. Being a scientist has nothing to do with the implementation; it's about optimizing systems by thinking up new data structures and algorithms. A computer programmer (a.k.a software engineer) is someone who primarily focuses on the implementation of a design. A programmer works with a set of tools that allows him to (1) quickly implement a design (2) make the implementation sustainable for future debugging and (3) take already existing implementations to supplement the design. The best programmers have a computer science background, however, they will rarely be as knowledgeable as a pure computer scientist in a particular field of computer science.

Rob McQueen

Computer science is not software development.  It's better to compare computer science to some other mathematical science, like physics.  There are people with physics degrees who can become engineers, but physics is not engineering.  Physics is an experimental science (usually) which is employed as a means of understanding the natural world.  Now, in the process of learning physics, one may gain enough background to become an engineer, but this is not a matter of course, and the two disciplines are distinct.  Physics is the foundation of, say, electrical engineering, but being a good physicist does not imply that one will be a good electrical engineer. So it is in computer science.  Computer science isn't exactly like physics, but it is similar enough for this analogy to be appropriate.  Yes, there are vocationally-oriented "computer science" programs, which are actually software engineering programs.  But computer science is the science of computing, not computers, which, while it owes some of its heritage to electrical engineering, owes more of its heritage to theoretical mathematics and logic.  Programming is a tool for engaging in computer science, and one may employ computer science in order to program computers skillfully, but these are different things.  Just how broad the term "computer science" is is up for debate, and, actually, it isn't clear why one should care.  I have friends who studying SAT problems, language processing, distributed algorithms, artificial intelligence, and everything in between.  As far as I'm concerned, these are all instances of comput[ing] science. In computer science, there is usually, though not always, an engineering component.  If one wants to test a hypothesis or a system, one typically needs to write a program to accomplish this.  These programs can be arbitrarily complicated.  But usually, this is to the end of studying some other problem.  One doesn't get published by writing a paper about what an awesome coder one is.  That may get you a well-paying job as a software engineer, but it in itself is not a sufficient condition for engaging in computer science.

Alvin Grissom II

This may be a bit simplistic, but I consider computer science to be mathematically oriented: the study of algorithms, theory, and CS fundamentals.   Computer engineering is often correlated to electrical engineering to some degree, and generally deals a little more with hardware and performance analysis.  Programming includes learning languages, or a particular language, and actually being able to write and design programs, understand syntax, and apply the knowledge of the previous two subsets into usable code.

Marilyn C. Cole

I would like to quote one of my professors in college, http://www.cs.cornell.edu/~rdz/index.htm of Cornell, given in the stepping-stone course of CS major, cs3110. Not his exact word though, and please allow me to paraphrase: A software engineer writes code that clearly can exist, but just need to be written. For example, to my knowledge there isn't a Ukrainian spellchecker for Android. It clear that this software can be written. A computer scientist, on the other hand, writes code that we're not sure if they can be written at all. For example, We don't know if we can write code to solve Traveling Salesman Problem in polynomial time. It is the responsibility of computer scientists to define and push the boundary of all possible code that need and can be written.

Jingsi Zhu

There is significant overlap between software engineering and computer science degree programs. Professionals in the title software engineer even if a particular position does not require engineering. Also, some programs that are titled software engineering are not accredited by the Accreditation Board for Engineering and Technology (ABET). For this reason, there is some confusion among future software developers about the distinctions between programs. Some schools offer separate tracks in computer science and software engineering. The two tracks will generally include some common courses, but a different overall architecture. Both computer science and software engineering programs are accredited by ABET. Computer science falls under the banner of the Computing Accreditation Commission, though, while computer engineering is the responsibility of the Engineering Accreditation Commission. There are significant differences in requirements. Software engineering programs include a design project; through this project, a future software engineer displays his or her ability to apply engineering principles in the real world. The senior project may be very applicable to a software engineer’s future work. Students and graduates of computer science and software engineering programs cite a variety of differences. Courses in computer science often place greater emphasis on the theoretical. They emphasize algorithms. Traditionally, they have been considered good preparation for graduate level research. According to the BLS, they also prove useful for systems software engineering. Some graduates report that computer science courses include more mathematics. This is not always the case, however. At Auburn University, Calculus III is listed as a requirement for the software engineering degree (as of the 2010 – 2011 school year) but not the computer science one. Both programs include some computer electives which allow candidates to tailor the program to meet individual goals. Choosing a Degree Program The lines between the two tracks have blurred a bit as some computer science programs have borrowed from the newer software engineering field. You may well find engineering courses in your computer science curriculum. If you envision yourself working in a field like embedded software, you’ll likely want an engineering degree of some sort. If you are not intending to work in a high-stakes arena, you may allow your interests and beliefs (as well as program reputation) to dictate your choice. Do you share McDonnell’s belief that developers should be engineers?source : UCLA

Rishi .K. Ambwani

i think we already have a similar question

Bharathram Chandrasekaran

Computer Scientist: A computer scientist focuses more upon developing technologies and studying about various technologies involved. Software Engineer : Whereas a software engineer, uses the technologies and applies them to solve real life problems by creating softwares.

Rizwan Ahmed

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.