18

I was talking to a younger cousin and he expressed a desire to start programming. I was unsure what to tell him, as I started when I was very young on a BASIC computer.

He's over 18, and I always feel that people who are meant to program start young or have an interest from a very early age. I told him so, but I am not sure if I dissuaded someone who has great potential.

What do you think?

25

Age does not matter that much ; I know good programmers who started programming when they were more than 30 years old ^^
(Mostly because they changed job and were doing something totally different before)

Even when programming is seen as a passion, and not as a job, there is no "ideal age" to begin ; even if many of us started when we were quite young...

Maybe we are more capable of learning new stuff when younger, though... But it doesn't prevent people a bit older from learning too !
And that's a good thing :-D If we were becoming stupid or stopped learning when we reach 20... ergh !


And, I think, it's probably more a question of "ability" than age : I mean, there are people who will never become good developpers (like for any other activity/job), and there are people who will immediatly get to whatever programming-related stuff you throw at them.

7

Age has nothing to do with science!

5

As with most things, the more time you spend developing a skill and the earlier you start developing it the better you will be. However, the human body and brain are capable of amazing things, even into old age. I think individual passion and commitment has A LOT more to do with it then age.

4

You never know until you try, and he probably won't kill anybody (although I once had an experience with a programmable baseball-throwing machine and a little-league field that suggests the chance of that isn't 0%).

3

I'm 45, and there wasn't even a computer in the highschool where I graduated. Plenty of programmers my age or older had to have learned later than childhood. So it's certainly possible. And in the case of younger folks, with regard to interest or not as a child - depends on what you get exposed to, which you have little control over at that point in life.

Editing to add these examples:

In "Stiff asks, great programmers answer," to the "How did you learn programming?" question, the following gave answers indicating they learned in college:

Dave Thomas (author: Pragmmatic Programmer, Programming Ruby)

Guido Van Rossum (Python)

Bjarne Stroustrup (C++)

Tim Bray (XML and Atom)

See http://www.stifflog.com/2006/10/16/stiff-asks-great-programmers-answer/

Editing again to add one more, a quote from Brian Kernighan (the K in K&R):

"It's true that I started working with computers probably in the mid to late sixties, when things were fairly early on, and it was entirely by accident. I think I saw my first computer in 1963; it was an old IBM 650. I didn't do any serious programming until in 1964 when I was in my last year of college."

See http://www-2.cs.cmu.edu/~mihaib/kernighan-interview/index.html

3

18 is close to be too old for starting ;) I'm kidding a little. But many of my developpers friends and I started at 10 or so. I also met people in their 50's really motivated and interested by the concept. And they did wonders.

But as for anything, children learn faster than adults. In any subject.

2

It really has little to do with age. I mean, if you are already familiar with some concepts of programming it makes it obviously easier to progress. The problem with learning things at a young age is that they are more difficult to understand (you might quit too early) and you are more likely to have gaps in logic.

Nevertheless, 18 is not that old. I am 20 now and even though I have been programming since a young age (12 or so), the majority of what I have learned about programming has been in the last two years since I have been able to comprehend concepts easier and have more motivation.

2

I first started to learn OPL programming (like BASIC) on the Psion when I was about 10. I have only been programming seriously since I was about 14/15, and to begin with, that was PHP. I have since dabbled in Ruby, Python and C#, and now I am up to my neck in C++.

I don't think you need to start coding while young, but it helps. Trying lots of different languages has given me a large understanding of different techniques and syntaxes. I am also very happy to learn something new if it might be a better choice. If you learn to program as an adult, I think you may end up starting with one language and wanting to stick with it rather than giving alternatives equal consideration.

2

I've taught several star programmers who didn't discover computing until college—they were more interested in physics or math or whatever, until they discovered computing. Children may learn faster, but young adults have more focus and staying power. Tell your cousin to go for it.

2

Edit: E. Dijkstra started out with Theoretical Physics, but decided he liked computer science better. I'd say there's always hope, to even be a well known programmer. Still the earlier the better.

18 is certainly not too early to learn and if he has a genuine interest not too late either. The way the computer world is today computer programming almost always requires an effort be made by the person wishing to learn. It's not like the old days where the default interface was the "Ready" prompt, so I wouldn't hold it against him not learning before now. In the 80's kids used the computer's more than the parents. Now the parents are often afraid to let the kids "play" on the computer because the OS is so fragile that an uninformed user can do real damage. (That's not assuming the parents aren't uninformed, but paranoid regardless.)

The younger they learn the better. I think of it like math, you wouldn't wait till college to teach a kid addition and subtraction if he was going for a math degree. But that's what we do with computer science due to the fact that the education system is ill equiped to introduce kids to computer programming because it's yet another discipline for the already overburdened educators to learn. The result is at the same time you're learning Calculus in math, you're learning your basics in computer science.

