How to backup a Hard disk to an image file using dd command

There are many backup solution out there such as Clonezilla and Redo Backup. Those two backup are awesome. They were built using Linux that were modified for Backup and Restore purposes. But actually, there is a simpler way to backup a hard disk, partition or even CDROM using dd command. dd does not have GUI and its only use command line only. But, dd is simpler and faster compared to those two backup applications. 
Here I want to show you how to create a hard disk image using dd command. With this image, we can then copy or move it to off site for security if you want to. OK lets get started. Here is the idea:
I have a hard disk which is known as /dev/sda. I will create an image of my hard disk using dd command. Open Terminal and check the disk or partitions on your computer. Use fdisk -l command.
sudo fdisk -l
And the command will returned the disks and partitions you have
Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders, total 976773168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000a9ecd

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      206847      102400    7  HPFS/NTFS/exFAT
/dev/sda2          206848   204802047   102297600    7  HPFS/NTFS/exFAT
/dev/sda3       204802048   591883106   193540529+   7  HPFS/NTFS/exFAT
/dev/sda4       591884286   976771071   192443393    5  Extended
Partition 4 does not start on physical sector boundary.
/dev/sda5       965029888   976771071     5870592   82  Linux swap / Solaris
/dev/sda6       591884288   965029887   186572800   83  Linux
The bold item is my hard disk. Its /dev/sda. Now I want to make image of that disk to an image file name: backup.img and stored in my home directory
dd if=/dev/sda of=~/backup.img