Occasionally, programming forums take a step back from the nitty gritty implementation details and look at the bigger issues. I wish they did more often, as “occasionally” means pretty much close to never. Most discussions in technical forums rarely go past what you can find in the manual, while the big things that can make or break a project (or a programmer) goes unmentioned.
So Elisheva‘s discussion “Swallowing and Elephant in 10 easy steps” on how you go about to understand large, new systems was a very interesting diversion at Perl Monks. There’s only a few quality thoughts past the original posters musing, sadly, but it is nice to see someone touching this subject in a serious way. Another thought on the subject is written by Chet Hendrickson who offers the suggestion of refactoring and testing for understanding.
Most programmers nowadays are more likely to maintain and extend existing systems than they are to design and develop new ones – at least in a professional manner. Still most programmers focus on how to write code, not read code. And most programmers write code aimed at the compiler or interpreter (which will understand anything that parses), and not the next programmer (who must read in a non-native language and is usually unable to keep track of more than seven variables at the time). Perhaps it is time for an interpreter for converting code from programming languages to native human language?