Oscar the owl and Vershd logo

Learn by Heart

9th June 2020

This is a part 6 of a series: Best Software Development Practices

Over the last few weeks we’ve been exploring the different ways you can advance your software development skills. They’ve ranged from keeping motivated, and having the right mindset, to working well with others and practising good workflows.

But to really advance your abilities and increase your skills, you’ve got to do just that – build your expertise.

It starts with the tips we shared in part 1, where you get to know more code by reading, watching and listening. But now you’re going to need to go much more in depth.

You’re going to want to learn by heart to really build expertise in your niche or specialism.

1. Know your tools inside out

The first step that any experienced developer will tell you if you want to advance your skills is to know your tools cold. Inside out. Back to front. Top to bottom.

Learning just enough to get by and topping up where needed is no longer enough. Experts know their discipline off by heart.

They learn all the features of any tool they use. They know exactly what the menus contain, and exactly what any item in a context menu does. And they’ve memorised keyboard shortcuts for everything.

A great place to start is by searching for and reading every hints, tips and tricks article you can find relating to your chosen tool.

2. Go deep into the architecture of your favourite stacks

Don’t scratch the surface, dig into every part. And then dig again and again until knowing what you can do with them becomes second nature.

You should be going as deep as possible into the architecture to realise exactly what’s possible.

It may be that you’ll learn things that are of no immediate use. You may only need top level functionality of your favourite stack – for now. But if you commit everything you learn to heart, you’ll have an expert level of knowledge for the future.

And when the problem presents itself, you’ll know that Ruby has a method you can use to solve it. Or when a new feature is requested, you’ll remember that there’s some architecture within Node that could be just what’s needed.

3. Explore as many libraries as you can

The same goes for language and programming paradigms. Explore your chosen ones inside out.

Take the time to learn the most important, most relevant libraries for the language(s) you work in. Which are going to be most effective for your day to day coding, for your use cases?

Find them and learn them. Don’t worry at first if you don’t understand part of them. You can come back. The key thing here is looking under the hood to see what’s going on – and what can be accomplished.

Because if you’re aware of a relevant library, you won’t need to reinvent the wheel when a problem presents itself.

4. Don’t rely on design patterns or other shortcuts

While it’s easy to look at stacks, libraries and tools and learn them inside out, it’s equally easy to fall into the trap of thinking that because a shortcut exists, or because there’s code already written, that those are the best ways of doing things.

That’s not always the case.

Just because they exist doesn’t mean they perfectly do the job you need them to do. There might be three or four more efficient options.

Design patterns are superb when used correctly. But they don’t fit every task. Don’t try and use them just because they exist. You should have a clear, solid reason for wanted to deploy one. They’re not a hammer, and not everything is a nail.

Remember, code can always be improved. Rules that were once applicable can potentially be broken.

So, don’t be afraid to reinvent if you need to. Just have a go.

Software like Vershd can help you minimise any errors when deploying new code, if you want to experiment.

We’ll look at that experimentation and testing in the final part of our series on how to use the best software development practices.

Pushing to the Horizon

Do you want to use Git far more easily, with no commands or parameters to remember, and with a clear overview of your repository, plus the ability to preview changes? Then make your life easier, get a free download of Vershd, the effortless Git GUI.
Designed from the ground up to prevent errors, accidental deletions, and having to write all of this morning's code. Again.

Features include:
  • Rewind is simpler and easier than using Revert or Reset. It winds the clock back on commits, letting you choose whether to keep pending files or not.
  • Advanced Context Menus. Right clicking on a commit lets you merge, cherry pick, or create a branch there and then. Files have many ways to compare them to either historic or working files on your desktop.
  • See everyone's work in the clearest way possible. Branches shows branches and their commits, where you can easily pull, push, cherry pick and more. Pending shows what you can commit or stash. Files shows commits' details. Stashes helps you apply, view and delete your stashes.
Oscar the owl and Vershd logo
 © 2020 Blightysoft
Made in England
St. George's flag of EnglandThe Union Jack, the flag of the United KingdomThe European Union flagThe United Nations flag
chevron-right linkedin facebook pinterest youtube rss twitter instagram facebook-blank rss-blank linkedin-blank pinterest youtube twitter instagram