I am somewhat puzzled where you're getting your impression of my priorities from. For one thing, they're off by quite a bit. For instance while I'd hope that a junior program could code to an API and standard that someone else has developed, I'd never judge a senior programmer on that skill. Instead I'd want them to be good at things like inventing APIs that I'd want to use. The ability to work with someone else's API is like the ability to walk and chew gum - I'd take it for granted.

About what you value in "great programmers", I'm unsure what you mean by "applied brilliance". Largely that's because there are plenty of things that I consider routine that others consider to be brilliance. Why I like functional programming is a good example. I have no idea what your standards are.

However, no matter what your standards are, I sincerely believe that you are mistaken to focus on what are probably just flashy hacks. In every field that I know of, when you talk to the best people, they stress the importance of getting the fundamentals right. That holds true whether you're talking about playing a musical instrument, playing a sport, or even an intellectual discipline such as mathematics. (See The path to mastery for a story from mathematics.) And, believe it or not, I've encountered the same attitude from the best programmers that I've seen.

For instance take the best-known example of a truly flashy "mad genius" programmer in the Perl world. That would be TheDamian. Can we agree that he really is a great programmer? Now go look at the most widely recommended book that he has written. That would be Perl Best Practices. What is it? It is a detailed analysis of apparent minutiae, like whether you should format code with the + signs before or after a line break if you had to break the line. (The answer to that one in Perl is on the next line, BTW.)

The fact that he was willing to put a tremendous amount of energy into considering issues like this, and that the resulting book is valued highly by so many top-notch programmers, speaks volumes to me about what is important in programming. Namely that fundamentals count. You might not always start by learning fundamentals, but somewhere along the way you need to pick them up. And then you layer knowledge on top of that. Some day as you take the natural approach to a problem you'll see blank stares from people who do not have the background to understand what you're doing. While that can be fun, you get there by getting the fundamentals right.


In reply to Re^4: Where are future senior programmers coming from? by tilly
in thread Where are future senior programmers coming from? by tilly

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.