We have a huge problem.

The knowledge gap

I’ve been a professional programmer now for over a decade, and during this time I’ve met a LOT of excellent programmers. Most of them are partially autodidactic and learned the business side of programming in school. But non of these guru’s/experts use their skills to teach the next generations. Sure, they attend programming conferences, give talks, join user groups etc. But all the other attendees are already good programmers! Companies usually send their brightest programmers to these conferences, not the beginning employees. This means there is already a gap in knowledge and it is increasing. The smart are getting smarter, and nobody is really helping the beginners…

Teacher cleaning chalkboard with duster

Teachers salary

During my time in college I wasn’t very happy with the programming teachers. They had some experience with the business side, they teached us about UML, gantt charts, and (then still hot) waterfall project planning. When it came to real programming, problem solving, algorithms, best practices… they didn’t really teach us much.
Most of the time we had more programming experience and skill than the teachers.

Although I haven’t been in college for a couple of years, except two guest appearances at the University of Amsterdam, I don’t think much has changed. The whole problem is the status and rewards of being a teacher. The average salary of a college teacher (here in the Netherlands) is about half, maybe two thirds of the average professional programmers salary. No wonder why most average or better programmers don’t become teachers! Only the programmers with least experience and skill, or teachers which later on learned programming end up becoming programming teachers.

Mentoring/apprenticeship

In the ancient Greece and Roman times teachers were important professions. Especially the most experienced craftsmen, they did not only master their craft, but earned most money by passing their skills as master/mentor to their protégés. This doesn’t happen anymore, the big names in programming now don’t have apprentices to pass on their knowledge. In the best case they write books, which will take years before the school teachers have read them and adopt the ideas.

Devoxx4Kids?

I’ve already mentioned Devoxx4Kids in previous blogposts. Although this is a great initiative (which I fully support, we’re holding our own version in the Netherlands!). It helps getting kids excited in IT/programming, but it won’t help getting the level of education to a higher level.

Highest status

Being a teacher/mentor should have the highest social status in our modern world, it should be the highest paid profession and all the guru’s/experts should want to become teachers. But it isn’t. It is poorly paid and absolutely not the sought after job. How can we change this?

Tagged with:
 

4 Responses to Teaching; Programming apprentices

  1. gio says:

    This is so true especially here in the Philippines. Most programmers with average and above programming skills usually work outside the Academe because of the BIG difference in compensation :(.

  2. Allen says:

    so true..

  3. @Roy – I’m not a programmer, but I have noticed this phenomenon across business. Do you think the conundrum is due to societies pressures to provide for yourself before your community, or even worse is it a result of the lack of prestige and stigma of “those who can’t do teach”? For the record I completely agree with your train of thought.

  4. Mario Klaver says:

    I agree that mentoring should have the highest social status in our modern world. And I agree that you should do that as early as possible: at college. Therefore I teach alongside my daily work. This is tough and you can’t expect this from everybody (you just have to be as sick as I am ;-) ).

    The next best thing is to teach them when they graduate and start working themselves. Be a mentor at your work. Go to a project with your protégé. Teach him what you know.

    Another thing we can do is invite some of the guru’s to do a guest lecture regularly.

    Mario

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title="" rel=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>