😎
Published on

My Learnings as a Novice Software Engineer

Authors

Code is Difficult

When you start your first job, the chances are you will be thrown into an existing codebase where you will be assigned some tasks, which can be intimidating due to multiple libraries/packages and unfamilier syntax used in the codebase.

It can be difficult for you to get your head around the codebase because the code was written over time by experienced individuals who have a greater understanding.

It's normal to face difficulties in the beginning. Just keep in mind that this is a part of the learning process. Stay focused, and continuously strive to expand your knowledge and skills.

Need to Learn Basis

When there are multiple things, you should learn things on need to learn basis rahter than overwheling yourself with the pressure that you don't know anything.

Start with the flow you are working on and starting learning things top down, one by one while understanding the code.

Pay Attention to the Detail

Be it a git commit message or a semicolon at the end of a javascript statement, pay attention to every detail when you work in a codebase. The code you add should align with the existing coding style and formatting.

When you write code, it's critical to understand every line of it because you may have copied it from somewhere, from outside, or inside the code, and it's a great opportunity for you to understand the API or syntax in detail tweaking/playing with it rather than assuming things.

Create a Plan then Execute

It's essential to have a clear understanding of the steps involved in a task before starting. Otherwise, you may end up going in a different direction than intended. I experienced this when I was writing a script to gather consolidated data from multiple relational database tables. I initially thought of writing a generic script, but when I ran it, I discovered that there were some cyclic dependencies in the tables I needed to extract data from, and handing these in the generic script will make the script difficult to understand/maintain. Had I taken the time to thoroughly review the tables beforehand, I would have noticed the cyclic dependencies caused by foreign keys and avoided going in a different direction.

Test Test Test

Don't forget to sanity test your code and test for edge cases. Building trust with your team is crucial and a great way to do that is by consistently delivering thoroughly tested code.

Create Your Value

As a memeber of a team you should thing about what you can bring on the table that other can't or aren't bringing.

Don't Get Attached to Technology

If you are working on Django or NodeJs don't call yourself a Django Developer or a NodeJs Developer, Just be a problem solver, an Engineer who solves problem. This way you will be able to focus more on how to solve a problem and wouldn't care much about the technology used to do so.

Don't you put yourself in a bucket, Keep exploring, you will find good, bad and uglies and it will be fun.

People Around You Matter

Cut away from negative people, try to find someone who is as passionate as you and spend time with them discussing things you want to understand/learn.

Write the Feeback

Whenever you get any feeback, its a good idea to write it down somewhere so that you can keep track of your grownth later on when you look at it.

Become a Good Developer By 

Writing a lot of code, build something on you own, it could be a side project this will give you some confidence. There is no alternative to writing code, the more you write the better you get.

Story: Being calm and composed

TODO