Programming Languages


Which programming language should I learn?
This is a common questions that gets asked when someone wants to learn programming and then discovers that there are literally dozens of programming languages "out there".  Which should you learn?

The answer depends on what you want to do.  For our Academy, we want to teach students how to make games.  So we chose languages and development environments that were easy to learn, powerful enough to make awesome games, and provided a pathway to professional game development.


Why Scratch?
Scratch has both a visual block language and a learning environment.

 

Visual languages enable kids to learn coding by creating something without getting bogged down with the syntax of the language.  It is similar to teaching kids to write a story with characters, plot and setting, before requiring that they master all the details of English language syntax.  Jumping to scripted languages too soon can cause kids to focus on syntax and lose sight of the core programming activity of creation and problem solving.

 

A Learning environment enables students to publish and share their work, check out other student’s projects and learn from them, as well as take advantage of online lessons and tutorials.  This enables kids to continue learning long after the class has ended.

 

Scratch is very powerful and has a full content pipeline, meaning that it is easy to import or create your own artwork, sounds or video and include them in your projects.   You can make very high quality projects in Scratch.

 

Students can access Scratch online from any computer without a download, making it easier for them to continue coding at home.


 

 Why JavaScript?

JavaScript is an extremely popular language used in both web development and within Unity, a leading professional game development engine.

 

JavaScript syntax is very similar to C# which is used in industry and in game development.

 

There are many online resources for learning JavaScript, including Khan Academy’s learning environment.

 

 

Why Khan Academy’s Leaning Environment?

A Learning environment enables students to publish and share their work, check out other student’s projects and learn from them, as well as take advantage of online lessons and tutorials.  This enables kids to continue learning long after the class has ended.

 

Students can access Khan Academy online from any computer without a download, making it easier for them to continue coding at home.

 

Teachers can track their student’s progress by registering as a coach.

 

Khan Academy has an automatic compiler and built in debugging tools that provide immediate feedback and a well documented library of commands that is easy for kids to explore.

 

Khan Academy makes use of the Processing JavaScript library which enables students to draw and make visually compelling games.

 

 

Why C# and Unity?

Unity is a professional development environment.  Skill in Unity is a marketable skill.

 

Students can release projects they create onto Apple or Android App stores, PC, Mac, Xbox, or Playstation.

 

Students can earn money from the games they release.

 

Students can make 2d, 3d and online multiplayer games with Unity.

 

C# in a powerful language used in several industries, and its syntax is very similar to JavaScript.