TechRepublic : A ZDNet Tech Community

Programming and Development

Host: Justin James
Contact

Justin James believes that students who learn some programming skills at an early age will be better prepared for the job market.

———————————————————————————–

One of the often repeated ideas in IT is that domain experts, not programmers, will create software in the “near future.” Those of us in the trenches always laugh at this one, because we know that it isn’t so and won’t be anytime soon. There are two major reasons why.

The first is that we are still barely at a Neanderthal-level of tools when it comes to our technology; we are still essentially painting on cave walls by burning sticks and scraping them on rock. The second issue — and this is the killer — is that so few people have the proper mindset or training to construct software. I think that we can and eventually will have the toolsets needed to make software creation much simpler. But until then (and my guess for this is measured in decades if not centuries), I believe that we need to treat programming as a skill at the same level as mathematics or basic science in our education system.

I am not suggesting putting third graders in front of Visual Studio or Eclipse or teaching them C# or Java; but I do believe that every student should be exposed to enough software development to be able to properly leverage the skills they will be using as adults. More and more jobs involve working with a computer in one way or another, and many applications have a scripting system, an API, or some other way for a programmer to access them. These hooks allow the user to use an application the way they need to, instead of being frustrated that it doesn’t meet all of their needs out of the box. For example, I cannot tell you the number of times someone has complained that Microsoft Excel is “missing” a piece of functionality (like it is not bloated enough) when it would only take them a few minutes to write a macro for it if they tried.

Also, more and more jobs are actually specialized programmer positions. And even if the positions aren’t true programming jobs rooted in a particular domain, an employee will perform much better if they have programming skills. Take a look at this list for a few examples:

  • Mathematician
  • Scientist (well, if not most, many of these positions)
  • Statistician
  • Financial analyst
  • Business analyst
  • Investor
  • Network engineer
  • Systems administrator
  • Engineer (most engineers)

All of these jobs require an employee to work with complex software applications all day long and often do tasks in those applications that are directly programming or close to it.

From talking to my peers, the typical Computer Science, MIS, or other IT student entering college is woefully unprepared. While our school systems claim to teach kids how to use computers and prepare them for a state-of-the-art career, what you see when you scratch the surface are students slapping together clip art PowerPoint presentations or how to find dancing baby videos on YouTube. The students are not being taught how to use or leverage a computer; they are assigned to do tasks on a computer that they would do if they weren’t using a computer.

The first thing students need to learn is how to actually use a computer. This means learning more than how to send an email; it means how to really use a search engine with advanced features, how to use critical thinking skills to evaluate if a Web site is credible, and so on. The next thing students need to learn is how to properly use common productivity applications to truly be productive in them. From there, the students should be exposed to some sort of development.

When I was growing up, it was trendy to show kids Logo to move the turtle around the screen. I was especially lucky in sixth grade because our class had a LEGO set that we could control from a computer (and through Logo, I believe). This was a great experience to whet my interest. Unfortunately, it seems like these kinds of things have fallen out of favor; or that by the time these types of activities are introduced, most students are old enough to think that moving a fake turtle around the screen is cheesy. Teachers should introduce students to programming in the fourth, fifth, or sixth grades. Those students are old enough to “get it” as long as the teacher is sufficiently patient.

From there, teachers need to show students how to integrate programming into their other studies. For example, art teachers might show students how to put together a macro in their photo editing software or even how to write their own filters. Math teachers might demonstrate how to program the calculator to perform common functions, which would really teach the underlying mathematical concepts at the same time. And so on.

There are challenges with this proposed idea. For instance, not every class would be able to teach programming. And, for a variety of reasons, training teachers would be an uphill battle.

Until the vision of “programmers” building the blocks that users can custom assemble into applications on-demand comes true, it will be necessary to start teaching programming to students as early as third grade. There is no denying that programming practice and theory is a major key to being the best at many jobs. So, if we wish to keep making progress, we need to ensure that U.S. students learn programming concepts and understand how those concepts apply to real world scenarios.

