Matthew Chen, a senior and ICT Prefect at Dulwich College Beijing, shares his views as a summer camp IT instructor, addressing some frequently asked questions by parents curious about the computing conundrum and the need to get their kids fluent in the language of the future. Matthew started an electronics club to teach and build projects with his fellow students at DCB. He has been programming since he was 8 years old and is the author of several Android apps, including FlipGrid and Dulwich Timekeeper. Matthew is also the founder of PromptBox, a programming boot camp for teenagers providing instruction in Python and HTML and has published a book on how to get started in programming called As Easy as Raspberry Pi.
What is programming?
There are more smart devices today than there are people. Each and every one of these devices has a microprocessor. But, the microprocessor is quite helpless until someone teaches or instructs it to conduct specific actions. Put quite simply, programming is the art of telling machines (microprocessors) what to do and how to do it. In the early days, this would involve lines of script, called codes, written for a computer to execute. While the fundamentals of coding haven’t changed much in the past 30 years, the task of programming has become a lot easier with graphical interfaces (e.g. drag and drop menus), more power (capacity to process multiple tasks) and more efficiency in recent times.
With the world shifting to embrace the Internet of Things (IoT), Big Data and Artificial Intelligence (AI), there will be a myriad of opportunities for programmers as a new breed of devices and virtual applications take shape to become the “new normal.”
What sparked your interest in programming?
My parents enrolled me in a Minecraft programming camp where I spent two weeks understanding the fundamentals of programming, and then went on to design a personalized set of magical items for my Minecraft character. My friend’s magical “chicken attractor” made chickens follow Minecraft characters in the Minecraft world. Although seemingly trivial, the excitement of seeing these programs come to life made me want to do more.
My kid’s not technical. Why should he/she learn programming?
Firstly, programming is an expression of creativity. All kids love to build and create things, whether it is Lego movies, sand castles or electronic gadgets.
Secondly, programming is problem-solving through logic. Understanding the language of machines helps your kids to think critically and to articulate clear and precise plans of action. Microsoft chairman Bill Gates said that: “Learning to write programs stretches your mind and helps you to think better. It creates a way of thinking about things that I think is helpful in all domains.”
Thirdly, programming builds character. Programming proficiency makes the difference between an average employee and a star, even in non-technical fields. Getting a program to work takes endurance. This attitude of perseverance and resilience can carry through when your child enters the workforce and solutions are not produced just by a click of a mouse but from hours of figuring out which combination of clicks will unlock more business potential.
Finally, programming is universal. Computer languages use Romanised text (alphanumeric). A Chinese or Russian programmer uses the same computer languages to code as would his/her peer in Malaysia or Colombia. This opens up opportunities for programmers to work virtually anywhere in the world.
Is programming more right or left brain work?
It’s a great combination of both! Acquiring “computer speak” takes practice. By “programming right,” you need to understand the rules of the language, and at the same time, apply logical and structured thinking in order to get the results you want out of the computer.
There is beauty in a software program—not just in the vibrant colors that it reproduces in a virtual Monet replica or the rich music emitted from your earphones, but in how the code works seamlessly together to make such magic happen.
Some people compare programming to building with Legos. You learn a few basic building blocks, get a few specialized blocks from established libraries, and then let your imagination fly.
Every craft needs the measure of time and practice for perfection. It really depends on the complexity of the project at hand. Once a child grasps the basics and builds their dictionary of shortcuts and hacks, programming becomes more native over time.
There are tons of fun, weird and useful projects that kids can do. As the adage goes, “we’re only limited by our imagination.”
What’s been your biggest obstacle in programming?
I find that the biggest obstacle to starting programming is coding. This is because machine code is a bunch of text that is initially difficult to understand. There are programming starter kits like Lego Robotics (find it at www.lego.com/en-us/mindstorms) which make getting started easier. But while the graphical interfaces are attractive, they are limited in their flexibility (power) and don't get children over the resistance to coding. In general, the graphical interfaces constrain you to what the manufacturer has already thought of.
What’s your advice on where to start?
I recommend starting coding with HTML. HTML is the language behind websites. There are about 20 basic commands that you need for building your own website. HTML is a very forgiving language. It doesn’t generate errors for small mistakes (just doesn’t do what you want) and every kid wants to show-off their favorite things to their friends over the internet. While HTML doesn’t involve a lot of logic, it does get kids comfortable with coding. Plural Sight (www.pluralsight.com) is a good resource for learning basic HTML.
How do I get my child interested in programming? How old should they be?
As with any new language, the younger you start, the more natural it will seem. I taught my sister HTML when she was 10 years old. Any child that is familiar with computers and is internet proficient is ready to start coding. Kids who are 10-years-old can already read, type, and understand logic well enough to begin programming. The only constraints are their patience and interest.
Try to blend their existing interests with programming. Most teachers bridge kids’ interest with games, videos, or toys. A small first project takes only a few days of effort.
There are so many computer languages. Which one do I pick?
All computer languages are very similar and are based on the same logical concepts. The programming mindset is to understand clearly what you want done, then break that down into simple steps. Those simple steps include logic (if this happens, then do that) and loops (keep doing this until that happens). A programmer must also differentiate between what he/she knows how to do and what he/she needs help with. There’s no need to re-invent the wheel, just use existing programming libraries.
I recommend learning Python as your first “real” computer programming language. While Java, C++ and Swift are other popular languages, Python is particularly easy to learn while still being quite powerful. It is used in industry for data analysis, game emulation, and machine learning, amongst other applications. I've used Python to work on a number of projects, such as a gadget that changes the color of its light hue based on the current AQI reading from the internet; an alarm that wakes me up in the morning based on the “correct” time in my sleep cycle; a digital picture frame that reads my email to display the last 10 pictures that selected friends send to me; and a gadget that tells me a random joke from the internet when I come close. The only limits are your imagination!
If you have questions about programming or how to get your kid to code, drop me a line at firstname.lastname@example.org
You've reached the limit of allowed deals. For more information
You've reached the limit of allowed housing listing. For more information