What we lack today is a ubiquitous language on a unbreakable OS. We went from an industry in the 80's where you turned it on and it just worked, to an industry today where just using a computer normally can "break" your OS. (i.e. Internet based spyware, viruses, worms, trojans and general crap-ware.) We need to take a more "consumer electronic" approach to computers today. They need to "Just work" without require regular tech support.

1

It really depends on the person. While it is true that many "super programmers" start young there are plenty of examples of famous programmers who didn't start till their 20's.

1

I don't feel that you have to start at a young age to become a good programmer. To become a great programmer, one that really makes a mark on the computing world, then maybe, but decent enough to make a living out of it, hardly.

It all comes down to having good logical skills and be able to interpret and dissect abstract problems. A structured approach coupled with patience and a desire to always strive to become better and testing your limits also helps.

I didn't start to program much until my CS degree. After that I do a lot more programming. Just because someone starts to program young doesn't make him a good programmer. He can still write bad code or code that no one else will be able to maintain. I also find that self-taught programmers often lack the will to document their program and approach, but this is a wild generalization.

1

It may have been true, when you started programming, but today you can start very late and become good anyway. Expectations to a software developer are different today than it was back in the old days, and they will further change in future.

My impression is, the expectations and knowledge required is generally lower due to better development tools and different project setups. Someone who didn't show any intentions in logic and mathematics before 18 will very likely not become a kernel developer or programming sientific software. But there are very few such people required, and he might become good and useful in SAP or something similar.

1

I started programming when I was around 16 yrs old and I could probably have started a lot earlier (since I was 4 yrs when I started playing computer games). One of my colleagues started when he was 7 and he did some programming on a Commodore 64.

You're never too young or old to start learning programming. It's all a matter of aptitude instead.

1

I started at a very, very young age (my grandfather was something of a pioneer, I guess). The one thing I think it did for me was help make me unafraid to experiment.

1

G'day,

Don't let age limit yourself. I've met lots of great programmers who didn't get into programming until later. As well as having to endure those with vastly elevated opinions of themselves based on the fact that "they've been coding in their bedroom since they were 11".

It's more a question of mindset rather than age as to whether you should start coding.

