Tips for acing your first job as a developer

Six months into my job, there are some things I'm really pleased I did before starting, and a few I wish I'd known about that would've made life a lot easier. So I wanted to share some tips that might be useful to other newbie developers.

Learn Git

Git is awesome, but complicated. By the time you get your first job, you'll probably have at least used version control for personal projects, but the workflow you'll use when collaborating with other people will be different. There are even different workflows you could find depending on things like the type of company you're working for and the size of your team.

When you're starting out, it's possible to get by for a while by memorising a set of commands to achieve a certain thing, without any understanding of what's going on behind the scenes. But the problem with this is it's very hard to get yourself out of a tricky situation when something goes wrong. So it's worth digging a bit deeper to learn what's actually happening, as well to discover other commands you don't tend to need while working on your own.

Branching, stashing and rebasing, blowing away any unstaged changes, amending a commit (for example if you made a typo in the commit message), reverting a commit and squashing commits together are all useful things to know. I strongly recommend reading Pro Git. It explains this stuff (and a whole lot more) really well.

Get to know your editor

You'll spend a lot of time using your editor, and you really don't want to be pointing and clicking and dragging stuff around with your mouse once you're working professionally, as it will slow you down a lot. Assuming you've been learning with an editor which is forgiving about these things (e.g. Sublime or TextMate), it's worth breaking those habits and learning the keyboard shortcuts so you don't have to think about what you're doing.

I started out with Sublime Text 2 and found this course pretty good at the time, but there are similar things around for most popular editors, or lists of keybindings in the documentation.

Learn the developer tools

I use Chrome as my main browser for development, and was aware of the developer tools when I started learning, but only really used them for things like logging to the console or fiddling with CSS. Both of these are still very useful, but there's so much more you can do.

For example, you can explore the contents of any JavaScript file in the Sources tab, and set breakpoints directly in there. This is a much quicker way of checking out the code at a particular point than dropping debugger or console.log() statements. The Network tab will show you the status of all the HTTP requests the page is making, and how long it's taking to fetch all its resources. With Chrome's device mode, you can view your site as it would appear on different mobile devices, but also simulate network throttling to check how it will perform for users with different connection speeds.

There are a bunch of add-ons you can get for more targetted debugging of particular frameworks, too. Like if you're working with Rails there's RailsPanel, or Batarang for AngularJS. And tools like PageSpeed Insights can help you figure out exactly what's slowing down your page load time.

There are equivalents for the developer tools of other browsers too, so explore the relevant store and see what you find.

Make sure you're typing properly

Sounds obvious, I know, but learning to touch type made a massive difference to how fast I could work. I could type pretty fast before, but the patterns I had learned were focused on the keys you use for writing sentences, not code, so they didn't make reaching certain keys easy.

There are plenty of online courses if you don't touch type already. Most of them use repetitive drill exercises to train your muscle memory, so the learning process is really, really boring, but it does pay off eventually.