Posted
by
timothyon Saturday January 07, 2012 @10:33AM
from the nostalgia-works dept.

An anonymous reader writes "With poor IT teaching putting kids off pursuing a career in the computing it is time to look for a new approach. Taking kids back to the time of computing pioneers like John Von Neumann and the first machines — the likes of the Z3, the Eniac and the Colossus — would both inspire them and help get over the fundamentals about how computers work, argues silicon.com."

Because there's nothing more that kids love more than history lessons.
Seriously, most kids have access to a computer these days. Those with the interest and aptitude will find themselves in the industry or academia, more likely through gaming than through history.

EXACTLY! The way to get kids interested in programming is to encourage curiosity -- give them the code to a simple video game (tetris? Space invaders?) and let them tinker with it.Nibble & Byte magazines used to list page-after-page of source code for Apple][ games. Typing that in, debugging the inevitable mistakes, etc. are good practice! Or show them the amazing old BeagleBros. 2-liner programs.

In my own experience, a good coder understands everything from the fundamentals up to the high-level algorithmic concepts. If motivation is not an issue, then teach him Assembly first. He does not have to write a bootloader, but he should understand how a CPU does mathematical and logical ops, movs, jumps, stack etc etc. Don't spend too much time, and use an emulator such as Easy68K or SPIM. Then you can move on to C, which is where he can have a bit more fun writing text-based programs, or even something curses based. Make sure he understands how C gets translated to Assembly that you taught in the previous lesson. Then you should move on to higher level stuff like Java, which is easy to learn and shows that compilers and languages can take care of the more mundane stuff such as garbage collection. Then you should expose him to functional languages such as Erlang (to start, easy to learn and has cool features), then Haskell or OCaml or SML. This builds up a chain from low-level all the way up to the most abstract high-level. I consider scripting languages to be something that should be learned after all of the above, since they are simple tools that can encourage bad practices.

Once your brother has exposure to all possible levels of abstraction, he will have a clear idea of what he likes, and will pursue his passion. He may become a low-level assembly geek, or a complex abstract algorithm thinker. The most important thing is to show him everything that can be done, and let him choose.

This is similar to how I learned programming, although after learning Assembly I was pretty much self-motivated. Also, nothing gets you to understand unix better than a couple of good books, a weird non-x86 box and install CDs/floppies of NetBSD (or whatever floats your boat).

Godspeed, and may you create another intelligent professional that the world will always value.

The reason people are leaving IT is because the job opportunities aren't there. I'll say it- outsourcing and H1Bs in the US and similar measures in other countries. .

How long does it for word from the older brother / friend to the younger brother / friend that the career choices aren't there and they should major in something else?

How rampant is age discrimination in IT?

When the boom hit in 1990s , people poured into IT because of the job opportunities. If this thesis is to believed , it was because the teaching was somehow better back then and today it's gone downhill, so people are leaving.

Nice try. It's all about the economics of being a software engineer. The two things that have changed those economics are
1) oversupply of labor through the devices of outsourcing and false claims made by corporations of desperate IT labor shortages coupled with lobbying Congress to increase, or make unlimited, the number of visas available for IT workers.
Software patents which stifle innovation and curtail opportunities for programming entrepreneurs.

The fact that both of these policies give unnatural leverage over marketplace dynamics to large corporations who in turn fund the re-election campaigns of the lawmakers who pass these laws means means... everything.

The free market is a great thing until it works to drive up wages for workers. Then it's a tragedy of epic propositions and someone somewhere has to do something!! That someone is generally your senator.

I guess it's my bias, but I don't put a lot of stock in certifications and those you listed have nothing to do with programming. Certifications show that you know how to use the technology du jour but don't demonstrate that you have a fundamental understanding of how computers work. I'd also be suspect of a degree program that focuses on.NET or any one particular framework.

When I'm looking to supplement our staff, sure I'd like to have somebody who's experienced with the technology we're using at the moment. At the same time, I'd take a clearly talented C++ developer whose never written a line of Java in his life and who really wants the job over somebody who is competent with Java but otherwise nothing to get excited about.

Good programmers are good programmers regardless of language and they should be able to easily pick up new ones.