Ok, this is real. I am writing this article. Sorry, I had to pinch myself to realize this is the reality. I had such bad impostor syndrome before starting my job. It still feels surreal that I am a Software Engineer. Also, I was the one reading these articles before. I used to think “when will I get a job too?”.
At the same time, time passes so fast. It is now six months and a half since I have started my job. It feels like it was yesterday, but it also feels like I have been doing it for six years. It is a weird feeling to describe.
I write this article to share with you what I have learnt during these months. It is a fantastic experience, and I learnt a lot.
One of the essential points of this article is that you are never fully prepared for a job. There are way too many things to learn. Also, some things can only be learnt when working in a collaborative environment.
You might ask what do I mean. Let me continue with an example. Among the many things I learnt while on the job, I learnt how to work on a codebase with other ten developers. It does not matter how many personal projects you build by yourself. It is another story when you are collaborating with other developers.
Also, apply to jobs even if you do not meet all the requirements 100%. I did not meet them, and there is no way I could have learnt everything I learnt on the job by myself. Learn while applying to jobs. When they hire junior developers, they are interested a lot in the personality as well. Skills can be learnt, but the character is harder to change.
Working with code for eight hours a day does not even compare with coding for a few hours weekly or even daily. When you are involved in working with code for so much time every day, you learn a lot of new things. You also learn a lot faster.
There is not much to say at this point. There is a reason why a professional developer improves so quickly. Working for forty hours a week with code, it only pushes you to become better.
Therefore, the next time you see a professional developer on the internet, do not compare yourself with him/her (provided you are looking to start your first job.). They do this for a living.
You hear words like Agile, Scrum, Pair Programming, Test-Driven Development, and so on, all the time. If you are like me, you might start panicking and thinking that you will never be able to understand them.
I am telling you that you will understand what they mean. I am laughing when I remember that I got so scared by some words.
I laugh when I remember that I was scared by terms such as “Agile”, “Scrum”, “Pair Programming”, “Test-Driven Development”, etc.
If you are in the same position, don’t worry about them. They are not scary at all.
Once you start your first job, you’ll understand this tweet.
— ᴄᴀᴛᴀʟɪɴ ᴘɪᴛ 💡🚀 (@catalinmpit) March 5, 2020
When done correctly, they are very powerful and useful. Unfortunately, most of the time, these words are just thrown in job descriptions as buzzwords.
Anyway, do not be scared. You will get them.
Learn to communicate and ask questions. This is an advice that will take you far, and not only in software development. Even though people see us sitting at a computer and furiously typing code, we communicate a lot. First of all, you need to communicate with clients. Secondly, you have to explain why you wrote code the way you did.
When it comes to asking questions, you will get stuck a lot. Do not be afraid to ask questions. With each question asked, you improve your knowledge. You do not gain anything by not asking questions, but you gain a lot by asking the right questions.
Once again, I advise you to learn how to communicate and to ask questions.
These are the most important things I learnt during these six months. If you want, add more in comments.
Always remember that:
- you are never fully prepared to apply for a job
- coding for eight hours a day does not compare with coding a few hours weekly or even daily
- there are some terms that look scary, but they are not scary at all
- learn to communicate and ask questions