The following are a couple of rules paragraphs from a book I just read : A well constructed, grammatically correct sentence is a mark of clear thinking. : Bad grammar and sentence construction is also an indication of sloppy thinking. Gee, sounds like exactly what a book WRITER would say. I think that it's pretty much complete bullshit. Perhaps the author has never met someone who can't write. (or any programmers who don't speak english as their native language.) The first step of writing any program, then, is to write out what the program does and how it does it. The first step is to UNDERSTAND what the program does and how. If you don't UNDERSTAND it, you can't write it in either english OR code. Note that actually DOING the writing in either code OR english is sometimes a necessary step toward gaining that understanding. I would say that a VERY large percentage of software bugs are due to a fundamental lack of understanding, rather than mere errors. (I suppose it's a true "hacker's high" to write code for a problem you don't understand and have it work (or appear to work) anyway. I've done it. Frequently there is no choice.) Just take the implementation description in the document you just wrote and add blocks of code after each paragraph implementing the functionality described in the paragraph. The excuse ' I didn't have time to add in the comments' is really saying ' I didn't design the code before I wrote it and don't have time to reverse engineer it. Writing code AFTER you've written the comments is swell, as long as you can translate perfectly. Otherwise, it's no better (and not really any different) than writing the comments AFTER you write the code. And it doesn't address the case (common in assembly language) where the code is more mysterious than its function. BillW