What Does "Learning to Code" Mean?
So, what exactly does coding entail? So much more than actual coding though that is the term we use here as it tends to be the most descriptive. While there are many areas of programming or technical work - these are the three which are the main building blocks for introducing the world of coding to kids.
And if you want more information on what a programmer does - read here.
Three Learning Areas
There are many programming languages out there like Scratch, Hopscotch and Blockify of Code.org which allow kids to learn the basic concepts of coding with a graphical tool. Kids drag and drop and click blocks into place to build a logical program. Learning the basics in with a graphical tool is a good first step. They introduce the kids to basic programming concepts such as loops, conditional statements and functions without getting bogged down in the complexities of syntax and real coding.
Given the predominance of the web today, anyone who learns to code will also usually need to know how to create a basic web page. Most of the skills you need are not really programming but they do require training to understand and can be quite complex. A website called The Odin Project provides a good definition of what a web developer does as well as paths to follow.
These are the basic categories of skills that are useful to have as a web developer:
- Graphical Design – You do not have to be a full-on graphical designer but, it is impossible to design and build a basic web site without being able to create basic images and to manipulate them.
- HTML – is used to create the content of a web page and is a fairly easy to understand templating language.
- CSS – While HTML tells the server what is on any given web page – Cascading Style Sheets (CSS) tell the server how to display it. This includes what colors, what fonts, how much padding, placement on the screen and more. While this can seem simple, there are layers and layers of complexity here.
- Content Management Systems: the exact figure is not know but about 75-90% of all websites created today are done using a CMS. These range popular ones like WordPress and Drupal to smaller ones that are more developer friendly like Perch or ModX. For older kids, start with WordPress as it is the easiest to use and is the clear market favorite.
- Ecommerce – this is really a set of the above skills but knowing the basics of how online interactions happen and what tools you can use to do this is critical.
- Database – Just like with HTML/CSS – a knowledge of how databases work and how to query data from them is very useful when it comes to creating and more often debugging a web site. Being able to access the data can let you figure out what is going on.
- Security – knowing the basics of how to keep your website safe from bots, spiders and viruses is key to not spending all your time fixing your website from hacking and malware attacks.
"Real” coding – this means knowing how to develop apps, programs, and functions to create the tools that for all the neat things you want to create. There are so many different languages, frameworks and platforms that you can use but the essential first task is to learn the fundamentals.
- Python – is a popular and powerful high-level language that is easier to learn and has great resources. It is also free! Two books that are good for kids include:
- Python for Kids: A playful Introduction to Programming – this supports Python 3. The wordiest of the three books this provides the most detailed information but may be more suited to older kids.
- Python for Kids by the for Dummies series: a good walk through using example programs
- Help Your Kids with Computer Coding: Starts with Scratch and then teaches them Python from that persepctive. Kid friendly with lots of graphics.
- Ruby is a popular language that has solid kid resources.
- PHP started off as a simple scripting language and has grown into a full blown editing environment. It does not quite have the elegance or functionality of Ruby or Python but it is a very useful language to know for website development. There is a nice tutorial at PHP for Kids.
- Visual Basic is the language I coded a lot in so I have a great fondness for it. Plus, it is has a wonderful development environment and is lots of fun to work with. Could easily see it appealing to kids so if you strike out with getting your kids into Python or Ruby – try this one. Microsoft has a free version of the environment you need – Visual Studio Express. Here’s a series of tutorials that appear easy to follow.
- I’d rule out Java, C, C# and some of the other more arcane languages like Lisp, Smalltalk and Basic. The first three as they are more difficult to grasp. The latter as they really aren’t that prevalent or current.