DEV Community

Cover image for Tips for Junior Developers
Sahan
Sahan

Posted on • Originally published at sahansera.dev on

Tips for Junior Developers

Hi everyone šŸ‘‹ this blog post kind of different from my usual ones since this is based on a recent talk I delivered at the Adelaide Jnr Developer Meetup hosted by juniordev_io on the 18 May 2022.

The slides can be found at my SpeakerDeck profile.

tips-and-advices-for-jnr-devs.png

The following is a short summary of my notes for each slide I spoked about. I structured my talk around 3 main topics.

  • Maintaining Motivation
  • Dealing with Imposter Syndrome
  • Staying Productive

Maintaining Motivation

Put in the work

tips-and-advices-for-jnr-devs-1.png

Developing software is a creative endeavour. This is no secret. Regardless of your background, whether you are coming from a Bootcamp, uni degree, or doing it as a hobby, you have to do the work yourself to gain experience. You can read a 300-page book or binge-watch a 4-hour-long Youtube tutorial on building the next million dollar idea, but it would be a mere waste if you donā€™t take any action. If you follow a tutorial or do what your professor or instructor is telling you to do, you wonā€™t grow as a developer if you donā€™t try things on your own.

Itā€™s so easy to ā€œget stuck in a tutorial hell,ā€ which can create a false sense of accomplishment. So what should you do about it? My suggestion is to carve out some of your free time, maybe 30 minutes a day. Start small. It might be a simple to-do app that you want to build with a programming language you want to learn. Learn the basics first, then focus on different building blocks of it. E.g., Think about the UI; how would you make it go live? How would you save the data? How would you handle multiple users accessing your app?

30 minutes/day actually ends up being 14hrs/month which is a considerable amount when you think about it!

šŸ’” Donā€™t wait until motivation hits you.

Another correlated point to this is waiting until motivation hits you. You may feel overwhelmed and think that the barrier to entry is high. But once you get through that, your curiosity will grow, and youā€™d learn things quicker. Most importantly, enjoy and have fun.

Adopt a Growth Mindset

tips-and-advices-for-jnr-devs-2.png

Not sure what to focus on next? It is okay not to understand what is going on when you join a company or a new project. Thatā€™s fine. It takes time. Usually, you start small - maybe itā€™s a minor bug or a feature request to change the buttonā€™s color. Start from there and try to understand how things tie together. Ask questions, and reach out to your peers. This is also one of the mistakes I made earlier on. I just put my head down and smash through the tickets. But itā€™s not enough. By doing this, you will begin to understand more and more.

šŸ’” Learning has a compounding effect

What do I mean by compounding effect? Simply put, initially will take a lot of time, might seem slow, and your growth will seem linear. But once it picks up the pace, it will grow exponentially. And when you stop learning, that cadence breaks, and you need to get back up again. So, Learning is a lifelong process.

This doesnā€™t mean you always have to be learning something every minute. There will be days you will feel like you didnā€™t know anything, just be answering emails or slack messages. Thatā€™s fine. You need to make sure you donā€™t do that every single day. By the end of the week, I usually just look back and do a small retro to understand what I learned that week. If not, plan for the next week. Consistency is key.

Few more tips:

  • On-the-job training is great since you will be spending most of your time during the week at work. Read through technical documents that your team has, code reviews are great to get feedback and also understand what others are working on, run pair programming sessions with your team mates
  • Utilize the Learning and Development budget your company provides
  • Perhaps you might be thinking of pursuing a certification?
  • Network with other peers

Imposter Syndrome

You need to be an expert in something to teach others

tips-and-advices-for-jnr-devs-3.png

As mentioned in my previous slide, you have to make learning a critical part of your life. Thereā€™s a lot to learn and keep up with. During the last ten years, I have worked with many technologies, from Ruby, JavaScript, Java, Angular, Android, iOS, .NET, SQL, NoSQL database; some technologies donā€™t even exist now - J2ME Java Micro Edition, ActionScript, Windows Phone šŸ’€. As you can see, itā€™s a never-ending process. You will pick up new things now and then, from your job, your side project, from your colleagues. Even today, I still need to look up certain things, Google stuff, when I cannot seem to figure out something.

šŸ’” The most important thing is No one knows everything.

How can we overcome this feeling though? When you are learning something new, donā€™t feel embarrassed to share anything you learned. Donā€™t think of it as bragging either.

I initially felt this when I started this blog. I didnā€™t even think whether anyone would want to read my blog. I just did it anyway. I started it about 2.5 years ago; I initially had 1 or 2 readers ā€“ now I have around 10,000/month users and recently passed 200,000 users, which is not a massive number, but I feel happy about it. Adding to that, itā€™s a great feeling when you get to help someone, and they put a comment saying they have been struggling with it for days, and my blog post solved it. You will get sponsorships and get invited to talks, to name a few.

