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

Ankur Tyagi - May 23 '21 - - Dev Community

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

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .