The Artima Developer Community
Sponsored Link

Python Buzz Forum
The least of learning is done in the classrooms

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Carlos de la Guardia

Posts: 219
Nickname: cguardia
Registered: Jan, 2006

Carlos de la Guardia is an independent web developer in Mexico
The least of learning is done in the classrooms Posted: Jan 16, 2006 10:20 PM
Reply to this message Reply

This post originated from an RSS feed registered with Python Buzz by Carlos de la Guardia.
Original Post: The least of learning is done in the classrooms
Feed Title: I blog therefore I am
Feed URL: http://blog.delaguardia.com.mx/feed.atom
Feed Description: A space to put my thoughts into writing.
Latest Python Buzz Posts
Latest Python Buzz Posts by Carlos de la Guardia
Latest Posts From I blog therefore I am

Advertisement

It was Thomas Merton who came up with the title for my post, though he certainly never intended this. I was reminded of this phrase when I found a post about "java schools", by Joel Spolsky while trying to get up to date with my blog reading.

Joel is worried about the prevalence of Java as the teaching language of choice in US schools, not beacause of the language itself, but because he thinks students need to learn languages that expose them to difficult-to-grasp concepts which actually can help them (and later, their prospective employers) determine if they really have what it takes to be a software developer.

The concepts he chose to make his example were C pointers and recursion, but those are just examples. His main point is not that pointers (pun was not intended) are the way to tell great programmers apart from code monkeys, but that the capacity a person has to grasp concepts like this is the real differentiator. Joel contends that schools that teach Java exclusively end up producing an unfiltered class of programmers upon graduation, since the students never really get exposed to those hard concepts and hence they may or may not be real programmers(TM).

He himself says that "I freely admit that programming with pointers is not needed in 90% of the code written today". So, tell me, why would schools cater to only 10% of their markets? Of course they won't, and they never have. If at one point C and C++ were what the majority of students wanted (because the majority of the jobs demanded it), that was what schools taught. Like it or not, Joel, most recruiters belong to the "recruiters-who-use-grep" club you rightly despise, and the students want to get hired by someone, and this grep guys are their best bet right now.

Now, for the connection of this post with the title generously provided by Merton. I think Joel is very wrong in expecting that programmers will only (or even mainly) be formed by the schools they attend. Real programmers do not need a board of school directors to decide to expose them to complicated concepts; real programmers look for these concepts for fun and expose themselves to them, whether their school's curriculum calls for it or not.

So, these programmers with the special parts of the brain that Joel needs will not be doing most of their learning in the classrooms. Perhaps Joel is right and the schools are wrong, but that really is a problem that will not be easily solved by him or any other enlightened-recruiter-who-does-not-use-grep. The school system is what it is and the bottom line is that if you want to find these special guys you will have to look at extra-curricular activity in addition to classrom work.

Some recruiters have become fans of the puzzle culture popularized by the likes of Microsoft and Google in an attempt to confront this problem. I hear Joel likes it as well. But puzzles may not test all the special parts of the brain that are really needed to be a programmer, specially if we take into account that the actual abilities needed will vary from shop to shop. Why does Fog Creek Software need so many guys skilled with pointers if their star product is basically a CRUD application?. Shouldn't they try instead to find developers who are specially skilled in the brain areas most needed by this kind of applications? Ian Bicking makes a good point about this in the comments to his own post about Joel's rant.

Ian also says that having tried and failed to complete ambitious projects can teach a developer a lot, so you would like to know about a prospect's greatest failures to see how (or if) they learn about their craft. This comes back to what I was talking about when I mentioned fun earlier. A good programmer is going to try stuff that is interesting and fun to her, and she will most likely do it outside of the classroom. She will not read about pointers and say, wow, what a great challenge pointers are, let's try that. No, she will probably stumble into a project that is interesting to her while browsing the web or reading a book and think, ok, this project uses C, maybe I should pick up a book about C programming from the library on my way home.

Joel says that "Without pointers, for example, you'd never be able to work on the Linux kernel", but I think this is backwards. A good programmer usually doesn't first learn a concept and then goes to find some project to try it; rather, he finds some fun project and then learns what he needs to try it.

In another post, I quoted Paul Graham in an article where he explains why he said at some conference that you can get smarter programmers for a Python project than for a Java project:

"I didn't mean by this that Java programmers are dumb. I meant that Python programmers are smart. It's a lot of work to learn a new programming language. And people don't learn Python because it will get them a job; they learn it because they genuinely like to program and aren't satisfied with the languages they already know."

You can exchange the word "Python" in that sentence for "Smalltalk" or "Ruby" or "Scheme" and it will mean exactly the same. The point is that programmers like to program and they have to go out of their way to learn this languages, so when your prospect loves one of these you may be onto something.

So Java Schools may be where CS is at these days, but there are still some ways to find out about which programmers are for real. Do your prospects participate in open source projects? Have they created one (even a failure)? How many books not required by their courses have they read about software development subjects? Do they love some obscure or non mainstream language or tool with a passion? Which blogs do they read? Do they blog about what they do or about technologies they like? Do they make an effort to stay current in certain technologies even if their work does not require it? Do they like to go to conferences and events just to mingle with other programmers and get some t-shirts, regardless of curricular value?

The answers to those questions will vary from individual to individual and it's not some test where a good candidate has to be perfect. The idea is that finding out how a programmer thinks and acts about programming outside of work and school can be a good way to help the recruiter do the filtering that the Java Schools seem to have neglected. The least of learning is done in the classrooms.


Read: The least of learning is done in the classrooms

Topic: There's so much more than Rails Previous Topic   Next Topic Topic: Now you can look up PubMed articles with Structured Blogging (well, soon ...)

Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2019 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use