In 1975, Bjarne got his MSc degree from Department of Mathematics at Aarhus University when the now Department of Computer Science was still embedded in the Math Department.
Bjarne Stroustrup is the inventor of the world famous C++ programming language
and author of the books ”Programming: Principles and Practice Using C++” and ”The C++ Programming Language”. He has been a researcher at AT&T Bell Labs in California and at Texas A&M University. Today, he is the managing director for Morgan Stanley’s Technology Division in New York, and a guest professor at Columbia University. Bjarne Stroustrup got his Master’s degree in 1975 in Mathematics and Computer Science from Department of Mathematics at Aarhus University. In 1979, he got his PhD degree from Cabridge University in England.
Why did you choose to study computer science at Aarhus University?
It was more or less coincidental that I started studying computer science. I actually wanted to study mathematics because it was a technical and practical subject. So I chose mathematics with computer science and expected it to be a kind of applied mathematics, and did not pay attention to the computer part. However, it turned out to be a good decision for me. Both because I was not quite the mathematician I thought I were, but also because I found machine architecture, operational systems and programming languages to be much more exciting than ”functional analysis”.
When did you decide to specialize in programming languages?
I did not have this objective from the beginning – at first, I was curious. Could you develop a set of instructions to support better computer systems? I was probably more interested in hardware and microprogramming than most of my fellow students. My curiosity steered me towards my PhD thesis, which focused on how to render hardware support and communication in distributed systems. Later, when I was working at Bell Labs, I changed direction into creating support by using software. It was too inflexible and slow to build support for abstractions into hardware. C++ reflects the necessity of having a programming language that supports multiple levels in a computer system at the same time. In 1979, this was new – and today it is still not the norm outside C++.
How did you use your education and the competences you gained from your computer science studies at AU?
The breadth in my education has been a significant factor – that I have learned so many different things. After Aarhus, I started working in depth with hardware systems; went on to developing operational systems and ended up doing programming languages. I do remember learning some very odd mathematics in my study time - the kind of knowledge I never expected to use in my career. Nevertheless, when I started working on C++, it turned out that algebra came in handy with respect to analyzing the programming language. The point is that I would not be where I am today, if I had not learned about machine architecture, programming languages, compilers, data structures and so on. I was not too excited about everything I learned during my studies, but I got a pretty good and basic knowledge of many fundamental things. This is the main reason why I have been able to work in many different areas during my career.
What is your best advice for a computer science student?
Be curios – take in the fundamental knowledge during your studies. Even if it does not seem relevant to you now. You may find yourself in a potential and exciting situation, where you need to put the things you learned into use. In the US, people are very goal-oriented from an early age. They know exactly what kind of educations, jobs and courses they need to pursue in order to reach their goals. This is not necessarily a negative thing, but in my experience career paths can evolve and take you to unforeseen directions. If you do not stay curios, you might overlook opportunities on your way. You do not know what you are doing ten years from now, but you can improve your toolbox by learning the fundamental concepts and techniques within i.e. machine architecture, algorithms, data structures and operating systems. And math. It is also important to develop ”soft skills” – to learn to understand other people’s problems and to be able to put yourself in their place. I had a student job where I solved programming assignments for small companies in Aarhus – all sorts of companies from stone masonries and carpenters to banks that were building systems that could handle mortgages. The programming tasks funded my studies and taught me how to talk to customers. To listen and understand. I learned to take responsibility for my programming tasks, because the customer’s livelihood was dependent on me carrying out a solid piece of work.
What was your best decision ever?
That I allowed myself to be curios and take chances. I did not know what a PhD was, but I thought it was a good idea to try it out, and see if I could make it. I was interested in immersing myself into a subject area. Later on, it was my PhD degree that opened the doors for me to Bell Labs in New Jersey, which was the most amazing place to be if you wanted to engage in practical computer science and system building. I learned so much while I was there. I was lucky – but you can only gain from luck by being aware of your options and come prepared with a good education and a little confidence.