Driving Lessons
I’ve just came across this advertising for driving lessons:
Join the revolutionary driving course!
A unique learning method will teach you to drive a car in no time.
Our driving course was developed by the best experts in the field. It includes numerous hands-on exercises starting from day one.Day 1: Hello Car
You will learn about the car’s ignition switch.Day 2: Step On It
You will learn to use the Gas Pedal. You will enjoy feeling the engine as we accelerate from 0 to 100 MPH in 12 seconds.Day 3: Slow Down, Will You?
You will get to know the Brake Pedal. The fun can’t last forever…Day 4: Shifting Gears
You will get familiar with the car’s gears, how to shift them and how to avoid breaking them.Day 5: Driving At Night
An introduction to the most important night-driving aid: the front lights.Day 6: Hit The Road Jack
Finally, you get to practice what you’ve learned: our state of the art driving lot and a brand new car will be yours for a whole day to gain experience and confidence (without the fear you will run someone over ;)Day 7: Graduation
You get your license and a 10$ worth of gas coupons.
Sounds like a great program, isn’t it? Would you take such a course? Well, don’t go looking for it – such a driving course doesn’t really exist.
Unfortunately, this is exactly how most developers learn to develop software. They start with learning a programming language. And almost any programming course I know is based on a decomposition of a language to its various constructs and features.
If you take a C++ course, you will start with variables and move to different kind of expressions. You will then get familiar with functions and maybe classes. Then the action starts: you get to use pointers for the first time. What a wonderful feature! And don’t forget references, pointers to functions and arrays. If you survive through all this information, you will then be taught how classes can be inherited and what is polymorphism. There’s a good chance multiple inheritance will come into the picture soon after. Finally, how about some templates, exceptions and a couple of STL concepts.
Wow! That’s a lot of information. But the best part is all this information is meaningless if you don’t know when to use it, how to use it properly, and when not to use it. Knowing all these concepts and features will not turn you into a good software developer. This is just like hitting the road after learning in Day 1 about the gas pedal and in Day 2 about the brake. This is hardly the essence of driving. The important stuff is when to use each pedal, and how to use it to the right extent to drive the car smoothly and safely.
A student learning all these decomposed concepts can only get confused. She will finish the course without a single clue about when to apply each concept and how to apply it safely. This is why many developers use pointers when they don’t need to, misuse inheritance (not to mention multiple inheritance), overuse macros (they are extremely efficient, aren’t they) and make havoc in their error handling code. They weren’t taught how to use these tools properly in the real world.
The driving course offering above doesn’t sound like the way I learned driving. When I started my driving lessons, my driving instructor began with a five minutes introduction about the pedals, controls and indicators. Then he showed me how to adjust the seat and the mirrors. And then, after no more than seven minutes, we went out to the real world.
I learned to drive in the real world. Not in lab conditions. From day one I faced real traffic, real drivers, real pedestrians, and real roads with the help and supervision of my instructor. Most of the time I was driving, and my instructor would correct me or turn my attention to something I was doing (or supposed to be doing). In some (rare) cases, we stopped and discussed something I had done and should have done differently. But no matter what, it was all done in a real-world context.
After ten or so lessons, we had a night driving lesson. No, it was not about turning on the lights. It was about adapting the skills I had already gained by then to a new context: driving at night. The technical details were the same. Their application was somewhat different. I had to drive more slowly, I had to pay attention to different stuff, I couldn’t always see where the road is going. And on top of that, I had to decide which lights to use according to the road conditions, the weather conditions, and the existence of other drivers on the road. New context, new experience, better skills.
This is exactly how we should nurture good software developers: close guidance and mentoring in a real world context. When a language feature is needed in a certain context, it should be taught. With every day, the developer will learn new skills because she will face different problems, constraints and requirements. In time, she will gain enough experience to drive almost on her own. Then you can give her an advanced project to work on. She will have to adapt what she has learned to the new context, again with guidance.
Experience is the key to professionalism. Learning to be a professional software developer cannot happen in lab conditions. It has to be based on gaining real-world experience in a guided manner.












