Long time no posting, but this just had to go on here.
Long time no posting, but this just had to go on here.
Tony Schwartz/Harvard Business Review has an interesting bullet point list of what is necessary to excel in any field: Six Keys to Being Excellent at Anything
It’s based on Anders Ericsson’s work in the field, and holds as well for computer programmers as practitioners in any other field.
See also: Accelerate your Perl learning
The video recording of my talk from YAPC::NA on the Psychology of Perl is online. It has a very funny beginning when Tatsuhiko Miyagawa walks into the room receiving standing ovations as I start my talk, which is really weird in the video. Still made for a fun start of the talk…
I have to admit I haven’t watched the whole video myself, but word around is that people liked it. Which is motivating for putting together a larger, more detailed talk for a smaller interested audience, rather than a quick overview for a generally less-than-interested audience.
Wow, I managed to sneak in a lightning talk about the Psychology of Programming, with a Perl twist, at the YAPC::NA 2010 conference. Very fun – it was my first ever conference talk, and I could certainly work a bit on the style, but it got some people thinking and talking, and that’s a great response.
Someone requested that I post the slides so he could get the url’s I referenced. I think there was too many copyrighted images in the slides for me to put them online, but I’ll post the links for reference:
Working memory limitations: Oberauer & Risse (2010), Selection of objects and tasks in working memory, The Quarterly Journal of Experimental Psychology, vol 63 (4), 784-804.
Object Factory Pattern: Update on the Natural Programming Project
Data-driven programming: The Evidence Based Software Engineering database
Also, after my talk someone notified me about the interesting blog Psychology of Video Games
And finally: A million thanks to the people who gave me feedback on the talk!
I’m attending the YAPC::NA 2010 which is starting today. If anyone is going there and want to chat about the psychology of programming and how it may relate to Perl specifically, feel free to get in touch with me! I’ll be hanging out with the Booking.com people as we will be there trying to recruit some people over to Amsterdam too.
I’m also hoping I’ll be able to put together a lightning talk about an interesting little finding from cognitive psychology that might put a light on what the default variable does to Perl code readability. But as the talk is neither finished, submitted nor approved on the day of registration, it is a bit unlikely that will happen, although I’m hoping for a bit of slack in the lightning talk approval process…
It turns out I’ve done to my blog what I swore not to: Stop updating it. However, I’ve also sworn that if I did I would come back to it and not give up.
So what happened?
Well, it’s been quiet here because the heat turned up a few notches in my day job, and the opportunities to actually apply psychological methods turned plentiful. I’ve been involved heavily in recruitment in a (the) major Perl employer these days, and while I’ve learnt plenty about the minds of computer programmers, I also find myself in the situation where there’s correspondingly little I can write about it. On one side because there’s limits to how much detail I can write about before giving out information best kept confidental, and on the other side because some parts of a recruitment process needs to be kept inside the company to not give candidates unfair advantages (or disadvantages).
Now in a related turn of events, I seem to be heading to the Nordic Perl Workshop 2010 and I’m thinking about putting together a talk introducing the idea of using methods from Psychology to Perl programming. Alternatively just a general light-weight something about some subject from the world of Psychology of Programming. Which leads me to, if anyone who’s been reading the blog still follows it, what was your favourite post? Or what post would you like to seen elaborated on? Or what would just make a good talk?
Or to put it like the quintessential computer/psychology crossover, ELIZA, would: Come, come, elucidate your thoughts!
I stated in an article some time back that a challenge in learning is that the knowledge setting experts apart from novices isn’t explicitly known by either – it’s tacit knowledge. Since that was about learning Perl, I just want to bring attention to this good series of blog posts by chromatic under the header “From Novice To Adept”, as they fill in a bit of this gap:
And a bonus: Essential Skills For Perl 5 Programmers.
Are there any other good resources out there expicitly aiming at taking novices to the next level – or is that just when general “documentation” takes over as learning instruments? What’s it like in other languages?
Also, while updating with Perl news, scruffy old perl.org has become dashing new perl.org!
Updated with new articles March 8, 2010.
Google Timeline is a wonderful tool! Here is a Google Timeline for the search “Perl” showing an exceptionally interesting trend:
It may seem like the recent efforts to market Perl, as well as the Perl Ironman blogging drive, is paying off big time in terms of online attention! The graph certainly sends a clear message that Perl is alive and kicking as never before.
Note: I tried to create comparative graphs for Ruby, Python and Java, but was left with enough noise from fake gems, snake attacks and earthquakes to fill several Hollywood movies. Any suggestions for good searches for comparison are welcome.
Note 2: Maybe this is just caused by some Google indexing algorithm gone bad, but a quick visual inspection of the first 100 hits indicated that the August and September hits are real Perl mentions. Is this a real empirical indication that the recent efforts are really paying off?
After writing about the Software Engineering Myths Microsoft claims to have busted, I’ve been thinking about their find that organization structure is the most predictive factor for bugs.
And it makes me think, to what degree are organizations’ code bases shaped by their formal or informal organization structure? Are core modules and root objects often the domain of senior developers and objects lower in the hierarchy the domain of juniors? My experience is that it often tends to be, and it seems a reasonable overlap: after all, you want your more trusted developers fiddling where the damage can be greatest.
But how about other attributes of the code base? In the world of Perl, are CPAN authors often hired as external consultants? Are the most communicative programmers the ones that will write network services? Are the modules most used also written by the programmers that are most in contact with others?
And does organization structure also shape general code base structure? Will a more hierarchical organization tend more towards hierarchical object structures, while more chaotic or flat organizations tend towards more chaotic or flat code organization?
A lot of questions, but no answers… But one thing that comes to mind is, if organization and code structure follows each other, is this a good idea? I think few people designing a data model or object hierarchy starts with the organization structure as a blueprint, but speaking from my own limited experience, you can often at least see a reflection of either in both. Is this a good or bad thing? What can the consequences be?