As a developer, I usually spend a lot of my time in front of the computer.
I wish I could add ‘coding’ to the end of the previous sentence but, realistically, I spend a large chunk of my time planning and reviewing work. I still spend a lot of time coding, don’t get me wrong, but that’s likely to change in the future.
As the perfect work/life balance becomes harder to strike, it’s extremely important to optimize our productivity. There are several ways we can best optimize our coding time without sacrificing great results. One of the most important things to focus on is improving our Integrated Development Environment (IDE) setup.
The good, the bad and the ugly!
In an ideal world, IDEs are designed to provide a comfortable environment to code in and come equipped with features that aim to make our lives easier. Simultaneous multi-line editing in Sublime Text, live TeX-generated documents in LaTeXian and the refactor option in Android Studio are just some examples of features that will save you lots of time.
In the real world, however, it’s easy to find yourself with a badly set up IDE that can quickly turn your working life into a nightmare! If you’ve ever tried to sync an Android project with the wrong Gradle version, you’ll know what I’m talking about!
By swatting up on the best features that IDEs have to offer, you’re going to cut yourself some slack and prevent a whole world of stress. To quote one of my former teammates, ‘Know your damn IDE!’. The wisest words I have ever heard. Thanks, Andy!
In this first post, I’m going to talk about why it’s so important to be aware of both the strengths and limitations of your chosen IDEs.
Knowledge vs usage
You’ve chosen an IDE. You’ve set it up. The next question is usually, “Should I use every feature provided by my IDE?”. The answer? Of course not! But it doesn’t hurt to know that a feature exists even if you just use it sporadically.
For instance, I may have used the simultaneous multi-line editing feature in Sublime Text less than five times in two years (and I usually can’t remember which shortcut activates it) but I do know that it exists. With that knowledge, a quick and precise search in my web browser solves an arising issue, of adding the same initial keyword to 200 consecutive lines of code, in less than two minutes.
It’s also equally important to know your IDE’s limitations. IDEs are powerful tools but they’re not perfect. Trying to use your IDE, or one of its features, in ways that they’re not intended for will most likely result in frustration and will end up being a huge waste of your time.
For example, Xcode has a ‘refactor’ feature which, despite being useful, is still far less helpful than the Android Studio equivalent. One of the biggest limitations of this feature is that it only works in the selected target app. If the variable or function that you wish to rename is shared across different target apps, this feature is rendered useless. As a consequence, I usually end up taking a far more traditional approach to this issue by using global ‘search and replace’ on regular expressions.
The point I’m making, however, is that I am aware of this limitation and therefore don’t waste my time trying to make it work; I simply solve the problem using a different approach.
As obvious and silly as it may sound, you can’t use a feature if you don’t know it exists and you also can’t use an IDE (or a built-in feature) in a way that it’s not intended for.
Sometimes the lessons we need to learn are the most obvious. Sometimes the only thing you need to do is know your damn IDE!
This is the first blog post in a series in which I’ll share my experiences with some of the most popular IDEs (such as Xcode, Sublime Text and, maybe, Android Studio).
I’ll be looking at the ways we can best utilize IDEs in order to optimize our productivity and, in turn, stay motivated. Follow us on Twitter, LinkedIn or Medium to be notified of our future posts.
I’d love to know what IDEs you usually use and why. Tweet us at @WeAreMobile1st and we’ll be sure to retweet your responses.