8 Things I wish I knew as a Junior Developer
Being a junior developer is not easy. You have a lot of work to do, and you're expected to know everything that's going on in your company. These tips will help you get started on the right foot.
Don't be afraid to ask questions
Asking questions is probably one of the most critical skills for any programmer. You should always try to learn something new when working on a problem or feature, even if it's just some new concept that might come in handy later.
Besides, there are times when you will encounter issues that have already been solved by someone else (such as Stack Overflow). In these cases, don't be afraid to ask for help! It's better to spend 10 minutes googling and asking questions than spending 2 hours debugging an issue that someone else has already solved.
I think this is true for senior developers. You never know what obscure problem someone else might run into that will save them time down the road (or even give them ideas for features they could implement). Even if it doesn't help anyone directly, every question asked and answered helps everyone indirectly by increasing our collective knowledge base.
If your company has a mentorship program or internal forums where you can ask questions, take advantage of them! Even if they aren't related to your specific project or team, asking about general issues will likely still help you out in the long run.
Don't worry about seniority
This is probably the most critical point on this list. It's straightforward to get caught up in the idea of seniority and worry about whether or not you are "senior enough" to do a particular task. There is no such thing as being "senior enough" for anything in my experience. If you think you are ready, then go ahead and try it!
Even if you fail at first, learn from your mistakes and move on. You can always ask for help if you need it. Just remember that seniority is all relative. There will always be someone who has more experience than you, so don't let that hold you back from doing something because of how it will look on your resume or portfolio.
To be successful in software development, immensely as a junior developer, it helps to take the initiative when solving problems or implementing features. This means going above and beyond what was asked of you and making sure that things are done the first time correctly (it also makes it easier for other developers to review your code).
I personally find this approach useful because it allows me to learn more about the problem domain I am working in (which is often a requirement when working with larger projects). Asking questions during these times can be helpful, too, since they often lead to discussions about why individual decisions were made or why certain approaches were taken (this may help guide future decision-making).
Even if your ideas aren't implemented right away, they might inspire others or even make their way into future versions of the product (I have seen this happen many times before).
This also helps build trust with your team members since they know that you will do what needs to be done without continually asking them for guidance.
Write good code
This may seem obvious, but it's straightforward to get caught up in the idea of shipping features and not worrying about how they are implemented. This is especially true when working on a team with many developers (or even working alone).
However, writing good code makes it easier for other developers to read and review your work (which saves time in the long run). It also makes it easier for you to understand your own code later on (saving time in the short run).
If you have never written tests before, this is another area where you can take the initiative and learn more about your language or framework by reading about testing strategies or writing some simple tests yourself. If you write tests, they will help you catch bugs early on instead of debugging them after a feature has been shipped.
This one is pretty obvious, but it's still essential. Reading code is a great way to learn how things are done in other projects and languages. It also allows you to see what kinds of problems developers face when writing software, which will help you with problem-solving later on in your career.
If you ever get stuck on something and need help from someone else, being able to explain the problem is extremely important. This helps with communication between developers as well as collaboration on projects (which should be the primary goal of any developer). Also, reading code may just give you some ideas for your own project!
Learn from others
This point should be obvious too, but I think it's important enough that I wanted to mention it anyway. Take advantage of opportunities to learn from others! For example, if someone asks a question on Stack Overflow that you know the answer, go ahead and answer it! You might also consider sharing your knowledge by blogging or speaking at meetups/conferences. Even if your answer isn't directly related to your job duties, there is still value in answering questions since you are likely learning something new while doing so (this might help solve future problems that come up as well).
Also, keep an eye out for articles/videos/podcasts/books that might be relevant to what you are working on. These can often explain why certain decisions were made and how they could be improved upon.
Finally, don't forget about books! Books are probably one of the best ways to learn new things because they allow you to read at your own pace without being interrupted by meetings or interruptions from coworkers.
There are so many great books out there that cover a wide range of topics. Ensure that whatever book(s) you choose covers topics relevant to what you do day-to-day!
Practice what you learn
It might be a little more difficult if you are working on a large project, but there are still opportunities to practice what you learn. For example, maybe you can implement some features using the latest technology that your company just started using. If not, you can try implementing some small feature using this new technology and sharing it with your team members.
The point is that even if you aren't able to use the new stuff at work, there are plenty of opportunities outside of work where you can show off what you have learned (such as meetups/conferences or hackathons). You might even consider writing blog posts about the technologies/frameworks that interest you. I have found many useful articles/videos on blogs before!
Don't worry about experience
I think this one applies more to junior developers who have recently graduated from college or Bootcamp. It's very easy for junior developers who just graduated to focus too much on building up their resume and acquiring "senior level" experience instead of focusing on learning new things and developing their skillset.
However, this approach doesn't always work out well in the long run because it leads to junior developers trying to do things they aren't ready for yet (and then getting frustrated when they fail).
Instead, I would recommend focusing on learning new things regardless of whether or not they will help your resume in the short term. If anything, take advantage of opportunities to build your skillset and give yourself an edge over other candidates during interviews (even if they don't lead directly to a job offer).
Also, don't worry about whether or not something counts as "senior-level experience". Only worry about whether or not something will help you become a better developer!
Junior developers should really focus on the fundamentals of programming and building projects while also improving their problem-solving skills. This will help you develop into a better developer over time.
Originally posted at dev.to