What I did to survive my first couple of years as a developer

Tags: career, firstyearincode, motivation, productivity
Published: 2020-11-01 16:31:49

### TLDR;

- Find a challenge and don't get comfortable.
- Speak less, listen more.
- Ask questions, but don't ask a question every 5 minutes.
- Ask for feedback and learn to accept it
- Take ownership
- Accumulate knowledge
- Learn concepts, not frameworks
- Write down your goals
- Find a side project

>Defining the rules and applying your knowledge will give you the confidence you need to achieve the things you want and overcome your challenges.

## A short backstory

Two and a half years ago I started working my first full-time job as a software developer. I had a bachelors degree in Application Development and some
experience in creating websites for small companies as a side hustle during my
time as a student.

Before starting my internship at my current company Craftworkz, I had no experience building real applications. But I wanted to be able to create applications. Not just one part of an application, but an actual frontend, with an
API and a pipeline that took care of the deployment. Knowing all this I wanted to learn as much as possible during my internship (3 months).

So I searched for an interesting internship and found one right in my wheelhouse. My task was to create a competitive dashboard for the company where employees could challenge other employees to a workout competition. So I created
an Angular Frontend, Ionic mobile app and a Nodejs backend. The Ionic app had an integration with Apple Health kit and the backend had a Fitbit integration to extract all workouts to our MongoDB.

I know what you are thinking: _*"Great story bro, changed my life..."*_. But
thinking back, this was the greatest technical challenge that I had ever faced.
Not knowing anything about Angular, Ionic, Nodejs or MongoDB gave me a challenge
outside of my comfort zone. Not picking a simple internship where I learned how to create a frontend with 70 rules of best-practices or an API with 80% test-coverage ignited a fire in me continuing until this day.

This also introduces my first rule in my rulebook.

## Find a challenge and don't get comfortable

As the rule says, find yourself a challenge. Something that you have never done, because in this situation you will learn the most. And don't forget to find something that is interesting for yourself. **If you hate exercise, don't build
a dashboard about exercise...**

Stepping out of your comfort zone will be scary at first, so don't underestimate the stress that you put on yourself. It's called a **challenge** for a reason.

## Speak less, listen more

This is the hardest rule for me personally. This rule applies to every young developer. Remember that you know nothing.

![know-nothing](https://dev-to-uploads.s3.amazonaws.com/i/afmxmazemt8yxtdabbjk.jpg) 

But now all jokes aside, listen to your seniors. Listening to them, will help you avoid making the mistakes that they already encountered. And not only that. They probably created large production applications, worked in dozens of teams or even companies.

You don't have to be silent when they speak. That's not the clue, try to listen to them, and challenge their ideas with questions, even if the questions might be stupid.

And this introduces the next rule.

## Ask questions

Asking questions will show your interest. Sometimes things will not be clear for you as a young developer. Don't use Google to search all the terms that you heard during your conversations... Ask about the terms if there is room for it.

### What to do when there is no room for questions?

There is a simple answer for this. Write all your questions down and ask for a 30 minutes meeting with one of the more senior developers. If this person is an actual senior developer, he or she will help you to understand all these terms.

### Don't ask a question every 5 minutes

So now you are saying: "don't ask questions?!". No. I am saying, if you have 10 questions: find a time slot that works for you and the senior developer so that you will find your answers. Most people are pretty busy and a someone asking 10 questions in 15 minutes is not mood boosting.

## Ask for feedback and learn to accept it

Feedback is the most important thing in the world. Learn to give feedback but
more importantly: don't take feedback personally! Most code won't be perfect,
most solutions will have flaws, some code will have bugs, deal with it!

Code reviews in particular can be very frustrating. Every pull-request can have countless comments like:

- Why is this code here?
- This function is named poorly.
- When inserting A in this number-input, the submit still works.
- ...

Remind yourself that you are the new one. You're learning and listening. Apply some of the rules:

1. Speak less, listen more: **Just listen, apply changes.**
2. Ask questions: **Why is this better for performance?**

## Take ownership

If you think that you will be the best developer who never makes a mistake, think again. You will make mistakes and you will learn the most from making mistakes over and over again.

I once deleted my current working directory on a production server instead of a simple directory that had some useless files. I didn't know how to fix it, so I asked for help. I asked my senior developer to help me and he explained how to
revert the delete.

I took ownership of my mistake, the environment was not broken and I learned something new. WIN WIN WIN.

## Accumulate knowledge

For all kinds of people, there is a way of learning things.

There are countless blogs about all technology you want. There are thousands of programming books. Youtube has a tutorial on how to break glass with your voice, so it probably has a tutorial on how to configure your local database.

I personally like reading books or blogs and listening podcasts. And this expanded my knowledge by a lot!

## Learn concepts, not frameworks

It's not important to know all details of a certain technology. For example: Overal knowledge on how a browser works is important in every frontend framework.

This doesn't mean that you shouldn't get good in 1 framework. But it means that some basic concepts can improve your skills in all frameworks.

## Write down your goals

I created the habit to write down a list of things I wanted to complete for that day. This could be as simple as.

1. Read 10 pages in book X
2. Read 2 blogposts.
3. Eat 2 pieces of fruits.
4. Run 3 miles.
5. Finish project X.

Writing these things down will help you maintain focus and avoid stress about the topics on the list. Because you won't forget doing it.

## Find a side project

find yourself a side project. This project will help you to try out new stuff. It will also give you the ability to take your mind off of work, and do something else.

## Exercise

And finally, the most underestimated form of therapy: **Exercise**. Just do something to clear your mind from the stress. Run a couple of miles, take a short walk, go to the gym or just do something else! But don't forget your temple: the body.

## Conclusion

You might ask yourself: _is this all it takes?_

The answer is no. Noone will give you a guide on how to survive your first years as a developer. There is no step-by-step guide to follow. You can only apply the rules that work for you. Read a lot and create your own set of rules.

> Defining the rules and applying your knowledge will give you the confidence you need to achieve the things you want and overcome your challenges.