Our swarm Rikardo: from mechanical engineering student to junior software developer
"Computers have always fascinated me."
Ever since I assembled my first computer at the age of 14, I had the burning desire to be able to transfer my interest in developing and testing the latest computer technologies into my future professional life.
A high school diploma, a bachelor's and master's degree in mechanical engineering, a number of internships and a Java boot camp from neue fische later, I'm finally about to start my dream career as a junior software developer.
So why not just study computer science straight away?
Some will certainly have found this path for themselves after school and have taken it straight away. For my part, however, I belonged to the category of school graduates who had no idea at all of what this huge professional world actually had to offer.
After graduating from high school, I was initially on the hose.
Although technical and future-oriented topics have always interested me the most and I wanted to deal with these topics in my later professional life, I was simply overwhelmed by the oversupply of courses. In the end, I chose classic mechanical engineering. At the time, I figured mechanical engineering would provide a solid foundation for diving into the technical world. The course gave me the opportunity to gain a comprehensive view of all possible technical professional fields. However, I could never really identify with actual mechanical engineering. In particular, the pure dry theory of a course of study also contributed its part. Nevertheless, I tried my hand and completed several internships in a wide variety of industries in order to find the right profession for me. With the stamp "Mechanical Engineering" this was unfortunately not as easy as I had previously assumed. In a roundabout way, I got an internship in the field of robotics, where I came into contact with real software developers for the first time. In addition to the high-tech topics that my colleagues deal with anyway, what fascinated me above all was the teamwork required, with the simultaneous independence of each individual developer. The project could only be completed successfully if everyone contributed their specialist knowledge. In addition, the development required a high level of communication, without which the project would have been doomed from the start. What fascinated me the most, however, was the possibility that every developer also developed their own code and could really lend a hand. Something I completely lacked in mechanical engineering, except for a few CAD drawings.
Once mechanical engineering - always mechanical engineering?
Driven by my first impressions of software development, I continued my journey with the aim of ending up in software development sooner or later. Now, however, I only had a bachelor's degree in classical mechanical engineering in my pocket.
Since bootcamps in Germany were still in their infancy at that time, I decided to follow the Bologna process. I decided to do a Masters in Computer Science. Better said than done. Most universities had several requirements. Basically, they asked me to do almost an entire bachelor's degree in computer science. Since I was never satisfied with pure theory during my bachelor's degree, I decided to do a master's degree in mechanical engineering, albeit with a specialization in the field of computer science. So I wanted to get a recognized qualification as quickly as possible and take some important basics with me along the way.
My master's degree at Münster University of Applied Sciences enabled me to fulfill exactly this wish. In addition to a lot of theory, we were given the opportunity to pursue our own interests in a targeted and practical manner through a free choice of project. In doing so, I dealt in particular with topics relating to digital image processing and gained exciting insights into the systems and algorithms of modern camera-based object recognition.
My studies enabled me to discover the right industry for me through a multitude of insights into the most diverse professional fields. However, I did not feel well prepared for starting my professional life. Especially since I had primarily completed a degree in mechanical engineering and had set myself the goal of gaining a foothold in software development. Although I was able to gain some programming experience during my studies, the first application processes quickly showed me that I still lacked some relevant and, above all, practical knowledge.
Advanced training to become a Java Developer
So I decided to expand the knowledge I lacked through targeted further training. Even at school, I realized that anyone who wants to learn programming simply needs a computer, an internet connection and time.
If you can teach yourself anything, it's probably everything related to software development and programming. In fact, you can actually learn almost everything about these topics yourself. There are a number of further training courses for every technique and every language, from taster courses to advanced courses. However, here again the mass of offers is overwhelming.
Many further training courses lure with headlines such as “Only 10 videos from beginner to professional” or “The way to become a professional software developer”. Definitely also highly recommended for targeted further training in certain techniques. However, if you want to get started in general, you need to know what languages and techniques are generally needed. First of all, what is currently needed. Especially in web development, new frameworks appear every year. So I got to grips with the concepts of the so-called "coding boot camps", which promised exactly that. At the same time, I analyzed the job offers from my potential employers of choice.
Since I've always been interested in forward-looking technologies and trends, I kept an eye on the fast-growing IT bootcamp community during my master's degree. Because especially during my studies, I missed the practical side. Most of the time during my studies I never felt like I was learning anything that would really help me to jump straight into a real job. The practice was simply missing, or if it was available through projects, the existing practice was far too specific. In contrast to the many individual further training courses on the Internet, I saw the concept of the technology bootcamp as an opportunity to work through the topics that are currently really needed or in demand in software development with like-minded people as quickly as possible and in a targeted manner. When I then compared the different German providers with each other, the concept of the new fish boot camp for Java developers stood out in the first place. I was particularly interested in the experienced coaches, the development of my own app as a final project and the focus on the backend.
One full immersion
One selection process later, the time had come. My bootcamp for Java developers started in September 2020. Three months of continuous programming were scheduled. Altogether we started in a group of 15 people + coach and 2 assistant coaches.
In the first two months, we focused on getting a rough overview of the most important tools and frameworks as quickly as possible. From day one onwards we programmed almost continuously in smaller teams, which we rotated daily. In the last month we had the opportunity to independently realize our ideas in the form of our own app.
Remotely again and again
Although the neue fische bootcamp was actually scheduled as a face-to-face bootcamp, we were unable to hold meetings in the real world due to the second corona lockdown. Accordingly, the model was quickly converted from a presence to a remote model. Even if I was a bit skeptical at first, I have to say in the end that I would always prefer a remote model to a pure presence model. While I will never be a fan of 100% remote work in my later professional life, in the case of our boot camp, it had its advantages. However, the main disadvantage that I see at Remote in the long run is the lack of contact with colleagues. Above all, my internships showed me that just going to lunch every day can be essential for the development of a healthy relationship between colleagues. From my point of view, however, this only becomes really relevant when you plan to work together for several months or years. However, the period of our boot camp was manageable, so this was not a disadvantage for our group.
On the contrary, the advantage of remote was that the course could be extended to all of Germany. This enabled us to work with like-minded people from other cities. A scenario that a software developer will encounter again and again in later professional life. From my point of view, another important advantage was the time saving. The three months were tough from day 1 - bootcamp. We worked around the clock on our freshly learned topics, fine-tuned them and implemented them in small projects. Planning at least 1.5 hours a day just for getting there and back would certainly have made things a bit more complicated. Accordingly, I am more than happy that we had this opportunity and that it will also be available to future fish. Despite all the intensity, the atmosphere in the group was very good - something that is very important to the neue fische team.
The entry into working life
After completing the boot camp at neue fische, everything happened very quickly. Well prepared through personal job coaching, the actual application phase lasted only about six weeks. Overall, I received very good feedback throughout. Especially with regard to the tools and frameworks that we dealt with during the boot camp. In the end, I can definitely draw the conclusion that I would never have gotten into software development so quickly without the boot camp. I would therefore particularly like to thank our coaches Fabian, Jan and Christopher and the rest of the new fish team.
I've been working as a junior software engineer at 7 PRINCIPLES AG for a month now. And was also very well received there as a career changer.