This is usually the first console outputs, you learn to implement, when you are facing the situation of learning a new programming language. Same for me, I learned a new language, which is the language of Software Engineering.
But first things first, let me tell you where I come from. I grew up in a tiny village near Münster, Germany with my parents and siblings, until I moved out to go to the university in 2012.
After deciding to do “something with computers”, which I was really good with, and something with design, which I was interested in, I found the perfect subject for me at the Hochschule Hamm-Lippstadt (HSHL): Visual Computing and Design. Sounds good, right? The first semesters where full of Math, Programming and Software Engineering, but also some Drawing, Design Fundamentals and even Soft Skills lectures. At the beginning I was sure that I was studying the right thing, to have both: fun and good job opportunities. But after some time doubts about the whole thing arose. Most of the time I had acceptable results, but I didn’t feel like I was ready to work in a real company after this.
In the 5th semester I did a 16 week internship at a big local provider of vehicle electronics and lighting systems, and worked in a project, all alone, the whole time. I had days, when I didn’t talk to anyone at the company, just sitting there and working at a super innovative and experimental way to measure the calibration of headlights with Matlab. I knew Matlab before, and Image Processing seemed to be fun, when I started off with the projects, but I had almost no sparring partner for my ideas and what I was doing, only a status meeting with my boss once per week. I didn’t use any kind of version control, it was all on my computer. No git, no problems, right? Now I know: no, but then, this is how I argued with myself. Mathematically I digged deeper and deeper, but my code was shitty from the beginning: Variables with the same name used for different purposes, loops in loops in loops in… whoops, thats an infinite loop! Anyway, my project was a partial success and a partial failure: I worked out some stuff that worked under very specific circumstances, which were not really usual in the reality out there. I wrote a 40-page thesis about it and received a good grade, but the main things I have learned were to survive boredom, handle Microsoft Word for my thesis and this super specific mathematical problem. Which of this could I use in the real world of Software Engineering out there? - I asked myself, and came to a result: None of them..
My doubts were getting bigger, but I strangled them with time pressure for another project thesis in the 6th and the bachelor thesis in the 7th semester. Both were related to Game Balancing, a subtopic of Game Design, and first I developed a small, but balanced game named “Revolve” with a fellow student, who was somehow on the same coding level as I were: Both of us didn’t always understand, why the software behaved the way it did, but somehow it all worked out. We developed our own two dimensional game engine for Java (stupid!) and then the game on top of it. We had a lot of work for a small but buggy game, and the most fun thing was, when we invited 4 friends into my living room to play it with controllers in front of a projector, obviosly with a beer or two.
For the bachelor thesis I wrote a more theoretical text with the title: “Analysis of the Transferability of Software Testing Methods and Structures for Game Balancing”. After the thesis and some more subjects were I learned about 3D Modelling, Design Management and Usability Engineering, I was finally done, and could throw the mortarboard into the air. I did not really feel ready to work, and therefore had applied for a visa for Canada. I wanted to do work and travel or whatever all those cool young adults do nowadays. But the visa was rejected, so I was pretty depressed about that. After some more month I finally found, with the help of an old friend of mine, a promising job offering as Junior Software Engineer in a (connected) car related company called Daimler TSS in Ulm. Today I work for almost 2 years in this company, and even if I have deadlines and sometimes really a lot of time pressure, I really like the job, the company and my colleagues. I want to talk about my experiences as a “20% designer - 80% software developer” mutant in the world of software engineering. Have fun!
UPDATE: I worked at Daimler TSS 2016-2020, now I am doing my Masters Degree in Computer Science.