I was initially a mechanical and aerospace engineer. I even received a master's degree in both, and then life hit me. After working as an engineer for a while, I realized that the industry wasn't even close to what I expected, at least in my region. The jobs had been pretty good, but I just needed more. Engineering has so many rules and regulations that it's hard to create new things, even within a company.
Suddenly, there was a sharp downward turn in the economy and engineers started struggling to find a job. That's when I knew I needed to make a change. I needed to do something more challenging that would push my limits and would give me better job opportunities.
At that time, I started learning about web development. I spent months going through as much free stuff as I could find and eventually paid for a few classes. After about 8 months, I felt like I was ready for my first real web developer job so I started applying for them and someone was crazy enough to hire me.
My first job - Expectations VS Reality
When I started working as a web developer, I expected to be working on completely new projects. I thought I would be building everything from the ground up like I had done in all of my online studies. I expected to sit in my cube at a computer for eight hours and not have anyone bother me. In complete honesty, my highest expectation was for the salary I would be making. Once I got that first job though, all of those expectations were… not exactly how I pictured them.
The first day I showed up at the office, my boss gave me a computer and told me to install all of my software. I didn't even know what software he was talking about! After he told me what to download, he pulled up a Git repository. None of the material I went through used Git so I was completely lost.
Then he showed me the code I would be working on and I was floored. There were all of these folders with different files and there was so much code already written, I thought I would be looking for a job again soon! He explained to me how the code worked and how the ticket system we used for bugs/issues worked.
Once we finished this initial walk-through, he assigned me a couple of easy tickets and left me to do them. That's when I met one of my other co-workers. He had been a web developer longer than me and he let me know that it was OK to ask him any questions if I got stuck on a ticket. At this point, I felt like I was so far in over my head that I didn't even know what questions to ask.
The First Month
This was definitely the hardest month. All of those expectations I had were broken and I learned what it really meant to be a junior web developer. You're the person going in and fixing all of the bugs, especially during the first month. Nobody trusts you to do much yet because you don't have any experience, but they also understand that you will work slower than the others because of that.
That whole first month was one big struggle. I felt pressured to prove that I really knew what I was doing when in reality I didn't. I had to learn that it's OK to delete existing code and write something better in its place. There were so many little things that I had never even thought about which I had to pick up quickly.
It took some time to realize that I wasn't going to be building a new code base from scratch and that I probably wouldn't be for a while. It also took some time to adjust to this completely new career. Engineering is not even slightly related to web development so I had to do a lot of mental gymnastics to think like a developer.
My biggest accomplishments this month was fixing a few tickets and getting my first pull request approved. That was the moment I really felt like a web developer. Before then, I had struggled with finding things in the code base or even using Visual Studio in general.
The Second Month
By now I had gotten used to the workflow. More tickets were getting assigned to me, my co-workers were talking to me about best practices, and I saw that I could actually write code. This was the first time I felt like I really belonged to the web development world.
The framework our application was built on helped me learn about MVC which was my first introduction to the back-end. The second month is when I saw just how much I didn't know. As I would read through the code to track down my bugs, I saw code that I'd never seen before. There were keywords and concepts I just didn't understand.
So I still stumbled through the code a lot. My boss and co-workers would help me when they could, but I had to learn how important doing research was. I noticed that if I asked them a question they usually just Googled it. I thought they had some magical knowledge since they had been on this project longer than me, but soon I realized that some issues just needed research.
Image credit: Monstercat
The Third Month
This was the month of overwhelming learning. More and more tickets were getting assigned to me. The bugs were getting more complex and harder to find. To top it off, I still wasn't quite sure of what inheritance was! This was the month I started feeling like an impostor again.
It felt like I was facing new concepts every five minutes and the line of tickets never ended, but the due dates kept coming in. This was when I had to learn about project management. Most of the time nobody really tells you what to do. You get a list of tasks and a deadline and that's it. How to manage time spent on my projects is not something that I could learn by reading about coding on my own.
This was the month when I saw all the flaws in my self-learning process because I didn't even know what I didn't know. So, I started talking to my co-workers and learned about some resources they used and how they think through their problems. That's when I learned that you never stop learning as a web developer and that's one of the reasons I stuck with it.
What I Learned In Those 3 Months
Junior developers don't usually get to start with a fresh code base. The first project will usually be some code that needs to be debugged extensively and this is a good thing. If it weren't for those months of debugging code, I wouldn't have learned how to write good code.
Developers aren't as awkward as people make them seem. Typically, you will have to talk to your co-workers or they will come to you. Don't expect to sit on your own in silence all day.
Web development is worth the initial struggle because it's actually kind of fun once you figure it out. Code is really just one big puzzle and you are the one who makes the pieces. Plus, job security doesn't hurt. During those first three months I was also able to build a few websites on the side. This field really gives you a lot of flexibility with your career.
Project management is an interesting part of web development. Nobody really knows what the application should do or how it should look so they depend on you. Be ready to get a legacy project that doesn't have as much direction as you would expect.
Senior developers can be extremely helpful, they are almost like wizards. There would be times during these months when I would work on one bug for a whole day and still not fix it. Then, when I would ask one of the senior developers for help, it would be one line of code that needed to be updated. This is incredibly frustrating in the beginning, but you learn to understand that what you learned on your own isn't everything you need to know.
Conclusion
Learning web development and switching careers took at least a year's worth of work. Moreover, getting that first job was exhilarating. Starting the project was nerve-racking and required me to talk to people, which was unexpected. The biggest thing I learned during those first three months was to have patience.
When you are a self-taught developer, you come to realize that there is a lot you won't know or you won't understand and that's OK. It takes time to grasp all of the things that go into writing code. Don't give up on it easily and don't get discouraged in the first few months because this career path will open up new opportunities for you and help you grow in ways you would never expect.