April 12th, 2006 at 4:21 am
if you stick to female, you should stay there. It is most confusing when reading
“In time, SHE will gain enough experience to drive almost on HIS own.”
Otherwise a good article
April 12th, 2006 at 5:49 am
Thanks for the review (and for the feedback) Peter… fix is on the way… ;)
April 27th, 2006 at 10:43 pm
Very practical and informative article. You have a way with words, have explained just as happens in the real world.
June 5th, 2006 at 12:42 am
Good commonsense explanation about effective training. Of course, there’s more to software development than training. A while back, I also had some thoughts about software, and driving. Recently, after a few road and code mishaps, I wrote them down. See
http://talkaboutquality.wordpress.com/2006/06/05/making-software-better/
June 19th, 2006 at 8:46 am
nice blog…congratulations from Brazil…
December 13th, 2006 at 2:54 pm
thanks for tips
December 29th, 2006 at 3:18 pm
cool
January 4th, 2007 at 2:08 pm
marvellous
January 4th, 2007 at 2:08 pm
color
January 4th, 2007 at 2:09 pm
exel
January 12th, 2007 at 4:51 am
hello
January 17th, 2007 at 12:11 am
amplifier of car
January 17th, 2007 at 12:12 am
heating
January 21st, 2007 at 1:47 pm
The Cognac the most appreciated by the participants was the Cognac Raymond Ragnaud Millésimé 1989. The evening was a beautiful success for the first one(night) in our new room of tasting. I am very satisfied with it! Well, it is true he(it) misses some more decorations, but that will come be reassured! I have vraiement hasten to organize the next evening of dég
February 9th, 2007 at 4:16 pm
Are you in search of a good amplifier? Then I would suggest you check out the JL car audio 500/1 amplifier. This
amplifier is very efficient and will give little, if any, reason to worry. Here is something more about this
product.
It is a class D amplifier. What does this mean? It means that it belongs to the class of highly efficient amplifiers
that are up to 90% power efficient. This is a great advantage as it means your battery will not be easily run down.
It makes the most efficient use of power when compared to other amplifier classes. And for your car, this is an
invaluable feature.
July 2nd, 2007 at 9:23 pm
Thaks for the post. It’s a good read.
July 29th, 2007 at 11:00 pm
Hey, that’s how I teach driving! Err not!
August 31st, 2007 at 2:14 am
Free xBox 360 games
Searching for a free xbox 360 console…
September 7th, 2007 at 2:48 pm
touristsale
touristsale
September 14th, 2007 at 3:15 pm
Your right in saying it’s meaningless unless you use it. But what percentage of the population do you think would put it into practice? My guess would be les than 10%.
September 14th, 2007 at 3:33 pm
I love it how they say join the revolutionary driving course. Only problem is that they don’t show you how it’s revolutionary.
September 20th, 2007 at 4:55 am
290154687607
listing brought me to check out many blogs
September 20th, 2007 at 6:19 pm
You sum it up best when you say whats the use of info, if you don;t know how to use it, when to use ect. It’s like reading a book without glasses or something.
October 5th, 2007 at 12:25 am
Hey - who nicked my driving notes - thats how I teach someone to drive
April 18th, 2008 at 2:06 am
I love it how they say join the revolutionary driving course. Only problem is that they don’t show you how it’s revolutionary.
May 3rd, 2008 at 11:14 am
Very true, even when it comes to joining the work force for example, experience outweighs education alot of times!! although the most desirable situation would be to have both!!
May 6th, 2008 at 7:49 pm
Also, remember the common phrase “PRACTICE makes perfect!”
May 8th, 2008 at 8:46 pm
perfect practice makes perfect. practicing something incorrectly cannot lead to perfection!
May 28th, 2008 at 8:27 pm
oh man, my grade seven music teacher used to tell me that (”perfect practice makes perfect”) and I still have nightmares about her, and i’m a grown man
June 15th, 2008 at 6:13 pm
where was this being offered?
July 2nd, 2008 at 5:21 am
Clases particulares a domicilio. Clases para particulares y para empresas. Clases particulares primaria, ESO, Bachillerato y extraescolares. Clases para adultos de idiomas, ofimática, y de asignaturas universitarias. Cursos para empresas de ingles y informática, profesores particulares, clases, Clases particulares con profesores particulares a domicilio, Clases particulares a domicilio impartidas por profesores particulares titulados y seleccionados por sus habilidades pedagógicas, profesores a domicilio, educacion, refuerzo, clases particulares, profesores particulares, clase particular, profesor particular, clases, clase, profesores, profesor, academias, academia, cursos, curso, repaso escolar, apoyo escolar, ingles, matematicas, frances, quimica, estadistica, fisica, musica, informatica, latin, biologia, tecnicas de estudio, escuelas, escuela, a domicilio, primaria, eso, bachillerato, selectividad, universidad,Profesores a domicilio, Conozca un nuevo sistema personalizado de clases particulares a domicilio, Profesores particulares a domicilio clases particulares; profesores particulares a domicilio formación, enseñanza, pedagogía, clases particulares de selectividad, profesores particulares, profesores particulares domicilio, clases a domicilio, profesores particulares en Madrid profesores particulares en tu domicilio, espanña, español, europa, curso a distancia.Brindamos Cd, libros y material gratuito. Nos adaptamos a las requerimientos de las empresas. Ello significa que podemos desarrollar cursos a la medida de cada empresa y en la categoría o modalidad que desee. Para mayor información contactar: informacion centroformativointernacional.com,EnClase, red de centros especializados en clases particulares a domicilio para alumnos de Primaria, Secundaria, Bachillerato y Universidad, selecciona profesores de todas las materias y todos los niveles para impartir clases en Las Rozas, Galapagar, Torrelodones, Villalba, Collado-Villalba, Moralzarzal, ingles empresarial madrid,profesores nativos de ingles madrid, clases de ingles a domicilio,curso de ingles en madrid, clases de ingles a domicilio, clases particulares de ingles a domicilio , clases de ingles en madrid a domicilio, cursos de ingles en madrid para empresas,
ingles para empresas madrid, ingles de negocios para empresas madrid, ingles empresarial madrid, ingles de negocios madrid, profesores de ingles madrid
profesores nativos de ingles madrid, curso de ingles en madrid, cursos de ingles y frances madrid , Cursos para empresas madrid, cursos de office Madrid, cursos de office power point Madrid, cursos de office excel Madrid, cursos de informatica para empresas Madrid, cursos de word 2007 para empresas Madrid, formación gratis para empresas Madrid, cursos gratis para empresas Madrid, cursos subvencionados para empresas, ingles de negocios, ingles online, ingles online Madrid, academias ingles online Madrid, aprender ingles online madrid,clases de ingles one to one para empresas.,
Acceso al certificado de español (DELE) para extranjeros
Nivel Inicial
Nivel Medio
Nivel Superior
Artes Audiovisuales
Creación
Curso de escritura creativa (Novela)
Curso de introducción a la escritura creativa
Curso de introducción a la escritura creativa (Poesía)
Escritura creativa (Cuento corto)
Historia
Curso de historia de la literatura española
Curso de Teoría e Historia Literaria
Historia de la Lengua Española
Historia del Arte
Idiomas
Lengua
Curso de redacción y ortografía
Monográficos
Arte y Religiosidad
Fábulas y cuentos populares
Historia de la Poesía
Literatura y Misticismo
Literatura yTradición Oral
Literatura, Arte y Sociedad Española
Pintura y simbología (medioevo y renacimiento)
Preparación para Exámenes
Historia de la filosofía
Historia del mundo contemporáneo
Lengua española
Literatura