Sunday 15 September 2013

Programmers and character/learning styles...

I'm writing this down because like many phenomena I come up against in my PhD journey, I think a question needs to be answered, most likely by myself, but also by others who may stumble across my blog, or that I point here.  Therefore I welcome comments and discussion, as indeed I always do.

Ok, so this is based on my own experience, but on the whole, I think computer programmers (or coders) are a certain type of person.  In that they're a 'Myers-Briggs type' of person (not that I completely agree with M-B, but that's another matter).  I've met a lot of coders in my time, and indeed I'm one myself, and to me it seems that to be interested in programming or computers, be it your hobby or enjoyable, fulfilling career, you need to be a certain type.  Words that I use, tentatively, are: patient, obsessive, introverted, detail-driven, inquisitive, logical and more I'll add to this list...  Years ago at Uni, we were shown the CBS documentary "Triumph of the Nerds", which is about the folk like Bill Gates and Steve Wozniak that were instrumental in the creation of the PC in the 1970s and 1980s.  I can't remember why we were shown it, but what remained with me was the realisation that I was a nerd, and these people were like me, only significantly richer and more successful!  The people that created computers, and programming languages were the kind of people that seem to still be attracted to, and successful with computers.  I know that programming languages were created the way they were more out of necessity, and history, rather than being a secret club for introverted nerds, but even so, they seem to suit the type of folk I describe above.

When growing up with, and later working with children who were interested in computers and coding, they again seem to be same type of detail-oriented, patient, quiet kids who like to get on with their programming challenges on their own, challenging themselves and tinkering for hours improving their code and then sticking that out there for the world to admire, rather than themselves.  They don't want to be centre of attention, and often hide behind personas and handles that are as obscure as the complex hacks they have created.

So what is it about coding that appeals to coders? And what is it that makes some people completely disinterested by writing computer programs?  Is it personality type, or some deeper cognitive ability or suitability?  Attention span? Linguistic ability? (I've some theories about second language acquisition and linguistic ability and programming too for another space)

In all of this I think very much about traditional, text-based, abstracted programming, because actually visual programming tools such as Scratch, or physically programmed things like Beebot robots are far more accessible for more people (again, in my own personal experience).  I'd argue though that these are not real programming, in that they're not software development tools with which you could create an executable application or Web application, and the paradigm in which they operate is quite different and over simplified.  Lower-level programming is far more challenging cognitively and it seems that this challenge, more than the abstraction or flexibility is what appeals to programmers.  If you were a hacker, it certainly seems that the challenge is what drives you to complete the task, and to create your program or hack.

So, a hunch, a theory, or a bark up the wrong tree? Maybe I'm reading people wrong!  Interestingly, whenever I've been personality profiled, I've often been identified as an introvert-extrovert.  Equally, I'm not the world's best coder, as much as I love computers and hacking!

2 comments:

  1. I think, as with many things, that there's a general type of person who enjoys programming, and plenty of exceptions to that rule. My degree was in German, and I loved the language as it was logical and consistent. French never quite did it for me. Programming languages make sense to me (most of the time!) as there is a fixed syntax and grammar, and I love problem solving how best to make something happen. It's been interesting learning some new programming languages this summer as I can see the similarities between them and this helps me remember them (much as learning Spanish is helped by having a knowledge of French).

    You have to be patient and have a certain attention to detail otherwise it becomes frustrating working out where you went wrong. Some pupils are not going to enjoy this type of thing, and need the quick wins of the more visual tools and physical, programmable things, like Lego robots. You're never going to appeal to all students in every subject, it's just a matter of making it as varied as possible.

    ReplyDelete
  2. Your suggestions are focussed on the individual dispositions: "Is it personality type, or some deeper cognitive ability or suitability? Attention span? Linguistic ability?"  I'd add persevering and optimistic by the way.

    Other issues might to be to do with the affordances of the programming environment, the degree to which it makes the abstract concrete and the classes of problems it makes it easy to tackle. HyperCard (and HyperTalk) was a class act for this reason, allowing the developer to muck about with information design (often forgotten) and media presentation before tackling coding.

    Then there's social / cultural - "what would that girl/boy think of me if I were to be seen being geeky?" and "are girls supposed to be seen doing this?" to say nothing of "Does my friend (who I enjoy the company of" like doing this too?"

    And possibly misunderstanding of the vocational - I asked Patrick, when he was 14, why not do Computing since you're so good on the computer? He answered "why would I want to train to be a Microsoft service agent?", which is how he saw the curriculum offered at GCSE to be.

    ReplyDelete