PlayCanvas has been a great platform for teaching kids javascript at theCoderSchool. But before we get further into it, let’s set the stage with a little background information. Javascript is is a high-level, dynamic, weakly typed, object-based, multi-paradigm, and interpreted programming language. Wow, how many technical terms were in that description. Simply said, JS is awesome! It’s one of the core backbones of the World Wide Web. That’s really all that’s needed to be said right?

For obvious reasons the drag n drop languages such as Scratch and Snap are the best introductory languages as kids these days are starting into coding even before being able to type. However, as kids become ready for their first typed language, theCoderSchool is finding that a lot of them are choosing JavaScript. 

JS as a First Typed Language

Kids really enjoy and do well learning JS as a first typed language. It’s one of the easier and more engaging languages to help kids make the transition from drag n drop into typed coding. It allows their code coaches to keep them more engaged by introducing graphical programming more easily. With that said, the difficult part is to sustain their interest. Our code coaches at theCoderSchool have found that using the PlayCanvas platform has helped give their students a longer term engagement and focus. 

Why PlayCanvas Works

PlayCanvas is an opensource 3D game engine. It’s also a cloud-hosted platform which allows for easy accessibility from anywhere anytime simply from a browser. With everything that PlayCanvas offers, probably its most effective feature is its interactive 3D capabilities. The engine is capable of rigid-body physics simulation, handling three-dimensional audio and 3D animations. It allows kids to interact with 3D. Need we say more? It’s super engaging and fun while at the same time provides exceptional learning. It also challenges kids to build games and see other games that were built as inspiration.

project Ideas

One fun project idea that we’ve done is to allow your student to design and even 3D print out their own fidget spinner. We took a shortcut and uploaded an initial design into Blender, but in PlayCanvas you can do your own design or base it on a template as well. The basic design with the end caps is 3 separate design pieces (this is important if your going to 3D print it). Then allow your students to add a logo or their name to it which is always something kids love to do. Once you get the final design you like, it’s great if you have access to a 3D printer to print it out. If you don’t have a 3D printer, you can always outsource it at a reasonable cost. Don’t forget that you will need to purchase the ball-bearings separately. How can you go wrong when introducing the most popular fidget spinner combined with 3D printing. It’s a double win-win combo! 

A second project idea falls within the lines of the more traditional gaming genre which is always a hit with kids. You can have your students build anything resembling one of their favorite video games and you will almost certainly have a happy camper. You don’t have to build out the entire game. Most of the time, just replicating a few key features and functionality is enough. Here’s an example. It’s a 3D game where you control a spaceship and shoot asteroids.What’s not to like?

Last, but not least, is a third fun project that a student built which is quite creative. They created their own original game with an objective of navigating a watermelon down an unbalanced plank through spikes. Is that out of the blue or what? Check it out here.

Summary

In summary, one of the primary keys to kids learning will always be interest and engagement. There’s lots of great platforms and new ones keep popping up everyday. We’ve highlighted PlayCanvas as one in particular that works well, but more importantly, use whatever best suits you and your student to keep the both of you excited. There’s certainly no shortage of fun project ideas, and if you need some extra guidance don’t hesitate to utilize one of our Code Coaches®.

Lose 10 pounds?  Exercise more?  Be more positive?  I got one – how about learning to code?

Learning to code is about so much more than just making a lot of money. It’s challenging, fulfilling, teaches you to think and helps you make improvements to the world you never thought imaginable.  With that being said, everyone needs to make a living some way or another. That’s the nice thing about learning to code as the jobs pay a lot more than anything else. How much more do they pay?

“Jobs requiring coding skills pay $22,000 more than positions that don’t, and the demand for employees with such skills is expected to grow 12 percent faster than the overall job market during the next decade” –Burning Glass Technologies

Teaching and learning to code has become a global movement. Getting ahead of this trend can help position you for a very long and lucrative career in any number of fields, including of course coding. How did Burning Glass Technologies figure this out? They analyzed 26 million online job postings published in 2015 that were posted on job boards, newspapers and websites. They combined this data from the Bureau of Labor Statistics.

“Data from the College Board suggest not enough students are getting an early start in the field. Only 2 percent of students in the College Board’s advanced placement program studied computer science last year, and only 22 percent of those students were female. Computer science was the fastest growing Advanced Placement test in 2014 and 2015, however, as the number of students taking those tests increased 25 percent.”

At Coder School, we can help you get ahead of these trends and carve out a long lucrative career in any industry – including computer programming.  So if you need a great New Years Resolution, maybe learning to code fits the bill!

 Green Tree Python.  Just like the language.

Green Tree Python.  Just like the language.

Are you wondering what programming language you should learn? Python may be the best one you could choose. David Robinson, who is a data scientist at Stack Overflow, claims Python could be the fastest-growing major programming language around.

