← Back to context

Comment by fasterik

7 hours ago

What is the difference between programming and coding? In my mind they're synonymous.

It’s not really a completely clear distinction, but if I was going to try to describe it:

Coding is writing code to solve a problem. Someone can “know how to code” in one language, and have a very hard time moving away from that language because they understand the symbols more than the ideas.

Programming is approaching a problem space as a system specification problem and solving it with an algorithmic solution, and it doesn’t matter what language you use because you are approaching it from the symantic direction rather than the syntactic one.

You are a programmer when all languages are roughly similar to you, even though you may be much more familiar with the syntax of one than you are with others.

You are a coder when you can write programs, maybe even complicated ones, but you think of the solution in terms of a computer language rather than data structures, transformations, and state machines.

Most people start as coders, unless they come from a computer science background, or start out in assembly or with a little extra push, languages like forth. If you keep going and start to branch out a bit, most people will become programmers to one degree or another within a few years of working or playing in the field.

In short and to overgeneralise to the extreme, the focus is on the code vs the data.

You can also be so far in to the theoretical side that you are a data scientist or mathematician and a coder, but not really a programmer, even though you are solving complex data and algorithmic problems by programming a computer…. So it’s kinda nuanced? I think maybe it’s a matter of how you think about practical computation? But there’s definitely a difference in the depth of knowledge that crosses some kind of inflection point that is non-linear.

In my mind, programming is the concepts, especially around problem solving with code as a tool, where coding is specific syntax/implementation, a means to an end. Related, you don't get paid to code, you get paid to program.