Learning how to code has become a more important skill now than it was a decade or two ago. And its importance is still increasing.
But programming can mean different things to different people. Some think of coding as making apps. Others think of creating web pages. Many look at programming as a way of understanding data.
When it comes to teaching children how to code, the differences in views are even bigger. Some see coding for children as a diversion from other "academic" subjects. Others see it as a route to a future job as a software developer.
At codetoday, our mission is and has always been to help people learn Python programming—people of all ages, young and not so young.
But we also want to shed light on coding, help people understand what it is, and what it isn't, and guide students into understanding the beauty and power of this modern subject.
A Bit of History
Back in 2015, we set out to bring a different type of coding for kids. Coding was then (and in some instances, still is) primarily seen as a lightweight activity, something to keep the kids busy for a couple of hours. It was (and still is) often introduced using lots of gadgets and other distractions, and often through children's platforms designed to mimic some of the simpler aspects of coding.
We had a very different view of what coding for children and teenagers should look like. Yes, it must be fun and engaging. But it must also be treated as a serious subject, taught professionally, as an academic subject.
And it should be taught using a proper coding language, and one that is accessible to beginners. Python is unrivalled in this matter.
Why Should Kids Learn Coding
No, kids should not learn coding so that they will become developers in the future. Some will, but what coding has to offer to children's education goes well beyond offering a job as a programmer.
Children should learn programming because it teaches them how to think. It teaches them how to think logically. It teaches them how to solve problems. This is a skill that is relevant well beyond computing.
But another reason children should learn how to code is the role programming is rapidly gaining in our society. Most programmers in 2020 are not people employed with the job title of programmer or developer. Most programmers work in other fields and use programming as one of many tools in their professions. They don't code all day from 9 to 5, but they use their programming skills as and when needed in their jobs.
More and more professions are starting to rely more on programming skills. Science, finance, data analysis of all kinds, are just some of the most common uses of programming. But programming is starting to move to other fields to such as law, medicine and healthcare, journalism and many more.
It is possible that coding will become a basic skill that everyone must have, in the same way that everyone needs to have writing skills and maths skills.
As a company, we focus on just one thing: we help people learn Python programming. We do not offer lots of different courses in different languages or using robots or gaming platforms that often serve more as a distraction than anything else.
Our approach follows the following principles:
A student needs to first learn the fundamentals of programming, and learn them well, before they can well and truly apply these to more narrow applications such as robotics or writing advanced games.
Coding, when taught properly, is engaging in its own right and doesn't need gadgets and children-specific platforms to make it engaging.
The priority is to learn coding, and not a coding language. So trying to learn several languages at once is not only not necessary but also counterproductive.
Coding should be taught using a proper coding language, and one with broad uses and applications. But the language should also allow the learner to focus on the key aspects of coding and not on the subtleties and quirks of the language itself. There's only one credible language that achieves all of this today, and that's Python.
We choose not to work with robotics and other gadgets. There are two key reasons for this.
Firstly, using robots prevents students from understanding the true basics of coding since a lot of the work is being done by the software that comes with the robots. Coding is about being in control of as much of your computer's actions as possible, so starting with the raw programming language, without the extra layers provided by the robot's software, is the only way to truly understand coding. Learning 'coding' through robots also gives a very narrow perspective of coding.
Secondly, a key component of coding is the additional practice students get when they code at home. A course that uses robotics will require parents to purchase the kit at home if the student is to get any practice. Coding itself, however, only requires a computer and nothing else. All software needed is free.
Using gaming platforms to teach aspects of coding also suffers from some of the limitations of using robotics. The application is very narrow and therefore students will only learn a narrow skillset.
Learning coding from first principles, using just a computer and programming language, allows students to learn coding from the ground up, starting for the fundamental building blocks that are required for all coding applications. It also allows students to learn coding in a broad sense. They will work on graphics-based projects such as writing animations and games (from first principles, not using any additional software) which will teach them about certain aspects of coding, but then they will also work on text-based programs which will teach them different coding methods.
Since learning coding using just a computer and Python does not put any restrictions, students will be able to explore all aspects of coding as they work their way through a well-structured curriculum, including those areas of coding specific to its use in science and maths and data analysis, for example. This is where coding can well and truly integrate perfectly with other subjects.