If you have ever thought about building and application, or have spoken to anyone that has, you have probably use the words coding and programming. These words are often used interchangeably and often are confused into seeming like they mean the exact same thing. These two words actually have different contextual meaning in the realm of software development.
What is the difference?
To understand the differences it’s worth talking about the thinking that happens when looking to build a useful application. Technology, in general, is created to help solve problems and even further usually for a very specific problem. These problems can be a business, social, physical, or just solving the problem of everyday boredom. At the core of building an application is the problem that the software is seeking to help or fix outright.
In corporations / companies there are groups of people with the sole purpose of defining the problem and proposing solutions to that problem. These employees are titled business analysts, the are totally separate from the programmers that put fingers to keyboards and write the actual code. These employees help define the actions and behavior that is needed for the software. These can be things like does the application require a login, does it require payment through credit cars, and are there any analytics or reports that are needed once the program is up and running.
After the business analyst has gathered enough of the particulars (called requirements) the ideas can then be discussed with a programming team (or lead programmer). Here the team will look at the requirement and determine the IF the functionality can be created and what has been asked for can be done within the proposed deadline. These negotiations can weeks depending on the complexity of the problem and the programming language that has been chosen
Programming
Here is where the differences between programming and coding begin to make themselves more clear. After the problem is well defined and it has been determined that the program can be feasibly created it comes time to actually plan how the data flows and the program methodologies that will be used. This is where the programming CAN begin. When a season programmer is giving a problem to be solved they have the acumen and experience to see the needed functions and behaviors to appropriately employ patterns and tools to get the job done. This means they can and have been empowered to make these types of decisions. Programming is more than just typing or putting thoughts to paper. It is implementing known patterns and algorithms that other developers can understand such that the solutions can be expanded upon and maintained later.
Coding
The other way that the program can get written is to contract out the actual fingers to keyboard out to contract company or possibly outsource the work (sometimes in another country). This requires that the corporation (often the lead programmer) take the time to plan and detail all the parts of the program that need to be created. This means down to the detail of something like this bit of code should accept only money values and return a value +/- an expected result of so many dollars. Another example would be written in a specific language and the result that comes out be in an agreed upon format that is well known throughout the industry. These types of specifications should be easily measured and easily determined if they task has been completed or not. For example, this program accepts a date from an emulated calendar. This date can only be accepted if it is in the future (not today or yesterday) in the forma mm/dd/yyyy and not more than 30 days ahead of tomorrow. Executing on these types of requirement is referred to as coding. There ideally no guesswork and it can be broken down into very small tasks. This is the coding aspect of a project. This requires less creativity in description but much more specificity in what is wanted and can be accepted.
A decision based on your needs
Both programming and coding require high amounts of skill, creativity and critical thinking. However, the programming type is trusted with much more autonomy and creativity. The coding style is less interpretive but you typically know exactly what you are getting (if the requirements are met). Programming is great if you already have a team that you trust and know they can fulfill your needs. My advise in deciding what type you should hire would be if you already have the resources hire developers that can handle making good programming decisions about scalability and future use. If you are on a limited budged and don’t have a team. You can leverage a the coding style coder to get your application done. However, without a team of programmers you will need to clearly defined everything that is needed BEFORE the project begins. If you start this process after you being your costs will be much higher that you could ever expect.