I finished university at 19. Was it worth it?

“You will need to earn 13 credits after you complete semester 2.”

My high school guidance counsellor sent me that in March 2022, after I called to ask whether I could graduate a year early.

Thirteen credits was almost half an Ontario high school diploma. The rest of her email turned the number into a schedule: finish three prerequisites before September, take eight courses the following school year, then complete the final two in July and August 2023. She warned me that even this version would be difficult. At the bottom was a Friday deadline to confirm the plan or risk losing spots in the courses I needed.

Her schedule ran through August, two months after the school year ended. I kept rearranging courses until everything fit by the end of June. My reply had a section labelled “Plan B.” In September 2023, I started university at 16.

In April 2026, a few weeks after turning 19, I completed the requirements for my computer science degree. I had taken courses through both summers and carried maximum course loads during several fall and winter terms. By my estimate, the compressed schedule saved me around $15,000 in tuition.

Nineteen is the part people remember. I usually have to supply the rest: my cumulative GPA had slid from 3.9 to 3.5, I had barely applied for internships until my final year, and I had spent hundreds of hours travelling to a campus I had originally chosen as my backup.

Thirteen credits

I started high school after COVID had already separated class from the classroom. School had become weekly Zoom calls and an online LMS. I took summer courses for the flexibility, with no plan to graduate early.

During Grade 10, I counted my credits and realized I had accidentally made it possible to tamper with the default timeline. My guidance counsellor took the idea seriously once I showed her the whole route: every remaining prerequisite, where I could take it, which course I would drop if something ran late, and what would replace it.

For the next 15 months, I kept revising that route around prerequisites, classroom seats, and delayed marks. In June 2023, I completed my 30th credit and graduated from high school a year early.

Getting into computer science, again

The first drawback appeared when I applied to university. Graduating early gave me less time to improve the six Grade 12 marks used for my admission average. I suspect that hurt my application, as I was not admitted to computer science at UofT's St. George campus in downtown Toronto, so I accepted my backup offer at the University of Toronto Mississauga (UTM).

At UTM, admission to the university did not guarantee admission to the computer science program. I still had to qualify after first year. So I locked in. Throughout that year, I regularly arrived on campus around 9 a.m. and left around 8 p.m. I finished the foundational programming course with an 87 and the mathematical proofs course with a 92.

I was 17 and obnoxiously pleased about it. Nobody could tell unless I mentioned my age, so I mentioned it often. Then I became friends with someone who had finished university in two years and started a computer science master's at 18. I stopped bragging after that. There was always someone more cracked.

The shuttle bus

Getting to UTM meant about 30 minutes to the downtown shuttle stop, then another one to two hours on the shuttle depending on traffic. Before an exam, I sometimes left home three hours early. Traffic got a vote in whether I made it on time.

I could study on the shuttle and get carsick, or close my eyes and lose the time. On most rides, I put on the cybersecurity podcast Darknet Diaries and slept in short stretches. Before some tests, I opened my laptop anyway and worked through practice problems until I had to look away again.

I have listened to every episode of Darknet Diaries, and the show is one of the biggest reasons I love computers. I recommend starting with episode 45.

By fall 2024, I was fed up enough with the shuttle to build an entire six-course semester at the downtown campus. The timetable below was my attempt to make Mississauga disappear.

Fall 2024 timetable, with all courses scheduled downtown

Fall 2024: six downtown courses. The statistics course is shown in pink.

The pink blocks were STA237, a downtown statistics course I chose instead of the Mississauga version. It was much harder than I expected, and I almost failed. I converted it to Credit/No Credit so the grade would stay out of my GPA. The following semester, I took statistics again at UTM and earned an A. I ended up taking two statistics courses because I was trying to avoid commuting for one.

Cross-campus courses sometimes worked in my favour. A summer software-design course downtown unlocked systems programming that fall. Systems programming then unlocked operating systems the following winter, while I was still in second year and most of the class was in third or fourth year.

The problem was enrolment priority: students from another campus chose after everyone local. I repeatedly built schedules around seats I did not have, waited for the lists to move, and rearranged the term when they did not.

Six courses at a time

The computer science fee schedule gave me what looked like an obvious exploit. Once I was in the program, the fee schedule charged the same fall-winter program tuition for any load from 4.0 to 6.0 credits. Six credits was also the annual maximum without special permission. A 5.0-credit year felt like paying for 6.0 and throwing one away.

From fall 2023 through winter 2026, I enrolled in eight consecutive semesters, including both summers. I tried to contain the commute by crushing my classes into as few days as possible. In winter 2025, I got the week down to Monday, Wednesday, and Friday. On Friday, the first block began at 10 a.m. and the last class ended at 9 p.m. The free Tuesdays and Thursdays were worth the stress.

With six courses, I had a midterm roughly every other week. Some courses also had final-exam thresholds: a low enough exam mark could fail me regardless of everything I had done during the term. I walked out of plenty of exams unable to tell whether I had answered a single question correctly.

Google Calendar was mostly empty. On Monday, I checked every course for what was due by Friday and spent the week dealing with whatever could hurt me first. I did not enter deadlines in advance until my final term. Once I did, scheduling became noticeably less stressful.

Opportunity cost

Using both summers for classes cost me internship time. I can estimate the tuition I saved; I have no idea what two missed recruiting summers cost. I barely applied for internships during my first two years and did not make a proper résumé until third year. Before I landed an internship, I genuinely worried that I would finish university without substantial industry experience.

The accelerated timeline helped once I explained it in interviews, but my work with UofTCTF, the university's cybersecurity competition team, gave me far more to discuss.

My early social life mostly lived in Discord servers for UTM and computer science. Many of the people I met there are still close friends. I also had friends I saw at school, but between the commute and everyone's schedules, we rarely met away from campus.

In third year, I started showing up to more club events and competing with UofTCTF in person. CTF weekends sometimes meant staying up all night over security challenges. They also gave me a reason to spend time with friends somewhere other than a lecture or a Discord call.

What I would change

I entered university taking courses that kept three possible programs open: computer science, economics, and CCIT, a backup in case I missed computer science admission. I dropped CCIT once I was admitted to CS. I later replaced economics with a math minor because more of its requirements overlapped with my degree.

I mapped the route I would have taken had I chosen computer science and mathematics from the start. It ended in December 2025, while I was still 18. For a while, that bothered me. I was already finishing absurdly early and was annoyed that I had missed an even faster route.

I remember surprisingly little from many of the courses I rushed through. Too much of high school and university became a sequence of requirements to clear before the next one. I learned most of my practical software development on my own through The Odin Project, YouTube videos, documentation, and personal projects.

One exception was computability and complexity. I expected abstract theory I would never use. Instead, I loved the formal way it treated problems. It changed the questions I ask before implementing an algorithm: can this problem be solved at all, and if it can, is solving it feasible under real-world constraints?

If I could go back, I would make the high school decision again. The summer credits were already there, and I found a route that still finished by June. University is where the same instinct stopped being useful. I would take four years, keep the summers for internships and rest, and leave room for unfamiliar courses and more time with friends.

Note: I completed the academic requirements in April 2026 but deferred graduation until 2027 while pursuing additional internships.