On the Odd Relationship between Technical Experience and Age
Computer Science is an odd discipline in many respects. I find quite puzzling the relationship between the perceived value of technical experience and age. I have observed this relationship as shown in the following graph.
At certain career points, a computing professional is likely to find his or her experience grossly overestimated or underestimated.
1.) When starting college (age 18), the perceived value of experience is vastly overestimated.
A common misperception is that incoming freshmen must have been introduced to computing (coding in particular) to successfully major in Computer Science. Somehow having reached the ripe age of 18 is considered as too old to start learning the discipline from scratch. Having never studied computing as part of their K-12 curriculum is commonly deemed to put students at a severe disadvantage, if not preclude them from succeeding in the CS major altogether.
2.) When graduating college (age 21-22), the perceived value of experience is mildly underestimated. In essence, if you have a degree in CS and can solve programming puzzles, which commonly have little to do with your future day-to-day job responsibilities, companies are eager to hire you. Having had industry internships, which provide invaluable practical experience, is a positive but not decisive factor in getting the first position after college.
3.) For young professionals (age 22-30-35), the perceived value of their experience is similar to how professional experience is perceived in other areas. Until 30, the perceived value of experience grows more steeply, and it continues to grow until the professional reaches his or her mid-thirties.
4.) From age 35 on, the perceived value of technical experience starts to plummet precipitously. IT is commonly considered an up or out field—either you switch into management or you leave the field altogether.
5.) In middle age (45+), the perceived value of technical experience reaches the negative territory. One’s experience is held against them. Software development is unabashedly rife with age discrimination. “This is a young man’s game.” “Technology is evolving so rapidly with new languages and tools introduced every year. For older IT professionals, it is just too hard to learn these new technologies. Their minds were molded by different technical realities.”
Because these experience perception patterns reflect industry-wide trends, computing educators have a limited but vitally important role in properly preparing students for successful long-term careers in computing. To that end, I propose three concrete action items.
1.) Actively dispel the myth that to successfully study CS in college, a student must have some prior coding experience.
The vast overestimation of the value of having some computing experience before starting to study CS in college is particularly harmful. While a student may benefit from being introduced to computing earlier on, the freshman year in college is definitely not too late to start learning the discipline. Having participated in multiple orientation sessions for incoming freshmen, I continue to be taken aback when approached with a question: “I find computers very interesting, but I do not know how to code. Do you think it would still be possible for me to major in CS?” I usually reply that the student has been fortunate to have the opportunity to learn the foundations of the discipline properly, without having to unlearn any bad habits.
To bring the point home, I usually draw parallels to other disciplines to highlight the ridiculousness of so grossly overestimating the value of prior exposure to coding. How do the following questions sound to you? “I am fascinated by Architecture. However, having never participated in construction projects in high school, I am not sure whether it would be possible for me to major in Architecture.” “I am excited about Airspace Engineering, but having not built any flying machines in high school, can I still major in this discipline?” If this does not help, I then talk about my own journey into computing, which I started at 24 without any prior exposure to computing even as an end user.
2.) Encourage students to take internships.
Industrial internships are an essential component of computing education. It is well-known that internships provide an excellent avenue for students to complement the theoretical knowledge acquired in the classroom with practical technologies and tools. Another important advantage of industry internships is exposing students to the day-to-day realities of the IT workspace. Usually students love these realities, coming back to school reinvigorated and happy with their career choice. Nevertheless, other students often realize that working in IT is not for them. Some of them decide to go to grad school and pursue a research career thereafter, while others may decide to switch majors altogether. Getting this real world exposure early on is invaluable.
3.) Convey the importance of properly developing non-technical (soft) skills.
To smoothly move into management when they hit mid-age, students must have well-developed non-technical skills. Whenever giving career advice to CS students, I always stress the importance of developing strong communication skills, both oral and written. In addition, I often encourage students to take non-CS classes as a means of broadening their intellectual horizons and expanding their toolset of practical skills. A business minor may be a wise investment for CS students who see moving into management at a later point of their careers.