What is the difference between a programmer and a computer scientist?
What is the difference between a programmer and a computer scientist? They are considered 2 different jobs. I have seen job postings for both… What IS the difference?
Thankyou!
Well, I think you asked a very generic question, it wud have been better if you wud have specified the area/domain as computer science itself is a combination of many engineering streams.
Still i will try to answer as generically as possible.
I think these two words are used quite interchangeably by ppls and recruiters. And why not ? ideally both of them should have each others qualities.
Programmer:
Is the guy who translates a given requirement into implementation, which is executable on some machine, in a certain computer language like c, c++, java, VB, or even a scripting language like Perl etc.
This guy basically knows the syntax of computer language very well and is expected to write a code which is scalable, modular, having abstract interfaces, etc etc. All are subjective to his skills.
Good programmers are expected to provide optimum solutions to the given problems, consuming least code size, least data memory size, and fast running code etc.
The above feature(being good at programming ) takes them quite closer to the category we discuss next.
Computer scientist:
This title sounds a bit sexy than the former, and is a computer language independent entity.
A computer scientist is a very high level terminology,and is a super set of everything, making PC running or running on PC.
He may be the one who knows computer architecture and organization details, he may know hardware as well as software in detail. Systems basically.
In software side his area is mainly algorithms, data structures, analysis of given problem and suggesting optimum solutions to them. Ideally he should be good at programming as well, which makes his ideas run in reality, but some senior scientists may depend on the programmers for implementation, by providing them a prototype of algorithm or pseudo code, or flowcharts.
He may work on a Database application or signal processing algorithm depending on his job profile.
In hardware(rather system) , this guy should understand, memories, processors, executions, Virtual memory concepts, cache, system programming, operating systems, boot loaders etc etc the list is unending.
And would be providing solutions related to their problems, again algorithms , schemes matters here.
I think they’re the same thing…
the difference is computer programmer is software base programmer. a computer scientist makes and conduct the little voltage in your motherboard and hard drive, etc. programmer make software so that the hardware will work. computer scientist makes the hardware and conduct electricity and voltage for it.
A computer scientist needs to know a lot more than a programmer. The CS figures out the algorithms and technology and tells the programmer what to program.
They are kind of the same thing (and feel free to check wikipedia if I am wrong).
A programmer is anyone who does computer programming (though there is a slight difference with Software Engineers).
Software engineers are like programmers but tend to have more of a focus on software design
A computer scientist usually has a degree or part of one that goes over the science of programming, such as Algorithms, how compilers work, and also the science of software design and creation. A computer scientist can do programming (and ofter programmer jobs require a CS degree.
So to sum up programmer and software engineer tend to be job titles where computer scientist is someone who more involved with the Science of programming and computing.
.
There is a good definition here:
http://people.cis.ksu.edu/~bbp9857/cs.html
Basically a computer scientist is a very high level computer professional who may work on hardware, software, system design etc. at a theoretical level. So a computer scientist might do programming (like a programmer does), but not every programmer is a computer scientist.
someone with an advance understanding and degree in computers usually a ph’d level