I can remember back when I was young how alien a couple of lines of code that were published in a kid's magazine looked to me. Some twenty years later (or should I better say a year ago), I decided that I should teach myself how to create some small and usable programs. Sad to say, I lost interest shortly after.
Well, this year I tried again. This time I installed a different programming language, downloaded some tutorials from Youtube and I also borrowed some books on programming from my local library. Only time will tell if I will be successful in this objective but I am sure I am making good progress. More importantly I've learned a lot about the best way to learn programming and have found some great learning resources I'd like to share with you.
Leaning to program: a better way
There is another, better way to learn programming. Do it it two steps:
First I suggest to you to start with programming languages which enable you to learn the basics about the language in a short amount of time. They should also enable you to produce usable results reasonably quickly before you will lose interest which can happen especially in cases where the users are children. It doesn't matter that your first language is not powerful or not popular or fashionable. What you want initially is quick results to keep you interested.
Second, when you will get more experience with simple languages you can at any time jump to more sophisticated programme languages if you want or need to.
Easy to learn languages
The first entries I want to mention are really simple. In fact they are not really programming languages at all. They are online games in which you have to control a robot and help it light up all the blue tiles by giving it correct set of commands. All you need is an internet connection, a browser, a mouse and a couple of minutes of your time. Do check them out:
Light bot and
Light Bot 2. Manufactoria is a puzzle game about putting robots in their proper place. With the help of the conveyor-belts, ‘pullers’ and ‘pushers’ you have to build a machine. If you liked the game, you can also try
Tile Factory.
Bug Brain (biologic[DOT]com[DOT]au/bugbrain/) is a game where you build brains to run a bug. You start in the lab where you experiment with the neurons and nodes that make up a brain. After you successfully finish the lab levels, you move out into the field to build a brain for a Lady Bug to help it feed and survive. Bug Brain was tested on Windows XP and it works fine.
Hello Code (societygames[DOT]com/codealong/) teaches the basics of code (ActionScript 3.0) and the fundamentals of good programming through interactive missions, which can be solved by codes. Just try it out. As the author said:"It is free! If you're not satisfied, money back guaranteed."
Fantastic Contraption and
Fantastic Contraption 2 are online games which teach a user some fundamental programming lessons. For example, this games teach you that there are more than one solutions to the problem and that if you failed to finish the level, you have to go back to the drawing board and find where you did make a mistake. This is similar to programming where you have to find errors in your program. If you want to try them out, you should know that first 21 levels of both games are free, while additional levels and making your own levels are not.
Merlin Programmer for Kids is a software, which allows 5- to 8- years old children to learn sequential programming by allowing them to make Merlin or any of the other Microsoft Agent characters perform actions, move, speak, listen for and make sounds in a predetermined manner. It is available for Windows only.
In
A. I. Wars 3D: The Insect Mind your goal is to develop a competent reflexes, plus offensive and defensive strategies for your six legged fighting machines code named Cybugs to ensure the survival of your Cybug or your team of Cybugs in a battle simulation. The software is available for Windows only (You need to have Java 5 version or higher installed to the software).
RoboZZle is a online game, where you must develop a program for a small robot to help it collect all the stars on the screen using specialized programming language (You can play full version if you have Silverlight installed. If you don't have it installed, you can use limited version instead).
Toontalk is not just a programming language or just a video game. Actually, it is both. Children can build and run all sorts of computer programs inside of it's animated world. While learning how to program they will face challenging puzzles, express their creativity and learn new ways to solve problems. And what is probably the most important thing of all: they will have loads of fun. Toontalk is available for Windows ME, Windows 2000, Windows XP, Vista and Windows 7.
The last game on my list is the
The Codex of Alchemical Engineering. As an Alchemical Engineer, you must build machines out of mechanical arms and magical glyphs that transform and combine atoms in order to create the compounds required so you can pass the level. If you don't want to play the game, but would want to see how it looks like or if you do not know how to start, look at the tutorial for first two levels
here. But beware, this game is certainly not easy to play. If you are among those who finished this game, you can also try
The Magnum Opus Challenge - this is an expansion for The Codex of Alchemical Engineering with fifteen new levels. And these levels are, according to the author, much harder than those from The Codex ...
With
Alice which is an educational programming language with an IDE, you can easily create an animation for telling a story, play an interactive game, or a video which you can share it on the web. It was designed to be a student's first exposure to object-oriented programming. Alice is available for Windows (XP, Vista, Windows 7), Linux and Mac.
FMSLogo is a free implementation of a computing environment called Logo and provides support for exploring diverse disciplines, including mathematics, engineering, art, music, and robotics for children in elementary schools. It has a simple GUI and runs fine even on 10-years old computers. FMSLogo is available only for Windows.
NetLogo is a multi-agent programmable modeling environment which is used by students, teachers and researchers worldwide. It comes with a large library of sample models which cover a large part of natural and social science (Art, biology, Chemistry & Physics, Computer ans Earth Science, Games, mathematics, Network, Social Science and System Dynamics). NetLogo runs on Windows (2000, Windows XP, Vista, Windows 7), Linux and Mac (You need to have at least Java 5 installed to run this software. Java 6 or later is strongly recommended by authors, though.).
Hackety Hack can help you learn how to make software using Ruby programming language. The solution that Hackety Hack pursues is by teaching with a more traditional programming language, but adding libraries that make it easy to do complicated tasks in one line. It is available for both Windows and Linux. You can visit web sites like
Rubymonk.com (interactive book) or
TryRuby.com (15 minute interactive tutorial) to see what Ruby is all about.
Ruby4Kids can help user learn how to make games using Ruby programming language. What makes it easy is the fact that the user can see, run the code and see what its output looks like all at the same time. The programm can do everything that previously mentioned Hackety Hack can (In fact, you can run many of the same code samples from Hackety Hack in KidsRuby.). To access help file, you don't have to have a internet connection, since the file is built into the programm itself. KidsRuby is available for Windows and Mac.
Kojo is a learning environment which enables the user to play, explore, and learn in diverse areas such are: computer programming, computer and internet literacy, math and science, systematic and computational thinking and also art, music, and creative thinking. Features like syntax highlighting, code completion, and code templates make programming friendlier. Kojo is available for Windows, Linux and Mac (You need to have Java 6 installed on your machine to be able to run Kojo.).
Scratch is an educational programming language in which user by snapping together visual programming blocks controls images, music and sound. While it is intended especially for 6- to 16-year-olds, who can create projects with their parents or older siblings, people of all ages actually use it. Scratch is available for Windows (2000, XP, Vista, Windows 7), Linux and Mac.
Children can use
Etoys to make their own models, stories and games, which keeps them engaged because it's a lot of fun. It is also a highly effective way to teach math, science, and language arts. Etoys is available for Windows, Linux and Mac.
L?ve is a framework for making 2D games in the Lua programming language. If you want to make a game, you need to create a folder and open up your favorite code editor (it must have Lua support built in). Create a new file in the folder you just created, and name it main.lua. Put the following code in the file, and save it. All that is left for you to do is to drag the folder to love.exe. L?ve is available for Windows, Linux and Mac.
Sploder will allow you to create and edit a platformer, physics puzzle, 3D space mission and classic shooter games. If you want to save the games you made and share them with others, you will have to register (only a username, password and valid e-mail address are needed.)
Game Develop allows you to create simply and quickly your own video games. Creation process is elaborated through the editor, and no previous knowledge is needed in order to use it. Game Develop is available for both Windows and Linux.
Processing is a programming language for people who want to create images, animations, and interactions. The language builds on the Java programming language, but uses a simplified syntax and graphics programming model. It is available for Windows, Linux and Mac.
GameKit is as a full integrated development environment for new programmers to play with high level game programming concepts without needing to know about C++ or OpenGL. It uses a group of custom utilities for creating graphics and sound, and a programming language called Game Kit Language (GKL) for writing code. Because GKL is event-driven, object-oriented, and state-based, it is extremely easy to use once you learn it, and many games can be written in only a page or two of code. GameKit is available for all versions of Windows ranging from Windows 95 to Windows XP.
With an
Adventure Game Studio you can make your own point-and-click adventure game (For other types of games you will have to use some other game making software.). It consists from an editor to create games and a run-time engine to run them. The help file and tutorial for beginners are both included in the package. Adventure Game Studio is available for Windows (2000, XP and Vista), Linux and Mac (You need to have the .NET Framework 2.0 (or later) installed in order to run it.).
With
RPGToolkit you will be able to make a 2D role playing games. It comes with its own simple coding language and also with advanced features such as objects and threading for those with a little programming experience. RPGToolkit is available for Windows XP, Vista and Windows 7.
Graphical scripter inside
001 Game Creator allows you to easily implement events in the form of a flowchart with simple point and click method. When you will develop a better programming skills, you will be able to make games with text scripting, which is harder than graphical scripting, but allows you to script some things faster. Beginner's, platformer and scripting tutorial are all included in the package. 001 Game Creator is available for Windows XP, Vista and Windows 7.
Construct Classic is a DirectX 9 game creator for Windows, designed for making 2D games. Indie game designers and hobbyists can use it to enter the world of game creation. Artists can produce games without having to use any programming. Teachers and students can use Construct to teach the principles of logic in a fun way. Developers can use it to rapidly create mockups and prototypes — or simply as a faster alternative to coding. With it's successor,
Construct 2, you can also make all sort of games which can run on all modern desktops, mobiles and tablets (Construct Classic is free while Construct 2 Free version offers limited sounds, events and layers). Both software are available for Windows XP, Vista and Windows 7.
With the help of
Kodu, children can make many different types of games, such as racing, strategy, RPGs, adventure, platform, puzzle, 1st person shooters, and others. It is different that some other projects because it avoids typing code by having users construct programs using visual elements via a game controller and also because programs are executed in a 3D simulation environment, rather a bitmapped or 2D display. Kodu is available for Windows XP, Vista and Windows 7 (To run Kodu, you need a graphics card that supports DirectX 9.0c and Shader Model 2.0 or higher, .NET Framework 3.5 or higher and XNA Framework 3.1 Redistributable).
Robomind is a simple educational programming environment that will familiarize users with the basics of computer science by letting them program their own robot. In addition to an introduction to popular programming techniques, they will also gain insight into areas such as robotics and artificial intelligence. RoboMind is available for Windows, Linux and Mac.
SOLE 64 (a Google Chrome extension) uses a programming language that is an extension of the Java programming language. With it you can make games and other applications that use text and graphics. There are lessons available inside SOLE 64 to help you get started (You need internet connection to download them from the net and also if you want to save your programms online and share them with others.). If you do not know what to do, just type help and hit Enter to invoke the User Guide.
Greenfoot is an interactive Java development environment, designed primarily for educational purposes at the high school and undergraduate level. It allows easy development of two-dimensional graphical applications, such as simulations and interactive games. It is available for Windows (XP, Vista, Windows 7), Linux and Mac. (You need to have Java 6 or Java 7 JDK installed on your machine to be able to run Greenfoot.).
Lazarus is a development tool for the Free Pascal compiler. It's IDE is a stable and feature rich programming environment for creating standalone graphical and console applications. Although it is set up for professional developers, you can set it up for beginners by using package EducationLaz. This package adds some extra option pages to the IDE (Click
here to see how this can be made). Lazarus is available for Windows, Linux and Mac (You don't need to have Free Pascal installed on your computer to run this software).
Python is an easy to learn programming language, which has efficient high-level data structures and a simple but effective approach to object-oriented programming. If you need help, you can either open built-in help file or the online Beginners Guide for Non Programmers which you can get
here. Python is available for Windows, Linux and Mac. If you are interested in making games with Python, than you should download
Pygame, which is a set of Python modules designed for writing games. It also is available for Windows, Linux and Mac (You have to have Python istalled in order to run Pygame). If you want to see what Python is all about, but you don't want to have it installed on your computer, you can visit web site
Learnpython.org, where both tutorial for beginners and advanced users are available. All you have to do is to click on the chapter you wish to begin from, and follow the instructions.
Just BASIC is a programming language for the Windows operating system. Since it is based on on the classic BASIC programming language it is easy to learn (the detailed tutorial is included in the package), and it has been extended with structured programming facilities and with easy to use GUI commands so you can create your own Windows programs without needing to learn all the underlying details of the Windows operating system. It is available for Windows only (If you need Just Basic for Linux, look
here). If web programming is what interest you, than take a look at
Run Basic Free Edition. It is available for both Windows (Windows 2000, XP, Vista) and Linux.
ThinBasic is a Basic Programming Language Interpreter. It is fast and has a lot of features. If you want to learn it, you can execute more than 400 samples provided inside \thinBasic\SampleScripts\. You can also take a look at tutorial for beginners, which you can find inside \thinBasic\Tutorial\. Everything you have to do is to double-click the Tutorial_Intro.tBasic script with your mouse. There are two versions of ThinBasic available: a Windows-based version and a command-prompt-based one.
The
Gentee programming language can be classified as a procedure-oriented language with some features typical of object-oriented programming. While it is true that it has no complicated constructions and is easy to use, this on the other hand doesn't mean that it can't be used for making more complex applications. The Gentee is available for Windows only (older versions are available for both Windows and Linux).
BlueJ is an IDE for the Java programming language. The features of BlueJ are designed as an aid to learning object-oriented programming concepts, as well as an aid to program development itself. As a result, some commonly available tools differ from other environments, some tools are absent, and other tools are provided not commonly found in development environments. BlueJ is available for Windows (XP, Vista, Windows 7), Linux ans Mac. (You need to have Java 6 or java 7 installed on your computer to be able to run BlueJ.). If you like BlueJ, you can also try
Unimozer, which implements mostly the same functionalities as BlueJ does. (If you don't have Java 6 JDK installed, you can still run the software, but it's compiling capability will be limited.) Unimozer is available for Windows and Mac.
Suneido is a system for developing and deploying applications without the frustrations of integrating multiple different products. It incorporates an object-oriented programming language, client-server relational database software, and application frameworks and components. It includes the integrated development environment used to create applications as well as the client and server required to run applications across networks. The mission of the authors is to provide a simple and lightweight alternative to larger, complex, expensive and closed programming software. Suneido is available for all Windows versions from Windows NT to Windows 7.
Easy Code is the visual assembly programming environment made to build 32-bit Windows applications. Its interface, looking like Visual Basic, allows the user to program Windows assembler applications in an easy way. Source code of a nice CD player, a complete and fast text editor in a dll file, a complete text editor ready to use, a file shredder, a MIDI player and many other applications are all included in the installer package. If you can't find an answer to your problem in built-in help, you can ask other users in three different forums for advice. There are two versions of Easy Code available - Masm version (using the Microsoft Macro Assembler) and GoAsm version (using the Jeremy Gordon's Go tools). Easy Code is available for all versions of Windows ranging from Windows 95 to Windows 7.
Racket is a programming language in the Lisp/Scheme family. It distribution features an extensive library that covers systems and network programming, web development, a uniform interface to the underlying operating system, a dynamic foreign function interface, several flavours of regular expressions, lexer/parser generators, logic programming, and a complete GUI framework. It is available for Windows, Linux and Mac.
Limnor Studio is a generic purpose visual codeless programming system, which opens the door of computer programming to a much broader population. If you are going to use it, you will be able to easily create multimedia interactive kiosks, generate your own CD-ROM presentations, from yearbooks to conferences and trade-shows or make your own data/information management program with databases. There are two versions of Limnor Studio available: Limnor Studio VS (You have to have Microsoft Visual Studio 2008 Shell (Isolated mode) and .Net 3.5 installed on your computer.) and Limnor Studio 5 (You have to have just .Net 3.5 installed). Limnor Studio is available for Windows XP SP3 and Windows 7.
Programming Without Coding Technology (PWCT) is a visual programming languages framework to create and use general-purpose visual programming languages where the programmer don't need to write the code but can visually specify every functional aspect of the program similar to flowcharts and algorithms. It uses a visual programming method called coding simulation method (CSM) rather than drag-and-drop approach. The author recommends using keyboard shortcuts rather than mouse because you can work faster that way. PWCT is available for Windows only (During installation process you can't change the install directory.).
Pelles C is a complete lightweight development kit for Windows. It contains (among other things) an optimizing C compiler, a linker, a resource compiler, a message compiler, a make utility and install builders. It also contains an integrated development environment with project management, debugger, source code editor and resource editors for dialogs, menus, string tables, accelerator tables, bitmaps, icons, cursors, animated cursors, animation videos (AVI's without sound), versions and XP manifests. Pelles C is available for Windows 2000, Windows XP, Vista and Windows 7.
Web page
Codecademy Labs allows you to programm online in folowing programming languages: Ruby, Python, and JavaScript. If you sign up (You can sign-in by either giving valid e-mail address and password or with Facebook.), you will be allowed to take lessons in JavaScript (Also, you will be notified when Python and Ruby lessons are going to be put online). If you don't want to take lessons, you can visit web page
Learn Programming, where you can learn how to program in C, C++, Java, Pascal, etc..
Web page
CodeAvengers provides interactive online courses that will help High School students while learning web development (JavaScript and HTML/CSS). The lessons include games, quizzes and other challenges. Since Code Avengers is web-based, no installation of special software is required.
Web page
Code Monster tries to teach kids basic Javascript skills. The site uses live code in the browser, which enables users to program in one pane and immediately see the results in another. The site not only parses the code and explains errors, but it also offers additional features like offline usage and the ability to remember where the user leaves off. Code Monster was made for 9- to 14-year-old kids, while it's sister project
Code Maven was made more for teenagers and adults in mind.
On
BFOIT's web page students can learn how to programm in jLogo (jLogo is a version of Logo that is written in the Java programming language.). It strives to teach them the importance and practical aspects of mathematics, processes, problem solving, and critical thinking. The authors have also made a
computer program (that is embedded in their web page and which understands the Logo language), so that a user won't need any aditional software while learning.