What is The Best First Programming Language For New Programmers ?
Posted by Spyros in General Programming, tags: begin programming, computer programming, first language programming, first programming language, how to program, new programmers
This is a question that i am being asked quite some times and i thought that it should be nice that i write some things based on my experience, since it could help many new programmers.
My first programming language was C++. I remember taking a steep path in learning C++ and had very many difficulties in the process. Some people suggest that learning C++ or Java as a first programming language is a good choice. However, i tend to disagree.
In my opinion Java’s syntax is somehow complicated and the fact that classes are everywhere is a drawback for the new programmer. C++ seems a better choice since it has some clean syntax and there is no need to use classes for someone who starts learning it. I admit that C++ is probably a kinda nice starter’s pick but i also find that there are some disadvantages with C++ too. For instance, if i was a first time programmer i would find it A LOT easier to code in an interpreted language and not a compiled one. The compilation process is somewhat messy and most times needs complex editors like visual c++ and the likes. Moreover, C++ is strictly typed, meaning that you have to initialize everything you need to use under a certain type. To illustrate, you cannot do something like ” x = 3;” if “int x;” is not defined before.
For the reasons mentioned above, i believe that Java and C++ are not so good choices for a first language. I’ve certainly not programmed in every language available out there
, but since i am a professional programmer, i happen to have used some of them. Some time ago, a friend suggested that python is a great language that i should take a look at. Indeed, i took up some projects with python to find that his saying were really true. Python is the only language since today that i really enjoyed programming in.
Some of you might be a bit doubtful, but i can assure you that once you learn python, you’ll understand thoroughly what i say here. Don’t mix Python with Perl though. They are completely different. Since Python has a greatly clean syntax, it’s a great language for first time programmers. Moreover, since they will have to indent, they will manage to keep their code cleaner, resulting in better code too.
What’s even better, Python is an interpreted language, meaning that you can just create a new file, write some commands inside, open your linux shell(or windows cmd), type “python program.py” and have your program execute at the same time, needing no compilation or any fancy IDEs
Don’t get me wrong, IDEs are great, but since we are talking about first time programmers here, i suppose that learning a new IDE along with a new language is just extra effort.
Python is also loosely typed, meaning that “x=5″ is just ok and you don’t need to initialize x as an integet object or such. Some may argue that python is just not that versatile as a programming language and is only used for small scripting tasks. Quite the contrary i assure you. Since Python makes programming easier, faster and more fun to do, it tends to be used in large projects as well ( it greatly supports object oriented programming too). There even exist graphic plot and game libraries for python, so i suppose that it’s pretty able to do anything.
To conclude, my advice to first time programmers is :
Program in Python, you’ll not only like it but learn programming quickly and efficiently.
Thanx for reading ! Till next time have fun and be well :~)

Entries (RSS)
This is definitely a very detailed article and it will help new programmers. I have just wrote a similar article, I hope you’ll accept my trackback.
Thanks.
Currently we are debating whether to change from the “traditional” language tahat we teach to first year students, that language being Java. About half our department would like to change to Python myself included, but some of the older academics say no that they need Java from day 1. I’m involved in a gaming stream and Python would work great, as we could add on Pygame to give it the extra kick. I’m the first year lecturer, I’ve taught C++/Java for the last 10 years, apart from a change if it gets students more interested in programming then I’m all for Python. The fight continues…
Hello Denis,
i know that Java is a typical monster in universities, but i have to tell you, i don’t like Java at all and i definately consider it a poor choice for unis.
In my opinion Java is a jeopardized and highly screwed up version of C++ that fails miserably.
Why would i want to use a whole Streamer class and make screen printing such a challenging deed ?
For many many reasons, i don’t like Java and myself included, i like Python, Ruby for quick shots and C++ for larger projects.
Hi Spyros,
Thanks for the reply, our college is geared towards web development, we have a big multi national near us. Java is what they are looking for.
We created a new split degree, one stream is web the other is gaming. Basically alot of joint subjects like databases general software development etc, but then each course has its own individual stream.
The main argument for Java is that it links modules together better for the web side anyway (currently we have a ratio of 4:1 gamers:web). My argument is that we need to give students the programming bug within their first year, and to get anything done in Java takes to long (just like me posts!) Python from the research I done fits the bill.
Over the next couple of weeks the debate as to whether to change language or not is going to hot up. I will keep you informed as to how we get on.
Hello Denis,
it seems that people are misled to believe that Java is a rapid developing environment, when this is definately far from the truth. In my opinion, it’s a mix of C++ and the standard template library, encapsulated in a class environment. And as we both know well, C++ is great for developing large projects but it is definately not rapid. Well, PHP gets the best grade in slow development though
Btw, i’ve always been interested in game programming and have programmed some things in the past, even worked in a browser game some months ago (really time consuming).
On my quest to faster development, i’ve noticed that Ruby Rails is a great alternative. Has a steep learning curve but it’s an amazingly fast developing framework. To illustrate, i’ve written a standard create,edit,delete,update model in a couple of hours, including file uploads and some more such candies. RoR holds my awe currently for sure.
But Python is always a great tool for everything. I use it all the time, especially for small works where a shell script would also do. A great language indeed, that as you say is an amazing way to make you interested in programming, if you have just began.