In this phase, we are going to discuss some of the many computer languages and programming IDEs that are available to use. At this point, this information is for setting up the long-term direction of children who are learning to code. These are tools that are used in real-world applications, but in many cases, there is no reason why children can’t start learning to use these tools early. The same approach to programming can be used, starting off doing basic tasks and building up as time goes on, and children gain more experience. In the first phase, we will talk about the different computer languages that are used to give some familiarity with what’s out there.
You can take this section with a little bit of a grain of salt. The reason I say that is computer languages are constantly evolving, and preferences and fads can come and go. That said, there are some core fundamental languages that should be learned at more advanced ages if the child is hoping to have some kind of career as a computer programmer or scientist.
The first is C++. This was probably the first object-oriented programming language, and it is still widely used. There are some aspects of the language that make it hard to learn for some people, but the advantage of learning it is that not only will you gain a valuable skill that is still used in a wide range of applications, but it also serves as a solid training ground that makes picking up other computer languages quite easy.
Python is a great language to learn. The great thing about Python is that it’s simple. It may be the simplest programming language that you can learn. After a child master’s Scratch, learning Python is a definite next step. Furthermore, it’s available on every computer system. If you have a Mac or a PC, you can get Python, and it might already be installed on your computers. You can learn all of the important concepts of computer programming using Python, including classes, lists, subroutines, functions, and more.
Ruby is a very popular programming language in the business world. It is one of the younger languages, C and C++ were developed long before Ruby came on the scene. Like Python, Ruby is considered easy to learn and use. Ruby can be used in a wide range of circumstances, including programming on the internet. This wide applicability is one thing that has generated a lot of its popularity. Ruby has been the backbone of many popular social media sites.
Finally, learning Swift, which is now the standard language for Apple apps for the iPhone, is a definite skill that children who are interested in becoming coders should learn. The beauty of Swift is that it’s one of the easiest coding languages to learn.
The First Computer Languages
One of the first high-level languages that were developed is called Fortran. The purpose of this language was (and still is) to build programs for scientific purposes. Although it was first developed in the late 1950s, Fortran is still used today in many places. Fortran is really good at doing numerical calculations, and it is pretty easy to learn.
After Fortran was developed, some other languages were created to extend what high-level languages can do and to make coding easier. The first of these is a language called C. Like Fortran, C was developed largely for scientific and engineering purposes, but it is more sophisticated than Fortran. Since C can do a lot more, it quickly became more popular than Fortran.
Basic is another computer language that was developed at about the same time. The name is appropriate since the goal of creating Basic was to make a very easy to use computer language. Many who were using computers in business gravitated toward Basic since it was easy to learn and use. Basic is a very suitable programming language for children to learn on, but it is not nearly as popular as it once was.
As time went on, people who design computer languages and study computer science wanted to be able to better represent objects in the real world. This required them to change the way that computer languages were structured. This led them to create “object-oriented languages.” The first of these that was developed is called C++. This became a pretty popular language, and it was based on the older c language, but it can model real-world objects like cars and airplanes (and even people) in computer code that languages like c can’t. This language is still pretty popular, but other languages like Java were invented later, in some cases, to help people program the internet.
Python has become one of the most popular programming languages. It is a very simple language, building on the ideas behind the Basic language. However, it’s a lot more sophisticated than Basic, and yet it maintains a lot of simplicity. Python is definitely suitable for use by children who are learning how to code. It is freely available for use on most computer systems.
One of the most famous sayings in the computer programming world is garbage-in, garbage-out. It is possible to make errors in a computer program that are syntactically correct, and that also doesn’t lead to bugs or crashes. But, they may generate the wrong answers. This can be a problem because these logic errors might be hard to track down or even recognize. Sometimes, the erroneous assumptions that the programmer has in their mind are programmed into the computer.
High-Level Tools for Video Games
Video games are one of the easiest ways to get children excited about coding. Since they enjoy playing video games, it’s a natural fit for many to want to make them as well. There are many high-level tools for video games that let you draw out the video game on the screen. As you draw out each scene, you can add objects to the scene, exactly as you want them to appear in the game. Then you specify how each object should behave when the game is running.
Several tools are available that are quite similar to Scratch in the overall structure and function. They have scenes that can be drawn on the screen, and characters and objects can be position and moved around. Then the game designer can set up rules for each of the objects in the scene.
One of the first tools build in this way is called Game Salad. Game Salad is used as an educational tool to help teach children about computer science, and it can be used in a k-12 curriculum. But Game Salad is a real tool, and it can be used to create real games for devices like the iPhone. Game Salad lets you draw the game on the screen, and then set up rules for each object behind the scenes. Game Salad is actually quite similar to Scratch, and after a child has mastered Scratch, if they are in middle school or high school years using Game Salad will seem like a natural transition.
Another game building tool that some people use is called Corona. It uses a simple programming language call Lua. Corona is more coding based than the other tools we are describing in this phase; in fact, it is completely coding based. Many people prefer using this method, but these days being able to visualize your scenes and set them up without having to write code is a big step forward that saves a lot of work. That also helps the game developer focus on the actual design of the game itself, while with Lua, they are going to be getting lost in the coding details just to position objects on the screen and have them move about.
After Game Salad, more sophisticated game building tools were developed that are visually oriented. Buildbox is a very easy tool to use that is excellent for children. They can learn how to create games without coding at all, but they can also use “scripts” to specialize the code behind the scenes for their own games. Buildbox has been used to develop some of the most frequently downloaded apps on the Apple app store. A game is divided into a series of scenes, and you design each scene as if you were using PowerPoint or Keynote, specifying the properties of each object on the scene. It then compiles it into a working game for you. Buildbox comes in 2D and 3D versions. When using the 2D version, ordinary graphics can be imported into the development environment to set up backgrounds, characters, objects, and enemies. The design can actually get quite sophisticated using logic tools, and many different templates can help the designer build game mechanics that are similar to many successful chart-topping games.
The 3D version of the Buildbox is a little more sophisticated. Since it’s a true 3D system, the objects in the games are actually meshes rather than image files. This version of Buildbox also lets designers get under the hood. Mind maps let you build up the behaviors of characters and other objects in the game, and you can actually work with the coding scripts of each element in the mind map. Those who master coding will be able to take advantage of these features in order to build up more sophisticated and complex games.
Unity 3D is the most sophisticated and popular tool used to build games for multiple platforms, including mobile, tablets, desktop computers, Apple TV, and Xbox. Unity is a middle ground tool, you build scenes visually on the screen, and set properties, but it also has coding behind it using a derivative of the C programming language called C# (C sharp). Unity developers are in high demand by the video gaming industry, so any children who are interested in careers as video game programmers can benefit by learning Unity, once they have learned to code very well in other contexts. Unity is powerful but a bit complicated. However, older children can begin learning Unity by following a careful course.