See ProgrammingAsArt (view point) or TheArtOfComputerProgramming (book)