Increasing Your Surface Area for Serendpity: Finding Opportunities as a Computer Science Undergrad
Computer Science Undergraduate Networkingđđ˝ TLDR â How to find summer research opportunities and freelance programming jobs for undergraduates
There is a huge unfulfilled need for programmers outside of the tech-sphere both in research and in industry
How to find research and freelance opportunities outside of the usual places:
Go to events and join clubs
Teach, tutor, and be taught
Say yes to opportunities wherever you find them
Opportunities to look out for:
Data is plentiful and in need of analysis. Improving data management and providing insights to companies is extremely valuable
Interdisciplinary research â a lot of research requires a programming aspect these days, offer your services
𤲠My story of Opportunity and Belonging â skip this if you donât care
itâs 2015, Iâm sitting at my desk, second from the back row, second from the left wall. Itâs 3:00 pm and the bell is about to ring â what Iâve been waiting for all day. I sit just adjacent to the left corner because itâs the least noticeable spot. Teachers think theyâre clever when they call on the shy kids in the corners so I move one in â 15-year-old Nathan thought he was outwitting the system. My teacher makes some announcements about essay deadlines in a tone that could lull crying babies only to be cut off by the bell. Classmates rush out the door; theyâre buzzing about music club, anime club, the rugby team â take your pick. Not me though. I head straight home.
This was my ritual. I didnât want to get involved. I didnât want to get noticed. I didnât see the point. I went home and I played Call of Duty Black ops 2.
At my high school, we needed a certain number of extracurricular credits to graduate; I had neglected this requirement for 2 and a half years. As I approached my senior year, I realized how sorely behind I was on these credits. I needed to join a club, and I needed to do it in the middle of February after all the clubs had already chosen their members.
Cue my hero and dear friend, Ilakkiyan â we called him Lucky. Lucky was president of the environmental council at the time and after I explained my situation he graciously offered to bring me aboard the team. Now, as a perennially disinterested teenager, I thought there could be nothing lamer than joining the environmental council. Donât get me wrong, I was grateful, just not enthusiastic. I expected long drawn-out meetings during my lunch period, a room full of unengaged high school students seated in a room with a heating system from the 40s. Most importantly though, I expected to do nothing of value.
Flashback to my first day. Itâs a Thursday lunch period, some forgettable date in February â my first meeting. I trudge through the halls to a forgotten classroom in the corner of a forgotten wing of the patchwork building that is this school. Arriving at the door, I drag my feet over the threshold, into a musty ânatural light onlyâ room â thatâs code for the lights barely work anymore. As the room envelops me, as I step into the class, everyone turns. Everyone says hi to me and people Iâve scarcely seen through the halls the last 3 years invite me out to grab pizza after class. Everyoneâs excited, engaged, and completely unaffected by the dim and poorly heated room weâre in. For the first time in my life, I seat myself front and center of the class.
In the year and a half that I was on the environmental council, we created an outdoor garden thatâs maintained to this day, ran classes for local elementary schools on the value of recycling, and held assemblies on current environmental issues. I even sang in front of the school for one of those assemblies. In that year and a half, my expectations were shattered â we did so many things of value. Most importantly, in that year and a half, those hallway faces â my classmates â became the faces of dear friends.
Thanks to Ilakkiyan and the kind hearts of the 2015 and 2016 environmental council, I got involved, I found belonging, I found my love of community; the point that I couldnât see a short year and a half ago.
When I graduated at the end of 2016, university on the horizon and environmental council at my back, I swore I would never let go of what I found â I never sat in the back corner again.
đIncreasing your surface area for serendipity
Now youâre thinking âgee, great story Nathan, but what does that have to do with anything?â Hear me out. On-campus and freelance opportunities are plentiful and varied but youâll never find them or think them up on your own. You have to sit in the front row and participate. Do that enough and opportunities will find you.
Some of the unusual stuff Iâve gotten myself into by literally and metaphorically sitting in the front row include:
Running Roboticon for 2 years at the University of Guelph â a 250 student robotics competition. I had no prior robotics experience.
I aided in the design of big data agricultural projects involving state-of-the-art âsmart barnsâ. I had 0 prior experience designing databases.
Check it out here: https://foodfromthought.ca/research/livestock/the-animal-database/
I took a masterâs course in the Summer of my first year on Evolutionary Algorithms
I didnât take biology past grade 10 and had little to no optimization/machine learning experience
So how did I do this? The truth is itâs always felt like luck. I was just lucky enough to meet people who introduced me to my friend Jared who was already working on The Animal Database project. I was lucky enough to stumble into a room where I met Sebastian, a 4th year CS student who worked with professor Wineberg on the redesign of his evolutionary algorithm code.
Computer Science at Guelph was small at the time and it was easy to stand out if you were curious and kind. In all honesty, there was a flurry of chance that went my way. But hereâs the thing, you can âincrease your surface area for serendipityâ. We canât control how lucky we get, but we can influence how many times we get to roll the dice. I felt luckier because I took more chances â I rolled more dice.
Letâs talk about where to find those chances.
âŁď¸ Go to events and join clubs
The legend of the lone programming genius is a harmful one for young students to hear. Programming is a cooperative pursuit. From coding itself to identifying business problems, finding research projects, and more, development is a collaborative process. To find collaborators, the best thing you can do as a student is going to events and join clubs â especially outside of tech.
A couple of events that I loved as a Canadian computer science undergraduate include:
CUSEC â Canadian Undergraduate Software Engineering Conference
CSGAMES â Computer Science Games
Hackathons (thereâs so many but to name a few RUHacks, HawkHacks, WinHacks Hack the North come to mind)
Some clubs or methods to find clubs on campus:
your computer science student society (at Guelph we have SOCIS, Laurier has LCS, etc.)
intramural sports teams â a great way to meet people from a variety of studies on campus
your universities club list â itâs probably hidden away somewhere on their website
Search for anything youâre mildly interested in and try it out â I joined Jack.org to improve mental health awareness on campus.
Computers science events and clubs are a great way to meet like-minded people, the rest are a great way to meet differently-minded people. I loved both. Itâs easy to trap yourself in an echo chamber, especially when youâre just starting to learn what you want to do with your career.
Once youâre at an event or club meeting the most important part thing to do is take in ideas and inspiration from other students and speakers, and of course to network.
Some of you may be hesitant or it might just be me, but when I first started reaching out, I despised the word ânetworkingâ. It felt like a sleazy process of âif you promote me, Iâll promote youâ. Luckily it doesnât have to be that way. If youâre genuine, seek out interesting people, and ask them about your mutual interests ânetworkingâ will happen naturally. Networking can and should be a sincere process of connecting and engaging with people.
Itâs easy to remain siloed off in academia and computer science. Attending events and clubs is a deceptively easy way to branch out.
đ§âđŤ Teach and Tutor
Teaching and tutoring can seem terrifying at first. I used to worry about this a lot. âbut Iâm not an expert. How can I teach? What if people ask me questions I canât answer?â You may not be an expert, but you definitely know something someone else doesnât. Teach that thing. And if someone asks you a question you donât know how to answer, figure it out together.
Expertise should be measured relatively, not absolutely. It doesnât matter that youâre not an expert compared to your professors, it only matters that youâre an expert in something compared to your peers. For my fellow computer scientists and software engineers, your introductory programming courses will be filled with a slew of engineers, mathematicians, statisticians, and curious folks from all across campus. Your expertise in relation to them is programming, just as theirs may be calculus, statistical analysis, or psychology in relation to you. Offer to help (but please be humble about it ⌠I cannot stress this enough) and request help yourself. Iâve met some of my favourite people by mentoring and being mentored.
The more you help, the more people will think of you next time they have a project or idea. The only reason I got to work on the Animal Database Project was that my friend Jared heard that I helped the engineers through our intro programming course.
đ Say yes to Opportunities wherever you find them
This ties into my last bit of advice on how to increase your surface area for serendipity. Say yes. Once youâve joined some clubs, gone to some events, taught and been taught by some clever and interesting people, say yes when they propose a project.
How did I get to work on Roboticon, The Animal Database Project, and a masterâs course all in first and second year? Often I was the only person in the room with the courage to say yes. Roboticon was a case of right place, right time, no competition. While attending a SOCIS meeting, the previous director of Roboticon asked if anyone would like to help run it. I was the only one to raise my hand. The Animal Database: one time, while studying at the library my friend Jared bumped into me and said âNathan, youâre good with computers right? Iâve got a USB stick here, if you can read the files on it, I have a job for you.â I dropped my assignments and worked on that cracking that USB all night. With evolutionary algorithms, while at an event on campus, I forget what for, I got to chatting with Sebastian. He noted that Professor Wineberg needed more C++ or Julia programmers ⌠I may have stretched the truth of my expertise during that conversation, but I did learn Julia that Summer.
Opportunities, as Iâve experienced, are plentiful but rarely taken. Clubs are looking for extra hands to run their events. Your friends and peers have projects they need help with. Your professors love talking about their research to curious students. When you join clubs, attend events, and reach out, the people you meet just might think of you next time they have an opportunity to share.
đď¸ What kinds of opportunities are out there
Alright so weâve talked about how to be luckier when finding opportunities, but what kinds of opportunities are there? Iâve noticed three categories go overlooked over and over: interdisciplinary work, infrastructure development, and data analysis/management.
đ¤ Interdisciplinary Work
Remember we talked about expertise as relative, not absolute. Interdisciplinary work is a perfect example of this. Bioinformatics is an inherently interdisciplinary field, combining biology (most of what Iâve seen is in genetics), and computer science. In a field like bioinformatics, as a computer scientist, your relative expertise in programming may be greater than if you were to dive into an exclusively computer science topic like compiler optimization. An expert in biology may need support with the programming or discrete mathematics â fields where your experience will shine. Interdisciplinary fields often sorely lack developers as they funnel into the industry or strictly computer science fields. These projects often have funding for programmers or undergraduate research assistants available if you pitch yourself well.
đď¸ Infrastructure
Almost everything needs or could benefit from a website, server, or some automation. I canât tell you the number of times Iâve heard friends and colleagues in political science, biology, sociology, etc. talk about how some automatable process eats up hours of their day. This is where you come in. Listen closely to their complaints then come up with a solution. For academics, often some amount of research funding can be freed up for these kinds of automation projects. In industry, many companies are willing to pay for websites, servers, and other infrastructural services.
What I was brought on to do with the animal database project was infrastructural. My job was to assess their data flow â how data got from the barns to data storage facilities and to figure out if the team could improve this in any way. I was only in my second year and I had never even been on co-op â far from an expert on these topics. My relative expertise was enough to make my voice and opinion valuable to the research team.
đ˝ Data Analysis and Management
A lot of the automatable processes I spoke about earlier have to do with data retrieval, processing, and analysis/representation. Tasks like scraping hundreds of websites or documents for consistent, well-formatted data are done, painstakingly and manually, by graduate students or employees. One python script could do all of this in a fraction of the time. Simple things like âcodingâ â the process of transforming categorical data like ânot-satisfied, somewhat satisfied, completely satisfiedâ from surveys into numerical representations (0,1,2) are often also done manually when this could easily be achieved automatically. Lastly, even the most basic statistical analysis (simple descriptive stats) can provide invaluable insights in research and to clients. It doesnât take long to learn the basics of stats using python or R and present those stats to researchers or clients.
Summing up
It doesnât matter if youâre an undergrad looking to get some experience on your resume before the co-op search or a graduate student trying to find a niche, this advice applies across the board. Seek out people first, engage with them sincerely, and donât let opportunities go to waste.
Cheers,
Nathan Laundry
Join my Email Newsletter #GuidingQuestions here
If you liked this post you may like my previous 2:
Breaking Down the Literature Review
From Undergraduate to Masters/PhD: How to Handle the Mindset Shift
If youâre curious how to manage all those opportunities try my Notion Template for managing weekly todos
https://nathanlaundry.com/notion-templates/weekly-sprint-template