Thursday, August 30, 2007

EDSK ... how to touch type

Every developer should know how to touch type.

Digital image content © 1997-2007 Hemera Technologies Inc., a wholly owned subsidiary of Jupiter Images Corporation. All Rights Reserved
Touch typing is typing without looking at the keys.

It's much faster than typing and looking at the keys for two main reasons.
1. You will spot mistakes sooner as you immediately see them when they occur.
2. You don't lose time finding your place on the screen as you do when your focus is constantly changing back and for the between the screen and keyboard.

The good news is, you can probably already do it, you just need to trust yourself. If you currently use all of you fingers

This will take practice. Don't worry if you make lots of mistakes early on, you will get there in the end and it will be worth it. Your typing will be much much faster. Plus correcting your mistakes without looking at the keyboard provides an extra sense of achievement.

This is not about telling you that you should be specifically forcing yourself to learn to use specific fingers for specific keys, but about doing it without looking. If you don't use a specific system, you will soon learn which keys arm naturally easier for you to press with each finger.

Touch typing is about learning not to think about the unimportant and unnecessary, so you can focus on what is more important. Focus on what is on screen, not how to get it there.

There is an argument from developers that touch typing only helps when typing large amounts of text and not when typing structured code. This isn't true. While touch typing traditionally focuses on alphabetic characters and not the numerous operators, brackets and other characters that are needed when writing code it can make typing anything faster. If you can push the button without having to look at the keyboard each time, you can type faster, regardless of what you are typing.

There are also other ways of typing faster, or even faster, such as using a keyboard layout designed for this purpose, like the Dvorak keyboard layout. There are also other layouts which allow for faster typing.

If you're not confident to try this by yourself and want extra help there are a number of tools and training aids to help.

Search for what works best for you. Here are some of the more popular aids available from Amazon:

Aids for learning touch typing (Associate link)

What do you think?

Is this something every developer should know? Have you say in the comments.
Know a developer who should read this?

Tuesday, August 28, 2007

sing a song

If you was hit by a truck

and you were lying out
in that gutter dying...

and you had time to sing
one song, huh, one song...

people would remember
before you're dirt...

one song that would let

God know what you felt about
your time here on earth...

one song that would sum you up...
you telling me that's the song you'd sing?

That same Jimmie Davis tune
we hear on the radio all day?

About your peace within
and how it's real

and how you're
gonna shout it?

Or would you sing
something different?

Something real,
something you felt?

Because I'm telling you
right now...

that's the kind of song
people want to hear.

That's the kind of song
that truly saves people.

from Walk the Line

Thursday, August 02, 2007

EDSK ... about UI developer guidelines

Every developer should know about UI developer guidelines.

Developing software that is easy to use is not always a simple task. One way to help create software that is easier for users to learn and use, is to follow conventions in the use, style, layout and positioning of form components.

Here are some guides for a number of different environments and platforms:
Windows Vista User Experience Guidelines
Microsoft Inductive User Interface Guidelines
How to Create the Best User Experience for Your Application
Java Look and Feel Design Guidelines
Apple's User Experience Guide
GNOME Human Interface Guidelines
UI and User Experience Guidelines for Nokia mobile phones
Smartphone User Interface Guidelines

Sometimes there are benefits to creating something that looks different, but it is very easy to create something that looks ugly and is confusing for users.

Creating something that looks and behaves like applications that users have used before:
  • Creates comfort and familiarity for the user.
  • Means that things will work the way the user expects.
  • Means that the application will be quicker and easier for the user to learn.