How to be efficient using a computer

How to be efficient using a computer

Introduction

During almost a decade of professional software development & engineering I have picked up a few tricks of the trade.  These little skills have helped to make my time with my machine be as efficient and productive as possible.  I have recently been travelling and programming on the road in public places where I have exposed myself to the observations of people from other walks of life.  I was shocked by the number of people who have come forward to admire my speed and skill with a computer, something of which I was not even aware.  As a result, I felt compelled to investigate what some of these people were doing differently to see if I could help them in some way... here are my top thoughts and findings:

1. Learn the basics

By basics, I mean use a mouse and a keyboard. That may sound ridiculous but it’s not. I see professionals typing with two fingers, or looking at their keyboard while they’re typing. I see people using menu commands when there’s much faster keyboard shortcuts to use. And when a mouse really is needed, I see people swiping on their laptop trackpad 4-5 times to reach the other side of the screen.

This needs to change to be more productive. So, below are my top tips to learn the basics.

1.1. Learn to type

When I was hired for the first time as an intern developer for the government, I couldn’t type without looking at my keyboard. I had learned to type properly years earlier, but I was slower doing it, so I didn’t want to use the proper technique. However, I felt that as a professional developer, I would look too amateur if I didn’t type the proper way, so I forced myself to do it. I forced myself to not look at the keyboard and not copy+pasting anything. My productivity went down at least 50% for a good week. But that’s it. One week “lost” to be more productive for the rest of life. I now type much faster than when I was looking at the keyboard. And I type faster everyday in fact.

I strongly recommend practicing typing things you enjoy typing. And things that are “coherent”. Learning through Typing Master is boring and will discourage you of doing it. It might be “better” for learning, but if you’re not motivated, it serves no purpose.

 

1.2. Learn to use your mouse/trackpad

Sounds simple enough, but I see people struggling with that and they don’t realise that they’re struggling. If it takes more than a simple swipe to reach the other side of the screen, you’re losing productivity. Put your mouse/trackpad sensitivity to the maximum! It takes getting used to, and you’ll go past items you want to click initially, but again, after one week, you’ll be a pro.

If you’re using a trackpad, learn the gestures. There’s really not that many, and they save you a lot of time. On the mac, I use “spaces” if I don’t have access to an external monitor. It’s easy: four-finger swipe. In browsers and other “history-based” software, two finger swipe will move forward/backward in the history. It’s much faster than going to the back button and click it. These are the two gestures I use the most, but there’s more.

 

1.3. Learn your keyboard shortcuts

This one is at least as important as the other two tips above. Do not use the menu commands or right-click commands if you can avoid it! That is extremely slow and one of the biggest cause of un-productivity. There’s some really useful shortcuts that work all across your operating system, and others that are specific to the software you’re using. Learn every shortcut from everywhere software you use. People did the work for you and posted cheatsheets for pretty much every useful software. Simply google it. As an example, I started using the Atom text editor a few weeks ago and one of the first things I did was learn all the shortcuts I would be using. I took me almost two hours to master them all and of course time was “wasted”, but in the short two-hour period, I was already better at using Atom than the average user.

Mac OS X shortcuts:

  • Cmd + s: Save file
  • Cmd + c: Copy
  • Cmd + v: Paste
  • Cmd + t: New tab
  • Cmd + n: New window
  • Cmd + w: Close tab
  • Cmd + spacebar: Spotlight -> Open all your apps that way
  • Cmd + tab: Switch to other opened app
  • Cmd + `: Switch to different opened window of current app.
  • Tab: Move to the next field
  • Shift + tab: Move to the previous field
  • Cmd + up/down: Go to top/bottom of current document (hold shift also to select all on the way)
  • Cmd + left/right: Go to beginning/end of current line (hold shift also to select all on the way)
  • Alt + left/right: Go to previous/next word (hold shift also to select the word)
  • Cmd + a: Select all
  • Cmd + ,: Open app preferences

Atom

  • Cmd + d: Select the next occurrence of the selected text
  • Ctrl + Cmd + up/down: Move current line up/down
  • Cmd + t: Open file dialog
  • Cmd + t + enter: Open previously opened file
  • Cmd + r: Jump to function definition
  • Cmd + /: Comment line/selected lines
  • Shift + Alt + up/down: Expand/shrink selection (needs expand-region package)
  • “cl” + tab: console.log(“”) -> needs javascript-snippets
  • “jp” + tab: JSON.parse(“”) -> needs javascript-snippets
  • “js” + tab: JSON.stringify(“”) -> needs javascript-snippets
  • “todo” + tab: // TODO: -> needs javascript-snippets
  • “fix” + tab: // FIXME: -> needs javascript-snippets

 

2. Setup your environment

Setting up your environment means finding the best software possible for your job, and adjusting its settings to make it more usable for you. A lot of times, the reason someone isn’t productive is because they’re not using the right software for the job. Or in development, they’re trying to reinvent something that exists already, for free.

2.1. Find the best possible software for the job

Outside the development world, people seem to overuse Excel. They just use it for everything. While it’s good and all, it’s likely that someone built a software more catered to your needs. The next time you find yourself using Excel, google if there’s a better way to do it.

In development, I use many different IDEs and text editors. The one I choose really depends on context. I use Atom (switched from Sublime Text 3) for general purpose coding. I use MonoDevelop when I need to debug my Unity Games. I use Jetbrains IDEs when I need more powerful language-specific features.

2.2. Adjust the settings

Out of the box, a software is not configured for personal needs. Take time to look at the settings (Cmd + , on Mac) and see if there are things in there that can make you more productive. In development, text editors and IDEs have extensions available for you to download to make you more productive. Take time to research them.

My personal favourite Atom extensions/packages:

 

2.3. Don’t re-invent if you don’t need to

On the first really big project I worked on, we used PHP to build a REST API for a massively multiplayer game. We wrote everything from scratch instead of using a well-established framework. That was dumb. We wasted so much time building something that was built already, and by way more qualified people. When using a framework, you can also use libraries written by other developers. I don’t know how much time I saved thanks to that.

 

3. Google everything

Seriously. I don’t know if that makes me a dumb person, but if I have any doubt on how to do something, I just google it. Again, don’t reinvent the wheel, someone did the research for you already. I often forget specifics of a programming language because I work in many languages, so I google it, even if it’s simple. It would be slower to recall from memory. I would probably be a bad programmer at a contest where I would not have access to internet, but who cares, in real-world scenarios, you do have internet, so use Google.

To view or add a comment, sign in

More articles by Danny Forest

Others also viewed

Explore content categories