Elemental Skills required by Programmers
Qualities required by the programmers
- Memory
- Observation
- Critical Thinking
- KISS Principal
- Learn, Unlearn, Relearn
- Frugality
Memory
- Memory plays an important role in increasing the productivity of development.
- When we search internet it may seem like we doesn't spend much time. According to several reports employees spend up to 30 % time searching for information.
- On avg I spend 5 to 30 mins searching for answers depending on the problem.
- But it doesn't mean you should memorize everything. Try to memorize things you use often. Which will definitely save a lot of time.
- There is another problem with memorizing is it creates Einstellung. Which is a mental block or mind set which we cannot think past.
Observation
- Observation also plays an important role in programming. We have go through all the lines of code.
- Our mind tricks us by skipping lines because of Heuristic to save energy. Which is nothing but shortcut our brain uses to make decision in short period of time.
- So, we have to be little bit going through our own code.
- It can be avoided by mentally debugging or simply debugging.
- Many bug can be prevented just by observing little more.
Critical Thinking
- Critical thinking is the ability to use logical reasoning to come to a judgement using facts at hand.
- Simply, it is ability to know why we did, what we did in the first place.
- Example: If a framework or library is trending you should not skip to it without knowing the facts.
- Why you need to use this library?
- Is our application certain requirement can be fulfilled by this?
- In development there are multiple ways to achieve the say solution, Why we should use a particular approach? Is it efficient ? Does this consumes less time and resources?
KISS Principle
- Don't get crazy over the heading it's just a acronym.
- Keep It Simple, Stupid is nothing but simplicity.
- Try to do whatever you do as simple as possible.
- Reduce the lines of code by removing unnecessary code.
- Don't try reduce or correct while writing the code for the first time. It is like trying to eat while cooking.
- First try to solve the problem. Then review and optimize the solution.
- Each line of code is a feature and/or a potential bug.
- By minimizing the lines you minimize the probability of a bug.
Learn-UnLearn-ReLearn
- Learn
- As a developer you have to stay updated and learn many new things.
- Un-Learn
- You have challenge your own assumption and believe to break your boundaries and expand your self.
- Assumption and belief creates mental block which form a pattern which is hard to break. You may even think it is the best possible way to do thinks.
- If you ask a simple question is there way to do this? This is the first step.
- Re-Learn
- At this period, the so called information age things change to rapidly we can't cope up with it. There is always a better way of doing this.
- Try searching and learning is a life long process.
FRUGALITY
- Be frugal while using both your and computer resources.
- Try not to waste to much energy for doing something if there is another easy, efficient way to do the same thing.
- It may consume some time to find a effective solution but in the long run it will be more helpful.
- Example: Use clip board managers to easily switch between copied items rather than copying back and forth.
- Record the effective method or hacks for future reference.
For programming tips please comment!
Reference:
1. https://www.linkedin.com/pulse/workers-spend-too-much-time-searching-information-hung-cao
2. https://www.armedia.com/blog/federated-search-the-importance-of-being-able-to-find-information/
3. https://en.wikipedia.org/wiki/Thinking,_Fast_and_Slow
Comments
Post a Comment