Primary School

My programming journey started in primary school, Year 3. I was minding my own business at lunchtime - probably playing video games in the computer lab, when my friend showed me Scratch . I was awestruck about how you could make your own quizzes and games with such a simple, easy to use interface. I continued messing with Scratch, accidentally causing a few BSODs along the way, all the way through to the end of Year 6, when I was starting to find the experience somewhat limiting compared to what I wanted to program.

Secondary School

Year 7 is when I really started to enjoy Technology and Programming. The first programming language we were introduced to was Python and we learnt how to use basic elements of the language. I enjoyed myself during this and craved to learn more about what Python could do. I can't exactly remember what my first projects were (due to accidentally deleting my Python project folder when trying to do a clean reinstall of Python), but I think one of them was a simple command-line calculator.

Year 8 was the year of the web with the introduction to HTML and CSS. I was amazed at how quickly you could build and style (although quite poorly) your own websites with just two files. I also extended myself by learning some JavaScript to add additional functionality to the webpages I was creating.

I also extended my existing Python knowledge and made a few troll programs such as Too Many Desktops and File Explorer Crash.

Year 9 allowed me to focus much more on the programming side of the Technologies, as this was the first year we could choose if we wanted to do Digital, Design, both or neither (I chose just Digital). We started the year with 2 game development units. The first was solo in a Java library called Greenfoot and the second was in groups with any game engine/framework focusing on the Agile thinking process. In the final units, we explored deeper into web development by learning the Bootstrap boiler plate (which is styling this website) to make both static and dynamic (with PHP) responsive web applications.

Now, you might be asking yourself: What about his Python experience, did he stop? And the answer to that is a big fat NO. In fact, Year 9 contained one of my largest milestones yet in Python. I started experimenting with networking computers together in Python to make somewhat of a botnet (everybody that used it gave consent to running it first). It started off as RemoteCommander but I quickly realised how limiting it was to have to be on the same network to control the device. So that birthed CommanderV2 which used a free online JSON hosting platform, which shut down later that year. In addition to being able to control my friend's computers from anywhere, it also contained a few of my troll pieces of code (literally 3) and the ability to shutdown the computer.

Year 10 brought about Digital Solutions rather than just Digital Technology. This meant we were thinking about producing applications that actually solved problems of the real world. We kicked things off with designing an alternative to Hangman, which would be more appropriate for younger kids, whilst still maintaining the educational value. We followed that up with a semi-large website project for a library bookclub management system. We had to create functional and non-functional requirements, and hence set prescribed and self-determined criteria to evaluate our websites against. The website also had to include CRUD functionality and optionally, an entire account management system (which I did).

Year 10 also brought about the creation of CommanderV3 which used Deta Collections as NoSQL database hosting. This massively improved the performance compared to CommanderV2 and I also added more features to the program, including the ability to duplicate all files that it had permission to copy - effectively filling up your entire storage device. It also added the feature to open "sus" URLs which in my case, was just a bunch of game websites.

A private CommanderV4 repository was also created which added a fully functional reverse shell. However, at this point, I was mature enough to realise that these programs if used, would be classed as malware and would be illegal, so I effectively stopped working on them. I also made sure to add to every README.md that it was not my responsibility if users got in any kind of trouble for using them.

In Year 10, I also started a Minecraft server and wanted to be able to add custom items without having my friends download and install mods. This lead me to discover Minecraft plugins, which use Java. I started off with Purpur, but I realised that Paper (which Purpur was based on) had patched some "glitches" that I wanted to use in the game. So I switched to Spigot (which is what Paper is based on). There was no difference in the programming, but I could now make plugins that worked on servers that allowed glitches such as TNT Duplication and End Portal Teleportation. My most notable plugin (and the only one that is available on Github) is my fully customisable Vein Miner plugin that I built with server admins/owners in mind. I have also made a LifeSteal plugin but it was lost when I switched OS from Windows 11 to Arch Linux .