Here are things I would’ve found valuable when first starting out:

1. Version control (git) - beyond the basics

As a Computer Student I learned and used git as part of my individual projects and group projects. But, that git knowledge was minimal. It consisted of how to check in code, commit, push to remote, resolve conflicts, create a branch, merge a branch.

Working on longer term projects with a larger team required a different set of knowledge like:

  • Rebasing: Moving a set of commit on top of a new or different base. Rebasing in interactive mode allows for squashing, removing , editing , and changing commit ordering .
  • Squashing: Squashing a set of commits to one commit
  • Reverting a merge: Undoing a previous merge or commit
  • Cherry Picking: Applying a specific commit (from any branch) to a branch.
  • Amending commits: Update the last commit with new changes or alter the commit message
  • Clean and useful commits: The most important when working on any project that will see the light of day.

I gained a lot of confidence and stopped worrying about messing up my commits or git history since I learned how to fix it. Writing good commit messages also gave me confidence around checking in complex code. The commit message includes the reasoning behind the complex commit that is valuable. Especially after 3+ months, where I won’t remember the details as well.

2. Mastering your Development Environment

I wish I spent time to understand what my code editor could do for me beyond syntax highlighting. I was doing everything in hard mode that wasted a lot of valuable time. Most editors have a lot of features that save effort and time (linting, formatting, testing, etc..). It didn’t help that I wasn’t exposed to other people’s code environments until my first job.

This applies to more than code editors. Terminal, command line environment, session management, SSH, Tmux, and lots more. I recommend going over “MIT’s Missing Semester” which goes over topics that are not taught in a traditional CS curriculum.

The initial investment to learn your tools or optimize your environment might seem a lot. But, the return is more than worth it since it will save you countless hours and headaches down the line.

3. Managing your Career

When I first started my job, I was consumed by my project that I found interesting and was learning a lot from. I neglected managing my career and my relationship with my manager. I wish someone told me about:

I hope you find these as helpful as my past self would have. I might expand on these topics in future blog posts.