Python became the most visited tag on Stack Overflow just this past June. The US and UK lead the charge as it holds the top spot in both countries. It’s top two behind Java or JavaScript just about everywhere else.

At this rate, Robinson predicts that Python will be the most visited tag in 2018. R, Go, Rust and TypeScript are also accelerating but at a much smaller rate than Python. Robinson doesn’t think that more means better. Looking at these numbers simply helps us all understand the developer ecosystem and how it could be changing.

At theCoderSchool, Python is one of our go-to languages when it comes to transitioning kids away from Scratch.  Using cool online platforms like Trinket or PixelPad and local libraries like Pygame, we’ve got our own unique way of helping get engaged into a typed world from a drag n drop world.  After all, drag-n-drop is awesome, but you gotta get typing at some point right?

Learning to code is important. Everywhere we look, we’re implementing technology and/or software into everyday things to improve our lives and change the world. Computers are now used to automate everyday tasks, make us more efficient, build amazing things or help us keep in touch with loved ones.

Everyday household items like your lights have code in them to save energy and set the correct ambiance in whichever room you want it to. Our cars have software in them to make parallel parking easier, connect to the internet and eventually drive themselves. Who would have ever thought a company like Airbnb would change how we traveled or Uber would change the way we got around the city? It’s an exciting time as industries such as finance embrace technology to make it easier to manage our finances and prevent unnecessary fees.

While learning to code is extremely important, learning to think is the primary benefit of learning to code and what really ends up impacting the world. The process of learning to code lends itself to a new way of thinking that has resulted in everyday improvements in life we never thought possible. Some of this, such as the hyperloop or the smartphone, are straight out of a sci-fi movie. When you learn to code you can literally think something into existence!

Check out this TED talk video called “Teaching Creative Computer Science” for kids, a great talk about how Comp Sci education for kids is focusing too much on the technology, and not enough on ideas.  Sure, learning Java or Python is great – but how about that big picture?

When you read this article it may stir up nostalgic memories of Terminator 2: Judgement Day and Skynet. It may even fuel Elon Musk’s everlasting paranoia about how AI may one day overthrow the human race. Whatever ends up happening, we think it’s super-cool that Google has created something that optimizes its existing code without human interference. AutoML now “produces better code than its programmers” and is “designed to be a solution to the problem of the lack of machine learning talent.” In a few hours it can accomplish what takes a human weeks to do.

Whether you believe automation will eliminate jobs or create more, you have to be excited by what the future holds in the world of AI. Google of course is leading the way in automatic machine learning AI which some coders may pause and ask “Why should I even bother to learn how to code if machines can do it for me?” The answer is simply that someone has to build the programs that engage in this level of machine learning and AI. There will be a shortage of people who understand how AI and machine learning works for a very long time which means demand should sky rocket. As a coder, you can be a part of the next generation of coders that does this, improving the world in ways never thought imaginable.

As coding solves these problems it will free up time for people to take on others. As people, we are problem solving entities and coding is a part of our tool chest to make this happen. Have you ever felt like there isn’t enough time in the day to do everything? Well, we can create more time so we can do more of the stuff we enjoying doing instead of wasting it on mundane tasks.

When you’re studying to become a doctor, you have to memorize a lot – bones, symptoms, medications, you name it.  When you’re studying law, it’s the same thing, legal precedents, past cases, and what all those latin words mean!

But what happens when you’re a coder?  Despite what many think, you memorize very little.  There’s a bit of a myth out there that learning to code is about learning the words of a language, that as a coder you need remember what all the commands do.

How many kids have told me “I’ve memorized every command in Scratch, so I know the language”.  News flash – you don’t!  I remember I was teaching a high schooler Java, and at the moment I forgot the command to print some text.  Flabbergasted, my student said “You don’t know system.out.println?  I thought you knew how to code!!”.

Ah, kids, right?  The fact is that coding isn’t about knowing the commands – it’s about the ability to think through the logic and recognizing (and re-using) patterns of logic.  It’s about how to put the commands together.  Sure, I didn’t remember the command to print something in Java, but I sure knew how to put the rest of the program together, and I found out what the command was 2 seconds later through my buddy Google.  And thusly, I saved face with that student!  =).

The moral of the story here, the commands themselves are actually unimportant, mostly because they can be found on the internet…  But also because while coding languages have their own syntax of commands, the underlying logic of how the commands interact is the same in any language.  THAT is what makes a good coder – the logic.  Even back in my day before the world of internet I wouldn’t remember my commands, and just use my reference books and sheets (granted, I did remember more commands because hey, it’s not easy using reference books!).

And that’s exactly why at theCoderSchool, we’re language-agnostic and really believe that a language is a tool to learn what’s most important – the logical thinking skills, applicable to any language, and any career.

