I'm sitting here at Trung Nguyen coffeeshop in Vietnam near the Airport. I'm solving a problem for traversing tree. Some ideas just came up, I really want to write it down.
We are totally wrong about training skills while programming. We are hurry in seeing the result. We are lazy to think and predict the result.
If we are solving a problem. We wrote a little code, we are hurry in running those code to see the result. So that we know what wrong in order to determine next steps.
The big companies such as Google, Microsoft and Amazon etc, they almost want the candidates to write code in paper or on the white board. Why? Because if we do that, we can’t run code in paper or white board. It forces us to brainstorming.
If we can’t wait to see the part of result in computer. If we force ourselves to solve problems as much as possible. We are totally wrong. We are wasting our time but not gain more knowledge and skills. The main factor here is our brain. We still use our computer to code, it’s powerful. But keep being wiser, using our own brain to think instead of relying on the computer. Programming is just the delegation. We delegate the computer to do things the human being had already known.
When we take a look on the code. We know exactly what it does. We can even predict the results. We program with rare debugging or running code. Imagining the whole picture in our brain. We can’t know less than our code. We had got the solution in our mind, we just delegate our computer to solve. If our brain is cloudy of solution, how can we believe in our code?
Before putting your fingers to write very first lines of code, let’s make sure that you have solution in your mind, paper or white board, whatever you can demonstrate the solution, proving that you had it. That is the reason why the big companies encourage candidates to take time thinking more about solution before writing code.