Part of the problem is that companies are scared to take training risks. Solving that problem requires nothing short of a culture war, so I guess all I can say to that is "pay attention if/when you're part of the hiring process".

The other part of the problem is that we define "good programmer" to be someone with programming experience. It's the age-old moebian problem: jobs require experience, and the only way to get experience is to have a job, so how does one begin?

When I've had opportunity to hire developers, I've had good success by focusing the interview process on finding good problem-solvers who are self-motivated, have an interest in programming, and have excellent language (written, esp.) skills. And when I say "good problem-solver", I mean people who are not only skilled at coming up with logical solutions, but are compelled to try and come up with optimal solutions.

Here's why these types of people end up being highly (and rapidly) trainable as developers:

  1. Problem-solvers: development is, at its core, finding logical and efficient solutions to real-world problems. Good problem-solvers don't like re-solving problems unless they can significantly improve on existing solutions. This leads to code-reuse coming very naturally, as a bonus.
  2. Self-motivated: people who are driven to learn and who hate leaving things undone tend to be thorough and easy to train. They also tend to be less of a drain on the senior developers, as they are willing to research, read, and try before asking questions.
  3. Language skills: learning a programming language is remarkably similar to learning a spoken language. Strong written language skills (both reading and writing) seem to be an indicator of someone who -- if they have the other attributes -- can pick up the syntax and idioms of a given language relatively quickly. It also means they're more likely to be able to learn by reading books, articles, and others' code.

Of course, even with all those attributes, some people just don't "take" to the development world. That said, I've had about an 80% success rate by combining one or two non-programmers with those skills and the requisite interest into a team of experienced developers. More often than not, they end up being much better programmers than I0, and occasionally even supercede the senior folks on the team (eventually).

Unfortunately, every organization that was willing to do that has hired me in a management role, so I never got the benefit of being a junior in such a team...

Footnotes:
0: which is no end of frustrating, but makes me proud as their manager and made me realize the importance of hiring people who are smarter than me!

<radiant.matrix>
A collection of thoughts and links from the minds of geeks
The Code that can be seen is not the true Code
I haven't found a problem yet that can't be solved by a well-placed trebuchet

In reply to Re: Where are future senior programmers coming from? by radiantmatrix
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.