I've been a zone leader with DZone since 2008, and I'm crazy about community. Every day I get to work with the best that JavaScript, HTML5, Android and iOS has to offer, creating apps that truly make at difference, as principal front-end architect at Avego. James is a DZone Zone Leader and has posted 639 posts at DZone. You can read more from them at their website. View Full User Profile

Preparing a New Generation of Developers

  • submit to reddit

Recently, Microsoft unveiled their Elevate America initiative. The idea behind the site is simple - provide resources to help workers in the US gain technical skills to help their jobseeking efforts. As well as helping expand skills, including the basics, it also helps students to plan their future careers. This is a step in the right direction to creating a more substainable, knowledge-based global economy. But it's only the beginning, and we need to focus a lot on the next generation of software developers.


An interesting part of the latest Malcom Gladwell book, Outliers, explains the 10,000 hour principle: that the really successful people are those who have been able to invest a lot of time into their profession. Bill Gates, for instance, was lucky enough to attend a Seattle school that had a computer club and to live near the University of Washington, giving him access to computing equipment. He got experience, and lots of it, early -  simple as that.

It got me around to thinking about education systems that exist at the moment for students. Traditionally, it's not every primary level school that has access to computers. And even when they do, the student:computer ratio is generally not sufficient to allow everyone to have adequate time. On secondary level it's probably better, but usually students are being thought the basics such as word processing and just general familiarity with the operating system.  I had good access to computers in my secondary school, and had an interest in programming, so I thought myself some very basic BASIC. It still wasn't enough to prepare me for university though.

A Plan Of Action

There are two things that are required. One part is to provide more focussed classes on problem solving in primary and secondary school. Maths is an alright subject, but a lot of people fail to get excited about it. Contrary to popular opinion, being a maths wiz is not a pre-requisite for being a good software developer - especially in these days of higher level languages.

The second, and more important part, is to make software development seem more accessible to students. That's easier than it sounds thanks to a proliferation of educational-styled IDEs, programs such as Elevate America and the iPhone.

The iPhone might seem like the odd one out, but think about it for a while. Writing applications for your iPhone (or Android!) is immediately rewarding. You get your game working on your own personal device, rather than needing to use a PC to run the app. Plugins for your favourite social networking site, or even games for your XBox360 can be written from home. If students were first introduced to these possibilities, it might trigger a greater interest in software development.

On the IDE front, BlueJ has been around for a very long time. The latest version even provides support for JavaME development. I've also been talking to Wayne Beaton at Eclipse about their IDE4EDU proposal. While it's aimed at University level students, it's a great idea that can easily be extended to suit earlier stages of education. Stripping Eclipse of the complications that cause a steep learning curve. They're considering working with organisations such as CoFFEE, with their classroom teaching tool to make the offering more applicable, and appealling to educational establishments. I think this could be a great project, and it will be interesting to see where it goes.

I have no statistics to hand, and my personal experience makes we wonder if these IDEs are present in schools. But I really hope I'm wrong - that these tools are being installed in the computers in high/secondary level schools at the very least. I'm interested to hear your opinions and experiences with preparing a new generation of software developers in advance of high school.


Mike Funk replied on Thu, 2009/02/26 - 10:33am

As you suggest, exposure to technology at a young age is critical. Exceptions aside, I have little to no confidence in US public K-12 education. Home schooling really works for my son. He has a distinct competitive advantage that will serve him well into adulthood.

Jens Schauder replied on Thu, 2009/02/26 - 4:51pm

I don't know about the american schools, but I wouldn't trust german schools about education in a fast moving area like this. When I was at school about 50% students in the computer sciense class (beginning from 9th class) onward where more knowledgeable then the teachers. Fortunately the teachers where at least smart enough and willing to learn from us, so they didn't fall behind ;-) Although what I have seen of home schooling was quite scary I do think parents have to become more active in the education of the children. I experience many parents that blame the school for everything but don't do a thing but complaining. My kids will have access to computers, books, internet, music instruments, power tools, foreign countries for them to try and learn a long with as much help and advice as their parents can offer and a dose of supervision to avoid longlasting damage from tv, internet and powertools. BTW: iphone? how many kids have access to an iphone? And how many of those do not have access to a computer? and how to you program for an iphone without a computer?

Jeroen Wenting replied on Sat, 2009/02/28 - 1:56pm

The first thing to do to get Americans and Europeans to consider careers in software engineering again is to reestablish respect and appreciation for software engineers (and especially programmers) in the industry, and get some job security back.
As it is, you end up in a job where you're blamed for everything that goes wrong with the project (whether it's your fault even remotely or not) while never getting told you did a good job.
Add to that the regular mass layoffs, jobs disappearing to Asia and eastern Europe at a rapid pace (getting better, but it still happens), and there's just no incentive to even consider working at a job that doesn't pay nearly as much as other jobs do that also require degrees in similarly hard topics. So why go to the trouble of going for that line of work?

Raging Infernoz replied on Thu, 2009/03/05 - 4:09am

Agreed Developers, and other Computer Professionals, are under appreciated, the pure exam-based certifications did not help this attitude, at all.  Proper Developers should be seen are Engineers, who have valuable experience, judgment, and skill, at the art of coding, not seen as production-line code-monkeys. Component, and glue code, based coders should be called Technicians, not Programmers or Developers, ideas like this could help clarify skill and knowledge levels in coding.

 The whole dismissive attitude to Enginneering, is quite counter productive, and disrespectful,  and driven by right-brain biased people, like vain arts snobs, devious lawyers, harmful politicians, ignorant business people, and stupid people; these people need to be put in their place and learn to have respect for those that make their comfortable lives possible


Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.