You mustā€™ve figured out a pattern already - gain experience by doing things. You donā€™t need to be an expert in something to guide others. You can even share how many times you failed to do something and let others know how you overcame that. Put a unique spin on things. Everyone is unique.

Moreover, you will also learn to say ā€œI donā€™t knowā€ and thatā€™s 100% fine.

Feeling ā€˜Everyone else is better than meā€™

tips-and-advices-for-jnr-devs-4.png

On to the second myth. Having unrealistic goals and comparing yourself with others is a recipe for this. Itā€™s in human nature to compare oneā€™s self to another. You wouldnā€™t know what they have gone through so we canā€™t really compare ourselves with others. When you set a standard for success, youā€™d think you have to achieve it, and if you donā€™t, youā€™d think you are a failure. Well, thatā€™s not the case. Because thereā€™s no single path to success, there are multiple paths, and your journey might change from time to time, and thatā€™s totally fine.

If you feel that you can learn from the people surrounding you, thatā€™s a good sign! Maybe you have an idea to start a side project, a blog, or a Youtube channel to share your learnings.

Staying Productive

Donā€™t obsess about the programming language

tips-and-advices-for-jnr-devs-5.png

When starting, yes, you need to know some programming language. Maybe itā€™s the language of choice of your current employer or a module you are taking currently. The reason is that itā€™s like learning a human language. Once you know the structure of a language, for instance, grammar, syntax, predicate, whatever that might be, it will be reasonably straightforward to understand and transfer the concepts to a different language. Yes, there will be differences here and there, but you can learn them. Just pick one first and run with it. Get comfortable writing code with it. Donā€™t try to learn as many languages as possible, thereā€™s too many out there.

If you donā€™t know where to start, JavaScript is a good starting point because you can work on both client-side driven applications (Eg: Vanilla JS, TypeScript, React, Angular when you are comfortable) as we as the server (e.g., with Node.js). Start to identify those building blocks first. You will then form opinions about things, and perhaps start contributing to open source projects

Learn to use a universal IDE

tips-and-advices-for-jnr-devs-6.png

This is where you will spend your time during your day-to-day job. There are many options out there. IDEs range from VS, JetBrains, or even VIM, to EMACS. Sometimes one is better than the other for a particular stack. Usually, pick something you are most comfortable with and learn how to navigate around, interact with the terminal and the key bindings, and configure it the way you want it to function. Usually, when you join a team, you would have a sharable configuration such as an editorconfig file for different IDEs; if not, you can create one. Talk to your peers about what they are using. Not everybody has to use the same IDE too. Also, be mindful of the capabilities of different IDEs as well.

First, try the options out there and get a feel for them. It will take time; eventually, you will land on one. It will become a natural part of your development process, and itā€™s one less thing to worry too. I use VS Code these days since Iā€™m working on multiple projects because I have all the plugins and a familiar environment. Less context switching.

Take regular breaks

tips-and-advices-for-jnr-devs-7.png

This oneā€™s a bit interesting. It may seem a bit counterintuitive as well at first. Research shows that the human mind can juggle seven things at a time. Imagine you have your project opened up, and there are many classes and methods, and you are going through them to find where the bug is? Itā€™s normal to feel overwhelmed. Perhaps you are debugging a notorious bug and where itā€™s crashing if you feel like youā€™ve hit a wall. Just take a break. Go for a walk around the block. You will be amazed by the time you resume your work; you will start to see the answer.

I personally do this very often without being too hard on myself. The same applies to taking a break from your work too. Utilize that PTO, go on a vacation, take some downtime, and take care of yourself. It will pay dividends in the long run and avoid burnout too.

Conclusion

Hope these advice and tips will help you to be a better developer. Until next time šŸ‘‹

tips-and-advices-for-jnr-devs-8.png

Top comments (6)

Collapse
 
musau profile image
Eric Musau • Edited

As a birdie in this field I've found myself obsessing over the best language to learn but the path always led to multitasking which ended disastrously .Glad to say right now I'm focusing on aptly mastering Web development before taking up on any other thing .Thank you for such intuitive writing.

Collapse
 
sahan profile image
Sahan

Exactly! Weā€™ve all done that at some point and Iā€™m glad that you have figured out what to focus on. You will start to see patterns (both good and bad) which will make you a better engineer overall. Kudos to you šŸ‘

Collapse
 
andrewbaisden profile image
Andrew Baisden

Nicely put. Junior developers spend a lot of time learning as they try to find the right paths for them.

Collapse
 
sahan profile image
Sahan

Absolutely! Pretty much every Jnr dev Iā€™ve talked to are doing that. Itā€™s good to have breadth, but taking on too much without actually learning one thing properly will be detrimental in their careers.

Collapse
 
ebonydomingue13 profile image
Ebony Dominguez

Wow, it is really helpful information. Thanks

Collapse
 
sahan profile image
Sahan

Thanks a lot!