Here are some tips for junior developers or everyone who just started taking interest in becoming professional in the area, but especially for those who want to progress as quickly as possible. These tips come from my own personal experience and from mistakes I made which resulted in stagnation of my progress.
This is the most important one. Stop thinking that you already know everything. Stop trying to get attention to show how much you know. Stop saying “I know that”. Relax - everybody knows that you are a junior, they know how much you know and they shape your tasks to fit that fact.
Coming into an agency environment for the first time in your life and thinking that you know something is a good sign of the level you are on. Know that every junior is a company’s investment for the future. It’s not expected that you make money for the company right away because you could not be independent in your work - when you’re a junior, there will always be someone checking after you, mentoring you and helping you when you get stuck. It's OK not to know everything and accept that, you are here to learn and that is what being a junior is.
Killing your ego is the first step in making progress. Thinking that you know everything is the biggest blocker you can do for yourself, and you will not progress or grow until you completely eliminate your ego. Stay humble, hustle hard.
Now that you are ready to really learn and understand where you are, and on your path to becoming a better developer and worker, it’s time to understand how important it is to have a good mentor. I was very lucky to have the best possible person to mentor me, which made my skills skyrocket in a year or two. If you don't have one, request this from your company first thing in the morning. If a company would not provide you with a mentor, leave the company, that's not a good place for a junior developer, and it also shows red flags about how other aspects of the company are handled.
Good mentor is a life hack in becoming a really good developer and useful for your company in much less time than it would take you alone (we are talking years here). A mentor will give you all of the answers you need many times faster than Google or Stack Overflow will. Take every advice you can from a mentor, squeeze as much information as you can and absorb like a sponge. Realize what mindset you need in order to be on your mentor’s level. It’s really important to learn how to listen - you are here to ask questions and not to be smart. Insist on constant code reviews, and insist on them to be very critical, and understand that critical code reviews are for your own good. Never take them personally.
Never forget to respect your mentor because he is putting a lot of time and effort into making you a good developer and that is a very hard job to do, because knowing how to be a good mentor is a science on its own.
If you want to stand out as a motivated worker, show initiative. That’s what separates people who are only doing their jobs from someone who wants to grow constantly. And that’s what being a good worker really is - a person who is highly motivated and shows initiative. That kind of person adds value to the company and pushes things to be done.
Give constructive suggestions. Take the hardest task that no one else wants. Take ownership of the things you are doing and take responsibility for how they are done. But try to be useful while doing it, don’t just do things for the sake of doing them to show off - meaning don’t be fake!
Work hard and stay hungry. Seek to be the best developer in your company, but compete only with yourself. Not everyone has the same timeline, so never compare yourself to others. You are on your own path and things will come - and that will only depend on you.
Difference between being good and being great is proportional with the hard work you are willing to invest in your skill. Most of the time this will mean going an extra mile in your free time. Having a good life/work balance is important, but I do not regret working hard after my 9-5 job when I needed to understand things deeper because it helped me to get where I wanted to be and to learn much faster.
Don't think about the money at all as a junior developer. Only focus on learning, progressing and gathering real experience. You want to be on a level on which you are useful for the company and you can create real revenue with the work you do. Until that point you really don't have many arguments for some crazy salary. Money will come naturally, and a good company will never exploit your level, so don’t worry about being hungry, or recognize another red flag of a bad company.
But don’t fool yourself - realize early that when talking about the business side of everything, in the end it’s all about the money. Your salary depends on how much money you can earn for the company through your work. Companies can not do business if they are losing money. That's why employing a junior is an investment for the future of the company because companies lose money until you can be independent in your work and become useful. That also means that your salary will be bigger with more useful work you can do if you're into the money thing.
Of course, you can make more money on your own, but you will never become a great specialist if you don’t start working in the company first - that is where you will be given real experience, big projects and the best possible education. That’s all the things you will not get as a junior developer going on your own. And in my opinion, that will slow your progress - and we’re talking about years here.
These are the tips that would have helped me a lot throughout my junior years. What do you think about them?
Do you have any other tips or disagreements with any of them? Let me know in the comments.