Do IT degrees offer enough practical experience?
Are Universities placing too much importance on theory rather than practical knowledge? How much maths do developers really need?
In the mid-90s I started my Computer Science degree in a small Swabian town and I was looking forward to finally learning the practice of professional software development. However, when term started, I was introduced to modules that I had not expected. These included; Calculus I, Linear Algebra I and An Introduction to Programming: Scheme.
The general sentiment at the time was “plough through it”. By the time the third semester started, we had completed Calculus II, Linear Algebra II, Scheme II and next up was an introduction to Assembler. At this point I began to question whether my subsequent everyday work would actually consist of mathematical reasoning and the manipulation of hexadecimal codes.
The gap between theory and practice
The issue of how much your studies relate to the skills you really need later in your professional career, is a vexing one. IT courses seem to be particularly vulnerable in relaying the theoretical foundations instead of the practical. Or at least that was my experience in the nineties.
We asked readers over on the German side of JAXenter how they rated their IT degree in relation to how it prepared them for the workplace. The result shows a fairly accurate division.
About half of the participants found that their study prepared them well for their job or at least gave them the skills to seek and acquire further knowledge. The other half of the participants feel that they are missing essential, practical content and think IT studies did not prepare them for the workplace.
This leads us to the next question: which skills are needed for an IT job – but are (still) not properly taught at all universities? What key skill areas are still lacking from standard IT degree curriculum? From my experience, some points that are seldom taught during the study period include:
- The documentation of software
- Writing clean code
- Testing and debugging
- Version control systems
- Creating your own startup
We’ve also encountered many developers that regret that they were not taught the following skills during their degrees:
- Team work and developing concepts for integrated systems
- Professional time and task management: How do I make my time goal orientated?
- Understanding the difference between being effective and efficient (and why the first is most important)
- Techniques of continuous integration and continuous delivery
- Configuration management
- Cost estimates
- Writing release notes
- How to work with ticket systems
- Risk assessment and management
However, whether you can expect a university department to change the curriculum to include all these things, is another matter. There is a great deal that you can only learn over time, with the success and failure of applications in practice.
IT study today?
It should be noted here that our poll results (to a certain extent) refers to IT studies in the past. This is because the JAXenter audience is mostly made up of IT professionals (and not students). The poll results do not take recent academic reforms such as Bologna into account.
It is worth noting that there are many degrees in Europe that do have a practical focus – particularly in software engineering. There are also several dual study programs that offer employers proof of relevant work experience. These options were not around in the 1990s.
Finally – the personal assessment: The introduction to Scheme first put me in touch with functional programming – a foundation of knowledge that has remained to this day. Dealing with Assembler has promoted the understanding of low-level processes, which is useful in many places even today.
Although Scheme and Assembler no longer play a role in practice today – they were the IT stepping stones that allowed me to make an easy transition into a broader understanding of IT.