What is a computer engineer & a computer programmer
I want to know which one is better to do and has a great salary
7 answers
George’s Answer
I too will disagree with Thomas a little. Computer Engineering is indeed a real thing, as is Software Engineering (though it's true the latter is overused).
Computer Engineers design the computers themselves (which, these days, are nearly everywhere). They also write some of the software that makes them work (drivers, operating systems, etc).
Software engineers/programmers/developers create software to run on those computers. People with "engineer" in their title are more likely to be following a more disciplined process around writing software (though not necessarily, since the title "engineer" is overused), but for the most part, they all do some versions of the same thing--write software that other people use.
Computer Scientists, on the other hand, are mostly focused on "CAN a computer do this new thing (like drive a car, understand speech, or find some information quickly)?", as opposed to the developer/programmer/engineer who puts the new thing that the computer scientist demonstrated into practice.
But all of these things have more in common than ways they differ. Over the course of their career, it's not all that uncommon for people to shift from one discipline into another (though there's so much need in the world for engineers/developers/programmers that this is the most likely place to land, it seems).
But Thomas is exactly correct about finding the thing you enjoy being the most important. All these jobs pay well, but the one that will pay the best is the one you are best at. If you enjoy doing something, you'll get better at it faster, and you'll be worth more money to an employer for your skills (and all the happier for it).
John’s Answer
I don't agree with Thomas Campbell.
At Cal Poly, we offer a degree in Computer Science, Computer Engineering, and Electrical Engineering.
Computer Engineer is a breed and mix between Computer Science and Electrical Engineering. Although many computer engineers can become programmers, computer scientists, developers, software engineers, etc., the field that is asking for them is on the mobile / hardware front. Computer Engineers are the reason why we have our iPhones, Samsung S phones, tablets. etc. They have the breed of knowing how to program and also the hardware limitations.
Although I'm a Software Engineer, I admire computer engineers for their ability to understand their limitations on coding a hardware - making them valuable.
In regards to pay, it depends on which companies you work for. Apple has a high demand for both, PayPal has a demand for software engineers, Tesla loves computer engineers. There's a high demand for both computer engineers and software engineers / computer scientist these days. If you like more info, let me know!
Thomas’s Answer
Well first, you don't want to say Computer Engineer. Here's an article on the reasons why: http://www.theatlantic.com/technology/archive/2015/11/programmers-should-not-call-themselves-engineers/414271
What you probably mean to say is what's the different between a Computer Programmer and a Computer Scientist. The short answer is programmers write code to specifications. Programmers are usually 2 year degrees and while there can be some very talented ones out there they are not considered as "qualified" as someone who is a true Computer Scientist (which is a 4 year degree).
And to cut to the chase, Computer Scientists make more. :)
The short answer though is to do what you like doing VS doing what will make you more money. The prime example being that there are a lot of Software Development Managers who really don't like their position. (SDMs don't get to write code as much.). They make more money then their staff but aren't as happy as when they were just writing software all the time.
Good luck!
David’s Answer
Good answers so far. I'd like to maybe take a more articulated view, even if it confuses more than helps; someone else might be more able to understand the details.
In order to understand Computer Science , Software Engineering, Electrical Engineering, and Computer Engineering, we need to understand what a computer actually is, and how the idea manifests in the world we live in.
Computers are simply devices that can remember things and act on them. You open up a desktop, and you can point to a CPU, which is responsible for acting, and the RAM and hard drive, which remember. There are some computers that are a single unit no bigger than your little finger. They have a special name ("microcontrollers"), and are used in very particular situations, by electrical engineers or computer engineers. There are some computers which don't use electricity (mechanical adders), or use it in an unusual way (analog computers), but these computers are not used for most practical purposes.
Electrical engineers work with circuits to do interesting things like robotic arms, communications equipment, and power delivery. Some of the circuits they make don't have a computer in them, and some circuits do. It is increasingly common to use computers; cars often have a couple dozen.
Software engineers, as others have mentioned, focus on instructions that tell a computer what to do (program, software, or in particular situations, firmware) in order to help a user do something. These instructions might tell a computer exactly what to do in very precise detail, or they might only tell a computer what end result the user wants. There's a plethora of ways you can tell a computer what to do (programming, or programming languages), and this post is not the place to try and explain half of them.
Computer Scientists are often also doing what I just described. However, they often lean more towards what the computer could be capable of doing, or the various ways in which we can express what we want the computer to do. They deal with theory, or academics as much as actually making a particular set of instructions do something useful. Software engineers prefer to focus more on what the users need out of their computer next, and how to best accomplish the process of creating the software.
Software does have different behaviors and restrictions that stretch the plausibility of the "engineer" name, but the emphasis on process, being able to get consistent results, .... do permit the usage of "engineer", if only approximately.
And now, the computer engineers. There's two different ways of thinking of a computer engineer; a computer engineer is an electrical engineer who is able to do software well enough, or a software engineer who can work with circuits well. Both yield an approximately equivalent individual; the engineer can work with hardware in detail (something software engineers can only rarely do at all), and can also work with computers in an extremely detailed way at a very core layer (something that a large number of software engineers would never, ever want to do, given that they could in the first place). Computer engineers might work on USB drivers, or they might be working on how data is stored in flash memory, or integrating a GPS chip with Android.
I trained briefly in computer engineering. In my college, a computer engineer was almost the same as an electrical engineer. In other colleges, the computer engineer is trained much closer to a software engineer. So, it might be more helpful to think about the spectrum between hardware and software, and figure out how much of each you really want to learn about.
Roger’s Answer
There are two distinct differences, but that is not always the case. A computer engineer in some circles would describe someone involved in building the hardware. However, in some cases, this could also include hardware and software coupled with the operating systems and associated software. A software engineer focuses on building, designing software regardless of platform. Either case, each of these are excellent careers and very rewarding.
Fred’s Answer
The title or job of computer programmer is fairly well defined. It generally means that you have studied computer programming languages and techniques and your job is to create software using those programming languages. You work hands-on with the computer systems to develop software.
The term "engineer" is used in many technical job profiles in the industry and many people have varying definitions for it. So if you hear that a job is called computer engineer, you need to ask lots of questions about what the specific job duties will be. It could be integrating various hardware and software packages. It could be designing and building computer hardware. It could be that are a technical resource for people selling computer technology to their customers.
Deepesh’s Answer
Computer Engineer is the one who knows to build the Computer (Hardware). Computer Engineer fixes the hardware related technical issues. Programmer is the one who build the Software or the operating system in a way it has to be functioned. There are various programming language (C, C++) which computer understands & in order to build that we need Software Programmers.