Related TechRepublic posts

J.Ja

Disclosure of Justin’s industry affiliations: Justin James has a contract with Spiceworks to write product buying guides. He is also under contract to OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and other articles.

—————————————————————————————

Get weekly development tips in your inbox
Keep your developer skills sharp by signing up for TechRepublic’s free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!

Justin JamesJustin James is an employee of Levit & James, Inc. in a multidisciplinary role that combines programming, network management, and systems administration. He has been blogging at TechRepublic since 2005. Read his full bio and profile.

Print/View all Posts Comments on this blog

Should we teach programming to all students Justin James | 10/02/09
Knowledge can sometimes lead to paradox jslarochelle | 10/02/09
This is true of most programmers Mark Miller | 10/02/09
I think it goes far beyond the software industry Justin James | 10/02/09
incantations Mark Miller | 10/03/09
LOL, yup! Justin James | 10/03/09
Remember the 'Any' key? mattohare@... | 10/20/09
Other discipline would benefit from cross-pollination because ... jslarochelle | 10/04/09
I was talking more about non-programmers with some... jslarochelle | 10/04/09
Hell of a time getting past this... mattohare@... | 10/20/09
"Programming is easy"?? wendygoerl@... | 10/05/09
Well of course it is ! Tony Hopkinson | 10/05/09
It should be easier, but more powerful Mark Miller | 10/05/09
I've seen people do mail merge with it Tony Hopkinson | 10/05/09
The capability of people to do stuff with Excel amazes me jean-simon.s.larochelle@... | 10/05/09
How much power you need? Marty R. Milette | 10/05/09
Not sure santeewelding | 10/05/09
Power in the language/runtime Mark Miller | 10/06/09
@Mark... Marty R. Milette | 10/06/09
Office dev done right, and done wrong Justin James | 10/06/09
@Justin: Didn't use macro recorder Mark Miller | 10/06/09
@Mark - Office manipulation outside of Office Justin James | 10/07/09
Depends on your objective robyn@... | 10/07/09
@Justin: Re: Office manipulation outside Office Mark Miller | 10/07/09
Confusing terminology Mark Miller | 10/05/09
That is not what I was saying (see Mark Miller's post about terminology) jean-simon.s.larochelle@... | 10/05/09
i agree on this matter RookieTech | 10/07/09
Logic FBuchan | 10/02/09
I agree that logic is important Justin James | 10/02/09
Problem, Justin NickNielsen | 10/04/09
I love that kid of evaluation Justin James | 10/04/09
Programming and Maths taught as examples of Logic mattohare@... | 10/20/09
re: Logic DaveSlash | 10/05/09
Why learn logic? wendygoerl@... | 10/05/09
Common Issue gbentley@... | 10/06/09
Be careful, Bentley santeewelding | 10/06/09
Teach them at least HTML / CSS and one OO language powderbearjeff | 10/02/09
Well you are hardly doing them a favour there in terms of learning Tony Hopkinson | 10/03/09
What to Teach edkortman@... | 10/06/09
I don't think so jck | 10/05/09
I disagree here robert@... | 10/05/09
hm jck | 10/05/09
Expanding the thought Mark Miller | 10/05/09
And before OO jck | 10/06/09
That's just my point robert@... | 10/06/09
limiting it to programming jck | 10/06/09
Yep Mark Miller | 10/06/09
The power is in simulation Mark Miller | 10/06/09
Such form santeewelding | 10/06/09
Ever heard of declarative applications development? KK Aw | 10/06/09
Teach English stephen@... | 10/06/09
Kind of agree Mark Miller | 10/06/09
Leave it at English darpoke | 10/07/09
Logical thought is logical thought NickNielsen | 10/07/09
That's just my point darpoke | 10/07/09
Well, as an electronics tech NickNielsen | 10/07/09
Initial, and inertial guidance santeewelding | 10/07/09
Well, now *that's* far more interesting. darpoke | 10/09/09
Why not? eric.nichols@... | 10/06/09
Why not VS or Eclipse up front? Justin James | 10/06/09
How about Dijkstra's Guarded Command Language? robert@... | 10/09/09
Eh, you'd think so, but experience tells a different story Mark Miller | 10/06/09
Two reasons Tony Hopkinson | 10/07/09
Should we teach programming to all students seckel109@... | 10/07/09
Logo Ed Woychowsky | 10/02/09
You know what I see santeewelding | 10/02/09
Please clarify Ed Woychowsky | 10/02/09
Happily santeewelding | 10/02/09
Scotty attitude Ed Woychowsky | 10/02/09
This is pertinent santeewelding | 10/02/09
Mine Ed Woychowsky | 10/02/09
We succeed santeewelding | 10/02/09
Do me a favor... Justin James | 10/02/09
This relieves you santeewelding | 10/02/09
non sequitur Ed Woychowsky | 10/05/09
To which part santeewelding | 10/05/09
:) Forum Surfer | 10/02/09
Don't worry about it Tony Hopkinson | 10/02/09
There's no need for programming as a specialized skill ... jkameleon@... | 10/02/09
Programming can't exist in isolation Justin James | 10/02/09
You can't get that number down. jkameleon@... | 10/03/09
RE: experience wbranch@... | 10/05/09
The fundamentals of programming Tony Hopkinson | 10/02/09
"Less arcane" for sure Justin James | 10/02/09
Depends on what you mean by reduce the knowledge Tony Hopkinson | 10/03/09
re #2 Jaqui | 10/04/09
Very neat! Justin James | 10/04/09
very similar Jaqui | 10/05/09
it is Jaqui | 10/07/09
found it Jaqui | 10/07/09
Very cool! Justin James | 10/07/09
We might boxfiddler | 10/02/09
Good idea (NT) Mark Miller | 10/02/09
Agreed! Justin James | 10/02/09
The purpose of education boxfiddler | 10/03/09
Has it ever been any different? Justin James | 10/03/09
Standardized tests Mark Miller | 10/03/09
Mark Miller santeewelding | 10/03/09
Yes Mark Miller | 10/04/09
Disturbing santeewelding | 10/04/09
Santee Mark Miller | 10/05/09
Mark santeewelding | 10/05/09
"Getting the result" vs. "doing the work" Justin James | 10/04/09
Trying to come up with something better Mark Miller | 10/04/09
My take on education accountability NickNielsen | 10/04/09
A case, Mark santeewelding | 10/04/09
You too, Nick santeewelding | 10/04/09
I would suggest Michael Jay | 10/04/09
And, besides santeewelding | 10/04/09
Ah questions Michael Jay | 10/04/09
Government fails boxfiddler | 10/04/09
Correct Boxie Michael Jay | 10/04/09
Education santeewelding | 10/04/09
Your Objections sboverie@... | 10/05/09
The makings of similar santeewelding | 10/05/09
I would love to do private school... Justin James | 10/04/09
When I went santeewelding | 10/04/09
RE: Vouchers wbranch@... | 10/05/09
Public vs Private sboverie@... | 10/05/09
@Justin: Explaining America and education Mark Miller | 10/05/09
Everywhere! TonytheTiger | 10/06/09
I wish they had TonytheTiger | 10/06/09
Back to the future Mark Miller | 10/02/09
"what the computer is actually doing" santeewelding | 10/02/09
The magic is in us Mark Miller | 10/02/09
Precisely, sir. santeewelding | 10/02/09
No, nobody has Mark Miller | 10/02/09
"a joy to use" santeewelding | 10/02/09
What is your problem? Justin James | 10/02/09
Always Mark Miller | 10/02/09
I understand, Justin santeewelding | 10/03/09
Echoing Jason SirWizard | 10/05/09
And, santeewelding | 10/05/09
By god boxfiddler | 10/05/09
Not a Media gbentley@... | 10/14/09
Computers darpoke | 10/15/09
Mmmm gbentley@... | 10/15/09
Absolutely. darpoke | 10/16/09
Some of those "fundamental concepts"... Justin James | 10/02/09
The reasons I think programming is valuable Mark Miller | 10/02/09
I hear you santeewelding | 10/02/09
The "high priesthood" of computing Justin James | 10/02/09
RE: Dumbing down tools wbranch@... | 10/05/09
Most of the dumbing down is for us not users Tony Hopkinson | 10/05/09
You could make the same argument about almost anything. mlieberman@... | 10/05/09
Most of us were talking about programming Tony Hopkinson | 10/05/09
Computing = thinking about systems Mark Miller | 10/05/09
But do kids REALLY want learn? kevaburg@... | 10/05/09
what about teachers Derek Schauland | 10/05/09
Too deep, too broad, and too specific Tony Hopkinson | 10/05/09
That could be the point kevaburg@... | 10/05/09
You don't want programming languages on the Tony Hopkinson | 10/05/09
I disagree Dukhalion | 10/05/09
RE: Why we should teach programming to all students cnorisez@... | 10/05/09
Diagree. Teach it to those who wants to be taught ogregator@... | 10/05/09
Not So gbentley@... | 10/14/09
The problem is the Student Attitude. jedmunds | 10/05/09
I wish I could agree but I've met far too many Tony Hopkinson | 10/05/09
The fundamentals santeewelding | 10/05/09
RE: Why we should teach programming to all students shearsl@... | 10/06/09
Why should we teach programming to all students? TonytheTiger | 10/06/09
I agree - and Don't forget the "creatives" Danny_Graham@... | 10/06/09
RE: Why we should teach programming to all students Bronte G | 10/06/09
I don't agree JosB | 10/07/09
No we should not jlanus | 10/07/09
That would be a neat trick Tony Hopkinson | 10/07/09
That's how you get bloat Justin James | 10/07/09
And then features "go away" Mark Miller | 10/07/09
That's how you get bloat jlanus | 10/09/09
And That Means.. gbentley@... | 10/15/09
I don't care how many times santeewelding | 10/15/09
Unfortunately people keep confusing simply with Tony Hopkinson | 10/16/09
That would be a neat trick jlanus | 10/08/09
Probably about 80% yes... Tony Hopkinson | 10/08/09
I thought we already did this... Mark Miller | 10/07/09
I thought we already did this... jlanus | 10/08/09
No, no, no, no, no NO!!! Tony Hopkinson | 10/08/09
Yes, yes, yes, YES!!! jlanus | 10/09/09
That's even more off topic Tony Hopkinson | 10/09/09
There is more to it jlanus | 10/10/09
Well Alan Cooper was a good choice to write that Tony Hopkinson | 10/10/09
This, then santeewelding | 10/10/09
Me? Tony Hopkinson | 10/11/09
I thought we already did this... jlanus | 10/08/09
Slightly off topic darpoke | 10/07/09
General computer usage resources Justin James | 10/07/09
Abstract concepts Mark Miller | 10/07/09
Hands on jlanus | 10/08/09
It's a bit weird darpoke | 10/12/09

What do you think?

White Papers, Webcasts, and Downloads

Recent Entries

TR on Twitter

Archives

TechRepublic Blogs



Quick Reference: Linux Commands
Reduce stress and speed up resolutions with the easiest command references right at your fingertips. You'll receive a PDF file covering Linux, packed with the most common commands you'll need and use daily.
Buy Now
500 Things Every Technology Professional Needs to Know
Did you know Microsoft's RegClean does not work with XP but you can use shareware to clean your registry? Did you know most wireless access points don't have encryption enabled by default? Did you know there are 500 tidbits of information contained in TechRepublic's 500 Things Every Technology Professional Needs to Know that will help you become a successful IT professional.
Buy Now

SmartPlanet

Click Here