As Declan, a colleague, would say, "reality trumps documentation!" (-:

There are lots of good books out there about starting to code in various languages, currently in favour, so don't limit yourself to VB which will, in all likelihood, stifle future possibilities.

One excellent book is "Learn to Program" by Chris Pine (sanitised Amaozon link) which throws you into coding in Ruby.

There's also an excellent book about learning to code using Python called "Practical Programming: An Introduction to Computer Science Using Python" (sanitised Amazon link)

I'd tend to steer someone away from VB and get them started using a language that can scale to their ambitions.

BTW Though thes books are both from "The PragProgs", I'm not associated with them in any way. I just enjoy many of their books, but pity about the prices though.

I can understand new books being charged at a premium, but still charging $40.95 for their "The Pragmatic Programmer" book after nine years, without any form of update?!?!

If they want to get their very important message out, and it's a great and timeless set of messages in fact, I would've thought that they would:

  • update the book, or
  • reduce the price to make it more available to spread the word.

Jees, "Code Complete", my other "go back to read every bits now and then" reference book, has been updated by Steve McConnell. And! It is still cheaper than the 1999 Pragmatic Programmers book!

Naturally IMHO.

HTH

'Avahappy,

1

I read somewhere (And Wikipedia concurs, so it must be true!) that it takes 10 years to really master a new skill, any skill. So, people who start at a young age, and apply themselves to mastering that skill, will be an expert at a young age.

I don't think 18 is too young to start programming. But your cousin should be aware that it will take 10 years of dedication for him to become a great programmer :).

If I might also suggest a place to start: Chris Pine's Learn to Program is truly excellent. I've used it in a programming course for beginners that I taught at work, and it worked really well.

1

I started at the age of about 14 and a half (I'm not entirely sure when exactly), but I think, that you can start at any age. Programming is like any other thing, if you can learn it, and develop a feeling for specific things, why shouldn't an 18 year old or for the matter 30+ year old start programming? I don't see a difference, except for maybe that the earlier starter has a better intuition of some things, but that shouldn't be a problem either. Programming is a profession which also needs evaluation of others in my oppinion.

If he can get a feeling for it, why not? If he doesn't like it, he will stop doing it on his on anyways.

1

How young is young to begin programming?

I'd like to refer the Light-Bot as an example.
This is an excellent game that can be used
right after children understand basic strategy and
can drag-and-drop with the mouse.

  1. Start with such games as early as you can
    Use them to identify when to move to the next stage
  2. Then, work with educational languages for real programming education.
    (that superuser question reference has another Light-bot admirer, and another here).
  3. Let the person learn programming on their own after that
    Beyond a point, you cannot teach, only mentor (those who listen).
    This could very well mean the person will leave mainstream programming and
    choose some other discipline. Which is fine.


A like-minded blog post describes,

Light-Bot is a good pre-introduction to imperical programming, and it does of good job of teaching people how to use Functions, and it also demonstrates why Functions are useful. It doesn't use conditionals, control loops, variables, or parameters, but one could imagine an advanced version of the game that did. Light Bot is a successful casual game by Coolio-Niato, sponsored by Armor Games. It probably didn't set out to have much educational value. My guess is that the creator just realized that programming a robot would make a fun game, and learning some basic programming concepts was a side effect. Our challenge as educational game designers is to get the same outcome, but from the other side. You know what you want to teach, but how to you make that fun?


Another local reference:
Best ways to teach a beginner to program?

I am currently engaged in teaching my brother to program. He is a total beginner, but very smart.

1

Age isn't what matters, what matters is number of years experience and the quality of that experience. I have been involved in interviewing and hiring developers for a dozen years and it has not been the case that someone with 10 years experience at age 30 is less effective then someone with 10 years experience at age 25.

1

Regarding your specific situation, age isn't important. Here's what matters: If you tell him not to do it, and he ignores you and does it anyway, he'll be just fine. If you tell him to do it and he does it on your advice rather than for himself, he'll fail. The best favor you can do is encourage him to give it a try and make up his own mind.

In the more general case, I think it's useful to be exposed to programming at a young age (I was) but far from critical. I've known a number of great programmers that didn't start until their 20's (e.g. in grad school). When you get into the upper college CS courses, a lot of the material requires a fairly well-developed analytical mind, at which point "programming" is a means to an end, a tool you apply to solve complex problems.

1

Rule of 10,000. It takes 10,000 hours of doing just about anything to be truly proficient at it. If you start younger, it's easier to get to the 10,000 hour mark.

But, 18 is not old by any stretch of the imagination. If you've got a passion for programming, you can clearly become a world-class developer no matter what age you start.

What's going to matter most is how much you want to do it. If you love software development, and do it in your free time, above and beyond class requirements, you will do well. If you do the minimum possible, and cribs SO for homework solutions, you will fail.

I think the real advantage of starting young is free time - without a family or job to deal with, it's much easier to put in the requisite hours to get something truly burned into your brain. But, on the other hand, look at people whose time in-game on MMOs is literally measured in terms of years - a single year, 365 * 24, is nearly 10,000 hours by itself.

0

As a programmer you are pretty much finished for original tight high quality code by 35 years of age. High School, college dont matter to a real programmer, just manuals, specs, and such.

He or she must have access to material to learn to read and write techincally, but beside that a programmer needs nothing till they are richer than heaps and over 35. Then they can retire, hire a wife, get fat and perhaps buy a friend or two.

A programmer makes a great father or mother since they hate tv and computers and love nearly everything wonderful in the world.

My advice, no age is too young. Tie them up and make them code at age 3, let them out when they can afford to pay you off fo being their parent with a home and lifetime anuity.

Dont let them get fat. Fat programmers only get fatter and fatter since they never move. One thing you can do them a solid on. Dont feed them anything unhealthy and only once or twice a week.

0

In general I'm in favor of starting young because it helps children develop critical thinking and logic skills which they often don't get elsewhere.

Does it actually make them better programmers in the long run? Maybe or maybe not.

Do you need to start young to be good? Definitely not.

I think the answer has changed drastically in the last 10 years, though. For folks in their 40s now, starting to program when they were kids would've been nearly impossible given the technical difficulty and cost. For someone who's in their teens now, they've had the opportunity to use computers since before they could read. Oh what a world we live in!

0

I think that those who find an interest in this from a young age should start, and see where it leads them.

I have a personal experience in this matter, because I am currently 12, and am very interested in C#, as well as some other languages. I feel that children who are exposed to and feel the wonders that exist in programming will be motivated to learn it at a young age, as I was when my father taught me basic VB6 when I was 7. There are multiple ways to interest kids in this, such as with programming games like Robocode (for Java), or one of the multiple programs that Microsoft has to get children interested.

I think that you should encourage your cousin to try programming, beginning with some simple but fun activities or games that involve this.

0

I've read in the preface of one of his books that John Robbins (Bio) was a Green Beret before he started programming. So even if you come from a completely different background you can become a very successful developer if you're smart enough.

0

Tell him to stay clear of programming, it's a dead end. Select a career where you become more valuable as you gain experience, not less valuable.