<story><title>Visualizing How Developers Rate Their Own Programming Skills</title><url>http://minimaxir.com/2016/07/stack-overflow/</url></story><parent_chain><item><author>edblarney</author><text>&amp;quot;I used to be a lot better at clever algorithmic stuff. Now my focus is on clean maintainable code and getting the higher level architecture right, so that I don&amp;#x27;t need clever algorithmic stuff.&amp;quot;&lt;p&gt;This.&lt;p&gt;&amp;#x27;Clever&amp;#x27; is BS.&lt;p&gt;There&amp;#x27;s way too much &amp;#x27;clever&amp;#x27; going on in high tech, and way too many people interviewing for the wrong skills.&lt;p&gt;I used to be very clever as well, today, I don&amp;#x27;t think I could get a job at Google (not that I care) - but I think those interview styles are upside down.&lt;p&gt;These days I look at Eng. more like construction or plumbing: most of it is not rocket science, really. You don&amp;#x27;t want new or fancy anything unless you have to.&lt;p&gt;Good code should be &lt;i&gt;boring&lt;/i&gt; and read like English. There should be nothing special about it, unless the problem space really calls for it.&lt;p&gt;The paradox is - simple code is not psychologically impressive, at least to some people.&lt;p&gt;I&amp;#x27;m actually trying to develop an interview method that will allow me to measure this.&lt;p&gt;Clever is expensive, dangerous, and usually not worth it.&lt;p&gt;In fact - if you&amp;#x27;re trying to do something clever, it might be a sign that something is wrong. There is probably a library for that.&lt;p&gt;One caveat: it&amp;#x27;s good to have done a bunch of clever but not-so-useful things in the past, because when I use a library for something, I know what&amp;#x27;s going on - that&amp;#x27;s worth something.&lt;p&gt;Sometimes I feel that first 2 years in dev is basically &amp;#x27;training&amp;#x27; - and I wonder if someone with &amp;lt; 2 years experience should even be writing production code.</text></item><item><author>collyw</author><text>Move jobs a few times, inherit some crappy application and look at the code that others write, that has done the opposite for me.&lt;p&gt;Though a lot depends on what you define as being a good programmer. I used to be a lot better at clever algorithmic stuff. Now my focus is on clean maintainable code and getting the higher level architecture right, so that I don&amp;#x27;t need clever algorithmic stuff.</text></item><item><author>ivanhoe</author><text>My own perceived rating significantly lowered with the rise of social networks. As you start to follow more closely some really great programmers out there, you stop comparing yourself with your peers and start comparing against the best in the game... and that is self-confidence killer :)</text></item></parent_chain><comment><author>lacampbell</author><text>I must admit I am wary of this attitude. I&amp;#x27;ve worked at places where lambdas are clever, or generics are clever, or writing constructors that take arguments is clever, using LINQ on collections is clever, refactoring copy-pasted code into methods is super clever, etc etc.&lt;p&gt;One mans clever is another mans blindingly obvious. Should we always work to a lowest common denominator?</text></comment>
<story><title>Visualizing How Developers Rate Their Own Programming Skills</title><url>http://minimaxir.com/2016/07/stack-overflow/</url></story><parent_chain><item><author>edblarney</author><text>&amp;quot;I used to be a lot better at clever algorithmic stuff. Now my focus is on clean maintainable code and getting the higher level architecture right, so that I don&amp;#x27;t need clever algorithmic stuff.&amp;quot;&lt;p&gt;This.&lt;p&gt;&amp;#x27;Clever&amp;#x27; is BS.&lt;p&gt;There&amp;#x27;s way too much &amp;#x27;clever&amp;#x27; going on in high tech, and way too many people interviewing for the wrong skills.&lt;p&gt;I used to be very clever as well, today, I don&amp;#x27;t think I could get a job at Google (not that I care) - but I think those interview styles are upside down.&lt;p&gt;These days I look at Eng. more like construction or plumbing: most of it is not rocket science, really. You don&amp;#x27;t want new or fancy anything unless you have to.&lt;p&gt;Good code should be &lt;i&gt;boring&lt;/i&gt; and read like English. There should be nothing special about it, unless the problem space really calls for it.&lt;p&gt;The paradox is - simple code is not psychologically impressive, at least to some people.&lt;p&gt;I&amp;#x27;m actually trying to develop an interview method that will allow me to measure this.&lt;p&gt;Clever is expensive, dangerous, and usually not worth it.&lt;p&gt;In fact - if you&amp;#x27;re trying to do something clever, it might be a sign that something is wrong. There is probably a library for that.&lt;p&gt;One caveat: it&amp;#x27;s good to have done a bunch of clever but not-so-useful things in the past, because when I use a library for something, I know what&amp;#x27;s going on - that&amp;#x27;s worth something.&lt;p&gt;Sometimes I feel that first 2 years in dev is basically &amp;#x27;training&amp;#x27; - and I wonder if someone with &amp;lt; 2 years experience should even be writing production code.</text></item><item><author>collyw</author><text>Move jobs a few times, inherit some crappy application and look at the code that others write, that has done the opposite for me.&lt;p&gt;Though a lot depends on what you define as being a good programmer. I used to be a lot better at clever algorithmic stuff. Now my focus is on clean maintainable code and getting the higher level architecture right, so that I don&amp;#x27;t need clever algorithmic stuff.</text></item><item><author>ivanhoe</author><text>My own perceived rating significantly lowered with the rise of social networks. As you start to follow more closely some really great programmers out there, you stop comparing yourself with your peers and start comparing against the best in the game... and that is self-confidence killer :)</text></item></parent_chain><comment><author>koja86</author><text>This! So much this! (Unfortunately my single up-vote is not enough to help you sir.)&lt;p&gt;Unnecessary complexity is god-mother of all evil (premature optimization included). The goal is to use as simple (to understand and to maintain) means, code, idioms etc. as the problem you are solving allows. I know fancy stuff and I know when not to use it (i. e. almost always) and value simple robust code much more than fancy fragile crap.&lt;p&gt;Seems like more people are trying to solve easy problems by complex means than people trying to solve difficult problems by any means. Sad thing is by using unnecessary complex means even the simplest problem can be obscured beyond mental capacity of anyone. Welcome legacy spaghetti mess.</text></comment>