Click here to Skip to main content

The Weird and The Wonderful

   

The Weird and The Wonderful forum is a place to post Coding Horrors, Worst Practices, and the occasional flash of brilliance.

We all come across code that simply boggles the mind. Lazy kludges, embarrasing mistakes, horrid workarounds and developers just not quite getting it. And then somedays we come across - or write - the truly sublime.

Post your Best, your worst, and your most interesting. But please - no programming questions . This forum is purely for amusement and discussions on code snippets. All actual programming questions will be removed.

 
GeneralRe: Would you like to buy an IsNull ? PinmemberPIEBALDconsult5-Dec-12 9:31 
GeneralRe: Would you like to buy an IsNull ? PinprotectorAspDotNetDev5-Dec-12 10:07 
GeneralRe: Would you like to buy an IsNull ? PinmemberPIEBALDconsult5-Dec-12 12:10 
GeneralRe: Would you like to buy an IsNull ? Pinmember d@nish 5-Dec-12 21:06 
GeneralRe: Would you like to buy an IsNull ? PinmemberKP Lee5-Dec-12 12:36 
GeneralRe: Would you like to buy an IsNull ? PinmemberPIEBALDconsult5-Dec-12 13:11 
GeneralRe: Would you like to buy an IsNull ? PinmemberJörgen Andersson6-Dec-12 21:12 
GeneralWhy do engineers insist on complexity? PinmemberJoe Woodbury4-Dec-12 7:33 
GeneralRe: Why do engineers insist on complexity? PinmemberAndrew Rissing4-Dec-12 8:11 
JokeRe: Why do engineers insist on complexity? PinmemberZac Greve4-Dec-12 8:12 
GeneralRe: Why do engineers insist on complexity? PinmemberChris Meech4-Dec-12 9:10 
GeneralRe: Why do engineers insist on complexity? PinmemberYvesDaoust4-Dec-12 20:57 
GeneralRe: Why do engineers insist on complexity? PinmemberSeattleC++5-Dec-12 7:00 
GeneralRe: Why do engineers insist on complexity? PinmemberFran Porretto5-Dec-12 0:50 

You have punched one of my hottest hot buttons: the tendency among far too many engineers to eschew the simple path.
 

My theory of the thing goes as follows: There are three stages in a software engineer's development / three types of software engineers / three phases to a life in software engineering:
 

1. The beginner: This engineer has little knowledge and less experience. That combination inclines him toward simplicity, for he hasn't the tools to get deep into the thickets, nor would he be confident of coming out alive. His programs tend to be easy to read, if sometimes a bit "naive."
 

2. The intermediate engineer: This engineer has begun to "feel his oats." He's learned quite a lot about various programming languages and fundamental algorithms, and he wants to show it off! So he embeds as much of what he "knows" in every program he writes as he possibly can. (Cf: "A Real Programmer knows every nuance of every instruction and uses them all in every Real Program.") His programs are next to illegible. After the passage of a few months, he won't want to admit to authoring them, much less maintain or debug them.
 

3. The senior engineer: This engineer is a grizzled, battle-scarred veteran. He's been around the block more times than you can count without taking off your booties. And while he can be a bit of a bore about those scars and how he earned them, his programs are a pleasure to read and maintain, because he's learned the virtues of simplicity. He never over-complicates a solution, because he's well aware that should it come apart under stress in a year's time, the most likely stuckee will be himself -- and remembering the rationale for excess complexity, and how to unsnarl it, is just too much like real work.
 

When I interview a fresh young candidate, I routinely describe the three types of engineers to him, and I ask: "Which sort of engineer do you aspire to be?" There are only two acceptable answers:
 

  1. A senior engineer, wise in the ways of the bits and a staunch foe of excess complexity;
  2. Hey, man, this engineering crap is just a stop along the way to the stars; I want to be the CEO of this place!
 

Food for thought.

(This message is programming you in ways you cannot detect. Be afraid.)

GeneralRe: Why do engineers insist on complexity? PinmemberPSM_300E5-Dec-12 2:16 
GeneralRe: Why do engineers insist on complexity? PinmemberFran Porretto5-Dec-12 2:17 
GeneralRe: Why do engineers insist on complexity? PinmemberPSM_300E5-Dec-12 2:19 
GeneralRe: Why do engineers insist on complexity? PinmemberMark H25-Dec-12 8:13 
GeneralRe: Why do engineers insist on complexity? PinmemberBC @ CV5-Dec-12 5:05 
GeneralRe: Why do engineers insist on complexity? PinmemberSeattleC++5-Dec-12 7:12 
GeneralRe: Why do engineers insist on complexity? PinmemberFran Porretto5-Dec-12 7:31 
GeneralRe: Why do engineers insist on complexity? Pinmembersatovey5-Dec-12 11:16 
GeneralRe: Why do engineers insist on complexity? PinmemberFran Porretto6-Dec-12 0:28 
GeneralRe: Why do engineers insist on complexity? Pinmember0bx6-Dec-12 7:00 
GeneralRe: Why do engineers insist on complexity? PinmemberFrans_551295-Dec-12 1:04 
GeneralRe: Why do engineers insist on complexity? PinmemberBobJanova5-Dec-12 1:22 
GeneralRe: Why do engineers insist on complexity? PinmemberRoger1655-Dec-12 2:26 
GeneralRe: Why do engineers insist on complexity? PinmemberRafagaX5-Dec-12 5:03 
GeneralRe: Why do engineers insist on complexity? PinmemberMember 45591065-Dec-12 6:00 
GeneralRe: Why do engineers insist on complexity? Pinmemberpatbob5-Dec-12 6:04 
GeneralRe: Why do engineers insist on complexity? PinmemberFreak305-Dec-12 22:45 
GeneralRe: Why do engineers insist on complexity? PinmemberNemanja Trifunovic8-Dec-12 3:08 
GeneralLocalization is great PinmemberBernhard Hiller29-Nov-12 21:53 
GeneralRe: Localization is great PinmemberZac Greve30-Nov-12 4:13 
GeneralTry/catch block... PinmemberProgramFOX18-Nov-12 3:28 
GeneralRe: Try/catch block... PinmemberRugbyLeague18-Nov-12 3:57 
GeneralRe: Try/catch block... PinmemberProgramFOX18-Nov-12 3:59 
GeneralRe: Try/catch block... PinmemberVitorHugoGarcia21-Nov-12 3:31 
GeneralRe: Try/catch block... PinmemberMark Wallace19-Nov-12 1:19 
GeneralRe: Try/catch block... PinmemberProgramFOX20-Nov-12 6:26 
GeneralRe: Try/catch block... PinmemberZac Greve20-Nov-12 11:45 
JokeRe: Try/catch block... PinmemberBernhard Hiller19-Nov-12 22:56 
GeneralRe: Try/catch block... PinmemberRichard Deeming20-Nov-12 1:37 
GeneralRe: Try/catch block... PinmemberBernhard Hiller20-Nov-12 4:36 
GeneralRe: Try/catch block... Pinmemberwarriordog21-Nov-12 2:16 
GeneralRe: Try/catch block... PinmemberRichard Deeming21-Nov-12 2:23 
GeneralRe: Try/catch block... Pinmemberwarriordog21-Nov-12 2:27 
GeneralRe: Try/catch block... PinmemberReese Currie21-Nov-12 2:52 
GeneralRe: Try/catch block... Pinmemberbkebamc21-Nov-12 5:17 
GeneralRe: Try/catch block... PinmemberH.Brydon21-Nov-12 16:34 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.


Advertise | Privacy | Mobile
Web01 | 2.8.140821.2 | Last Updated 22 Aug 2014
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid