Do junior developers need to know everything?
If you are an intern, congratulations on your new job. If you are a junior developer, keep pushing harder.
Let's get into the topic. So, if you are a established developer or a senior developer, this article is not for you. But, if you are managing a junior one, I think there might be some information about how you should think of your junior developer ("MIGHT BE" because I have no idea what I will write. Who can predict the future?).
From the day you have started your journey, you have entered into a different world where people speak different languages, have different behaviors or have different perspectives about different things (We are geeks, what did you expect?). You might have felt a very strange feeling about those people who wears headphones while they work, who talks a very few words for a whole day or who absorbs themselves into the laptop screen. It is no strange in this world. The world of developers is very unique. 90% of the people do not know about their surroundings. They are just focused on their code and trying to find the missing semicolon.
When you enter this new world, surely you feel like you know nothing even though you completed three or four years at your university. You senior may have told you things that you have never heard of. THAT IS OKAY! You do not have to know everything. You have just started. BUT, that does not mean that you don't have to know anything.
After I started my journey as an intern in Software Engineering, I have done so many mistakes. I made every mistake a learning opportunity. The more I do mistakes, the more I learn. I had very little experiences in commercial level projects (You know how everyone does projects at the university ๐). So I had to face lot and lots of challenges when I started my new job. I did not know about coding standards, how to code properly, version controlling (That is totally my fault) and various applications that I could use to help coding (So literally everything ๐ฅ). Only thing I had as a positive was, the passion to do code.
So, as a junior developer what you should have? Or what you should keep in your mind.
Love what you do and be creative
This is number one. If you do not love what you do, you will not be able to do anything. It is not something that is only specific to IT field. It applies to everything you do. Love is the thing that makes us pull crazy stunts, go beyond the horizon. Behind every creative solution, there is a person who pulled a crazy stunt that others did not have courage to do. If you do not love what you do, you will belong to the side of people who are afraid of doing something creative. Software Engineering and developing is all about being stupidly creative. Creativeness will lead to great solutions. Solutions will lead to a great architect.
If you love what you do, it is not work anymore. It will become your passion. So, have passion and love everything you do.
You will never be perfect
This is the bitter truth. No one can ever be perfect in developments. The most perfect developer you know, might not know to do a simple thing. Almost all of us google when we are stuck with developments. It is not something to hide. Others will never know how much Stackoverflow means to a developer. During the time of a junior developer sometimes you may feel like you know everything. But, you should be extremely cautious not to get over your head. This is the period you should accept you can never be perfect and there are lot more for you to learn and experiment.
The main difference between you and your senior developer is, the senior developer has much more experience than you. While you give a quick solution to a problem, a seasoned developer may take some time to address the same problem. The final outcome may be the same but the senior developer tries to address it while looking at so many possibilities you did not see. That is why, even I, still run some of my solutions through my senior. So I can be sure I have looked into almost all the aspects my senior usually consider (I am not a junior developer. But unless you are the head of the director board, there is always a senior above you who has much experience and knowledge than you).
The best thing for you is to trust your senior, while learning new things and different ways to tackle a problem. You senior have walked in your shoes already. So, he/ she knows what a junior looking into.
There are some things that you need to accept as a junior developer.
Your code sucks.
Your design sucks.
Your choice of names for classes/variables/etc. suck.
You can only be a good senior in future, if you accept that you have many to learn and you will never be perfect.
You donโt know, what you donโt know
Ask questions every time
I used to ask questions every possible time about everything. Even in the current position I have lots of questions. My friends sometimes refers me as "Mr. A quick question" because every time, I try to resolve my problems and doubts by asking many questions. Sometimes those small questions lead to a 30-minute discussion among the peers (It is not a small question then. Yeah I know! I have to start from somewhere. No one likes if someone says I have a big question for you. But a big question disguised as a small question, that is different ๐). It might be one question, or it might be ten. Counts really does not matter.
There is nothing to be ashamed of asking lots of questions. That means you are curious to give a perfect solution and you have a keen to learn. Keeping those questions to yourself will not make things any good.
In near future you will end up in meetings where people talk about terms that you have never heard of in your life. Excuse in the meeting and ask "What the heck does that mean?". There are no such things as "Stupid Questions". Who knows, there might be many who will get new insights from the questions that you are asking. Also, you might be in situations where brainstorming help to solve many questions like in code reviews. Have that practice. It will definitely help you to become a better version of yourself.
Do as much as experiments as you can
Junior developer time is always a time to learn. No one asks for reasons when you make a mistake. It is your time to learn and every senior knows that. Make that time to do much code as possible in different ways, do many experiments on your project or code that you are working on. No one will blame you. To be honest, seniors like when you do experiments and come up with different perspectives. It is a way of showing that you are keen on this and try to be a good developer in the future.
When Thomas Alva Edison made the light bulb, he reportedly said that he failed thousand times. You might have multiple failed tries. But you need only one try to be successful. When a reporter asked "How does it feel to fail?". Edison said, he did not fail those thousand times. Every time he found a way that he cannot achieve his dream. If he gave up on his 999th try, he would not have found a light bulb. So, do experiments. Find new ways "not-to-do" something. It is a win.
Communication is a must
Does not matter you know "how". If you cannot express it, you will never be able to present it. There can be language barriers. Even I, am not a perfect English speaker. English is not my native language. There can be many grammatical errors when I speak and even in my posts. But, I am trying my best to make you understand it. It is the only thing that matters. You should only be ashamed if you cannot speak your native language (only if you raised and studied in your mother country).
Communication does not mean that you speak perfectly. When you express your thoughts to someone that is in a understandable manner, that is communication. If you lack on communication, try to brush it up, speak to a mirror, teach your cat, draw diagrams with your favorite pet. Eventually you will learn how to communicate properly. It is a process.
Do not take anything personally
Sometimes your senior might blame you for something. Do not take it personally. Talk with your senior and explain them why you have done it that way. Sometimes they may not understand it. Then explain it. There can be bumpy situations inside the code reviews. Not everyone may agree with you. Make everything to your advantage. Learn something. Learn to be your best self. Rough seas make the perfect sailors.
Give yourself a break and have fun
Your job is not your life. Treat your job like a job. Make time for your personal commitments. Your loved ones will not be there for you until your death. So make time for them. No one is a machine. Every human needs a break, love, care and so on. Have fun. Go out with your friends. Watch movies. Play games. Most importantly, have a good sleep (I follow this the most ๐).
Last but not least, Never be afraid to stand for what you believe and speak!
Keep these things in your mind. Only competition that you have, is YOU. Never compare yourself with others. Everyone has a different timeline. Be patient and keep learning!
Okay Juniors, That is all for today. Let's meet with another episode of Simple Yet Awesome very soon.
Subscribe to my newsletter
Read articles from Dulitha Rajapaksha directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Dulitha Rajapaksha
Dulitha Rajapaksha
Software Engineer, passionate coder, PHP, gamer, geek and a person who has a curiosity ๐๐ฎ๐ง๐ป