My coding learning journey: a personal account by Erica (aged 16)

Published by SG Code Campus
Sep 18, 2019 · 4 min read

Learning how to code is the newest craze, but because it will certainly make up a large part of the future you may often wonder how you or someone you know can join the fun. This is my personal journey into the world of code :)

Since I started attending the classes here in 2016, I have finished Principles 1 through to Principles 6, and am currently taking the Principles X course. I find the teachers to be dedicated, good-natured, hard-working and competent. The courses are well-planned and carefully structured, which makes learning how to code thoroughly enjoyable and easy to learn.

Principles 1

This is the very first Python course, and is for children aged 13 to 16. Joining Python and Minecraft, Principles 1 unites the basics of programming with the enjoyment of ‘toying around’ in a virtual world.

I took this course when I was eleven or twelve years old and every lesson of the course delighted me. Along with other children around my age, I learnt the basic programming symbols, data types (strings, integers and booleans), and loops; and more importantly I learnt how to build automatic dance floors, my very own matrix-like world and many other things, which I then controlled with a simple click of the run button.

Principles 2

In this course, we learnt how to draw circles, squares, rectangles and ellipses using Turtle (a program which acts like a drawing board for Python). I specifically remember making colourful circles bounce off the sides of the screen, and learning RGB (the red, green and blue colour values that can be combined to make any colour render on your screen) and hexcode (hexidecimal numbers that represent the intensity of red, blue and green colours). I was in Grade 6 when I did this, and I therefore found having learnt the primary colours of light to be quite useful in Grade 8 when I did a Science test on light and sound.

Principles 3

In this course, we learnt about more complex data types which are necessary components to code almost every function (a block of code which executes a command). We learnt about lists and dictionaries (as they are called in Python but are also known as arrays and objects in other languages) and put them to good use in the functions we programmed.

Principles 4

While I had really loved experimenting in the Minecraft world while coding in Principles 1, it was only when I hit Principles 4, i.e. after over 60 hours of coding lessons, that I learnt with great satisfaction how to make my very own computer game. To do so, I learnt and used PyGame - a programme that contains Python modules for writing video games.

In this colourful project, Erica uses Object Oriented Programming to breath life into many bouncing balls. She then implements a collision detection algorithm and a special player-controlled ball to keep score!

Principles 5

When surfing the web and clicking on interesting blogs and articles, have you wondered how this website works? Or even how to build it? With this course, you learn the right tools to make a static website, a website with fixed content.

The languages taught in this course are JavaScript (JS, a scripting language for websites), Hypertext Markup Language (HTML, primary language for structuring websites), and Cascading Style Sheets (CSS, for laying out and structuring websites).

This was a deeply satisfying course because I now felt ready to build static websites. Although I knew how stunning professional websites could be, I became very fond of my unprofessional-looking website which contained only a red box with text inside, an image below surrounded by many colourful borders, and random buttons lined up neatly at the top of the screen.

We were then, however, introduced to Bootstrap, a front-end framework with additional software that provides tools to make the website more pleasant-looking. In my opinion, Bootstrap must be one of the greatest creations ever! I was able to turn my bland website into something which was rather appealing. Of course, I have much to learn in CSS and Bootstrap in order to make it look professional, but Bootstrap really is invaluable.

Principles 6

In this course, students move from making static websites to creating dynamic websites also known as web apps.

You may well be wondering what dynamic websites are. To put it simply, a dynamic website, or a ‘live’ or ‘interactive’ website, contains content which changes. Dynamic websites do not depend entirely on whatever was written in the HTML, meaning that the programmer does not constantly need to change the code to modify the content. Making websites dynamic, however, requires other components in order to change the content automatically (provided you have integrated it into your code). One such component is called an Application Programming Interface (API).

APIs are sets of protocols, routines and tools for building software applications. Essentially, they specify how specific software components should interact. In Principles 6, we learnt how to incorporate APIs into our website to make it a web app. I found it quite tricky at first, but if you want to have a dynamic website, APIs are crucial to learn.

Principles X

This is the course I am currently taking. So far we have learnt React (a JavaScript library maintained principally by Facebook to make coding web apps easier), web and native (for mobile apps), C++, and will cover Machine Learning in the near future. C++ can prove to be challenging at times, but fortunately I have wonderful teachers to guide me whenever I face a problem.

My concluding thoughts

The learning environment in SG Code Campus is terrific. The teachers are knowledgeable and attentive, the students are supportive and enthusiastic, and the opportunities are second-to-none. I shall definitely stay with SG Code Campus until I have finished my IB. I hope to see you there! :)

(Note from the team at SG Code Campus: If you would like to find out more about some of the courses that Erica attended, click here to get in touch with us!)

Erica (right-most on photo) - winner of the 3rd Prize in the School Category of the 2018 IMDA Hackathon
Erica (right-most on photo) - winner of the 3rd Prize in the School Category of the 2018 IMDA Hackathon
Tagged in: