Slashdot Mirror


Commentary On How To Make Novice Programmers More Professional (slashdot.org)

Over the weekend, my colleague David ran a story that sought people's suggestion on how to make (force, encourage, advice) a novice programmer to be more professional. Several people have shared their insightful comment on the topic. One such comment, which has received an unusual support on not just Slashdot but elsewhere, is from William Woody, owner of Glenview Software (and who has previously worked as CTO at Cartifact, architect at AT&T Interactive). He writes: The problem is that our industry, unlike every other single industry except acting and modeling (and note neither are known for "intelligence") worship at the altar of youth. I don't know the number of people I've encountered who tell me that by being older, my experience is worthless since all the stuff I've learned has become obsolete. This, despite the fact that the dominant operating systems used in most systems is based on an operating system that is nearly 50 years old, the "new" features being added to many "modern" languages are really concepts from languages that are between 50 and 60 years old or older, and most of the concepts we bandy about as cutting edge were developed from 20 to 50 years ago. It also doesn't help that the youth whose accomplishments we worship usually get concepts wrong. I don't know the number of times I've seen someone claim code was refactored along some new-fangled "improvement" over an "outdated" design pattern who wrote objects that bear no resemblance to the pattern they claim to be following. And when I indicate that the "massive view controller" problem often represents a misunderstanding as to what constitutes a model and what constitutes a view, I'm told that I have no idea what I'm talking about -- despite having more experience than the critic has been alive, and despite graduating from Caltech -- meaning I'm probably not a complete idiot.) Our industry is rife with arrogance, and often the arrogance of the young and inexperienced. Our industry seems to value "cowboys" despite doing everything it can (with the management technique "flavor of the month") to stop "cowboys." Our industry is agist, sexist, one where the blind leads the blind, and seminal works attempting to understand the problem of development go ignored. You can read the full comment here or here.

3 of 188 comments (clear)

  1. The commentary has a major flaw by ruir · · Score: 5, Insightful

    It does not comment the obvious, that industry love the young because they are cheaper, and have yet not learned to say no to crap.

    1. Re:The commentary has a major flaw by pla · · Score: 5, Insightful

      Maybe your amazingly robust website is not 2-3 times better, but only 1.2 times better and you should only be making a few dollars more than the 20 yo grad.

      In programming, experience is worth drastically more than the pay differential for the same. A seasoned coder can crank out in a few hours what a recent college grad would literally spend a few weeks on; and it will be far more stable and maintainable.

      Yes, I am conservatively some 50x more productive than my junior peers. A big part of that comes from knowing what to ask the customer up front, knowing what won't work, and knowing when to just build the damned birdhouse the customer requested rather than a 400 unit Gehry-inspired avian housing complex "just in case" the customer wants to upgrade in the future.

  2. Some of it is obsolete. by 0100010001010011 · · Score: 5, Insightful

    all the stuff I've learned has become obsolete

    And as a mechanical engineer in my 30s I wish that some older engineers would accept that some of it is.

    We trail behind software by some years, despite building software constantly. Every engineer I work with insists on building their own Simulink models. "Continuous Integration" is just some "new fad". Yet every so often we'll have builds break because they didn't run the build scripts in the right order.

    I could replace 4-5 full time engineers with Jenkins and some continuous integration scripts building software, doing the dSpace hardware in the loop testing and e-mailing us the results.

    Our process was literally:

    1. Build software.
    2. E-mail it to my lead
    3. Lead forwards it to the testers
    4. Testers manually flash the software
    5. Testers manually unit test
    6. Testers e-mail my lead with results
    7. Lead e-mails me the result.

    I had the whole process packed up into a Jenkinsfile and automated but most people thought it was some "new fad".

    Accept that sometimes we come up with a way to do better.