By Scott Pulley
Have you ever wondered what is the best way to spend your time as a student studying programming? You are not alone.
The question is, do employers prefer specialist programmers—those with deep experience in one or two programming languages? Or do they prefer generalist programmers — those with shallow experience in many programming languages?
This article will help you know how to best invest your programming time to prepare for the job field.
How will specialization help me become an innovator?
Esther Shein of CIO has made this bold statement: “in today’s highly dynamic business world, a culture of innovation is king.”
Innovation is fed by creativity. Thus, deciding whether to specialize or generalize is a question of which approach will help you to be more creative.
Specialization is critical in fast-paced creative domains for three reasons:
- Knowledge Retention
- Knowledge Gaps
- New Knowledge
Specialization—like gaining a deeper knowledge of one or two specific programming languages– is important because it facilitates greater knowledge retention. As one article puts it:
[S]pecialists lack the knowledge breadth of generalists, but their narrow focus allows them to develop a deeper understanding of their domain. Specialists can recall larger amounts of domain-specific knowledge more effectively… [and] have a more sophisticated appreciation of the different attributes of each component in their knowledge domain as well as of the relationships between those components.
If you focus on appreciating and understanding each component in your knowledge domain, you will create opportunities to innovate by combining these components in new and creative ways as a programmer. This would be difficult to do equipped only with the superficial understanding acquired through generalization.
Additionally, deeper understanding of your chosen languages will also allow you to identify knowledge gaps, which entails knowing both what your field lacks as well as which things can be improved upon. If you do not have an extensive knowledge of how to program in a given language, your personal knowledge deficiency will mask the domain’s real knowledge gaps, where real innovation is needed.
With the many deadlines and pressures that you will face in the workplace, generalizing across multiple domains would be hard to do effectively. Because new information always emerges, it would not be easy to stay well informed across the variety of subjects you would use as a generalist. However, if you are already specialized, it would take less effort to incorporate new information into your programming repertoire. Specializing will enable you to identify the relevance of information as it emerges in your field of focus.
Overall, specialization will place you in a position to make meaningful contributions to both the company you will be working for as well as the developer community in general throughout your career.
How will specialization help me in the hiring process?
As the demand for developers has increased, the practice of testing for competence in the hiring process has also increased. Hiring managers cannot afford to simply trust the résumé of each job candidate.
HR departments now employ services that test competency such as HackerRank, a company that has developed software to test the programming skills of developers. Among HackerRank’s clients are Silicon Valley heavy hitters such as Google, Facebook, and Amazon. These and several other companies are choosing to use this software to replace the requirement of a college degree.
In other words, if you are going to put a programming language on your résumé, you need to be confident in your ability to pass one of these challenges.
How should I choose what to specialize in?
Stack Overflow is a website that 50 million people visit each month, 21 million of which are estimated to be professional developers and students. Each year the site surveys its users to identify trends among developers.
Don’t most programmers use more than one language?
Yes, and someday you will need to diversify your skills. Once you have built a solid foundation based upon the principles of specialization, you can construct whatever type of career you want on top of it.
Choosing to specialize at the beginning of your programming experience will set you up to be the best programmer that you can be.
What do I do now?
Find out which languages and skills are the best for the role that you want to fill. Take the time to become a specialist in those languages. Then, stand out from the crowd.
Walt Disney, a great innovator, is accredited with saying, “Whatever you do, do it well.”[vii] He understood the importance of being good at what you do. The greatest job security that you can have will come from being the best, or having the greatest ability, in whatever it is that you decide to do.
Last Updated: 7/25/20
Esther Shein, “How to Create a Culture of Innovation,” CIO, September 1, 2019.
Florenta Teodoridis, Michaël Bikard, and Keyvan Vakili, “Creativity at the Knowledge Frontier: The Impact of Specialization in Fast- and Slow-Paced Domains,” Administrative Science Quarterly 64, no. 4 (December 2019): 7, http://dx.doi.org/10.1177/0001839218793384, https://search.proquest.com/docview/2311901334?accountid=4488
Teodoridis, “Creativity at the Knowledge Frontier,” 4
Teodoridis, “Creativity at the Knowledge Frontier,” 12
Vivek Ravisankar, “2020 HackerRank Developer Skills Report,” HackerRank, published February 11, 2020, https://research.hackerrank.com/developer-skills/2020/.
[vii]“A Quote by Walt Disney,” Goodreads, accessed March 3, 2020, https://www.goodreads.com/quotes/6536026-whatever-you-do-do-it-well-do-it-so-well.