First 250 days of software dev - Intro
5 min read
Introduction
This blog series contains "report-diaries" that I wrote to my master as an apprentice after I got a job in software. The content ranges from what should be in a serious and formal report to many emotional feelings, mistakes and successes. There was a poem by Nazım Hikmet in one report, to Alan Key's thoughts on the purpose of OOP's existence and which SOLID principle overlaps with the purpose of an object-oriented language. From bug fixing and finding reports, to a report I wrote on a day when I felt like an idiot, to my "belief that I can still do this and succeed". From thoughts and insights on the most detailed parts of the structures of the languages I use, to UML diagrams. The content of the blog started spontaneously when my master asked me to submit daily reports. As I described in detail what I experienced every day, a great content was created. And I wanted to share this content, both to express myself, to give an idea to another "beginner", and to keep these experiences as a memory somewhere.Let me briefly explain how I got started in software and how I continued this profession (hobby):
While I was doing my military service, I took a short break from my routine life and while thinking about my future, I had made up my mind to become a software developer. 3 months after the military service ended, I found the job I wanted. At the end of the first 2 months, I thought that I had figured it out and that I could do many things. I was wrong, of course. Afterwards, as I was given new tasks, I repeatedly told myself that I was both very stupid and very smart in every different situation. The hardest part was to put ego aside. Once you've done a lot in a language and you've practiced it, learning a brand new language or framework from scratch is like starting to count with an abacus again. It was about patience, persistence, and always trying your best. The ego was crushed. But when you succeed and the effort pays off, the ego rises again and acts like a very unstable wave function.
When I started working, I always saw myself as a junior software developer. But after 4 months, when I had a conversation with my master, he made me feel that he still couldn't decide whether I was a junior in his eyes or not. According to him, I had started as an intern, whereas I would say I was a junior, which was an interesting anecdote.
I worked very hard for 6 months. Since I was involved in software topics almost from scratch (I can't say that the C course and matlab projects at the university added anything. I worked almost day and night for 6 months. I studied topics such as OOP, Solid, Design Patterns and tried to solve the functioning of the system by producing something many times both on the backend and frontend side. At the end of the 6th month, in our meeting with my master, he told me that he believed in me and thought I would be a good software developer. I was over the moon at that moment, even though I tried not to show it too much. Because he was a very good software developer and a good person and it made me very happy to hear from him. And he said that he couldn't teach me anything anymore because I could research and learn the necessary concepts and topics and apply them. Since I thought I had an average intelligence, I realized that if you work hard, you can do something. Even a donkey can learn and apply something if you put it in front of the computer for 8 hours :)
After figuring out how languages work at the most basic level, figuring out certain software patterns and why they exist, and doing the most basic things in those languages from scratch in a simple way (e.g. building a simple MVC structure, learning how an SSO server works and building it from scratch), it was time for me to learn frameworks. At the beginning I was very prejudiced against a framework because they offered too much and I thought it would be better to just write a backend in PHP or another software language, but that was the "denial" in the first part of the learning process. Once I was able to work with frameworks and build applications, I started to feel like I was getting the basics down, but there was so much to learn and it was never ending. I loved this situation because I thought I could learn, research and implement new things without getting bored forever. I still think the same.
I think my biggest chance was that I started to learn this business with the master-apprentice relationship, just like my master learned from his master. And one of the biggest chances was that my master was a very good person and tried to show and teach me everything he knew about this business as much as he could. I cannot thank the person who gave me a golden bracelet enough.
Now? I'm still learning. Every day. All the time. Trying not to fit into shapes, trying to follow Bruce Lee's motto of "being like water"...
Have a good reading :)