Advice to New Graduates in Software Engineering
Update 2023-03-25: Added more points and new section on documents.
Onboarding
- Introduce yourself to your teammates in 30 minute 1:1 meetings. Go through your team’s software systems with another engineer.
- Create (or update) your team’s onboarding guide as you are onboarding. In 6 months, you will struggle to remember how it was to be new.
This Isn’t Kansas School Anymore
- Ask for help after 30 minutes to 1 hour of fruitless searching. You don’t get extra points for completing tasks solo.
- You will have to nag people to get responses.
- Use messaging for quick conversations but switch to a voice call if there is substantial back and forth.
Ramping Up
- Find a mentor. A mentor is anyone you speak with regularly and offers advice.
- Learn your team’s code base by reading through it1. Given a feature request, you should instinctively know what code changes need to be made.
- Navigate other team’s code bases (if you have permission) for examples.
Getting More Done
- Success requires failure. Your skill will only grow if you are constantly using and stretching them.
- Improving developer experience is always worth the effort. Having good test suites, documentation, and even IDE plugins will save future time spend developing future code and fixing operational issues.
- Aim to complete familiar tasks in less time. Completing simple tasks fast opens time for complex tasks.
- Learn your IDE. Advanced IDEs like IntelliJ contain tools that can save you hours of work2.
Documents
- The key to writing good documents is getting them reviewed by others before they are presented.
- Documents should be written for a broad audience. Future readers (maybe even you) might not know the history surrounding the document.
- Take advantage of READMEs. They are easier to find than other documentation.
Promotion
- Each company has its own promotion process. Understand it.
- Document your work in a brag document as you complete it. It will be too hard to remember the details of a project months later. Any new learnings should be documented and shared with the team.
- Your job is not to complete assigned tasks but to improve the overall performance of your team. If you see opportunity to improve some system or process your team owns, pursue it.
If you found this useful, please cite this as:
Pu, George (Jul 2022). Advice to New Graduates in Software Engineering. https://georgerpu.github.io.
or as a BibTeX entry:
@article{pu2022advice-to-new-graduates-in-software-engineering,
title = {Advice to New Graduates in Software Engineering},
author = {Pu, George},
year = {2022},
month = {Jul},
url = {https://georgerpu.github.io/blog/2022/advice-to-new-grads/}
}
Enjoy Reading This Article?
Here are some more articles you might like to read next: