Getting my first junior developer job was a long, hard road. A road that I could only see ending at the start of my job. I was so overwhelmed by the process of learning to be a developer that I didn't have the capacity to think about what I should do after I got the job. I tried to think about it but it's hard to think about something you've never really experienced.
My first ninety days were somewhat rocky as they didn't have a set training program for juniors and a month after I got hired, the country went into lock down during the coronavirus pandemic, causing me all kinds of added anxiety on top of learning all the things at my new job. I made lots of mistakes and took longer to get results than I would've liked.
Here's a list of what to do, what not to do and how to avoid the pitfalls that come up in the ever changing world of development at your first junior developer role. This list is by no means exhaustive and I'm sure there are others who've had different experiences for better or worse than I have. This is only from my experience and should be taken as such and nothing more or less.
- Communicate, communicate, communicate
The importance of communication cannot be overemphasized. It's the foundation of all that programming is and without it, nothing can be done. If you don't know something or don't understand something don't smile and nod. Ask how to do it or what that word means. If you don't communicate what you're doing, what you have done and what you do or don't know, you're figuratively blindfolding your manager as to what you should be doing and his/her expectations for you. Your both adults and you don't have to be babysat by them but you do need to let them know exactly what you are doing with your time to make the most of it.
- Knowledge is important but a good attitude is more important
Most programming jobs put emphasis on how much you know and while that is essential to your job as a developer, it's not as important as staying on good terms with your coworkers and your managers. You can have all the talent and abilities in the world but at the end of the day, it's your attitude and a kind spirit that keeps you at your job. If people enjoy working with you, they'll be much more likely to allow for mistakes and help you through gaps in your knowledge till you can catch up. Patience and understanding is worth twice as much as knowledge, which is saying a lot considering most companies hire for your knowledge. Both are valuable but a kind spirit is the most valuable.
Remember, it's not what you say, it's how you say it.
- Problems: Is it a company specific or a general programming problem?
Learning programming is overwhelming. Even if you've been at it for several years, it's a lot to take in and there's so much you have to know. One of the things that really helped me was to distinguish between a company specific problem (e.g. do I have the right permissions? How does this system work?) versus a programming problem (e.g. Is this a bug I can find on Stackoverflow?)
Once you can pick up on these patterns, it's much easier to know where or who to go to for help. If it's a company problem, ask right away. If not, Google it first before asking for help. Which brings us to the next topic.
- How to ask for help
As a junior, it's normal to ask for help. But asking for help is a skill in and of itself. First, determine what kind of a problem you're working on as we covered in the last paragraph.
Next, Google the problem. If you've spent 30 minutes Googling and trying different solutions and nothing has helped, then ask. Be specific when you did. Communicate the problem, what you've tried and one specific question all the while taking into account they might be busy.
I usually will send the question on Slack and let them know they can get to it when they can. Don't rush or be rude with another developer when asking for help. They have a full amount of work themselves and you are taking up their time. Don't apologize either though. It's part of their job to help you through a problem and help you learn what you don't know. Thank them instead. Thank them every time no matter how small the problem or quickly you figure things out. They're giving up their time and that's not always easy.
Also, write down the steps it took to get through the problem for reference later. There are no dumb questions the first time but if you keep asking the same question over and over, you're not asking for help, you're asking them to do your job for you.
- You will have good days and bad days
We all have our days where we're feeling good and getting stuff done. Then there are those days where we feel terrible and everything seems to blow up in our face. That's normal. What you have to fight is discouragement. As a junior, you will have a lot of bad days when nothing seems to go right, you don't feel like you will ever know enough and you will never catch up. But don't let that discourage you. Think of these days as times for you to fail and learn from those mistakes. I've made plenty of them but I haven't given up. I can't and don't want to. If I lost this job, I would look for another one. It's okay to get discouraged and have bad days but don't let that stop you. Another thing, when you do have a bad day and feel like crying, go ahead and cry. It's unhealthy to suppress those emotions. You can wait till you get home or do it in the privacy of the restroom but go ahead and let it out so you can move on again. It's not weak, it's called being human.
- What you should focus on learning
Learn the flow of the system from cloning and downloading the repository to deploy. And don't forget to test your work after you've made updates or changes to the code. You can ask for a lot of help to understand how the system works and what to do. Take lots of notes and keep good records. Also, practice as much as you can going through the process. Experience is after all the best teacher.
Learn how to use the tools (have someone help you walk through them). Developer tools have many features and if misused can result in some devastating events that could be avoided. I once ran a SQL update on a database, not realizing it would make changes and it took my boss eight hours to fix it. It was bad and I was horrified but I learned a valuable and painful lesson: slow down and learn how to use things before you royally screw things up. I've slowed down and been more careful ever since.
Invest in yourself: buy books, courses, whatever you need to get to do better at your job. Do them in your off time or in your down time while waiting for feedback or further instructions. This profession is built on learning and growing every day. You can't know everything but you can learn a little more every single day. Take a massive problem or process and break it down into smaller bite sized pieces.
Get very familiar with basic computer literacy processes and learn things other than coding languages. There's a lot more to programming than just coding languages. Principles and processes are more important to learn than languages as they can be changed but most processes and principles stay the same. Computers are complicated and there are a lot of people that have trouble using them and a lot less who know how they work on a deeper level. You must be vigilant and dedicated but don't try to remember it all. Good notes and careful records are ten times better than the best memory. Write it all down and practice, practice, practice.
- Take care of your health or your performance will suffer
Your health is incredibly important to your work. It seems most devs suffer from insomnia and migraines. I believe this is due to stress. Being a developer is stressful since you can work for ten hours straight and still not see the results of what you've done. And then there's the overwhelming amount of knowledge you need to learn, coupled with daily tasks, communication, deadlines, meetings and no end in sight. It can get to be a black hole you feel you can't get out of and if you don't keep up your health, you could end up with anxiety and depression and other problems.
The first thing I would recommend is a good night's sleep. There's no amount of coffee you can drink that will replace it. Next, is making sure you get outside at least 15 minutes a day to get some sun and a short walk. Even a walk every day is better than a long exercise routine once a week. It makes a difference.
And don't forget to eat healthy and drink plenty of water. It's easy to grab pizza on the way home but eventually it will catch up to you if you do often enough. That doesn't mean that you can never do it. Just be smart about it and try to keep it to a special occasion. Remember, eating right is more about balance than restriction.
- Do your best
This is possibly the most important. It's easy to coast in the short term but it's also easy to for others to see through it. Your manager will pick up pretty quickly if your not getting things done. Doing your best, asking questions, taking notes, learning new things everyday is what really matters. Little by little you will start to see big results.
Don't compare yourself to other juniors or think that you aren't a real developer because you didn't know something that was "common knowledge". You're job is to learn and do your best while your starting out. At the end of the day, that's all you can do.
I hope you've learned some things from this short post and if you have anything else to add be sure to post in the comments below. Thanks for reading and good luck on your journey.