DEV Community

Cover image for Top 8 Things I Learned as a Software Engineer (Developer)...
Ankur Tyagi
Ankur Tyagi

Posted on • Originally published at theankurtyagi.com

Top 8 Things I Learned as a Software Engineer (Developer)...

Top 8 Things I Learned as a Software Engineer (Developer)...

A Thread... pic.twitter.com/P4AMGlzYA9

— Ankur💻🎧💪 (@TheAnkurTyagi) May 23, 2021

Top 8 Things I Learned as a Software Engineer (Developer)...

1- I trusted my code.

We all make mistakes...

It's part of the learning process.
But making mistakes doesn't have to be a bad thing as long as you learn from them.

I remember my first week as a Software Engineer,
I thought,

I deserve this job and “Development is easy".

I was energized, ready to make my mark on the field I spent the last four years studying.

And then I made my 1st mistake:
I forgot to test my code before merging it to master.

I had broken everyone’s development environment.

I never forgot to test my code from that day forward.

Today, I don't trust code until it passed:

  • Unit test,
  • Integration & system test,
  • Checks of performance
  • Static code analysis,
  • Measure code coverage of test,
  • Load & stress tests and
  • Peer review.

2- Improve yourself as a teammate.

We were building a web application. I was working with two other engineers on development, and one Quality Engineer on the testing side.

But wait a sec...

Team morale was low.

More importantly, I knew a few of my teammates wouldn’t be excited at the prospect of working with me again in the future.

I started to realize how much my attitude toward the work environment had adversely affected myself and the people around me.

Performance isn’t everything.

Core lesson:

Your relationships with your coworkers (interpersonal/leadership skills) and your technical (hard skills) are equally important to grow as a software engineer.

To be a great software engineer, you need to hone your craft over the course of many years.

3- Basics of Project Management

Even you don't like to work as a project manager.

Your work most of the time in teams and at least have to organize your own tasks.

A good example is story estimation in Agile...

My personal experience says, that if you ask a software engineer about the effort of a task you get in 80% of the cases a dramatic underestimation of the effort.

A software engineer tends to estimate just the good case without unexpected issue

This causes delays & poor quality.

4- Manage your career aggressively.

Take responsibility for your own education and progress.

Find a mentor who will clear paths and pull strings.

So look out for yourself.

Don’t ask for more work unless you trust that person to give you better work than you’d get otherwise.

5- Understand infrastructure

I spend my first couple of initial years in IT without thinking more than a minute about infrastructure.

I thought, It was not necessary.
At the moment I am working for a bank.
In a bank, you have a lot of these infrastructure people.

They are really different from software engineers.

But, I don't like to discuss here the differences and possibilities to get along with them.

Important is their language.
Some terms are completely different uses as developers do.

6- Be Open-minded

Good software developers should be open-minded.

Ready to change their opinion upon discussing with teammates or uncovering new information.

No one is omniscient, and anyone on the team can suggest ideas.

Everyone welcomes and discusses all ideas.

7- Be Creative

Nothing is impossible.

Great software developers should be able to think out of the box and be innovative.

However, they should also know when to apply some answers to technical problems and avoid reinventing the wheel.

8- Don't assume about communication...

I had numerous miscommunications with my manager as we would both walk away from a meeting with different ideas of what the next step was, and this led to frustration.

We were communicating differently.

All communication should be explicit, spelling out exactly who is responsible for which task, and backed-up in writing which is then distributed to the team through Slack or email.

Learn more about communication and building solid professional relationships.

If you enjoyed this, I encourage you to checkout my book:

book.png

It contains:

• Understanding Fast Feedback Loop

• Learn Deliberate Practice: The 10,000 Hour Rule

• There are no silver bullets

• Why the Basics of Programming Are Important

• Staying Motivated

• Is Computer Science Fundamentals Necessary

• Time management

• Day One of a New Career or Career Change

• Picking a programming language

• Job Search

• Strong connections (Networking)

• Physical books are real friends

• Starting a Blog

• SMART Goals

• Social media (Your digital journey matters)

Check it out ---> ThePrimeGuide

Top comments (2)

Collapse
 
ilovejam profile image
Osman Melih Tolunay

I agree with you with all steps but i can not improve my self as a team mate also I can't find a team mate... What do you recommend?

Collapse
 
tyaga001 profile image
Ankur Tyagi

Use the 30-30-30 Rule for Personal Development to Improve Yourself as a Teammate.

Everyone has a portion of their day that they must commit to as their WORK.

But winning teammates understand that it is what you do before and after work that will eventually open doors of opportunity to change the work you do and significantly increase the impact you can have.

  • Invest 30% of your time with a MENTOR
  • Invest 30% of your time as a MENTOR
  • Invest 30% of your time as a CONNECTOR.

And YES – This is only 90% OF YOUR DEVELOPMENT TIME.

THE OTHER 10% of your personal development time away from work should be invested in time alone with YOURSELF.