The first of November 2021 marks the day that I have worked as a web developer for two years. I came from a background as a refrigeration engineer and manager before starting out as a developer. On my thirty-second birthday, I decided that I wanted to pursue my dream as an IT professional. In my mind, it was now or never.
In this article, I will tell my story. How I got started, and what I have learned the first two years as a developer and IT professional. I will also share my thought on what it takes to become a skilled IT professional.
Prelude
The story that led me to becoming a programmer.
I have always had an interest in learning programming. During high school many of my friends and I created hobby homepages mostly written in static HTML, but with some piece of PHP thrown in. My main problem was that my English was very bad, and back then all the learning materials were written in academic English intended for college students. So I did learn some super basic MySQL and PHP and was happy with what I created.
Back in the early-2000s when I had to choose an education, a career in software was considered risky because of the recent .com crisis. Because of this, I did not want to take a chance on becoming a programmer because of the high risk of unemployment at the time. Instead, I pursued an education as an automation mechanic and eventually started working as a refrigeration mechanic. I later became a refrigeration engineer and manager.
During the entire year of 2018, I was on a non-compete clause because of a transition from a manager role in one company to another. I decided to spend about half of that time learning how to program.
I started from what was essentially complete zero. I had forgotten most of the programming I had learned during high school. So I spent a lot of time teaching myself how to program from scratch by reading books and watching Udemy classes. I played around with Arduino projects in C++, Android apps in Java, and eventually HTML5 web development and basic Linux.
I completely fell in love with web development because of all the technology that you interacted with both backend and frontend.
Shortly after the non-compete clause was over and I started leading the new company I decided that I was tired of the refrigeration industry. I wanted to continue on the path I started during the non-compete clause.
On my thirty-second birthday in 2019, I decided to pursue my dream of becoming a programmer. I did not care what I got to program as long as I was able to program. In my mind, it was now or never. I quit my job and then and started to look for my first programming job.
After a couple of intensive weeks where I applied to a bunch of developer positions and invited myself on interviews all over the region, I was able to land a job as a Web developer.
The first months
Impostor syndrom mania
Before I started in my new job I thought I knew a thing or two about programming and server management. After about 1 hour at my new job, I realized that I was pretty much clueless compared to everybody else on the team. My l33t haxor programming skills following Udemy tutorials and for dummies books just did not compare to even the most basic stuff the others were doing.
To my shock, they were building advanced PHP web apps where object-oriented programming was the norm. They were all mastering tens of programming languages and at the same time did server management of various flavors of Linux distros.
The first week on the job I got exposed to object-oriented PHP for the first time in my life, twig templating language, SCSS styling, front-end javascript, composer for PHP packet management, Webpack to build compiled js and CSS files, YAML files for configuration and the concept of using virtual machines as testing environments. Holy shit, this was a lot of new stuff!
My respect for web developers was forever changed.
Photo by KOBU Agency on Unsplash
Not only was I pretty much helpless because of all the new technology I had to learn. But adding to the frustration was the fact that everybody in the office - even the designers - wrote a lot faster than me. I soon realized that I was the only one not able to write without looking at the keyboard - aka the touch method. While I was busy struggling with filesystem compatibility issues between my Linux developer virtual machine and my poor Windows host I heard the sound of loud and fast typing of productivity all around me.
I quickly decided that I needed to learn some of the basic stuff on my own in my spare time, to not get fired and risk losing my dream job.
Thankfully I was assigned a mentor that in addition to being very skilled at programming, was a very talented and patient teacher. He answered all of my questions and helped me formulate good questions when I did not even know what to ask for.
Study bonanza
When learning a new craft you try to mimic those that are skilled.
I set up a study environment in the basement of my house and spent every night learning the skills I thought were essential to becoming a valuable team member at work.
In the beginning, I would spend 1-2 hours just training touch typing. I started on with the complete basics, following programs designed for kids. After about 2 weeks of training, I was able to awkwardly use all my fingers and type around 20 words per minute on a good run. When compared to my colleagues who wrote about 60-80 WPM this was terrible, so I continued training every day for 30 to 60 minutes the next six months. At that point, I managed to type around 30-35 WPM. Not a speed to brag about, but at the same time not so slow that it was an issue.
After my typing sessions, I spend a lot of time learning more about object-oriented programming in PHP, JavaScript, and C++. I also spent a lot of time learning more about Linux administration because I had to be able to config my own development VM at work.
After being on the job for about 3 months I felt that I managed to get my head above water and was able to feel like I was a contributing and productive team member.
Summer of 2021 I joined the One year program at NTNU Gjøvik as a Web Design student. In addition, I joined the Network and IT security program at Noroff Vocational College. Just before the end of semester exams, I dropped out of the NTNU program. The professors had introduced me to some amazing books that had given me a much better understanding of the basics of HTML, CSS, and HTTP.
This knowledge gave me a huge productivity boost at work that I really benefited from. Since the rest of the one-year program was about introduction to javascript, (which I felt pretty confident with) and graphical design I felt that I had a lot more exciting things to learn by focusing my energy on the Network and IT and security program at Noroff.
And, oh boy have I learned a lot of practical skills there!
Everybody is learning
The difference between a n00b and a l33t
After the first year with an incredible amount of impostor syndrome and long nights studying, I came to realize that one of the most valuable skills a developer has is the ability to learn new stuff. The speed that new technology is released is so fast that nobody has a really solid understanding of every tool or software library they use. I do have a bad memory, but I'm able to understand new things pretty fast, so I think this is perfect for me.
What I think makes a good developer or IT professional is the amount of experience the person has, and because of this the ability to ask the correct questions and therefore quickly find documentation and help online. In addition, curiosity and interest in learning new concepts, methods, and technology are crucial.
After two years I still learn a lot every day. And every day I have to re-google stuff that I at some point earlier had to google. The difference is that I find it faster every time since I know what question to ask and therefore find an answer quicker. I do consider IT knowledge to be like an onion. Everything is connected in some way, but as you dig deeper you become aware of concepts that you previously did not know about, and realized that it was kind of amazing that you managed to get anything done without knowing it. At the same time, I do feel that I learn faster as I go because I have more experience. This experience enables me to faster connect the dots.
In my eyes, an IT professional has to be able to feel comfortable with their own limitations. As a human, I do believe I have become a lot more aware and intellectually honest about my own skill levels. It's impossible to know everything, but if you know your own skill level it's easier to make better decisions on what you should prioritize learning more about.
Coming from a background as a refrigeration engineer I was used to having the feeling of knowing it all on a technical level. I spent a lot of my time getting ahead of the game at the beginning of my career and was able to stay on top of the wave as time went on and new technology and solutions were introduced.
One of the biggest struggles for me personally was the shift from feeling that I knew it all, to a position where I constantly felt that I barely knew anything.
What's next?
Do i have any plans for the future?
A couple of days before my two-year anniversary I passed the CCNA exam. I did spend most of my spare time the last 5 months preparing for that exam. It was exhausting, but passing that exam did wonders for my impostor syndrome.
In the next year, I don't think I will spend so much time pursuing certifications while I'm following the Noroff study program. Studying for certifications alongside the nightly study sessions gives me a huge risk of burnout, and I don't want that to happen to me.
I do plan on spending more time on security-related topics surrounding web hosting and web applications. Since that is more directly related to what I do every day at work. I also plan on being more active on CTF events and TryHackMe.