Monday 15 August 2016

The key difference between a Developer and a Programmer


We all have used these terms interchangeably, after all, at back of the mind we think they all have a degree in computer science.

The terminology has also been used by organizations to their convenience, like a Senior Software Developer at Google may be called Programmer Analyst at IBM



The key difference between a Developer and a Programmer - Image 1


So below are my findings and descriptions for few other roles as well
Developer: Expected to be an expert level at one programming language (Java, PHP, etc.)
Description :

They write code. Making it well-factored and clean is important, but other factors often take priority. Math skills are very much optional, but it does help to be aware of common problems and solutions related to the domain they are in. 
Communication and people skills are paramount. Process and team dynamics are bread and butter skills. They are consummate generalists without any truly deep specializations. They are expert at finding ways around problems and plugging components together to fulfill a set of requirements. 
In their personal time they are either trying to build the next Facebook, or engage in activities that have nothing to do with programming, developing, or computer science.
  • Developer are programmers to a greater or lesser extent.
  • Computer scientists are programmers to a greater or lesser extent.
  • Enterprise software is the domain of the developer.
  • The Googles and Microsofts of the world are after programmers (and to a lesser extent computer scientists). The developers who end up there become product managers. 
  • RnD and academia are the domain of the computer scientist (and to a lesser extent the programmer)
The thing to remember here is that none of the three is derogatory or "bad" in any way. One is not more or less desirable than any of the others. They are simply different dimensions (with some crossover) of the field we are all involved in.
 Particular personalities will identify more with one but that does not mean that all three can't "bleed" into each other and combine favorably. It is entirely possible to be both an awesome developer and a great programmer (although it is difficult with so many important things to focus on).
 In rare cases you may even get an all 3 in 1 type of deal, in which case I'd love to hear from you, cause we should start a company together, so that I can ride your awesomeness all the way to easy-street :). But no matter where you fall, it is entirely possible to be highly successful if you fit snugly into just one of the three.

Programmer: Expect to be an expert at several different languages.
Description : 
Programmers write awesome code.
Making it clean, well-factored and error free are very important concerns, but not at the expense of getting the job done. It is all about knowing the meaning of "good code" within their domain. 
They need to have some math skills, but this is not a paramount concern. 
They need to know of good (best) solutions to problems, but they don't need to prove it is the best solution.
A good breadth of algorithmic knowledge is imperative. They have a depth of skill in a wide area of expertise and have reasonably good knowledge of related areas as well. Communication and people skills are desirable traits, but not emphasized.
 Software process and team dynamics skills are desirable traits, but not emphasized. They work on personal software projects they find of interest in their off time.

Programmer Analyst: Expected to be able to program applications that integrate between different systems.

Systems Analyst: Expected to Design Information Architecture to improve business information systems

Software Engineer: Expected to design core components that Developers & Programmers can use. As per US law, you need to have a professional engineering degree/license to add the title engineer.

Computer Scientist: They write code, but they do it prove something. They are not bothered about design or good practices.

These are just my thoughts based on some research. I may be right but, you can always post your views below.




Sources:
http://www.skorks.com/2010/03/the-difference-between-a-developer-a-programmer-and-a-computer-scientist/http://www.webopedia.com/TERM/S/software_engineer.html
http://www.mytechlogy.com/IT-blogs/7289/the-key-difference-between-a-developer-and-a-programmer/

No comments:

Post a Comment