8 years ago in Singapore, I went to the post office with my guardian to pick up my parcel from Beijing. It had several things in it and the most important thing was the C Primer Plus book. I had been waiting for a few weeks.
8 years later in Sydney, programming is now my career. This is something I couldn’t imagine when I started programming 8 years ago.
Today marks the 8th anniversary of programming. Many had happened since 2013. Now, when I think back, I miss my old self. The young and naive me, I don’t dislike it. I was doing the impossible because I didn’t know what’s possible. I never gave up even in the darkest days. That’s why I am who I am now. My old spirit was fading away for quite a long time, but I am glad it is still there inside me.
There are many things to talk about, but I want to focus on programming and why did I start in the first place? Now, I will bring me back to that fateful day in 2010, Beijing.
Beijing
2010
I cannot remember exactly which day it was but that day, I went to my grandpa’s place with my parents. My brother was there as well, and he had an iPhone 3G with him. Before that day, I was using a foldable Java based phone not even a Symbian phone. I was so amazed by it as a 12 years old. However, little did I know my life had been changed at that moment.
Sep 2010
After begging my dad for an iPhone, he finally bought me an iPhone 3GS. It was just days before iPhone 4 was released in China, but I didn’t want to wait. Apple used to lock new features to new devices back then. My iPhone 3GS didn’t have certain features. Was it Siri? I cannot remember. However, I started jailbreaking my device just to get those new features and it was so much fun for me.
My parents soon had some concerns with my phone because I could download games on it. In China, this was very often because parents were very protective. This is still true now because for them, games are bad, and you won’t get anywhere by playing games. This is clearly not true but when they don’t like it, they ask their children to not do it as well.
However, I love playing games. Even before getting my iPhone, I played GBA, PSP and NES. As a kid, who doesn’t like playing games? However, I was a bit different. I used to enjoy modifying games with cheats and play the hacked version.
Aug 2011
One day, I saw a tutorial. It was posted by a user called ipod4g. Luckily, they are still available now. It was about reverse engineering iOS games, and I was very interested. I had no idea what I was doing back then, but I managed to do it anyway. After countless failures, I succeeded. The first ever game I hacked was Plants vs Zombies and I modified the sun number to 9000. I was so happy and even told my mom.
2012
Since then, my parent started acknowledging what I was doing. I started hacking even more games and posted them on the forum. At the same time, I didn’t stop learning and read more tutorials. One of them was written by china-boy. It has been deleted, but this tutorial helped me a lot.
Around this time, I joined another forum called BHGBOX, a Chinese forum focusing on hacking games like iOSGods. Often, I posted the same content on both BHGBOX and Weiphone. Soon, due to my frequent activities on the forum, I became a junior member of the BHGBOX team, so I started posting exclusively on BHGBOX. I also had several students and eventually, they all became a member of the team. It was such a fun time in my life.
Later this year, my parents decided to send me over to Singapore for further education. The main reason was because of the policy in China. Basically, I can only take gaokao in the province where I was born. It is more complicated than that but just to make it simple. I was living in Beijing, but I wasn’t born in Beijing, so I was kinda like an international student from another province. In the end, I probably wouldn’t go to a good university.
Singapore
27th Dec 2012
I arrived in Singapore with my dad, and it was the first time in my life in another country. At least, we still looked similar and spoke the same language. Singapore had a different feel compared to Beijing, and it is similar to Hainan. It was hot, and I couldn’t eat a lot. This lasted for more than a year before I could have my meals normally like before.
6th Feb 2013
This was the day I started programming. The motivation was simply because I just wanted to make an app to help the forum. After a while, I also started learning Objective-C. I liked this language a lot because of the []. It was unique compared to C because usually, I write something like class.method() but in Objective-C, I do [class method]. How cool is that?
Unfortunately, I only had less than a year before the forum was closed, so it became a dream I could never accomplish. When I heard that the forum was closed, I was shocked and sorrowful, but I couldn’t do anything. Soon, I moved on. I didn’t stop programming but instead, I worked harder and carried on my dream. Instead of making an app for the forum, I wanted to make an app to help everyone and I wanted to become a powerful programmer who could achieve anything.
2014
Besides programming, I continued hacking even though BHGBOX was gone. In June, I created my GitHub account because it was cool to share my code online, and I wanted to share it because maybe my code can inspire others. That’s how I got into programming because many people posted tutorials online. I wanted to become a person like them. My first repo was MCPE Mod, mods for Minecraft Pocket Edition. Now, it is called Minecraft Bedrock Edition. I learnt how to make iOS tweaks somewhere, but I couldn’t remember. It could be from other members of BHGBOX, or it was from iOSGods or some YouTube videos.
THEOS was the tool I used, and it is still usable now. I made many tweaks back then. Some of them are now archived on GitHub but many have been lost. I didn’t know about GitHub so all my code is gone now but those memories aren’t.
Around this time, I also started making some Windows programs. Windows 8 had been released, but it was still the era of Windows 7. VC 6.0 was the software I used to make MFC programs for Windows. It even supported Windows XP which was a plus. I used VC++ to do MFC but VB was also available, but it was too different from C.
Meanwhile, there was a game called Flappy Bird and it was really popular. It was also the first time I had the idea to make a game. One day, I started making a Flappy Bird clone following a tutorial and I made it with Cocos Studio. Later, I ported SuuBird in C++ to cross multiple platforms. Luckily, it is included in my legacy collection on GitHub. It was great but wasn’t challenging enough.
Swift was also released, and I didn’t like it because it wasn’t as cool as Objective-C. Now, I use Swift every day and I enjoy using this language. I was too hardcore back then because I was mainly using C and C++ so Swift was too modern for me. However, I had no choice but to learn it because I knew Swift was the future.
2015
This was the last year in Singapore and I haven’t been to Singapore since 2015. I miss my time in Singapore. This year, I got my first MacBook Pro. It was a duo core Intel i5 8 GB RAM 128 GB Storage version and was about SGD1688. I was so excited and installed Xcode on it. Finally, I could make more iOS apps. Actually, I had made several iOS apps before using a virtual machine in 2014 but the experience was not as good as the real one. My MacBook Pro was a lot smoother and I used it for everything, not only programming.
I could stay in Singapore and study IB. However, I knew what I wanted to do, so I came to Sydney to do the foundation course. This way, I could go to university quicker. This turns out great in the end.
Sydney
25th Sep 2015
I arrived at Sydney airport alone and called a taxi to go to my accommodation. A new place and a new beginning just like when I went to Singapore. Now, it is almost 6 years in Sydney. I still remember this day because I cried in my room. I didn’t know how things worked, and I didn’t know how to get food. I said I would become better tomorrow and my life in Sydney began.
I can’t remember anything major in late 2015 because I was focusing on my study and getting used to my new life. Luckily, I started writing my diary in 2015, so it will be easier from now on. Everything above might be in wrong orders, but I think it is fine for a reminiscence.
One day, I saw Microsoft’s new event for Surface devices. I got very inspired by Microsoft and decided to buy a new Surface Pro 4. I have talked about it in my Surface Pro review. I was so excited just like I got my MacBook Pro.
2016
This year was very important to me. I started playing games and one of them was World of Warships. WoWs Info was developed for this game. This was also the first time I started making iOS apps seriously and would publish them to the App Store for people to download. Without World of Warships, my life will be different now.
Originally, WoWs Info was on desktop and written in C#. I started writing some C# Winform programs since I got my Surface Pro 4. It was running Windows 10, so I learnt it to make GUI programs. Soon, I found out that the program wasn’t great on desktop, so I moved it to my phone. I was still using iOS back then, so I started learning Swift for iOS development.
2017
I became significantly more active on GitHub this year and all activities are still visible now. The reason was that I started university in late 2016, and I had to learn quite many programming languages. However, I was more focused on my projects, WoWs Info and GoGoAnime.
A side project was created, and it was called WoWs Real, now WoWs RS. It was different when I first created it but the goal remains the same, getting player statistics in real time when you play a game. This project was restarted when the new WoWs Info app was done and now, it simply sends player data to WoWs Info app and the app will display player stats.
This year was all about WoWs Info. I think I was more focused on it than my university stuff. I spent most of my time working on it and even during holidays. More details were mentioned in The End of WoWs Info.
2018
Other than WoWs Info, I also started doing some Kotlin programming because I moved to Android, but it didn’t last for too long because I couldn’t understand how Android development worked. Later, Flutter 1.0 was released, and I had a look but it was so different from React Native, so I didn’t use it.
This year, I learnt Haskell, a pure functional programming language. I failed miserably in that course. This was mainly because I got used to imperative programming languages and I couldn’t adapt to functional programming. Now, I enjoy functional programming, but it was my nightmare.
In the second half of 2018, I started focusing on my courses because I had failed 5 courses. I thought I couldn’t pass any 3rd year courses, but I proved to myself that I could. It was all about challenges and surpass myself and I felt like my old spirit was back.
2019
This was the last year of my university and that’s why I focused more on my courses. This doesn’t mean that I didn’t work on my projects since I continued with WoWs Info and AnimeGo. My courses were also more interesting compared to previous courses.
I encountered functional programming again with prolog and I nailed it this time. I spent two weeks working on one question, and it was Q4. I went to the consultation to ask tutors if it was possible to do it the functional way. The answer was positive. That’s why I didn’t give up because it was something possible and eventually, I did it and surpassed myself.
Software engineering was another great course. This was where I learnt many design patterns. Programming is not only writing code. It is more about the long term. This course taught me a lot and I made a new app in 3 days following some great design patterns. That app was AnimeOne.
This year, I started trying out Flutter because I thought it was much more mature than before. I made a material colour app and after my software engineering course, I decided to write AnimeOne. The core of the app was done in 3 days and I spent one more week to polish the UI. I still use this app and AnimeGo now.
2020
Since I failed my machine learning exam, I did a supplementary exam and graduated successfully. Thus, this concludes my university life. I was back early because of the exam and started looking for a job during the pandemic. Australia soon closed the border, but I had to come back early anyway, so I was kinda stuck in Sydney.
I got rejected many times, so I ended up working on my projects. I will write one about my experience of finding a job in Sydney because it was very interesting. For my projects, I continued with WoWs Info and AnimeGo. At the same time, I started learning native Android and iOS development because of issues I had faced with React Native and Flutter. They were just not good enough.
In June, I stopped developing WoWs Info and moved on. In late June, I started working on pazusoba and learning C++ seriously. It reminded me of days when I was learning C in Singapore. This was my favourite project I have done so far because I have been playing Puzzle & Dragons for a long time longer than World of Warships and probably all other games except Minecraft.
In August, I started working full time as a junior mobile engineer. It had been a long way starting from a single idea. I will write more details about this year in Reminiscence ~ 2020.
2021 and Beyond
I will be working for a few years from now on but that doesn’t mean that I won’t learn anymore. My work is great because Apple and Google will keep updating iOS and Android. This way I have to catch up with new features. Swift and Kotlin are also improving slowly every year. That’s why I am not worried about mobile development anymore.
However, this doesn’t mean that I won’t work on something else. I am getting more interested in artificial intelligence and will probably do some machine learning for pazusoba soon in Python. I might also start developing some native apps slowly. IOS and Android reverse engineering might also be fun. I won’t stop exploring just because I started working.
Afterword
This was meant to be posted on 6th Feb but 2 weeks later, I am still working on it. Please excuse me of my bad writing. The entire thing is a mess but I have learnt a lot and will sure improve my writing in the future. Every time, I come back after a while. My thoughts are different, and I might end up writing something else. Probably in the future, I should plan ahead and confirm what to be included and then, I can start writing.
This post is more than 3000 words, and it might be a bit too long. However, this one is unique because programming is part of my life now. 8 years is a long time, but I never thought it would be more than 2000 words. This won’t happen again in the future except for About Me because I will include 22 years of my life.
I mainly focused on my time in Singapore and Beijing because it was the foundation of all. I think this might be my fate because I can see it 10 years ago. I couldn’t get my job if I didn’t see my brother’s iPhone that day. My entire life was changed from that moment.
I also miss my time in Singapore and that’s another reason why it is the focus. I was a naive boy but I feared nothing. When I grow up, I become a coward who doesn’t want to step out again. However, all had been changed since that semester at university. I became a hacker again, and I am so glad I am back. Next time, maybe I will talk about my life at UNSW.
That’s all for now.