In computing, hand coding means editing the underlying representation of a document or a computer program, when tools that allow working on a higher level representation also exist.
Typically this means editing the source code, or the textual representation of a document or program, instead of using a WYSIWYG editor that always displays an approximation of the final product.
It may mean translating the whole or parts of the source code into machine language manually instead of using a compiler or an automatic translator.
[1] Most commonly, it refers to directly writing HTML documents for the web (rather than in a specialized editor), or to writing a program or portion of a program in assembly language (more rarely raw machine code) rather than in a higher level language.
The reasons to use hand coding include the ability to: Hand coding may require more expertise and time than using automatic tools.