My first 6 months in the trenches as a developer have flown by. But I've already learned a lot about what it takes to become a great developer.
So, I'm sharing some of the things I learned before switching careers and also my top 7 lessons I’ve learned in my first 6 months as a full-time developer so far.
Before I dive into these 7 lessons, I imagine you want to know who I am and how I even got here. If you just want to go straight to the lessons, just scroll down to that section (no offense taken 😅)!
If you’re still with me, I wrote my first blog post a little over a year ago. That post was on how I escaped tutorial hell by building an app on my own for the first time, without following a tutorial. At that point, I was in another career and trying to get my first full-time job as a developer.
In May 2021, I finally made it!!! I am working as a Full Stack Developer at an insurance company in the US, and I’m loving the job. The problems we are tackling are difficult and fascinating, and the work I’m doing feels very satisfying.
Let's start with some of the lessons I learned while I was in the process of learning to code and trying to switch careers at the young age of 38 (spoiler alert: it's never too late!).
I’ll admit right away that I had a lucky break with my career switch. I have a friend who made a similar switch years ago, and I saw he enjoyed his work a lot. I was intrigued.
I ended up meeting his boss, who is a very interesting person. He has an excellent technical background but believes in finding and nurturing talent from outside the computer world. He said that he felt that I have the knack for development and that I should study some specific topics and stay in touch. Meeting this person was a big reason I eventually joined his company!
I know my situation might not apply to everyone. But, I think it is common to get a job through networking, as opposed to sending resumes to potential employers who don’t know you. So, use your network, whether it is LinkedIn, people you know, groups in your area. That said, while networking opened the door for me, I still had to work hard in order to walk through that door.
After I met my friend’s boss, I decided to study hard. With his help, I created my own curriculum of what I had to learn and when I had to learn it by. I researched what materials to study which included everything from ZTM's web dev courses, to Udemy courses, to textbooks written for university students. This curriculum cost me less than US$100!
Studying took time, effort and especially discipline since I was still working full-time and had a family to support. I studied for 3-4 hours every day for over a year and a half, including weekends. Like I said, networking opened the door for me but I still had to put in the work to make the most of it.
I studied basic web development technologies, data structures and algorithms, design patterns, and functional programming. I learned JavaScript and Java, so I could get experience with dynamically typed vs. statically languages (I also found out Java is not that scary after all 🙂). I also read books on how programming languages are designed and how compilers work.
You’ll notice a lot of these topics are basic. I don’t include React, Next.js, or other frameworks. Basic topics give you a big picture view on how a computer works and how best to ‘talk’ to it. Knowing the basics helps one code better and learn frameworks quicker. After all, React and Next.js are built on these basics.
Plus, to someone like me, the basics are fun!
With that said, frameworks are used all over the industry. People spend a lot of time just deciding which one they want to spend time learning. They all have their pros and cons but if you need help deciding, check out this post.
Personally, I chose to focus my limited time on learning the technologies that my friend’s company was already using to give me the best chance at getting a job there. This included Angular and other technologies commonly used in the Java world.
I built projects using these technologies so I could get a feel for what the day-to-day experience of a developer was like. From the joys of making something work to the frustrations of dealing with bugs.
I wrote a blog on that experience of trying to build my own project for the first time. Writing my ideas down was a good learning exercise because it helped me think about the knowledge I was gaining in an organized way. And, in my case, it turned out to be a career booster. I sent that blog to that boss I had met. He was impressed with my effort and shared that blog (and my resume) with other people at his company when he made the case to hire me.
Fast forward to today, and I can call myself a full stack developer. Yay!
I still remember the first time I made a meaningful contribution in a meeting where I was the only person with front-end experience. I was so nervous, my voice was cracking!
I still remember that first week, where I kept coming back to Andrei’s Complete Junior to Senior Web Developer Roadmap while I was setting up SSH on my laptop. Good thing I took that course so I knew to rewatch those videos. Thanks Andrei!
Ok, we have finally made it. Here’s a high level view of the 7 lessons I’ve learned over the first six months on the job as a developer:
I’ll dive into each of these lessons below.
During your first few weeks at a company, you’ll start learning what the business does, probably take some onboarding courses, experience a new company culture, meet your new team, set up your development environment... Oh, and you have to read a new codebase, which is hard.
All of the above can be daunting and you will start by feeling completely lost. Have a plan to build a foundation of knowledge slowly. I read this blog post months before I switched careers and followed it closely when I started my new job. I highly recommend it for its advice on starting with small tasks, asking questions, and gradually building up your knowledge of the code over time.
And remember two more things:
When in doubt, ask questions. There is no such thing as a bad question when you are new at a company or using a new technology. Most people are willing to help you and share what they know. But be careful to respect people’s time and not overwhelm them with too many questions at once. And don't ask the same question over and over.
Ask for people you admire to be your mentors. Mentors help you to grow quicker and to avoid making mistakes, due to their experience. They also provide a sense of comfort since you know you can turn to someone when in doubt.
I have many mentors! One helps me with understanding the company culture and coding philosophy in general. Another advises me on team leadership skills. Another teaches me about networking basics. These are just a few examples but their help is invaluable!
The stereotype of a developer is a person in their early 20s, in a hoodie, working in a basement. They probably work for a startup that is cranking out a new app that will inevitably CHANGE THE WORLD!
That is simply not true. Take age: I’m 38. I’ve met great coders from all working ages, up to the late 50s. Funny enough, I remember reading about another Zero To Mastery student who also transitioned to a software development career at 38.
The world of coding is diverse. You could work in a scientific business, a government agency, a gaming company, an insurance company, and sure, a startup. Whatever the industry, you get to tackle exciting and challenging problems.
Almost every industry and company needs developers and this trend will only continue. And because of this high demand for developers, what really matters is that you can deliver code that works. Simple as that!
Your age, school you went to, your background... largely irrelevant. So don't let that hold you back.
I’ve had a diverse career so far and have developed skills from other areas that serve me well in the IT world. For example, I find a lot of people are silent during meetings but I’m pretty good at expressing ideas and willing to speak up.
Don’t be shy to use your talents and to make contributions to your team early on. When it comes down to it, we are working on a team with other people, whether we are developers, marketers, doctors, or musicians!
The learning journey didn’t stop for me once I switched careers. The tech world moves quickly. It feels like there is a new technology every day. Other technologies die out and no one uses them anymore.
Turn learning into a daily habit. It will help you solve coding problems and you’ll never get bored! One month after I started my new job, my wife and I had our first baby girl, so I took two weeks off to be with my family. During that time, I made a list of coding skills used at my company that I felt I was lacking and I started learning these during my time off. I remember countless nights studying in the early hours of the morning while watching over our little newborn. Once I was back to work two weeks later, I was more comfortable with our codebase.
Learning accelerates while on the job. If you're anything like me, you’ll improve much more quickly in an environment working with other more experienced developers and building real-world applications than you ever could by only building small projects while following along with tutorials.
Be humble. Ask for others to review your work. I recently asked our most senior front-end developer to review all the code I wrote during my first 6 months. He was kind enough to do it. I was so nervous while waiting for his comments! If I may say so, I was pleasantly surprised when he told me I was doing really good work. That comment made my day (of course, he also had many tips for things to improve)!
Keep learning and mastering the fundamentals. Be aware, but careful, of the latest trends and hottest frameworks that everyone is raving about. What if that super cool framework is replaced next year by another ‘more awesome’ framework?
You have limited time to learn new things and you want to pick technologies that you can use for a while. The basics don’t change as quickly as frameworks. The JavaScript engine will probably be here long after React or Angular are replaced by something else. Look how long Python has been around.
One last thing here: no one knows everything in development. No one. There’s just too much to learn :). Those who keep learning will continue to stay ahead.
What does that even mean? I’m still trying to figure it out.
But I've learned that software development includes much more than just coding. As one of my mentors recently told me, our job is to be like alchemists. We take the often vague wishes of a business - whether a bank wanting to build a new customer portal or a gaming company creating a new game - and magically turn it into gold.
Oh, trust me, you’ll be coding a lot. But making magic requires more than writing code. Here are some things I’ve seen in people I consider great developers:
Thanks for taking the time to read my post. I really hope you were able to find something that is helpful to you. If you think coding could be for you and you are trying to switch careers, just do it! If you're still not convinced, check out this post and commit to taking the 21-day coding challenge to see if it's for you or not.
Good luck on your journey, and feel free to reach out if you have any questions or just want to chat. I'm on Linkedin here and Twitter here.
You can also accelerate your learning and get hired in an exciting, rewarding job just like Igor by joining the Zero To Mastery Academy.