DEV Community

Cover image for Advice to Junior Software Engineers - from a Junior Engineer
Taslan Graham
Taslan Graham

Posted on • Updated on • Originally published at taslangraham.com

Advice to Junior Software Engineers - from a Junior Engineer

As a Junior Engineer you're at the baby stages of your career - learning a lot, and full of passion. Recognizing that this is a time for growth you may ask yourself "what are the things that I can do during this important time in my career to help me along my journey?".

Here are eight (8) pieces of advice to Junior Engineers from me, a fellow Junior Engineer. The following has played a huge role in my journey thus far.

This list is a non-exhaustive, many more things can and should be done (for example, focusing on developing technical skills, learning different techniques and best practices. So, without further ado lets dive in.

1. Take notes from senior Engineers

There's a lot you can learn from experienced Engineers if you observe them or ask questions. Things like how to deal with clients and project managers, tips on how to improve as an Engineer, advice on how to progress forward in your career, problem solving, insight into different technologies and so much more.

Most seniors are happy to share what they know with you. You can also follow senior Engineers on social media as well. One Engineer who I follow on YouTube is Hussein Nasser, he discusses a wide range of engineering topics.

2. You Don't Need To Know Everything

There's a lot out there to learn in the world of technology. Some persons may feel doubtful of their skills, unready or inadequate if they don't know a particular thing or can't answer a particular question about something.

The truth is, you don't need to know everything. You simply need to know the things that are relevant to what you're doing.

Something to keep in mind is that you can learn just about anything tech related through proper research and usage of free resources like YouTube.

3. There's No Such Thing As Perfect Code

I used to spend a considerable amount of time overthinking and trying to perfect my code. Ironically this lead to code that was prematurely "optimized", over complicated and difficult to read, understand and debug.

Trying to write perfect code will slow you down. It's best to write working code in its simplest form then refactor to improve readability and performance.

4. Learn How To Read Code

I read something somewhere that said something along the lines of "you'll read more code than you write". This is quite true. You'll spend a considerable amount of time reading existing code ( written by yourself or others).

Adding a new feature to an application? You'll first need to read the existing code to understand what's going on.
Refactoring code? You'll need to read it first.

Searching for help online? You'll need to read and understand the code snippets given to avoid just copying and pasting.

Even when you're using a framework, you'll need to be able to read through the coding samples given in their documentation.

Seeing that you will spend a lot of time reading code, it makes sense to improve on this skill. Reading code written by others will help you to see the thought process of other engineers.

You can read open source code (at the time of writing, I don't read a lot of open source code but, I intend to change that) or code written by project team members. Reviewing PRs (pull requests) are also a great way to learn to read code.

5. Work On Your Soft Skills

It's well known that technical competence is needed to have a great career as an Engineer but, at the end of the day we are still social beings and we will work with others .

Even with work from home being the status quo, your people skills are still on display in the gazillion weekly meetings that you have.

How you interact with others(clients, teammates etc.) can open doors for you even in the early stages of your career.
You don't need to be chatty or extremely out going either. You simply need to develop certain soft-skills.

6. Learn The Tools You Are Using

An efficient craftsman knows his tools inside out - their capabilities, limitations and use cases. As an engineer you have to learn the tools you use on a regular basis. This includes your IDE, source control, project management tool and any other tool you use on a daily basis to carry out your work.

Learning and mastering these tools will make you much more efficient and can save time. For example, learning the shortcuts within your IDE will allow you to navigate your code and work faster.

This is a continuous process for me as I'm always coming across things I did not know about the tools I'm using.

7. Take Opportunities To Lead

A great way to get noticed within your organization and to be viewed as more than just another developer is to make the most of opportunities to lead.

This does not necessarily mean leading projects (in most cases, more experienced engineers lead the projects). Leadership can mean taking opportunities to lead project demos, review sessions, providing help to others, volunteering to be a part of discussions surrounding the project or product, contribute to in-house projects/groups, and doing your absolute best with everything you're tasked with.

These things shows that you take initiatives and that you care about what you are doing.

8. Keep Learning

Continuous learning is key in the world of Software Engineering. What's new today might become obsolete tomorrow, and at times we may be working on legacy systems using legacy technologies.

Therefore, we need to set aside some time to learn things we are interested in, and to level up on our skills (both technical and non technical). This can be done through reading, taking online courses and watching tutorials. This personal investment will payoff in the future. Also, find a way to share what you learn!

There you have it, eight (8) tips for Junior Software Engineers - from a fellow Junior Engineer.

I hope you found these tips helpful. Let me know you're favorite one as well any additional advice in the comment section. Until next time, think, learn, create, repeat!

Top comments (2)

Collapse
 
matthewdailey profile image
Matt Dailey

Great list! On the point about "opportunities to lead," one thing I've found to work is to find smaller pieces of larger projects that you can lead. If your team is implementing a new UI feature, then as a junior developer, you could lead design of the UI structure, or how the UI interacts with the API. If those opportunities are hard to find, I've also seen junior engineers pair with the senior engineer during either the design phase or the implementation to get some experience so they can lead the next time.

Collapse
 
taslangraham profile image
Taslan Graham

You're absolutely right about these things.

I recently asked to be involved in the design phase of a project so I could get insights and experience into what's it's like