Programmer Path I
The first entry in this series chronicles my beginning as a software developer: from high school to entering SFU to study Computing Science.
High school
I went to the best public school in my district. At least it was during the years I was there.
My first coding course was an "Information and Communication Technology" class that I took in Grade 10. It was supposed to teach you the basics of code syntax in Java and that was it.
In reality, here's how the year looked like (the academic year was split into three terms, each roughly three months long):
- Term 1: Drag-and-drop visual coding on code.org.
- Term 2: Complete 25 Java "problem sets" purely focused on syntax (keywords, conditionals, loops)
- Term 3: Develop an ATM: account/balance management and GUI (Java Swing) on a single host
The class was an example of what happened if you gave too much freedom to high schoolers: many of my classmates spent the entire year playing online games or streaming soccer matches (it helps that the teacher was a soccer fan). Some of the others who had more experience finished the problem sets early in the year as well and worked on extracurricular coding for the rest of the year. I ended up winning a subject award for this class at the end of the year probably because for someone who had no exposure to coding, I did make a lot of progress in a year.
Despite the sloppy execution, I am grateful to that class for introducing me to the syntax of a commonly-used language and working through software projects with vaguely defined requirements. Yes, I wished I used a modern client-side UI library, learned more about software design/architecture, or used best practices like version control or package management.
I finished that course open to the idea of learning more programming. However, I spent the next 2 years in the IB Diploma Programme which sucked up all my time (Unfortunately, my school did not offer IB Computer Science - I would have taken the course if it were offered). Committing to the IB is a contentious decision because it is pricey and demands a lot of time as a university-style education for high schoolers. Even though it delayed my path to become a programmer, it was ultimately worth it to me.
High school graduation
The first half of my Grade 12 year was hectic as I was juggling preparations for the IB examinations and applying to post-secondary institutions. Programming was the last thing I wanted to think about until I realized I was at a major crossroads.
I entered CS as my backup major at my backup school. As a typical deluded high school student, I wanted to study urban planning but I ultimately changed my mind.
- Job market: My parents did a side-by-side comparison of the available career openings for urban planning and software development. Seeing the dearth of urban planning roles and how most of them required a master's degree,
- Uncertainty: Even though the program I was accepted into offered co-op (work experience terms during undergrad), the quality of those roles was also not great. Many of my parents' friends kids got experience in university through these programs but could not secure an entry-level job in their field of study
- Work style: While I have noble desires to make my community a better place, the reality of urban planners is to make policy and resolve differences between stakeholders. This requires good writing and communication skills along with the ability to navigate political situations. As someone who reasons well with numbers and logic and works best as an individual contributor, I would not leverage my personal strengths well in this field.
Later on, realizing the earning potential of this field solidified my decision to pick CS.
Looking back, I have my parents' colleagues to thank for pointing me in a pragmatic direction. One of the coworkers heard my "plans" and demanded that my parents talk some sense into me.
Ultimately, I've decided to explore urban planning more in the future. I enjoyed all the geography and political science courses I took but I realized that focusing on computer science and software development will be more rewarding in the short term.
Part 2 focuses on my first year at Simon Fraser University.
Back to blog posts