Elemental Skills required by Programmers

 Qualities required by the programmers 

  • Memory
  • Observation
  • Critical Thinking
  • KISS Principal
  • Learn, Unlearn, Relearn
  • Frugality
I have only listed out the skills needed for problem solving, skills like team work, communication, .., etc are not discussed but equally important.

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

Popular posts from this blog

How to install MRTG on UBUNTU

How to install Apache Tomcat in Ubuntu

How to mine cryptocurrency using unMineable