What is the best way to get advanced software skills?

Kamren Zorgdrager is Director of Product Development at DevelopIntelligence and believes that software developers should develop their coding skills through deliberate practice. In a recent Forbes article he emphasized simply reading, watching and listening can only teach you so much about coding software. To become a proficient software developer you must actually practice and put your skills to the test. In the case of developing software, you must practice writing code.

To attain advanced levels of a skill you must deliberately practice tasks designed to enhance your performance.  You must practice regularly and extensively. Computer labs or assignments in a software development class are an excellent way to practice software development skills.

The more one practices the better one gets regardless of their initial talent and ability.  Performance differences attributed to talent and ability decrease over time as a function of practice. This means that highly talented individuals lose their competitive edge over time if they do not practice when compared with less talented individuals. Use it or lose holds true regarding skill development.

High quality practice boosts your skillset

The quality in addition to the quantity of practice is extremely important. Researchers indicate the highest quality practice takes place early in the morning.  Practice is generally more efficient when two hours in length with informational feedback. Informational feedback provides knowledge about errors and suggestions on how to improve performance. Both are particularly helpful in fostering high quality practice.  The best practice occurs under the watchful guidance of a skilled mentor who helps the developing person set goals and monitor improvement.

It is important to note practice counts much more than native ability. There is no easy path to advanced skill. Those who work the hardest for the longest time and have access to skilled mentors can reach the highest level of skill attainment. This means that you can become an expert software developer even if you were not born with all the necessary skills.

You learn more in a high demand job

Researchers commonly assume job design influences employee learning. In their recent work, Holman et al. (2011) have indicated job design characteristics learning-on-the-jobsignificantly influence employee learning and innovation. Specifically they found that job control and job demand had a positive relationship with learning strategies and idea generation. In this context job control pertains to one’s ability to plan their own work and job demand concerns the difficulty or challenge of one’s work.

This means that jobs that offer employees high levels of autonomy to perform challenging work foster learning strategy use and idea creation that is necessary for innovation.  Learning strategies that were found to promote idea creation included, but were not limited to:

  1. Thinking about new information and its implications for the job rather than merely concentrating on the facts presented.
  2. Reflecting upon how one’s work fits into the broader scope of the organization.
  3. Considering how your work affects your team or department.
  4. Filling in the gaps of your knowledge by securing the appropriate material.
  5. Trying out new things by putting them into practice.
  6. Getting someone to help you when you need assistance.

It is important to note that not all jobs readily afford employees with job control and demand characteristics that promote learning and idea creation. Nevertheless you have can create opportunities to acquire and use knowledge through reflection, interaction and collaboration with your team members. Active participation in such behaviors will result in higher learning and performance.