Share This Using Popular Bookmarking Services

Google ads


network monitoring software

Programs & websites tailormade for you.

"My child wants to become a computer programmer - how can I help?" 

Thursday, December 09, 2010 9:44:00 PM

That it a question I have now gotten a few times from parents.

If the child is still in school, I would first of all advice that he or she studies English on as high a level as possible (I live in Denmark, where Danish is our natural language, and in some schools I think they still learn German before English), and that your child reads and practices English as much as possible. Subscribe to some computer magazines in English - once the child is good enough in reading English - so he can practice the language in the field of his or hers interest.

Then figure out if University education require a certain grade level, and make the child aware of it: That grades are needed to reach his or hers goal.

In my own case, I never had any problems with the later years of my school education, but I also never had any interest in getting good grades, so it came as a chock to me to discover that Universities would disqualify me because I did not care much about Geography and other not-computer-related classes!

Also if you have a study advisor at school, be aware that they do not know the future, and it is far more rewarding to study what is one's interest than it is to study something "because there will be good jobs available in 5 years."

Again in my own case, my study advisor in 1988 said that it was stupid that I wanted to study computers, because in a few years the big companies like IBM would have written all the software that was ever going to be needed, and shortly after that the computers would be so intelligent that you could just ask them a question and they will perform it... Right... A few years later they said it might take 10 years before computers are intelligent, and the latest estimate I heard was 50 years, so if the trend continues then in 50 years they will say that it might take another 1000 years before computers are intelligent!

And the way the development in computers is going now, there is coming more and more systems that are so complex that programmers become specialist in specific languages, platforms and systems. In other words: You might choose to study the wrong speciality in computers, but if you have a basic knowledge then you can always re-educate yourself in another speciality and cover more types of work. And with more and more complex systems, the world is going to need more and more specialists, plus the generalists that can bind all the things together in sales-worthy packages.

The key point is: You can always study computers and there will always be new areas that need programmers or specialists!

The basics of different computer languages can be learned from books borrowed from the library - read several of them, ignore the shitty books (there are plenty of smart-asses who writes officially looking books without giving a proper explanation of things) and buy the best one as a future reference.

"C++" is a good choice of first language to start with, as it contains the basics of most of the modern principles and good practices, and many newer languages is in one way or another based on it or related to it. And for that language you should read the book by Bjarne Stroustrup - as the original implementor of the language, he is the best person to explain it so you get all the details and background (and yes, I do think he is Danish).

All major platforms have lots and lots of free information available on the Internet, just made for new programmers to learn their language and system. Linux comes loaded with all the needed development tools a new guy might need, and even Microsoft have free versions of their development tools that you can download on the Internet. So the information is there to study and practice, no matter if you go to the University or not.

Choosing if you want to make websites or programs (games), and choosing if you want to be a Windows, Macintosh or Linux man is the hard part (which platform gives the most future or is the most interesting to work on), but I think it in the end is more or less random, depending on who you know and what equipment you have at home. People might strongly (almost religiously) defend their choice as the best one, and I myself cannot confront to "start all over" by studying Macintosh computers, so I stay on the Windows platform I know (and love) - but I am not blind to the fact that it is more based on habit, a secure job and that it takes time and experience to become equally good on a totally different platform.

Another key point is: Only those who continues to study by themselves will succeed!

Computers keep evolving, so you cannot go to a school to study and then use that for the rest of your life. In two years you would start to feel outdated, and in 5 years the programs you once wrote might no longer work because the computers have changed too much!

I started by referring to your future programmer as "your child" - but he or she really need to stand on his or hers own feet, and use his/hers own interest to seek out information and learn. English is just the basics, and University is for learning the boring parts of computers that you otherwise would not bother studying - things you did not know would be valuable to know, but which comes in very handy later on. (Of course some find, that those parts I think is boring, is absolutely exciting and makes it their speciality.)

So I should drop the "child" reference.

Just support your own young boy or girl in becoming their own master, to find their own information, to think and evaluate information themselves based on facts and not stupid/opinionated advisors (including yours truly), and to come up with their own solutions to their problems.

If they do that, and chooses computers as the field to study, then they will be all right.

Actually, doing that they will probably do all right in any field they might choose to pursue!

Allan K. Nielsen, Kindbergs Program Udvikling
Tweet This