Which programming language to learn first?

Created by Peter Kankowski
Last changed
Filed under General

Share on social sitesReddit Digg Delicious Buzz Facebook Twitter

Discussion: the first language

Poll results: Python - 24%, C - 23%, Basic - 10%, C++ - 9%, Java - 7%, Lisp/Scheme - 7%

What programming language should be learned first? And what was your first programming language?

Some articles on the topic


What are the criteria for choosing the first programming language? What language would you use if you wanted to teach programming to your kid? Why? And what was your own first programming language?

Your feedback is welcomed. Please use the comment form below.

Peter Kankowski
Peter Kankowski

About the author

Peter is the developer of Aba Search and Replace, a tool for replacing text in multiple files. He likes to program in C with a bit of C++, also in x86 assembly language, Python, and PHP. He can be reached at kankowski@gmail.com.

Created by Peter Kankowski
Last changed


Ten recent comments are shown below. Show all comments


Programming is never easy.

Learn the most complex high level language.

then go for most complex low level language.

Simplicity never precedes complexity.


Lua, by a wide margin. (www.lua.org). I taught the language to undergrads in an African country in a week. The most readable scripting language, and the fastest, too (www.luajit.org!). And, importantly, a language operating by the principle of 'least surprise'.

Marco van de Voort,

My first language was Basic V2 (C=64), then C=64 asm, short time QB then TP. Still mostly Delphi programmer, but I do C/C++ too.

Given that history, my suggestion is predictable, but admitted, depends on target.

Testing a young kid's interest in programming? Then something scripting and visually appealing.

However once it goes in the direction of a more formal CS education, I like Pascal. (and then a procedural one). Simple syntax, string management and little boilerplate code

for a minimal program. Easy upgrade to C/C++ later.


My first was Python. It's actually still my favorite(along with C++).


Python is my favourite language by far, but I wouldn't be able to do half the things I can do in Python if I didn't know C. So my vote is learn C first, because almost everything else is written using it, in particular most compilers, BIOSes, operating systems. Some time or another you'll have to use it so why not start with it?


I used BASIC at first, and it is not bad actually. However, for many programs, C is a good idea, and you should learn C too.


As an introductory language I go with Python, but for professionals C is a must. As someone who interviews candidates for junior developer positions it is worrying to see that most newly graduated are seeing JVM as the "native" language of the CPU...


C, PHP, Javascript - relative languges start from it.


I see a lot of people advocating to learn complex difficult languages first. I do see why they would advise this: it's all downhill after that.

But learning to code isn't just for the hardcore CS people. Coding is a useful skill regardless. So if you want to learn to code, don't be intimidated. You don't have to choose a difficult language to start with. Choose the language that you WANT to learn, that is best for the problems you want to tackle . I would say that languages that are light on syntax like Python are a great place to start. You can always learn more difficult languages later if needed. And you previous experience will make it easier.

Andy Pagin,

I still believe you can't beat good old fashioned B.A.S.I.C, such as I used on CP/M based machines, the BBC micro and Sinclair computers in the early 1980s. You can get across the principals of programming easily because you need to learn very little before you can write a workable program, important with a child's short attention span. Once they understand just a handful of command and the extremely simple syntax they can let their imaginations run wild, while you sit and watch from a distance.

My first language? BASIC on a CA SuperboardII.

An older kid at school told me to type in...

10 for n = 1 to 10
20 print "Hello World"

30 end for

"Er, now what" I said.

"Type run" he said.

I did, my jaw dropped, I was instantly hooked, and after thirty five years as a analyst/programmer I still am!

Your name:


Please ignore this field: