What Skills Gap? How Tufts Prepares Computer Science Students to Thrive in the Real World
Decades ago, skills shortages plagued the tech world. There simply weren't enough qualified candidates to fill the growing number of open positions in emerging areas of computing because computer science was so new. Today, the disconnect between what employers look for when scouting full-time hires and what job candidates can offer is very different. The computer science skills shortage has morphed into a complex skills gap primarily driven by increased specialization. No one becomes a "programmer" anymore because the development landscape doesn't support generalists. Instead, most people earn bachelor's degrees in computer science and then a Master of Science in Computer Science (MSCS) before pursuing careers in DevOps, software engineering, cybersecurity, machine learning, and other specialization areas of tech—or going a step further and earning a PhD.
Unfortunately, many computer science master's degree students discover that simply passing the core and elective graduate courses in the typical MSCS curriculum or graduating with a high GPA doesn't adequately prepare them to meet industry demand. Students with technical skills exceeding the admissions requirements of top-tier master's-level computer science programs graduate with more advanced hard skills. Still, they lack the soft skills necessary for success. Additionally, some graduates discover that their newly acquired hard skills are largely theoretical, out of alignment with the needs of employers, or not scalable.
What hard skills do most candidates for computer science jobs lack?
Deloitte defines hard skills as "the tactical knowledge or expertise needed to achieve work outcomes within a specific context." Unlike soft skills—which the organization calls 'human capabilities'—hard skills are related to specific functions or outcomes.
Hard skills are usually well-represented in the typical computer science master's curriculum because they are ostensibly easy to assess and demand is seemingly quantifiable. Employers filling tech roles might, for instance, look for candidates with software engineering skills, Java programming skills, Python programming skills, and skills related to automation and scalability. When the frequency of specific skills in job postings outpaces the frequency of those skills in job seeker profiles, it suggests there's a skills gap. However, whether there's truly a hard skills gap in computer science is up for debate.
Nearly all MSCS students learn the fundamentals of programming, database and computer systems, operating systems, software engineering, computer networks, computational theory, and increasingly, cybersecurity, artificial intelligence, and machine learning. Just because 17 percent of employers are looking for AWS skills while only four percent have those skills in their profiles (per Emsi labor market data) doesn't necessarily mean that computer scientists don't have those skills. The disconnect may come down to workers and employers prioritizing different skills—or employers asking for everything under the sun but realistically expecting to find only a few of their desired competencies in candidates.
The fundamental skills gap in technology has very little to do with specific skills and more to do with how graduates apply those skills in the real world. Newly-minted software developers, cybersecurity specialists, database administrators, and information systems architects don't necessarily graduate from programs that build a computer science master's curriculum around industry demand. Their knowledge and experience may be accurate and relevant but are nonetheless purely theoretical and can't scale to meet the needs of employers.
Bridging this gap means changing how Master of Science in Computer Science students learn. In Tufts' online computer science master's program, MSCS candidates tackle hands-on projects much like those they'll encounter in the real world. Additionally, Tufts' computer science master's curriculum prioritizes the oft-neglected but vital soft skills that help professionals in and out of tech advance in their careers.
What soft skills do most candidates for computer science jobs lack?
It doesn't matter how drastically automation and the evolution of computer science and computer engineering change the technology landscape—human capabilities like an aptitude for communication and robust curiosity remain in high demand.
Some people are surprised that soft skills matter in technology, but it's essential to consider how often machines fall short:
- Cybersecurity is most successful when specialists imagine themselves in a hacker's shoes.
- Data science is most successful when data scientists understand what kind of information non-technical stakeholders seek.
- Software engineering projects are most successful when large teams of people work together smoothly.
Most technical graduate degree programs don't do much to cultivate those capabilities, which are among the most challenging to develop in academic settings.
The same Emsi labor market data linked above shows a much wider gap between the frequency of soft skills in job postings and the frequency at which soft skills appear in job seeker profiles. Again, this discrepancy could be the result of employers and workers prioritizing different things. It is, after all, much easier to quantify experience related to software development or scripting than it is to quantify problem-solving capabilities or interpersonal skills related to innovation.
One study found that executives had trouble recruiting job candidates with people skills, communication skills, problem-solving skills, flexibility, and other human capabilities.
"[We] could probably have a conversation about something highly technical or…very high-level conversation about DHCP/TCIP, TCIP and IP Addressing and all that stuff, because someone standing there, they could be the CEO of a company, now it’s going to sound like we’re speaking a totally different language," said one participant. "But to take those concepts and ideas and translate them into something that makes sense from a business standpoint, I think that skill is very lacking."
"I can find a lot of one-off people," said another, "so if I wanted a pen tester, I could find someone to do pen testing. If I wanted a UNIX admin, I could find someone to be a UNIX admin. I don’t find very many people that have multiple skill sets or that can move between the security domains fluidly.”
Thriving in real-world environments requires the domain knowledge and hard skills necessary to do a job and transferable soft skills that employers across industries value in employees. Graduates of Tufts' online MS in Computer Science program get both.
How does Tufts equip MSCS graduates with the skills necessary to compete in a complex job market?
What sets Tufts' part-time, online graduate-level program in computer science apart is its approach to the material: classwork that is less like schoolwork and more like real work, which nurtures in-demand soft skills in tandem with tech skills.
"Our job as professors," writes Fisher in the course syllabus, "is to set you problems that are more challenging than you think you can handle. . . and to support you as you learn you can handle them. This learning process requires hard work, attention to detail, and a leap of faith. But if you persist, your unpleasant feelings of confusion will be replaced by satisfying feelings of mastery."
COMP 111 Operating Systems is another course in the online MSCS program that, upon first glance, looks purely technical. Assistant Teaching Professor David Lillethun developed a syllabus around the fundamental issues in operating system design, including concurrent processes such as synchronizations, sharing, deadlock, and scheduling. "Practice follows theory," Lillethun writes, emphasizing that soft skills like problem-solving, organization, and thoroughness are an essential part of the coursework.
Those aren't the only MSCS courses promoting the development of soft skills.
- COMP 115 Database Systems explores the fundamental concepts of database management systems. It helps nurture curiosity in MSCS candidates who must learn to treat the technology behind information management systems as a means to an end, designing and configuring systems around discoveries related to organizational needs.
- COMP 160 Algorithms, an introduction to the study of algorithms led by Professor Diane Souvaine, also teaches communication skills through proof-writing and receptivity to constructive criticism via regular focused feedback.
- Students flex their critical thinking skills in COMP 170 Computation Theory, taught by Professor and T-TRIPODS Director Lenore J. Cowen. The course explores models of computation that include Turing machines, pushdown automata, and finite automata, and students use abstract thought and reasoning to assess the properties and capabilities of computational systems.
Other coursework in the online computer science master's curriculum gets students working on the kinds of elaborate challenges they will encounter after graduation.
- Associate Teaching Professor Ming Chow's COMP 116 Introduction to Security is 70 percent hands-on labs and projects. Students perform network reconnaissance and port scanning, build security information and event management (SIEM) software and intrusion detection systems (IDS), defend against real-world cyber attacks, write technical risk analyses for upper management audiences, and discover vulnerabilities in live web applications.
- COMP 180 Software Engineering explores the core principles and ideas enabling the development of large-scale software systems, and project work makes up about half of Professor and Associate Chair Jeffrey Foster's syllabus.
- COMP 135 Introduction to Machine Learning (delivered by Associate Teaching Professor Martin Allen) is also largely project-based and built around the creative applications of machine learning concepts like supervised and unsupervised learning, reinforcement learning, and knowledge extraction in open-ended, real-world use cases.
Then there's the two-semester, hands-on culminating capstone project that both tests students' technical competencies through independent project work and gives them a preview of what it's like to apply those competencies when working on unstructured, open-ended problems. As Associate Teaching Professor Ming Chow, quoting Jeffrey J. Selingo, writes in his undergraduate capstone course syllabus:
As technology changes, demand shifts, and new skills gaps emerge, Tufts University programs will continue to close them. With the expert guidance of faculty members driving the evolution of computer science, the School of Engineering continuously updates its MSCS curriculum to prepare students for the challenges they'll encounter on the job.
Tufts is narrowing the real computer science skills gap
The application guidelines for Tufts' online Master of Science in Computer Science program state that the admissions committee looks for "candidates who are independent thinkers, eager to contribute their diverse perspectives, and aspiring to evolve in their careers." Tufts University is well-known for its selectivity and applicants with prerequisite skills related to programming, data structures, algorithms, computer architecture, and computational theory likely have an edge. Department of Computer Science applicants must demonstrate the flexibility, drive, and work ethic required to succeed in a rigorous program at a rigorous school—which, not incidentally, are the very same traits necessary to succeed in the real world.
As the study linked above concluded, "While it can be frustrating to have to re-train to a specific language or software package, that process can be done rather quickly. The ability to think and act systemically, with a bigger picture in mind across departments and industries, is the skill that takes far longer to obtain."
The Tufts online computer science MS program acknowledges the importance of overlooked soft skills like curiosity and creativity, making every effort to include human capabilities in a highly technical curriculum. Students graduate prepared to adapt as the real-world need for specific computer science skills and expertise shifts. They can craft realistic programs in various programming languages, predict the complexity of algorithms, and develop large-scale software systems. Most importantly, they emerge equipped to continue growing and learning long after graduation. Ambitious and nimble, there's no skills gap they can't overcome.