A lot of parents and teachers have been asking which programming language they should learn or teach to their children/students.
Our initial answer is, well it depends on a few things: is it for fun or is there a specific career in mind? Is it just to broaden skills as a hobby? Is there a particular project that needs to be completed – in fact the answer to that question can only be given after asking lots of questions first. So this post is, hopefully, a generic answer that will shed some light.
Firstly, we feel that any type of programming, from flowchart based, simple command based (FORWARD,2), icon based, right through to c and python type languages are all useful for kids to be exposed to, do activities with and develop an understanding of.
It’s not possible, particularly in childhood for any type of programming to be a waste of time or useless.
The reason for this is all types of programming gives young students some really important skills and teaches useful stuff, namely:
Understanding of what programming is
The ability to break tasks down into logical steps
Becoming efficient at problem solving
Learn about good design – both hardware and software
Make mistakes and how/why they should be corrected
Become seriously good at debugging
Recognise that the same fundamentals, such as variables, function calls, arrays etc. are the building blocks (in some form or another) of any programming language.
The same is true for robot kits, whilst the more expensive ones can be used to learn a great deal, sometimes the cheaper and simpler ones are the perfect way to teach the basic concepts, like gear chains for example.
However, if you are wondering, which programming language should be learnt thoroughly and specialised in, from the viewpoint of getting a job or keeping skills future proof, we think C and Python are the way to go.
We must emphasise, that despite Python, gaining a lot of popularity in schools due to the raspberry pi, its important to learn both.
C and Python are very different, and we’re going to get a little bit teccy here to explain the difference.
Lets start with C:
C is quite old, robust and is a typical programming language in that you type your program into an editor (this could be a simple program on your pc like notepad, or you can get other programs that are essentially fancy word processors, which recognise you are writing a program and have useful tools to help you write it) it then needs to be compiled.
Compiling, put simply, is when your computer, translates the program or instruction that you wrote in your editor, into a different type of code that your computer – or robot’s computer – understands.
Once your program has been compiled it can then be run on the machine or robot that it was written for.
Python, on the other hand, is an interpreted programming language, you write your program inside an interpreter.
This means that every instruction or command you write is translated into code that your computer or robot understands, on the fly, as you go, straight away.
So the physical difference, when writing a program in Python, you write your command, press return and the command is carried out.
With C, you write the entire program first, then press a button to compile it, then press a button to run the program (sometimes you can do both, straight after the other with one button press).
Because of this difference, both languages have different capabilities and different things that they are best suited to.
Many people feel, that if you are new to programming, Python is easier to learn – we’re not sure about that yet, we are paying very careful attention to the students that we work with and when we feel we’ve spoken to and taught enough students, we will give our verdict, but right now we are not voicing an opinion on that.
Some people also say that Python will become much more popular than C in the future and C may become obsolete, however, there are still many popular languages used in various places, for example websites and apps, that use languages that are based on or very similar to C.
So from a career point of view, C is still worth learning.
Next we will look at the 2 languages in further detail and what types of projects they are best suited to.