In late 2019 and 2020, the Research Computing and Data Science team within the Graduate School at Imperial College London conducted two surveys. These surveys aimed to find out what skills students wanted to learn and what skills employers value in students who had recently completed a masters or doctoral course and were looking for employment. This webpage contains a summary of the results of those surveys and is intended as a resource to allow students to see which computational skills are most in demand by employers and how this compares to skills viewed as important by students during their studies. We hope you find it useful.
The student survey was sent out to all graduate students at Imperial and received nearly 500 responses. The employer survey was publicised to companies who regularly hire Imperial students, with technical and hiring managers particularly targeted. Around 40 responses were received from companies, spanning a range of sectors.
Results
We asked students what languages they use as part of their research and we asked employers which languages are frequently used by their organisation.
In both cases, Python was the most frequently used language by a large margin. However, after this the two groups differ significantly. Although R, C++ and bash scores reasonably highly in both surveys, employers tended to favour tools more often used for web-based development, such as SQL, JavaScript, Java and HTML. This likely reflects the large amount of commercial software developed that is hosted or web-based in some way. By contrast, online functionality is rarely so important for research.
Postgraduate students reported MATLAB and LaTeX were commonly used, whilst employers did not. For LaTeX this can be explained by the fact that LaTeX is a popular choice for typesetting journal articles and theses. However, it seems other typesetting programmes are more important in an industrial context.
We constructed a list of 53 skills or areas of knowledge that we thought might be useful to either students or employers. We then asked students to pick up to 5 of these areas which they would like to learn more about and asked employers to pick up to 10 of these areas which they thought would be useful for a new employee to know. The graphs presented here show the most popular results in each survey.
There were some significant similarities in responses. Both employers and students valued Data Management, Data Visualisation and Databases, reflecting the importance of data in both research and industry. Machine learning was also popular with both groups, with Deep Learning and Neural Networks high on both lists. Cloud computing and High Performance Computing (HPC) skills were popular with both groups, reflecting a growing need for more computing power.
One significant difference between the two sets of results is that employers generally valued professional software development skills more – Version Control, Good Software Design Practices, Unit-Testing, Code Documentation, Profiling and Optimisation, Error Handling, Debugging, Code Development Project Management and Agile Development were all rated higher amongst employers than students. Conversely, students tended to value subject-specific or application-specific knowledge more than employers, with Statistical Modelling, Bayesian Statistics, Multivariate Analysis, Time Series Analysis and Markov Chain Monte Carlo being more popular amongst students than employers.
Employers were asked if they have any comments or suggestions regarding how the Graduate School could help prepare students to enter the workplace. A selection of these comments which we think are helpful for students are included below.
- “Experience gained working in industry is always valuable. We looked for rounded individuals with strong problem-solving skills, curiosity and ability to communicate well.”
- “The PhD applicants that stand out are the ones that have really understood the intricacies of parallel programming. Often this has included short periods at super-computing centres in the UK, EU or US; or collaboration with other departments in the same universities. Running HPC applications can be learnt in a few short weeks and there are many positions where the scientific knowledge of the application area is extremely valuable. However, parallel programming is a lengthy apprenticeship particularly given the heterogeneity in today's computing platforms.”
- “Industry placements / secondments are absolutely key. Collaborative research is extremely useful for candidates, really giving them an insight into how industry uses technology and the skills required.”
- “Learn within the constraints of a financial budget/pragmatism/best way forward as opposed to a rigid idealised/perfection.”
- “Understanding electronics for embedded applications, and general understanding of computer hardware”
- “Working in multi-disciplinary teams, co-creation and human centred design all very important”
- “Experience working from projects from scratch, not using frameworks, and proper use of version control.”
- “Make sure the students have stories they can tell about Data Science, Machine Learning and AI. A list of technologies and techniques might look incredibly impressive on a CV, but what really matters is can you apply knowledge and experience as well as said technologies and techniques to solve real world problems. What is more valuable is the ability to talk about a project you have completed and use it as a vehicle in order to demonstrate your competency. For instance, explaining what the problem was that needed to be solved, what data was identified which could be used, what work was required to add context, to verify quality and so on, what data exploration was done to understand the data, what approaches were used to identify valuable information (such as nuggets which might be used to identify states of behaviour or correlate to events), what was then done to try to train models (approach used, how overfitting was guarded against, how was it tested, what strategy was used to decide how to handle false positives or false negatives). What was produced at the end of the project, how did it contribute towards solving the initial problem. Even if a project failed, you can still provide evidence that the work was valuable, be it because it showed that the data was insufficient quality, or insufficient volume, or didn't contain the sorts of information required to address the problem, or that the modelling approaches weren't appropriate.”
The Research Computing and Data Science team within the Graduate School is grateful to all students and employers who took the time to fill in the survey. We aim to provide courses and content which help postgraduate students with their immediate needs for their research and prepare them effectively for entering the workplace. We are using the results of this survey to help guide the direction of new courses to ensure they are as helpful as possible for both of these goals.
A good takeaway message here for students is that employers highly value the technical and computing skills gained whilst undertaking postgraduate research and study. However, many employers would also like to see these skills augmented by experience with software development best practice such as version control, good code design, code documentation and unit-testing. We believe these skills are also extremely useful for developing code for research purposes and would encourage students to make sure they develop these skills in tandem with the discipline-specific and language-specific skills needed for their research. If you’re interested in learning more, consider looking at our introduction to good practice, which provides a summary and links to many courses and resources which are relevant to development of these skills.