Intro
A common question I get asked by many high school and first-year university students alike is, "What should I do?". I struggle to reply to these types of questions because I don't think there's a proper answer to this for anyone. Everyone has their own path to discovering and answering this question themselves, often with confusing twists and turns that cannot be anticipated. I usually get this question in the professional context, with people asking me about the types of jobs they should go to given their major or a few interests.
My favourite example is a close friend of mine who mentioned that before starting their first year, they wrote out a letter to themselves detailing how their co-op journey would look like, what skillsets they would have, and where they'd end up after graduation - and proceeded to reflect that 3 years later, they had followed only the first few months before proceeding to switch it up entirely (including their major). Just about everyone I know has faced these twists in their journey and embraced them fully.
That being said, what I do end up sharing in response to this question are the key philosophies I hold when navigating this (endlessly confusing) journey - truth be told, even I don't know the answer to this question myself, despite the appearance of having it 'figured out' (I don't). But I think they helped guide me to where I am now and have kept me happy and satisfied in my field of choice (robotics and embedded software). Some of it might be cheesy, but it's true :)
Get out there
The world is big, and opportunities are endless. It might take a little bit of digging to find out about them, but discovering what's out there is crucial in figuring out what to do next. At the University of Waterloo, there are endless clubs, design teams, and other organizations that are happy to have someone passionate about what the organization does.
Discovery is what led me down the path of wanting to pursue software engineering. It started with tinkering with Lua in Roblox, morphed into messing around with C++ with Arduinos, and I picked up ActionScript for Flash Games and Swift3 for iOS along the way. I was fortunate to have had parents who encouraged me with all of this along the way, alongside teachers who were happy to let me goof off throughout school on the laptops to discover what was out there. It was through this path I ended up doing FIRST robotics, and I fell in love with making machines move with code.
Keep it fun
By far, this is my #1 rule for doing anything. I have a simple litmus test I employ whenever I evaluate a 'branch' in my life - is it fun? If it's not fun, that's a problem - and I'll usually look into why or start to branch differently.
I'm an idealist - I genuinely believe in the quote that if you do what you love, you'll never work a day in your life. I acknowledge that this kind of satisfaction is rare, but I always want to be excited to do whatever it is that day. Something's wrong if I am waking up and I'm not ear-to-ear about what I'm doing, whether it's work, doing something crazy cool, flying out somewhere, or just generally enjoying life.
Professionally, this turned into revolving around writing code for mechatronic systems. At the time, I still found other parts of software fun, but there was something exhilarating about getting a robot to deliver coffee or watching an RC airplane fly with my software, keeping it up there. The more I did it, the more I loved it, and the more I wanted to sink myself into getting deeper into it.
I do have to occasionally remind myself that the reason I do embedded software is because I really do think it's fun. And it really is, and I hope that everyone is able to find something to work on that they are genuinely passionate about.
Wow the 12-year-old me
12-year-old and 20-something-year-old me are very different people, but he was still into the same stuff I am into now. That is, really, anything cool with vehicles involved. 12-year-old me didn't go to an amusement park and realize that there's a PLC running that's controlling the ride's track braking system, or that there's a tiny computer inside my parent's car making the windshield wipers and engine tick away. But he did think it was cool that engineers made these machines work and understood that making them work was no easy feat.
When I reflect on the types of systems I can work on, the 'cool' factor is one that 12-year-old me and 20-something-year-old me share. If it didn't excite 12-year-old me, it probably won't excite me either. I've been fortunate enough to come across opportunities that excited 12-year-old me, and when I am looking for new professional opportunities, I look for the ones that seem like I'd get to work on genuinely cool stuff.
My current strategy is to find those who work on some ultra cool stuff and see what path they took to build up the skillsets that allowed them to do that, and aggressively focus my efforts on learning and building up those skillsets. For me, this has changed from EE (going so far as to try to specialize in low-voltage and actuator control electronics) to BLDC motor controls (right now, it is the control theory of mechanical and vehicle systems). But the translation to 12-year-old me is simple - build up the skillset to control (cool) systems.
I don't hold an 'end goal' of a job doing something specific or at a particular company. I know many whose dream is to work in a specific role at a specific place, and I envy that clarity since it provides a defined path with an achievable goal.
Comments