The tech industry has, for a long time now, been facing some inexperience and unawareness concerning the difference between a programmer, a coder and a developer. From tweets to blog posts, this cluelessness has been evident and while some do not know, some must know.
Just like a butterfly goes through a process of metamorphosis(from the egg to the larva, then to the pupa, and finally the adult), a developer goes from programmer to a coder to a developer. So yes, the sequence of these terms make it seem like a life cycle.
A programmer is the one who does the thinking and the decision-making. He uses his knowledge from Mathematics like logic, proofs, statistics and probability to see how 'feasible' the Yes or the No decisions look like. It is from him that we can think of True or False, yes or no, 0 or 1, left or right, positive or negative, or any pair of opposite things that will lead to two or more results. He uses tools like algorithms(natural languages, pseudo codes and flowcharts), his Maths knowledge and of course his pen/pencil and paper. From here, he can choose to take the name of Mr. Coder, or to remain Mr. Programmer.
The coder is the one to whom we give all three names. This guy takes the critical thinking of the programmer, implements it using any programming language of his choice, optimizes it, debugs it, tests it and makes it execute using the least amount of space in the least amount of time. When this guy completes, he is considered to have programmed the ideas and thinking of the programmer. So, note that the programmer does not code; he only makes decisions. The coder now codes or programs these decisions in a way that both he and his workstation will understand.
Assuming that the code guy was once a programmer, he now gets to call himself a developer. This last title comes when he can assemble his code and he says, "Hello world, I did this that may help with this." At this point, Mr. Developer uses the System Development Life Cycle to put out his work using integration and testing, design, all in a presentable format using documentation, while maintaining his source code and updating its features according to the users' demands, or where necessary. He researches on better ways to optimize his code and hosts it, or markets it if he decides to give it over to a particular organization that may find it useful.
This is why, many young techies may not have understood why they start learning courses like Computational Thinking or Logic and Mathematical Proofs as their first Maths or Comp sci courses in college. No one will ever tell us to differentiate between these terms, but we must know how to use them to show proof of our comprehension.
Now, we considered this a life cycle.
Can a butterfly become an egg?
Can we say a developer can become a programmer too? Let's discuss.
Wanna connect, maybe later? A coffee chat? Let's meet on my Twitter message board
Top comments (3)
Coder just means someone who codes. That's it, there is no more nuance or meaning to the word, it is just that simple.
Programmer is more contentious, but basically a programmer is someone who writes the code of programs; any meaning beyond that is based on how one defines "program".
A developer is someone who develops something. This isn't a tech exclusive term. There are book developers, movie developers, song developers, and even in tech the person working on the application's graphics is a graphics developer.
These are general generic terms with general generic meanings. Any more strict definitions one imagines are just that, imaginary.
True though. But if I get to talk of a programmer, and then a coder, obviously I must be talking of a software developer. Truth is, everyone has his or her own definitions of these terms but however, these different opinions and their uses on social media has become some sort of controversy. Thanks for the clarification!
Greattt.