Skills difference in programming

I am definitely not the best programmer in the world. First I would like to tell you that there are countless programmers out there who are better than me. But one thing: during 10 years of working as a professional programmer, I can list the really good programmers that I have worked with on just one hand. I know this is quite disappointing, but I would like to say: there is something weird about our career that leads to an unusually deep disparity in skills.

Có một sự chênh lệch kỹ năng rất lớn giữa các lập trình viên đang làm việc. There is a huge skill gap between working developers.

Especially in programming, many studies have shown that there is a huge difference in the quality and size of written programs, as well as the performance of programmers. A study of the late 1960s conducted by three scientists, Sackman, Erikson, and Grant (1968), shows that there is a great difference in the individual programming performance of each individual. They studied professional programmers with an average of 7 years of experience and realized that the ratio of time to write code between the best and worst programmers was about 20: 1; The debug error rate is above 25: 1; of program size is 5: 1; and of program execution speed is about 10: 1. They found that there is no relationship between the number of years a programmer experiences with the code quality and his performance. ( Code Complete , page 548)

In other words, good programmers are really good, and bad programmers are really corny. In fact, you will never know what you will encounter when you get a job: statistically, you will have a 50/50 chance to work with either a genius or an idiot. Does that help you feel secure?

Would you expect a truck driver with 20 years of experience behind the wheel to drive better than an unskilled "newcomer" with less than a year of driving experience? Of course you will. And whether a veteran programmer with gray hair and 10 years of experience working on dozens of different software projects – like me – worked better than a young man who had just stepped out of the lecture. University path? Yes, you may think so, but in the world of software development, that logic does not apply:

[In analyzing the results of Coding War Games, 1977 – 1986, we realized that developers with 10 years of experience do not do better than those with 2 years of experience. There is no relationship between experience and enforcement except that people with less than 6 months of experience with the programming language used in the test did not do as well as other participants. ( Peopleware , p. 47)

In another study by Bill Curtis that gave similar results, he conducted on a team of 60 professional programmers doing a "simple" debugging task ("Substantiating Programmer Variability," Proceedings of the IEEE, vol. 69, no 7, 1981). Although the task is very simple, up to 6 professional programmers are unable to complete that task, and their test data has been removed from the results of the study. Curtis has observed a huge difference around programmers who are able to complete that task. ( Steve McConnell )

A damn conclusion drawn from a lot of data supporting the hypothesis that there is no relationship between experience, performance, and skill? Where will we go from this conclusion? I don't have any answers, but I have the following two ideas:

  1. Unless you really love programming, you should look for another job. Is it true: are you programming primarily to make money, or are you programming because you follow the crowd syndrome? I know this may sound uncomfortable, but it is a real economic phenomenon – in a globalized environment and work is being transferred to outsourcing , this world simply cannot support. Anything more about paying high wages for the mediocre coder. There are hundreds of thousands of Indian programmers with very good qualifications, they will do what you are doing but only with the number of your salary, and there are thousands of others who are entering this field from third World. Blame the Internet if you want to, but just "work with the computers temporarily" is no longer a talisman to get a technologically paid job.
  2. If you are reading this blog (and by this blog , I mean any programming blog), that is almost certainly not true for you. You have spent your personal time on career development. I do not recommend that you take every minute after waking up to embrace the computer like I do – that's not good for health – but that's the only way to keep our work keep growing. Treat your work like it is: an industry career that requires high skills and lifelong learning.

ide-techtalk

ITZone via vinacode

Share the news now