Good developers know how things work, Great developers know why things work.