Advice to Junior Software Engineers - from a Junior Engineer
Tags: devjournal
Published: 2021-02-03 15:13:54

<!-- wp:paragraph -->
<p>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?".</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>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.<br><br>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.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>1. Take notes from senior Engineers</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1238,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-rfstudio-3059747.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-rfstudio-3059747.jpg?w=1024" alt="" class="wp-image-1238"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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.<br><br>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 <a rel="noreferrer noopener" href="https://www.youtube.com/c/HusseinNasser-software-engineering/about" target="_blank">Hussein Nasser</a>, he discusses a wide range of engineering topics.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>2. You Don't Need To Know Everything</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1240,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-pixabay-356079.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-pixabay-356079.jpg?w=1024" alt="" class="wp-image-1240"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>There's a lot out there to learn in the world of technology. Some persons may feel <a rel="noreferrer noopener" href="https://taslangraham.com/2020/05/17/keep-at-it/" target="_blank">doubtful</a> of their skills, unready or inadequate if they don't know a particular thing or can't answer a particular question about something. <br><br>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. <br><br>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. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>3. There's No Such Thing As Perfect Code</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1246,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/work-731198_1920.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/work-731198_1920.jpg?w=1024" alt="" class="wp-image-1246"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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.<br><br>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. </p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>4. Learn How To Read Code</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1248,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-photo-3768894.jpeg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-photo-3768894.jpeg?w=1024" alt="" class="wp-image-1248"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>I read something somewhere that said something along the lines of <em><strong>"you'll read more code than you write"</strong></em>. This is quite true. You'll spend a considerable amount of time reading existing code ( written by yourself or others).<br><br>Adding a new feature to an application? You'll first need to read the existing code to understand what's going on.<br>Refactoring code? You'll need to read it first. <br><br>Searching for help online? You'll need to read and understand the code snippets given to avoid just copying and pasting.<br><br>Even when you're using a framework, you'll need to be able to read through the coding samples given in their documentation.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>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.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>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.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>5. Work On Your Soft Skills</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1249,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-fauxels-3184291.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-fauxels-3184291.jpg?w=1024" alt="" class="wp-image-1249"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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 .</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>Even with work from home being the status quo, your people skills are still on display in the gazillion weekly meetings that you have.<br><br>How you interact with others(clients, teammates etc.) can open doors for you even in the early stages of your career.<br>You don't need to be chatty or extremely out going either. You simply need to develop <a rel="noreferrer noopener" href="https://taslangraham.com/2019/12/14/5-soft-skills-every-developer-should-have/" target="_blank">certain soft-skills</a>.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>6. Learn The Tools You Are Using</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1251,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/tools-864983_1920.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/tools-864983_1920.jpg?w=1024" alt="" class="wp-image-1251"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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.<br><br>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.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>This is a continuous process for me as I'm always coming across things I did not know about the tools I'm using.</p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>7. Take Opportunities To Lead</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1253,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-vlada-karpovich-6114991-1.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-vlada-karpovich-6114991-1.jpg?w=1024" alt="" class="wp-image-1253"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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. <br><br>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. <br><br>These things shows that you take initiatives and that you care about what you are doing.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p></p>
<!-- /wp:paragraph -->

<!-- wp:heading -->
<h2>8. Keep Learning</h2>
<!-- /wp:heading -->

<!-- wp:image {"id":1255,"sizeSlug":"large","linkDestination":"media"} -->
<figure class="wp-block-image size-large"><a href="https://taslangraham.files.wordpress.com/2021/01/pexels-burst-545062.jpg"><img src="https://taslangraham.files.wordpress.com/2021/01/pexels-burst-545062.jpg?w=1024" alt="" class="wp-image-1255"/></a></figure>
<!-- /wp:image -->

<!-- wp:paragraph -->
<p>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.<br><br>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!</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>There you have it, eight (8) tips for Junior Software Engineers - from a fellow Junior Engineer.</p>
<!-- /wp:paragraph -->

<!-- wp:paragraph -->
<p>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, <em><strong>think, learn, create, repeat!</strong></em></p>
<!-- /wp:paragraph -->