Myth busted!

Learning to code isn’t always easy but it’s worth it and very rewarding. Most people seem to think you have to be a genius to learn how to code but that isn’t true. It’s a never ending learning process and most beginning programmers go through the same bumps in the road along the way.

Some of the biggest hurdles we see our students run into are the following:

Which language to learn

It’s not about the language but the logic behind it. Start with one and stick to it until you’ve learned to think like a programmer.  Often the drag ‘n drop languages like Scratch or Snap! may seem to basic and easy, but it’s an amazingly effective way to learn fundamental logic.  Generate prime numbers, make a hangman game, even the old standard of Flappy Bird – these all help solidify the basics of logical thinking while making something interesting.

Beating yourself up

We all go through the same cycles of boredom, excitement, anxiety, frustration and relief. Beating yourself up will only add to your anxiety and prevent you from solving the problem. You need a cool head and an inner voice that cheers you on, not tears you down.  Sit with someone passionate who can show you technology, and do stuff that interests you and you’ll be learning in no time.

Rushing through the process

 theCoderSchool's Coder Tree

Programming is a process. Skipping steps will lead to bugs and missing key concepts. Take your time and learn to think through each step.  Take a look at our Coder Tree – it’s super important to learn the fundamental roots of programming before getting into advanced material.  You wouldn’t train to be a brain surgeon before knowing how the body works right?  Same thing with coding, you can’t start learning Artificial Intelligence and 3D Gaming until you have a good grasp of logic.

Debugging

Writing code and designing software is only part of the process. You’ll need to learn how to debug it if it doesn’t work. Lots of people get frustrated here but it’s a skill set you have to learn improve upon over time.  This is a lesson to learn in persistence, but nothing gives you that instant satisfaction like when you solved a bug and the program suddenly works.  It’s that awesome WOW and High Five moment!

If you’d like to learn more about common issues programmers face check out these helpful articles.

Learning and Improving your Debugging Skills

8 Barriers to Overcome Learning Code

5 Most Common Problems Programmers Have

I found this great video from Google explaining how human bias can influence artificial intelligence (and a quick primer on how AI works).  Basically, it comes down to this.  As artificial as artificial intelligence may be, it’s still created by human programmers – humans who each have their own biases.  And that bias can subconsciously influence the code being written to reflect the coders’ own biases.

Let’s say James Damore (the Google engineer fired for his memo claiming men are better suited to be in tech than women – old news, I know) rounds up a bunch of his friends who feel the same way, and they create a successful AI bot.  Could that bot default to thinking that women are less important than men in tech?  If it was a chatbot and you asked it “what makes a good coder”, would it come back and say “a man”?!   Is that so far-fetched?  Damore was an engineer at Google (who does build a lot of AI), and no one really knew of his bias until his memo.  And without said memo, Damore could well be still working at Google building whatever it is he was building (side note – no idea whether Damore was involved in AI at Google).

I won’t say that’s a likely scenario by any means – just a good thought exercise.  Google and Facebook have done a lot to tamp down the fake news, the hate, the negative stuff that might influence us (and AI).  But when so many negative events like the Charlottesville violence or the Barcelona terror attacks seem to be happening more often, sometimes you just have to wonder, how will Skynet interpret it?  That humans are divisive and hateful?  Or that we we unite with love when we respond to these events?  Are we going to get the the bad Arnold from Terminator 1, or the good Arnold from Terminator 2?

While most people are familiar with bitcoin, not many people fully understand Ethereum just yet and consider it a cryptocurrency but it’s way more than that.

Ethereum is a “decentralized platform that runs smart contracts: applications that run exactly as programmed without any possibility of downtime, censorship, fraud or third party interference.”-Ethereum.org.

In other words, it’s a software platform where you can build distributed applications and smart contracts. Because it’s open-ended and decentralized nature, these applications can be built without any downtime, control, fraud or interference from third parties.

The currency used on ethereum is “ether” and is sought after by developers who are interested in building applications on the platform. While it can be traded, it’s primary purpose is to run applications and monetize work.

According to Ethereum, it can be used to “codify, decentralize, secure and trade just about anything.” While still in it’s early stages (it launched in 2014), there is already a lot of excitement with how it can be used to change the world. Apps (called DAPPS) run on blockchain which allows the movement of value and the verification of property. Developers can create their own markets, business registries, promissory notes, and move funds using “smart contracts” which execute once terms are met.

You can use a similar language to Python on Ethereum to write contracts called Serpent. The language is intended to be clean, simple and easy to use which are all the things that make Python such a great introductory language.

Learn more about Ethereum here

Antsy to teach your kids Javascript?  Take a look at our article posted in D-Zone!