I’ve spent the whole Sunday reading research papers on programming. One of them really stood out to me. Here is the summary of this paper and why coding is just 4 steps.
Per this research paper, programming can be broken down into the following steps:
- Understand the problem.
- Determine how to solve the problem:
- a. In some form
- b. In algorithmic form
- Translate the solution into Apex.
- Test and debug the program.
Understand the problem
It seems trivial, but it’s not. That’s why we have consultants and Business Analysts that specialize in understanding business problems and translating them into more technical language.
As a developer, you have to be quite a bit of a Business Analyst as well. Your time is often expensive and if you solve the wrong problem, the company will lose a lot of time (= money).
Determine how to solve the problem
A bad plan is better than no plan. Searching for a solution consists of the following steps:
- Ideate possible solutions
- Research downsides and wins
- Build a Solution Design with the best-fitting solution
- Present all your findings to the Senior Developer
Solution Design sounds fancy, but it’s just a step-by-step algorithmic solution to your problem. It can be something very small if you are just learning how to code or it can be something much bigger if you are already working as a developer.
If you are just starting out, trying to write a plan can be very very difficult. But it will become much easier with time, I promise 🙂
Translate the solution into Apex
This is the easiest step. It’s basically just typing your solution with Apex, LWC, Aura, or Visualforce. The more Senior you get, the less you engage with this step. And most likely, this step will be automated to a certain degree in the next 10 years.
Test and debug the program
This is an obvious step, but one that takes quite a lot of time. Debugging is at least 30% of my daily job. Just because it is nearly impossible to write good working code on the first try.
Source research paper: Programming Pedagogy – A Psychological Overview, Leon E. Winslow, University of Dayton, Dayton, Ohio.