Seven things I wish I knew my first year as a real world software engineer

I’ve been working in the industry for five years now. I’ve written about internships and promotion, but what about the first year on the job? What do I wish I knew in my first year after college?

Standard disclaimer: don’t take my advice.

1. Your job is to solve problems, not “write as much code as possible”

It took me four years to understand this.

At first, I believed that the best thing I could do was to spend time programming. Config files are boring! I want to write a clever algorithm! Documents are a waste of time! But if I could use a config file, API, or document that causes 100 other engineers to do a little work, I have accomplished my goal without personally overexerting myself. Sometimes, in a complex ecosystem, it’s the only way.

2. Take extreme ownership of problems

Most people see a problem and wait for someone else to fix it. When you take extreme ownership of a problem, you figure out how to solve it. Don’t wait for standup to raise a concern.  

Which brings me to my next point…

3. Raise concerns early

Don’t be afraid to highlight problems. If you find a roadblock, talk to another engineer or your manager. Your manager definitely wants to know about problems so they can help fix them.  They might be unhappy about the bug, but they’ll be happy that you found it earlier rather than later.

4. Ask questions

First, search the documentation.  If you can’t find an answer, ask for help. If you think you’re being annoying, talk to different engineers instead of the same person every time.  Until someone says “you ask a lot of questions” or they look annoyed, keep asking questions.

5. Collaborate

Unlike competitive programming and many university classes, you’re encouraged to collaborate in the real world. One of the secrets of software engineering is copying and pasting from StackOverflow–AKA worldwide collaboration.

6. Communication is a superpower

There’s a reason engineers are stereotyped as being dorky, shy, and unable to talk to VIPs.  But you don’t have to live up to the stereotype.  Communication in all its forms–talking, emails, design docs, presentations…  They’re all useful ways to supercharge your learning and influence. 

7. Optimize your finances

No one is going to manage your finances for you. Spend some time learning about personal finance from reputable sources like The Bogleheads’ Guide to Investing and I Will Teach You To Be Rich (ok, that title sounds fake, but the info is genuinely good). A few hours and $10 spent putting your finances in order will be one of the best ROIs you’ll get in your entire life.

I could write a whole other article about personal finance and why it’s important. In short, max out your retirement account each year. In the US, this is your 401(k). Your future self will thank you when you wake up one day and realize you’re a multimillionaire.

This entry was posted in Software and tagged , , , , . Bookmark the permalink.

4 Responses to Seven things I wish I knew my first year as a real world software engineer

  1. Pingback: 8 Good Communication Habits for Early Career Software Engineers | Sheldon's Software

  2. Pingback: Five Myths About Software Engineers that Hollywood Gets Wrong | Sheldon's Software

  3. Pingback: Three Things You Must Do When Mentoring Software Engineers | Sheldon's Software

  4. Pingback: 100 Things I’ve Learned as a Software Engineer at Google | Sheldon's Software

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s