<story><title>Unlearn, young programmer</title><url>http://blogs.tedneward.com/2012/03/21/Unlearn+Young+Programmer.aspx</url><text></text></story><parent_chain></parent_chain><comment><author>dkarl</author><text>Supervising junior staff is not where this battle is won or lost.  Your development culture is going to have the biggest impact on how those young programmers go about their tasks.  If you want junior programmers to develop well (software and themselves) you need to attend to the culture they take their cues from.&lt;p&gt;I worked in a near-ideal development culture once.  Twice, I suppose.  Everybody was humble.  Everybody documented their code.  Everybody bounced their ideas off someone; even the smartest guy in the office humbly asked for advice and meant it.  Everyone was quick to assume that if other people thought their code was confusing, then it probably was.  Everyone assumed they should be able to explain their brilliant idea to anyone else on the team and convince them of its value.  Most of what I knew about the codebase at those jobs I learned from guys who knew ten times as much as me drawing diagrams on the whiteboard and asking, &quot;Do you think this will work?  Or am I being stupid here?&quot;&lt;p&gt;A junior programmer would naturally succeed at the picture-hanging problem in that environment because they&apos;d approach it the same way the star programmers approached their work:  tell other people what they&apos;re working on and what they&apos;re thinking, and make sure they can articulate and justify an idea before they commit themselves to it.&lt;p&gt;That&apos;s the ideal.  Most cultures fall short of that in one way or another.  In a completely opposite situation, if the star programmers work in isolation, disdain to discuss their work with lesser programmers, neglect to document their code, and aspire to write code that no one else understands, junior programmers will learn some very unhelpful lessons.  This is true even if the star programmers are getting shit done and writing efficient, correctly functioning code, because they&apos;re basically (and I shudder to use this word because I don&apos;t want to start the wrong kind of conversation) peacocking.  They&apos;re getting stuff done the hard way and proving they can thrive in a completely unsupportive environment.  There&apos;s unspoken machismo, which put into words would sound like this:  &quot;Nasty opaque codebase?  What&apos;s wrong, can&apos;t take the complexity, little man?&quot;  &quot;Gosh, I would have &lt;i&gt;written&lt;/i&gt; some comments if I knew &lt;i&gt;some&lt;/i&gt; people &lt;i&gt;needed&lt;/i&gt; them.&quot;  That&apos;s the kind of environment where a programmer is going to either wilt and do something really stupid because they&apos;ve already given up or &quot;rise to the challenge&quot; and try to make a drywall saw using a 3D printer.&lt;p&gt;Take care of the culture:  set a good example, promote respect and humility among your developers, and don&apos;t exempt anyone from good practices.  Then junior programmers will find their way even if you don&apos;t have time to guide them yourself.</text></comment>
<story><title>Unlearn, young programmer</title><url>http://blogs.tedneward.com/2012/03/21/Unlearn+Young+Programmer.aspx</url><text></text></story><parent_chain></parent_chain><comment><author>pilif</author><text>Then again, by being experienced, you know that certain things just don&apos;t work and never will. Until you see a newbie do them because he didn&apos;t know it was &quot;impossible&quot;.&lt;p&gt;Like the guy presenting his NES emulator at jsconf.eu in 2010 which was practically a line-by-line port of a Java emulator. If you&apos;d have ask me whether it was possible to line-by-line port a Java application (and a complicated one at that) to JS, I would have told you that, of course, this was entirely impossible.&lt;p&gt;Until that guy, totally new to JS and emulation -heck - even programming in general - just did it because he didn&apos;t know better.&lt;p&gt;Sometimes, having a new perspective is very helpful and we must be careful not to lose that. Sure. The solution might not be perfect, but one can always refine it.</text></comment>