Path: utzoo!utgpu!water!watmath!clyde!bellcore!faline!thumper!ulysses!andante!mit-eddie!bloom-beacon!think!ames!pasteur!agate!eos!labrea!decwrl!decvax!eagle_snax!gmcgary From: gmcgary@eagle_snax.UUCP Newsgroups: comp.software-eng Subject: Re: Basics of Program Design Message-ID: <315@eagle_snax.UUCP> Date: 30 Jun 88 23:56:15 GMT References: <900@td2cad.intel.com> Reply-To: gmcgary@eagle_snax.UUCP (Greg McGary - Sun ECD Software) Distribution: na Organization: Sun Microsystems - East Coast Division Lines: 38 Pick up a copy of _Programmers_At_Work_(1st_Series)_ by Susan Lammers published by Microsoft Press. This is a collection of interviews with famous and not-so-famous programmers such as Dan Bricklin, Gary Kildall, Bill Gates, etc... The person whose work habits I most identified with was Gary Kildall. I don't know if he produces good software, since I've never seen his work, I only know that his statements in the interview echo my own feelings about the programming process. In the early phases of a project, I tend to think about the problem a lot at odd moments such as while commuting, or showering. I also haunt the research libraries of my local major university starting the Computer and Control Abstracts and then tracking references once I find some good papers initially. If I get stuck on something, I just let go of it and concentrate on something else. I trust my sub-conscious to figure things out. I spent a number of my formative years reading program-design books, particularly Glenford Myers's _Composite/Structured_Design_ which I still re-read every couple of years. Although this book presents a design methodology using boxes and arrows and stuff like that, I rarely use it except when I get stuck. By now, I know these design principles intimately, so I can tell as I am coding whether or not I am creating modules that have the desirable design properties (low coupling, high strength/cohesion) I seldom bother with pseudo-code. I find that legal C-code with long, descriptive identifier & function names with occasional comments express algorithms as readably and straightforwardly as pseudo-code. I could go on and on, but this should give you a feeling of what works for me... -- -- Greg McGary -- gmcgary@sun.com -- {ucbvax,seismo,ihnp4,cbosgd}!sun!gmcgary -- {decvax,ima,alliant,phoenix}!eagle_snax!gmcgary