When I go to events and I meet others juniors developers like me, everyone starts to talk about one thing (in fact, that’s why we get together in the first place): “it’s been so hard, but I am loving it!” So I decided to talk a little about this today and maybe help others who are in the same situation.
Your first weeks
You are so happy someone finally hired you and are excited to work with a team and develop the software. Suddenly you start to feel a lot like this:
- You are terrified because you think you’re gonna be the intern who dropped the company’s database.
- You hold your breath for a few seconds before typing git push origin because you are afraid you will push it to master by accident.
- You have an idea of how to solve a problem, but you are terrified of breaking something important.
- You move other’s cards in Trello by accident.
- You are afraid to ask for help again to the team, they all look so busy solving complicated tasks!
- “How am I going to ask for help if I don’t even know what is happening after spending almost 3 days trying to understand what I am supposed to do?! “
- “How can she/he find the problem just by looking at it for like 3 seconds??”
- “I hope I can be a great professional like this person one day!”
Some tips that may help you during this phase
After you freak out a little — or a lot — you start to think:
- Oh no, that’s why nobody hires people without experience. They will fire me, I know NOTHING!!
- You feel like you are a burden to the team
- hello Darkness, my old friend
Unfortunately, this is a very common experience for junior developers. Do not let this put you down, please. This is a sign that you are persevering and you’ll be fine. Here are some tips that I’ve learned that may be helpful when working on a team:
- Understand and study a lot about Git. Seriously.
- If you find a command line that you don’t understand, always ask if that’s okay to use it. It’s really important to check the source of the commands and to understand how it works!
- Write clear and self-explanatory commits and Pull Requests.
- Read the documentation, even if you don’t understand it first time.
- Write down commands that your team uses frequently so you don’t have to ask every time.
- Take 1 hour per week to learn something new will help you improve your learning journey.
How to motivate yourself
For those moments when you feel like you should quit:
- Remember that you get to every day with people who have a lot of experience and have a lot to teach you (and I am not only talking about code) and they were in the same position years ago.
- Celebrate every small victory that you accomplish every day.
- If you are stuck for days, ask for help.
- Know when and how to ask for help.
- Talk to others so you can share your feelings with other juniors and seniors too and ask for advice.
- When you feel like you still got tons of things to learn, remember how much you’ve learned until today.
- Work on your motivation and enjoy the process. Try your best every day, try to improve your mental health. It can become a stressful process that may make you lose all the fun about programming.
How are you doing being a junior developer? Have something to share here?Do you remember how your first internship was like? What terrified you the most? How did you overcome your fears? What do you have to say for junior programmers like me? See you next time!
This post is also here at Magnetis backstage!
Oldest comments (69)
I completely agree about taking the extra time to learn more git and command line actions. They're both extremely important and can lead to so many more disasters if used recklessly. My main priorities are often those, and the basics of whatever team technologies I understand the least - a lot of work is done in Rails, and learning the basics of that has helped me immensely.
As for dealing with the thoughts of fear and insecurity, I don't think those feelings truly go away. But they're an extra motivator for asking more questions and trying to take on progressively tougher tasks. My best response to it has been a few tips you had: reminding myself of my small wins, reminding myself of how much I've learned so far, and learn at least a little each day.
Another big tip I've learned recently is, as you improve, don't be afraid to trust your gut more. In the early stages it's easy to always distrust it since you need to do lots of research and double-checking for new work. But don't get stuck in the habit of this, since eventually it'll be what tells you when something is wrong before your brain knows it.
Hi, Max!
Thanks for sharing your experience here. The tip about trusting your gut is something that I am starting to do, having Code Review in our daily practice also gives me some confidence to do that. The best!
Awesome tips Steff!
I may or may not have given it a <3 before I even finished reading it :D
haha, that's okay, Christian! I am really happy to hear that :3
Awesome article!
Gives me confidence as I'm working on getting that first dev job.
ohh, you'll be fine, good luck!
Thanks! :)
Great article! As a manager and trainer of interns, it's good to have a reminder of what it's like for them.
I also feel this way sometimes coming into an open source project.
Wow, I am really happy to know that I could help somehow, Jason! You seem a very good manager, worrying about it. Good job!
I look forward to one day experiencing this. 😁
Hope this day comes very soon! :D
"Hello darkness my old friend"
That pretty much sums up my first few months in this beautifully terrifying place. That being said, I've never been happier with the move I made to this industry.
<3333
agree with every single word
Wow, those first weeks statements are so on point :D
They really are, right?! :P
Take on risky tasks like updating a change on production however nervous they make you. It breaks the anxiety of dealing with scary projects.
Yes, thanks, Allan, excellent point!
That was completely fit on me. That was great article. Thank you.
Thank you, Furkan, you are not alone! :D
I am about to start my first job as a junior developer and will treat this article as my bible :P
Thanks for posting this!
Wow, CONGRATS and welcome to the team!! :DD
Steff, Thank you for the tips and advice packed in this piece. Looking forward to this experience soon.
And thank you for reading! Hope you start to feel like this soon LOL
It's been amazing and I am sure you will soon be a great junior dev!
This is really very helpful
yay!!
Great post Steff, here's some perspective from someone on the other end of the experience spectrum.
Dropping the db. It's great that you are cautious around the production DB, but the company should really have better processes in place. A new team member really shouldn't have that kind of access until they are more comfortable. At my last startup, I had a rule that NOBODY was allowed to run any sort of write query against the production database without someone double checking their work. That included me, the CTO. I made sure to call someone over to sanity check my queries before running them.
Same thing with accidentally pushing to the wrong branch. It's a structural issue. Production branches should be protected from careless pushes.
If you know how to solve a problem, speak up. If your team is good they will listen to you no matter your experience level, and ideas stand on their own merit. If they don't, find a better place to work.
"You move other’s cards in Trello by accident." - Again, seems like a UI or setup problem with Trello if it's so easy to do the wrong thing.
Don't be afraid to ask for help. Unfortunately, you will undoubtedly encounter prima donnas among senior developers, but the best senior developers (or senior anything, really) do embrace their roles as mentors. The only thing I ask is they you've made an earnest effort to solve the problem yourself first, and don't just go asking for help the instant you get stuck.
It's normal to feel like you don't know what you're doing when you're thrown into a new codebase, no matter your experience level. Every codebase that has been worked on for a while has its quirks and nuances that you only really learn over time. Good programmers understand and respect this and start by being very cautious with their changes. Bad ones think "I have 10 years of experience, I can start mucking around right away", and probably break things because of all the things they didn't know.
"How can she/he find the problem just by looking at it for like 3 seconds??" It's true that more experience will help you spot things quicker. Sometimes a problem that other people are stumped on will trigger something at the back of my head that I've seen a long time ago that leads to the solution. On the other hand, sometimes all it takes is a fresh pair of eyes. I was once stuck on something that seemed silly and called over the developer who sat next to me to take a look (she'd was about 2 months out of a bootcamp), and she immediately spotted something that I had become blind to from starting at it too long.
“I hope I can be a great professional like this person one day!” You seem to be smart and have a great attitude, I think you're well on your way!
"Unfortunately, you will undoubtedly encounter prima donnas among senior developers, but the best senior developers (or senior anything, really) do embrace their roles as mentors." THIS, this is exactly what I think! I wish there were more people who think like that, but that's not only software related, right?
Thank you so much, these are awesome tips that you are sharing. Thank you so much for this final comment, sending you the best :3
but the best senior developers (or senior anything, really) do embrace their roles as mentors." THIS, this is exactly what I think!
Based on my recent interviews at several different companies, they seem to prefer to hire prima donna (aka know-it-alls) senior developers instead of people who would embrace a role as a mentor and guide.
I DID accidentally push to master, and had to ask for help backing it out 🙇🏻♀️.
So now I always push with
git push origin <branch-name>
, even if there are shorter ways.LOL, this is more common than we imagine, I've heard some people saying that too and they're not junior's anymore, so I think we are fine :D
but this also teaches a lot about git, right? I learned how to organize my commits and used
git reset
this month, it was exciting :D
I've been using git for what seems like a hundred years, and I still do that. Not only does it mean you're absolutely sure what you're doing, but if you scroll back up or look in your history to see what you did yesterday, it's explicit.
Been there and done that! Totally agree with you. Thank you for sharing. :D
I am very glad this was useful, Raja. Good luck on your projects! Cheers.