Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

This question already has an answer here:

Is there a difference between a software developer and a programmer?

For example, a person in the IT industry, who develops software using some tool or some specific language and may not be aware of the concepts of data structures, algorithms... main stream programming concepts in general. Does that qualify as a programmer?

share|improve this question

marked as duplicate by Thomas Owens Mar 11 at 9:03

This question has been asked before and already has an answer. If those answers do not fully address your question, please ask a new question.

    
To be able to call yourself a programmer, you DONT need to know every other language available in the known universe –  Loko Mar 11 at 8:17
1  
If you ever find someone knowing every language in the universe, let me know :) Except Chuck Norris, of course. –  X.L.Ant Mar 11 at 8:17
    
The question in the title might be answerable, but your follow-up question "what is a good programmer?" is far too broad to answer objectively. I removed it to prevent your question from getting closed as "too broad". –  Philipp Mar 11 at 8:19
    
every other language available in the known universe - an intended exaggeration, but you guys get the point. :) –  yellen Mar 11 at 8:21
    
@Philipp - That's cool. :) –  yellen Mar 11 at 8:21

4 Answers 4

up vote 1 down vote accepted

It would be difficult to find any situation where you program a computer and not develop some kind of software in the process. Simply pressing buttons on a system is not programming, it's operating. Programming a computer involves creating some kind of program, and that, by definition, is software. In other words, the difference between "programmer" and "software developer" is purely connotation: one might get you a higher salary or more attention at parties than the other, but they denote the same thing.

Not every programmer is a good programmer. Knowing data structures, algorithms etc. makes you a better programmer; there is, of course, a point of diminishing returns, but I think it's safe to say that the average industry programmer knows too little rather than too much about them. (It's all too easy to land a relatively high-paying job simply by calling yourself programmer and winging it with no professional education.)

No, you don't have to know every programming language; that would be virtually impossible. For perspective: I have a PhD in computing, and I know about twenty languages well enough that I would feel comfortable writing programs in them without further education, and that is a tiny, tiny percentage of the ones that exist. Knowing different kinds of languages broadens your mind and is a sign of a well-developed programmer, but measuring someone by how long their resume check list is is almost completely useless.

Your last question is unanswerable in forum post format, and probably in general. A good programmer is one who speedily, reliably and repeatably fulfills the requirements handed to them. What method, habits or tools are most conducive for that is disputed and probably rather personality-dependent. You'd need to ask more and more specific questions to get answers here.

share|improve this answer

They're both terms that refer to the act of working in the IT industry.

I've been a programmer, analyst/programmer, developer, software engineer level 5, development architect, principal engineer and development consultant. In all that time I did pretty much the same job which involved programming, testing, design, architecture, and support.

Ultimately, there's no difference.

share|improve this answer

The distinction between "programmer" and "software developer" is not a very well-defined one. Different organizations will disagree on where the line is drawn.

But in general, a programmer is someone who does nothing but write code all day according to specification, while a software developer is involved in the whole software development lifecycle from formulating requirements together with the customer, writing a program specification, designing the overall software architecture, programming, testing and documenting the product.

My work title is "software developer". In most of my software development projects the actual programming part is minor and all the other non-programming things around it take the majority of my time. I even had projects where I didn't program at all because the programming part ended up being done by someone else or I discovered a way to fulfill the customers need without even having to write a single line of code.

share|improve this answer

Software developer: The one who understands the entire software life-cycle and has a clear understanding or "big picture" of the end software product.

Programmer: The one who knows how to program i.e write code. Not required to know the software life-cycle.

All i want to say is a software developer is also a programmer but with the knowledge of software devlopment lifecycle.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.