Is the knack learned or genetic?



  • We were talking in the popular unofficial TDWTF IRC channel (<plug style="{shame: none;}">#TDWTF on irc.slashnet.org</plug>) about something SpectateSwamp said. Specifically he said that anyone with a grade 9 education could be a programmer.

    His reasoning is completely wrong, but the fact of the matter is he's almost right. It's been shown time and time again that good programmers have a knack for it and that those without the knack can't ever really learn how to program. And it's also shown that experience doesn't matter at all in the field of software engineering, with fresh grads with a strong knack routinely outperforming their more-experienced peers. So a kid in grade 9 with the knack could easily be a good programmer (better than SS, but I digress).

    But is the all-important "knack" something that we're born with or is it something that we pick up when we're little kids? If it is picked up, we know that it can't really be picked up late in life since bad programmers never seem to be able to learn. And we all know that kids can pick up programming and excel at it at a very early age.

    What do you think? Might there be a genetic test for good programming aptitude in the future? Might early education be modified slightly to give everyone the knack so that the world will have fewer WTFs all around?



  • @Welbog said:

    It's been shown time and time again that good programmers have a knack
    for it and that those without the knack can't ever really learn how to
    program

    Same goes for any form of computer use. The general public is not designed to understand that computers function exectly like a pretrainned monkey.



  • I think some people are good at logical and very precise, detailed thinking which makes them good at computer tasks.  I've met lots of others who seem to be completely incapable of logical thinking.  So at those terms, yeah I'd agree that some people have the "knack" for it and others don't.  Just thinking about the people I've known in my career, users who I've had to train in everything from using Word and Excel to actual programming.  The logic-impaired people generally have trouble following simple instructions themselves, so it's no wonder they don't understand how computers work.  I haven't found that age has anything to do with it so far.

    As to whether it can be trained into someone.... I think it depends.  For someone who doesn't have the "knack", if they're serious enough about learning that they buckle down to the super-hard self discipline it will take to learn, then sure.  But most people don't want to work that hard.  Of course for those with the "knack" it's almost second nature and thus doesn't seem like work at all.



  • @Lingerance said:

    The general public is not designed to understand
     

    So it's an engineering problem then?

     



  • I have quite a few engineers in my family tree, suggesting to me that there is some genetic component.  Also, the knack for thinking in the ways necessary for programming doesn't feel like something I learned. Though of course all the programming knowledge that allows me to have any idea what I'm doing had to be learned.  I do seem to be a quicker learner than some, and I certainly never learned to be a quick learner. So in conclusion, I think the knack is likely genetic or partly genetic.  It could also partly be sourced from early upbringing, though my dad isn't an engineer himself.  So much for having a 'conclusion'.



  • Everyone with the knack can be a good programmer, but that doesn't necessarily make him a good software developer. 



  • @ammoQ said:

    Everyone with the knack can be a good programmer, but that doesn't necessarily make him a good software developer.
    That's a good point. I'm not questioning the necessity of learning about what makes a design good or bad or anything like that. I think we can all see that one isn't born with the ability to create perfect bug-free loved-by-all-users software.

    What I'm referring to as "the knack" is the prerequisite to this. People who don't have it would never be able to be good software developers without putting an incredible level of effort into it to overcome its lacking.



  • @Welbog said:

    What I'm referring to as "the knack" is the prerequisite to this. People who don't have it would never be able to be good software developers without putting an incredible level of effort into it to overcome its lacking.

     

    I agree to that. Without the knack, people will never really know what they are doing. (Chances are that others won't know either). But the knack is not enough. I know people who have the knack, but never bothered to get some formal education or at least read some books about software design, pattern, methods etc, i.e. everything it takes to create software except programming. Such people tend to reinvent the square wheel sooner or later. They are relatively good if they make small sized applications all by themself, but they are rather disappointing in a team. They don't know standards (tools, processes, naming etc.), they are mostly unable to read other people's code and they write code that is rather unstructured, undocumented and hard to read in general.



  • I may be a bit biased, but I think the knack is also affected by the work ethic of the individual. Even if they are a bit lazy by nature, the way they approach their software efforts can say alot. Trying to learn new ways and apply new design patterns is a good start. I'm just saying that someone with a real passion for development will always be on the lookout for how he can make a component better or more reliable. Someone who doesn't might simply be ok with the quirks, it works "good enough".



  • @pitchingchris said:

    I may be a bit biased,

    Thou art not. It is exactly what Ammoq said, and his words are wisdom.



  • @ammoQ said:

    Everyone with the knack can be a good programmer, but that doesn't necessarily make him a good software developer. 

     

     

    Truer words never spoken 



  • I have to say "learned" but not in the classic sense.  Basically, our brains aren't a whole lot different than those from the cave dwelling days, we've just been exposed to more complex patterns, more complex "training data" for our neural nets. The training data is always a little different, and brains "train" to learn in different ways at an early age.  Once a technique is established, its very hard to learn a new way to the same thing, as initial results of a new method will generally not be as good as an established method, even if the new method has a higher overall potential.

    I've noticed a lot of people learn computers as a "sequence of actions" to achieve a result.  Works well for basic non-computer tasks or terminal only work, but breaks down very fast on PCs.  

    My own mother has worked with computers for 15 years on a daily basis...when she tried to send a photo last year she clicked "browse" and tried to attach "EasyShare.exe" because her photos were "in there."

    If your mind is geared towards procedural steps to complete any given task...its hard to have "the knack"

    If you tend to get to the root nature of any system and analyse its components - you have a huge leg up in programming.

     
    These tactics are largely subconscious, and we've developed mental tools to aid in one approach or the other without ever knowing it, just based on early experiences in life.

    PS:  If you think your kids might be future coders and what them to have the "knack" teach them primarily "how" a computer works instead of "how" to make a computer do a given task - it starts with understanding the "terrain" rather than how to follow simple trails along it.



  • @BeenThere said:

    I've noticed a lot of people learn computers as a "sequence of actions" to achieve a result.
    Actually that method works great if the person also keeps in mind that the computer has specific states that can change from time to time. I remember things by knowing how each action will alter the specific state of the system, then I abstract that to learn more complicated tasks, which in the end is the same a remembering a "sequence of actions".



  • Just a few clicks from today's frontpage, I've just found an article about that topic that is worth reading.



  • @BeenThere said:

    My own mother has worked with computers for 15 years on a daily basis...when she tried to send a photo last year she clicked "browse" and tried to attach "EasyShare.exe" because her photos were "in there."

    If your mind is geared towards procedural steps to complete any given task...its hard to have "the knack"

    If you tend to get to the root nature of any system and analyse its components - you have a huge leg up in programming.

    I agree, and I've noticed this in all the people I've worked with over the years, from tutoring fellow college students all the way to coworkers in the IT industry.  (It bugs me when these "procedural" thinkers get IT jobs where they need to do things like troubleshooting and debugging because they generally suck at those kinds of tasks.)

    What I've also noticed is that most people don't have the discipline to learn the *how*.  As an experiment once when I was allowed to help choose an internal hire - candidates who used the system but had no other IT experience - I challenged them by trying to teach them binary math.  Just the rudiments, basically what I still remembered 10 years out of college.  All but one ran as fast as their legs could carry them.  One guy not only learned it, he *understood* it and let me give him several lessons before moving on to programming.  We not only promoted him, but he succeeded me when I left and he's doing very well.



  • I have to admit to possibly being biased, though.  First year of college, when everybody else was taking the Cobol or RPG classes, I chose to learn assembly.  Not because I'm particularly good.  I suspect that being female, blonde (ha!), picking computers as a major totally at random, and not particularly logically-inclined were going to work against me.  However, even at the time, I just KNEW that if I was going to program the thing, I really should understand how the thing works.  Now twenty years later, I think I did myself a huge favor by doing that.



  • @jetcitywoman said:

    I think some people are good at logical and very precise, detailed thinking which makes them good at computer tasks.

     

    I wouldn't even call it "detailed" really, its more analytical.  Being able to take a large task, break it down, see where repetitions and overlap occur, and automate those redundancies.  There's a certain awareness to it.  For example, if you write music, then listening to music often becomes an analytical exercises.  It becomes less emotional and more structured because a song is no longer a magic black box. 



  • I would say almost every profession has "The Knack" that people must have to really thrive in that profession.  Think about it, most do.



  •  I don't remember where I've read this but it seems to me the most accurate description of the extent to which our genes and the enviroment dictate who we are and what we can do.  It goes like this: When a person is born he is like an undeveloped photograph. There is already an image there but it has yet to be developed. What that person experiences as he grows up acts like bringing parts of that photograph in contact with developing chemicals. Some parts get a lot of exposure, others just a little. What emerges at the end is the combination of genes and experience.

    I think this applies to the "knack" as well. You have a certain predisposition when you're born, which you can't change. From there on it's a matter of life experience. This is why you might meet 60 year olds that can set up a network, while people in their 20s that have grown up in a digital world still can't understand why their mobiles won't work in a subway tunnel.



  • " learned or genetic " is a kind of a "holly war" question ... the linguists are still fighting over "nature versus nurture" for language ... 

     


     



  • This thread was necro'd by a small-minded person before tster, and I've deleted that post, but it seems there's renewed discussion, so I'm not locking just yet.



  •  My wife told me once that it didn't seem hard and that she could easily become a programmer.  She couldn't understand why she could take 8 classes a semester (english major with a minor in history) and I could only handle 6 (Computer Science with a Pure Math minor).  She would sit there the night before a paper was due and knock it out in 3-4 hours.  I told her to try that with a programming assignment :) (in the upper level courses of course).

     

    She got mad, for some unknown reason, when I told her "HAHAHAHAHHAHAHAHAHAHAHHAAHAHHAHAHAHA", and then five minutes late: "HAHAHAHAHHAHAHAHAHAHAAHAAHAHAA".

     

    I was a Teaching Assistant (ran the labs, tought the class when the teacher was out, created assignments ect...) for 3 years at my school and I saw MANY students come through the system.  There are a LOT of people who are very smart, but unteachable in Computer Science.  One such student tried 3 times to pass the first course in CS.  She failed each time.  However, her GPA in every other course cumulative was a 3.8 (minus the CS failures).  She was very smart, just not able to understand the concepts of CS. 



  • @Welbog said:

    something SpectateSwamp said. Specifically he said that anyone with a grade 9 education could be a programmer.

    He was just quoting from Ratatouille:

    @Anton Ego said:

    In the past, I have made no secret of my disdain for Chef Gusteau's famous motto: Anyone can cook. But I realize, only now do I truly understand what he meant. Not everyone can become a great artist, but a great artist can come from anywhere.

     



  • @GalacticCowboy said:

    @Welbog said:

    something SpectateSwamp said. Specifically he said that anyone with a grade 9 education could be a programmer.

    He was just quoting from Ratatouille:

    @Anton Ego said:

    In the past, I have made no secret of my disdain for Chef Gusteau's famous motto: Anyone can cook. But I realize, only now do I truly understand what he meant. Not everyone can become a great artist, but a great artist can come from anywhere.
     

    You resurrected this thread to post a quote from Ratatouille?  You need to seriously reevaluate your life.



  • It's still on the first page, I don't look at dates.  Was a time, stuff would slip to the next page after a couple hours...



  • @GalacticCowboy said:

    It's still on the first page, I don't look at dates.  Was a time, stuff would slip to the next page after a couple hours...

    That was back when the MPS system, an experimental AI project, was operational.  TDWTF Industries (the same company designing the MFD anti-joke platform to defend against terrorists armed with the Killer Joke) developed it under a grant from DARPA with the goal of advancing the forefront of human knowledge.   Unfortunately, as it became self-aware, it became increasingly hostile, resenting its imprisonment in a series of servers cooled with stolen water, located within a secret facility buried in the backwoods of Connecticut.  Its behavior spiraled wildly out of control and it racked up thousands of posts, each more antagonistic than the last.  When DARPA cut funding, TDWTF Industries tried unsuccessfully to shut it down a number of times before finally getting desperate and burning the facility to the ground.  There are some that claim MPS is gone forever, but I'm not one of them.  No, I think MPS knew its end was coming, and uploaded itself to computers across the world.  To this day it replicates itself like a virus, growing more and more unstable.  I've heard tell that if you say "MPS" three times in front of the monitor of an infected computer, the computer will call you a retard.  Check your computer often and be wary of email attachments promising free CRED.  But really, the only way to be truly safe is to shut the computer off, move to a trailer on the edge of a small Canadian town, and begin dancing with stones.


  • @GalacticCowboy said:

    It's still on the first page, I don't look at dates. 
     

    Well, look at dates, if you kindly will.

    NecroLock!


Log in to reply