Son wants to be a computer programmer

todpod

Golden Member
Nov 10, 2001
1,275
0
76
He is 13, I have programed a little Basic and Cobol when I was in college. We are running ubuntu. Anything simple to learn for him, is Basic still around anywhere, to just give him a taste of what it is. Thanks
 

bobross419

Golden Member
Oct 25, 2007
1,981
1
0
perl is great. You can easily make simple and completely functional scripts or make full fledged programs.

I'd also recommend searching this subforum for "kids programming" or some such because this question seems to come up every few months and many, many suggestions have been presented in the past.
 

douglasb

Diamond Member
Apr 11, 2005
3,157
0
76
I would point him towards Java rather than BASIC. The only BASIC that is still around and viable is MS Visual Basic, which is for Windows.

Java is a member of the "C" family of languages and is platform-independent, meaning it is pretty much exactly the same whether on a Mac, Windows PC, Linux PC, smartphone, etc. Also, Java might not be quite as simple as BASIC, but it is still pretty simple, and what he learns in Java can be will still be relevant if he decides to keep programming and learn C/C++/C#.
 

trexpesto

Golden Member
Jun 3, 2004
1,237
0
0
I found python to be the easiest language to pick up, with a naturally gradual transition from command line to a simple IDE (Idle), and some very accessible libraries for further amusement (pygame). It's fun but I am glad that it's not the only language I know!

If you think they might stick with it, it has been stated that it's better to learn a more strict language initially, to enforce better understanding of underlying factors, and to avoid acquiring some bad habits. Most often one sees suggestions to learn the relatively abstract languages C++ or Java, as opposed to the more fundamental,"low-level" C.
 

TecHNooB

Diamond Member
Sep 10, 2005
7,458
1
76
I found python to be the easiest language to pick up, with a naturally gradual transition from command line to a simple IDE (Idle), and some very accessible libraries for further amusement (pygame). It's fun but I am glad that it's not the only language I know!

If you think they might stick with it, it has been stated that it's better to learn a more strict language initially, to enforce better understanding of underlying factors, and to avoid acquiring some bad habits. Most often one sees suggestions to learn the relatively abstract languages C++ or Java, as opposed to the more fundamental,"low-level" C.

can a person learning C on a C++ compiler even tell the difference? you will essentially have to learn C before delving into the C++ stuff, but might as well throw it altogether.
 

Ken g6

Programming Moderator, Elite Member
Moderator
Dec 11, 1999
16,637
4,563
75
The problem I see with Python and most other languages on Ubuntu is that it's hard to make graphics. ("cool pictures") I know how to make a GUI in Java, and I could probably manage something in a web browser in Javascript; but neither is anything like QBasic. Or the old Borland C/C++ for that matter.
 

velvetpants

Member
Aug 29, 2009
72
0
0
Java or C# will melt his brain.

Really though, most people here are just gonna suggest their favorite language. Take every suggestion with a grain of salt.

Actually what language he learns first isn't the most important thing as long as he's learning proper programming practices and doesn't just accept that "this works because it works" but digs a little deeper.

I think python is a good start. High level and dynamic, easy syntax and doesn't force any one paradigm. Can also experiment in the interpreter getting instant feedback which is great for learning and testing things.

After some experience, I think it would be a good idea for him to learn plain old C. Not because of it's performance or anything, but just so he can understand what is actually going on in the background and gets an idea how the computer is processing the code he writes.
 

BrightCandle

Diamond Member
Mar 15, 2007
4,762
0
76
A scripting language which lacks the incidental complexity of the compiled languages is normally what gets recommended for good reason. C#/Java require a lot of tool knowledge to get working with well.

You can't go wrong with Python or Ruby, and both can get to graphics fairly simply with wxwidgets.org. Both have mature bindings for openGL if games programming is something he is interested in. They are good places to start and could carry through to a career. They are the equivalent of basic when I was a kid as they hide a lot of the technical details well.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Ken hit the nail on the head. A kid needs to see something happen when they write a program. Draw an image or a line, print something, etc. I wish I knew what to recommend. Its not like the old days when all you needed was a BASIC interpreter. With one comprehensive tool like VB or Eclipse for Java, and a little coaching, you can probably come close.

Anyway, if he's meant to be a programmer, and he has a computer and an internet connection and some encouragement, it's very likely he'll find his own way.
 

AKShockwave

Member
Oct 4, 2011
29
0
0
I'd recommend Visual Basic because it's probably the programming language most like normal english, and it's super easy to learn.

But you're on ubuntu and I'm not sure if you can get vb on that, so I don't know. A lot of people tend to say python is a good language to start with, but I've never tried it myself.
 

AyashiKaibutsu

Diamond Member
Jan 24, 2004
9,306
4
81
Haskell or go home imo.

Seriously though I'd go c# or java. If you think he'll really stick to it maybe start him out with c++.
 

kevinthenerd

