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…
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?