I attended Hack the North this weekend — a stellar hackathon which I can’t say enough good things about. This was my 5th time attending Hack the North (2nd time as a sponsor rep), and I’ve always been blown away by the scale and quality of the event, all of which is put together by really hardworking students who selflessly pour months of effort into it.

Even though I’m not a huge fan of some things encouraged by hackathons, such as all-nighters and an ultra-competitive spirit to programming, (I’ve previously written about my preferred way to attend a hackathon), it’s undeniable that they offer many benefits to people starting off in tech who want to learn really quickly.

The keynote speaker at this year’s Hack the North was Jack Dorsey, CEO of Twitter and Square. While my views on his priorities at Twitter are mixed (a topic for another time), I still respect Hack the North a lot for inviting such a high-profile speaker. For the purposes of this post I’ll focus on this one thing he said:

Yes, there’s a lot of irony in that it was said to thousands of university students in a university lecture hall in the middle of a university-hosted hackathon. But it’s also important to note that he’s speaking about how his education impacted him.

And needless to say, what works for him may not work for you. I, and almost everyone I know, found school to be tremendously helpful.

I’m a recent graduate from the University of Waterloo’s Software Engineering program. One short blog post couldn’t do justice to all the things I learned at university, both inside and outside the classroom. But I’ll summarize some of the high-level ideas I found to be really important.

I’m not Jack — and you may not be either, unless you get lucky

There are thousands of tech entrepreneurs out there like Jack. Not all of them end up founding a massively popular enterprise. Success of his scale is not possible without a unique combination of luck, financial/social security, a strong social/business network, etc. Yes, there’s a lot of hard work involved too, but that alone isn’t enough.

That’s one of the many things school taught me. Success isn’t just about hard work, there’s always a luck component. Examples of extreme success are always a story of luck and timing. There are founders with degrees who got lucky, as well as founders who dropped out and got lucky.

As a recent Indian-Canadian immigrant with almost no family ties (other than my immediate family that moved with me) to North America, I knew I had to build a strong footing here, mostly on my own. My parents did the hard task of immigrating here when I was 14; beyond that point, I was as much of a newcomer to this new world as they were. They were university educated professionals too, and I ended up in a country as socially/economically stable and mobile as Canada, so there were many things I did get lucky in.

At school, you’ll see people around you working really hard. But not everyone becomes a Mark Zuckerberg, or a Donald Knuth. You’ll sometimes see people with more knowledge and a stronger work ethic than you struggle to succeed, and people who are able to achieve a lot more success with far less effort and knowledge.

I, like many of you, couldn’t bet on being in the latter camp. I needed a way to guarantee a baseline of success, and build a strong foundation.

And there was one obvious place to go to get one.

You learn the extent of your knowledge, and that learning never stops

At its very core, an undergraduate education gives you detailed but nowhere close to exhaustive knowledge about a discipline. The structure of it all forces you to stay on track. And it also gives you a good idea of what you don’t know.

We’ve all come across someone less experienced in our field who trivializes it. Sometimes it’s a naive younger person, sometimes it’s someone in another field. At university, I learned that the humanities are a different (and not a less difficult) beast, that I had little clue of computer graphics, and that I had a better understanding of operating systems and databases than most other sub-fields of computer science, for instance.

Knowledge of your extent of knowledge is important. No one works alone; and you need to know when to seek other people’s advise / help, and when to give it a shot yourself.

You also learn the “why” behind things. You learn why p = np is such a difficult problem. You learn the limitations of present-day tech, and past day tech. There’s a reason why you don’t see Ph.D researchers giving a lot of hot takes about radical new ideas; they understand the nuance and know where the challenges lie.

Knowledge keeps evolving. School sharpens your curiosity about some fields, and ends it for those that don’t line up with your strengths.

You get a credential and a strong network that you can rely on