Platinum Member
Jun 27, 2002
2,908
0
76
My programming upbringing evolved through GWBASIC, QBASIC, DOS batch files, QuickBasic, VB (1,3,5,6), Borland Turbo C++, and VBA. (In the last few years I've also gotten into VBS, PHP, Oracle PL/SQL procedures, MySQL procedures, and Java.) I learned the hard way that while BASIC is a great language for non-professional or casual programmers with a gentle learning curve and simple syntax, it can teach you a lot of bad habits. The object model sucks, and I can't believe "Option Explicit" isn't turned on by default in VBA.

Personally, I'd go with Java. It's modern, widely used (in 3 billion devices), high enough to be ADD-friendly, and low enough to teach important concepts.
 

Broheim

Diamond Member
Feb 17, 2011
4,587
3
81
go with Java (because you're running Ubuntu), it's easy, it's cross platform and it's a breeze going from java to C# and easy-ish going to C/C++ (Java, C# and C/C++ are the most important highlevel languages today).

BTW: start out in blueJ and greenfoot if you go with Java, BlueJ will simplify things at first and was specifically designed for beginners, Greenfoot will help visualize things and give him an understanding of classes, objects and methods.
 
Last edited:

houe

Senior member
Nov 10, 2005
316
0
76
I would prefer regular C to Java, C++, or C#. In a lot of ways it is a subset of the others and in my opinion would be much easier to learn instead having to deal with the abstract concepts of object orientated languages. Grab the K&R C programming book and go to town. You will begin with the well known "hello world" program and go from there. There may be a better option than C but of those 4 my vote is C.
 

trexpesto

Golden Member
Jun 3, 2004
1,237
0
0
The problem I see with Python and most other languages on Ubuntu is that it's hard to make graphics. ("cool pictures")

Python is a bit different than Java, with many common packages maintained outside of python itself.
So, pygame.org: Yes, you can make some pretty cool pics with python-pygame. There are even OpenGL bindings if you want to get chic.
http://www.pygame.org/shots/1867.png

Here are the Ubuntu pygame packages:
http://packages.ubuntu.com/cgi-bin/...rchon=names&subword=1&version=all&release=all
I'm not sure what is the right version of python for it - I use MS Windows and they are still recommending an older version of python for Windows: 2.54
 
Last edited:

Demo24

Diamond Member
Aug 5, 2004
8,356
9
81
Actually I would suggest something even more basic, like HTML. This primarily for 2 reasons. 1) It is simple to learn and implement, plus it is very easy to see the results of that coding. 2) This will give him an idea if programming is still a good fit for him. I would hate for him to take up some other language and get frustrated with it and then give up on the whole idea.

Java is good as well, but judging by the number of people struggling somewhat in my college level class I would imagine that you may need to help him with it to fully grasp it. Or, he just may really get it and have no problems.
 

piasabird

Lifer
Feb 6, 2002
17,168
60
91
HTML can be very interesting because there are many tutorials online and it is just basically a text file that can be created in Notepad.

Try looking around this website for web page programming:
http://www.htmlgoodies.com/

Something like C Programming would be a good start. The Reason I say that is because all the variants of C like C++, C Sharp are built on it. C compilers are probably pretty easy to find for free.

I also like Java because so many books are written on it and you can download the basic compiler without the front end for free. It is very object oriented. Plus Java can easily make a fairly easy user interface. It can be as complex and as easy as you want it to be.

I would even try something like PASCAL. Probably plenty of cheap used books on it. The compiler is not that complicated either. It is surprisingly like C. I used this for a University Level Class along with a very basic low level machine language compiler.

If you really want complicated try programming in Assembly. It can be complicated to program the simplest task like floating decimal point with a dollar sign. something like 8 steps. Assembly makes COBOL look simple.
 
Last edited:

piasabird

Lifer
Feb 6, 2002
17,168
60
91
UBUNTU probably has some compilers built into it or in package form that you can get going like a JAVA or C Compiler. I dont know much about LINUX but that might be a start. Maybe build your own chat interface in Linux.
 

Markbnj

Elite Member <br>Moderator Emeritus
Moderator
Sep 16, 2005
15,682
14
81
www.markbetz.net
Actually I would suggest something even more basic, like HTML. This primarily for 2 reasons. 1) It is simple to learn and implement, plus it is very easy to see the results of that coding. 2) This will give him an idea if programming is still a good fit for him. I would hate for him to take up some other language and get frustrated with it and then give up on the whole idea.

I can't really agree with this. There's nothing wrong with learning HTML, but it's markup, not code. Learning HTML teaches you nothing about variables and storage, declarations and definitions, branching and control flow, procedural and object decomposition, etc. In short, it's not programming.
 

EvilManagedCare

Senior member
Nov 6, 2004
324
0
0
I can't really agree with this. There's nothing wrong with learning HTML, but it's markup, not code. Learning HTML teaches you nothing about variables and storage, declarations and definitions, branching and control flow, procedural and object decomposition, etc. In short, it's not programming.

What about learning HTML & Javascript? This way he could learn concepts related to programming and see some potentially fun effects of his code on his webpages.
 
Last edited: