Table of contents
Growing up in Singapore, I was taught not to chase my dreams. Today, I am still living the mediocre person’s life, and the only difference is that I have a job title of a Software Developer. I like coding and creating solutions to improve people’s lives, but I won’t say it is my calling to be a developer.
In this article, I will share about my story how I got into programming, how I did self-learning as a Computer Science (CS) student before, and how I still do self-learning as a Software Developer now.
Being a developer was never one of the dreams
I had many dreams, as I grew up.
As a primary school kid, I wanted to be a businessman like my dad to earn money for my family.
As a secondary school kid, I wanted to be an animator since I had fun creating maplestory animated videos for school projects and my friends said the stuff I can do is cool.
As a junior colleague school kid, I wanted to be a physiotherapist because I wanted to be a healer in real life, to be able to treat anyone who gets injured in martial arts/ sports immediately.
As a university freshman kid, I wanted to be a hardware engineer to create products that assist in the healthcare industry.
I have tried to chase some of these dreams, but life tends to get in the way. Eventually I gave up on dreaming. By chance, i settled on coding.
Coding in school
In my university, there was a compulsory programming mod for all freshmen. It was my first time learning programming, and I wasn't a stellar student in the mod. But, I didn't dislike programming and debugging stuff as much as many of my classmates did.
A thought then comes to mind — programming would be something that I wouldn't mind doing for the rest of my life for work. Hence I ended up choosing CS as my major.
Through various mods that I have chosen, I have the chance to work on different school projects. Here’s a short list of them.
- Queue Management Android App in Java — Q
- Streamlit Data Science App on Google Playstore Analytics
- 2D Platform Shooter Game made with Unity, C# — Recoil
- UX/UI Mockup in Adobe XD — D’Portal
That being said, I don’t think the CS major is really that big of a deal to have.
Having a CS-major is not really helpful to me
I studied in Singapore University of Technology and Design (SUTD), whose curriculum was modelled after the MIT curriculum. Our entire school curriculum last for 3.5 years, and we only had to choose our majors in the 2nd year after the freshman year. This meant that I only had ~2 years of actual studies in CSE related mods, compared with many other Singapore grads that had full 4 years of relevant studies.
Even then, most of the students in my school are generalists because of the lack of variety of courses available. AI & Machine Learning enthusiasts will thrive here, but the rest of folks who were interested in other aspects of CS — App Development, Embedded Systems, IoT etc had it rougher. The latter would have to do mostly self-learning to advance further in proficiency on those skills to be job-ready.
Outside of my school curriculum, this is what I did for self-learning.
It is definitely not the best way to go about it, so take it with a pinch of salt. 😆
How I did self-learning outside school as a student
While I didn’t mind working as a software developer, I wasn’t exactly sure what I wanted to specialise in. I didn’t have a mentor to talk to about finding my way around so I just did my best and tried whatever I could.
Beyond my basic commitments to homework and my school projects,
- I joined a few different hackathons and learn to work with strangers to come up with a solution.
- Learnt to create static websites with Jekyll, Bootstrap for internal school events (White Day Event, ISTD 1D Virtual Exhibition 2020).
- Joined external events and workshops — where I wrote down minutes.
- Utilized GitHub Student Benefits to watch some courses on Frontend Masters.
- Studied & obtained certifications on other aspects of software development outside what my school offers.
- Ziliqa Blockchain Developer by Tribe Academy
- Mixed Reality Developer Course by HelloHolo
- Internet of Things (IoT) Micromasters by Curtin University
- 5G Wifi by Huawei Seeds for Future Programme
I have spent a lot of time and effort to self-study for these external certification courses at that time, but I can say that I have already forgotten most of what I learnt through them. They were interesting but they don't ignite a spark for me like app development. These achievements can still be found on my LinkedIn for memory sake. Although it has greatly confused many recruiters what on earth I am doing and try to get me for positions that I’m no longer interested in. 😆
So how did I find the time for it? Well, my school SUTD had a famous slogan — Stay Up Till Dawn. On the days where I am in the flow, it is common for me to stay up to 3-4am. Not the healthiest, but that’s partly reason why my school is also renowned for students who are good in doing projects in Singapore. It is also why I don’t recommend the same for almost everyone.
Then, there’s my fabulous graduation.
Graduating in the midst of COVID19
University life was a rollercoaster, but I was still managing until COVID19 hit when I was working on my capstone project on Internet of Things (IoT) in the final year.
100% remote classes, examinations and team discussions.
Suddenly, I couldn't give my best even if I wanted to.
The hardware aspect of my capstone project became very difficult to be worked on since we couldn't collaborate in real life together. We also had to give up conducting user trials with the main target audience of our project due to regulations. If you don't know already, an IoT project without evidence of actual user trials could only spell doom. Even if I got a grade A for the process of working on it, the project wouldn't become something greater beyond an academic submission.
Alas, that was how I spent my last year of university and that was the last project that I worked on before graduating in September 2020.
Because of COVID19:
- Commencement got cancelled 🎓🔥
- Graduation trip with my friends went up the smoke ✈️🔥
- The job offer that I got very early on back in March 2020 (I was kiasu and applied for jobs early) also got pushed back to 2021 with an unconfirmed date... 💸🔥
Life at its finest. It was tough but…
I am still a developer after 2 years
After graduating, I manage to find an apprenticeship where I got to be the sole full-time software developer for a startup for 4 months, before joining a global tech consultancy company (the one who gave me the original job offer as a Software Developer) in January 2021.
Each company offers its own unique experience for me to grow in, and I wished I had came across swxy’s The Career Coding Handbook much earlier to set my career & growth expectations right.
In my current company, everyone is a full-stack developer. Depending on the project we are assigned to, we get to work with a varying tech stack, a unique different team with its own relationship dynamics with the client. I have learnt a lot through different projects, especially for backend, DevOps, enterprise software architecture & workflow.
However, at the same time, I also feel that I haven’t learnt about topics that I am much more interested about such as building & deploying my own app from scratch, frontend related topics like accessibility, responsiveness, typography etc.
I can’t control what happens at work besides doing my own due diligence to fulfill my responsibilities as a Software Developer for the company. To compensate for that, I have also been doing self-learning outside of work.
How I did self-learning outside of work
For me at least, it felt a lot more tiring to do self-learning after work as compared to after school. Maybe it is because of the everyday fixed schedule of 9-6 as compared to the flexible schedule in school where I just needed to deliver everything by a deadline. At some point this year, I also had to do overtime work.
As compared to my student days, I do self-learning much differently now.
Instead of spamming courses or getting certifications, I try to work on side projects instead to implement specific features and learn the concepts necessary for them. I also try to write technical articles so that I actually understand the concepts sufficiently to teach others. I feel that this way, I can help others and myself much more than to just keep the knowledge to myself.
With so much happening, it is quite important to find a balance to polywork as well. I find this balance by setting what I value most such as family time on weekends.
Advice in a nutshell
- For those who have heard about my stories in person, you know that I have left out a lot of drama & details out for simplicity, especially on dreams. Many of you might face similar situations, but remember Life goes on.
- What is laid out in this article is my own experience and perspective. Your student experience may heavily differ, depending on the curriculum and culture in your country. Same goes for work.
- Don't chase certifications, try to create a portfolio of projects that you would be proud to showcase to your friends, recruitors and especially to yourself.
- Try to find a mentor or just a community that you can talk to while you grow. It helps a lot more than spending lots of time and effort muddling around in the dark by yourself.
- Most of us study to learn and work, but work is not meant to fulfill all of our learning needs. Remember that learning is a lifelong journey.
That's a wrap folks! 🎉
Thank you for reading, hope you enjoyed the article!
Although it is by chance that I got into coding, after 4 years since I started in school, I still like coding. I won't say I love it but I will probably still be coding for the next 5 years. How about you? Share about your thoughts below!
If you find the article awesome, hit the reactions 🧡 and share it 🐦~
To stay updated whenever I post new stuff, follow me on Twitter.
To support me on content creation, you can buy a cup of tea for me ✨