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.
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.
Pingback: 8 Good Communication Habits for Early Career Software Engineers | Sheldon's Software
Pingback: Five Myths About Software Engineers that Hollywood Gets Wrong | Sheldon's Software
Pingback: Three Things You Must Do When Mentoring Software Engineers | Sheldon's Software
Pingback: 100 Things I’ve Learned as a Software Engineer at Google | Sheldon's Software