A letter to myself before my first software internship

Advice for achieving success in the first few weeks of work

Tristan Wedderburn
5 min readMay 9, 2019

As the winter semester comes to an end and some of my friends head into their first engineering internships, I’d love to pass on some advice for their first few weeks at work!

Who am I, and how did I get here?

I am studying Computer Engineering at McMaster University, and I am currently interning at Wealthsimple Inc. as a Software Engineering intern.

For those that are wondering, “Hey, you’re not in computer science or software engineering?”. That’s right. I feel as though there is an increasing opportunity to break into a software development role by pursuing knowledge on your own time. You can pursue self-education through resources such as the Internet or in-person sessions. I have done a Udemy course and would highly recommend the platform. I have also been to a few trial events at Brainstation Toronto, and it seems like a good investment. I believe they also grant scholarships to subsidize course fees, which can be especially helpful as a student. All you need is a little luck to get your foot in the door, and from there, it’s up to you to make it happen.

Luck = preparation + opportunity

There are many ways that you can practice your skills and prepare for an internship outside of school. For example, participating in hackathons and completing coding challenges on platforms such as Leetcode. Opportunity can take many forms. I would advise anyone looking to advance their career to stay active on LinkedIn. I think the platform has great potential and will only become more popular with time.

Nonetheless, I have included a few learnings that I have come to realize upon reflection, and things that I think could help others with their inevitable “imposter syndrome,” throughout the rest of the article.

Tips for your first few weeks:

Some of these points may cater more towards software jobs, but many are transferable skills.

I’ve heard it time and time again:

Grit is a key aspect of success.

As some might say: “stuff happens.”

My first project was a considerable challenge. I found myself frequently blocked, left staring at my screen, trying to decipher errors from a third-party library. Despite having a few software courses under my belt, the bulk of my experience has come from coding projects that I have pursued on my own time. My schooling hadn’t prepared me for what I faced.

To be honest, I wanted to quit. I felt so dumb, and as though I didn’t know how to program at all. However, after giving up my ego, really relying upon the experience that I did have, searching (tirelessly) for relevant answers on StackOverflow, meeting with my manager frequently, and developing incrementally, I was able to make a breakthrough. From that point onwards, my progress was exponential. After that experience, I realized how vital your mentality is when solving a problem.

1. Be confident in your skillset. If you’ve put in the work, you’re going to be okay.

2. Know when to ask for help!

While it is always rewarding to solve the core problem yourself, the company you are working for has its objectives too. Trust me when I say that it’s much better to reach out to someone on your team, who may have more experience with a system, or debugging in general than to struggle for hours. Your day will fly by, and you will eventually fail to deliver on your estimated project deadline. These are all great opportunities to build soft skills, too, like time management and communication.

3. Try to get more involved with your project brief and make sure that you are genuinely on board with the project scope.

I began a project where I was working with a monolithic application and didn’t fully understand what was going on. I had coworkers briefly explain the process, but things are a little different when you get into the code and begin implementing changes. In addition to new codebases, this applies to languages* that are new to you. (*Read: Ruby)

That’s not to say that you need to write perfect code on the first go. After receiving high marks in my Software courses, I thought that I had this programming thing down. I learned pretty quickly that there was much more that I had to learn.

4. Submit your code for review (Pull Request) and make improvements with help from those who are better than you.

5. Don’t be afraid to ask a coworker to pair code.

6. Learn to use the debugger (!!!)

A debugger is a convenient tool that I wasn’t introduced to until starting my internship (although that may just be because of my Computer Engineering background).

7. Test, test and test again!

I never really understood the purpose of testing and when tests were needed (again, the Computer Engineering background). I was always eager to get my code deployed as soon as possible to verify behaviour.

You write tests to ensure a particular behaviour remains in the code. When people revisit the codebase and attempt to make changes, they will know whether they have altered essential aspects of the program!

Engineering Culture:

The following tips are a bit more culture-focused:

8. Try your best to avoid burn out.

I still have a bit of trouble with this one. With more freedom comes more responsibility. Likely, no one’s there to tell you that you need to stop working. Programming is a hell of a lot of fun, I know. When you make a mistake, it can also feel like a living hell! We all like to solve problems. Give yourself a break. You are more than your job.

9. Make an effort to eat lunch with people and learn how they came to be at the company or just how their day is going.

I still struggle with this one, but it can be as simple as “How was your weekend?”. Enjoy getting to know your colleagues. You’ll be spending all day with them for at least the next four months. Maybe combine tips one and two and take a break by asking a coworker to go for a quick coffee!

At Wealthsimple, we have a #team-coffees Slack channel that encourages employees to meet each other more. I’ve met with coworkers in the business department that I probably wouldn’t have met otherwise because they aren’t my stakeholders!

Lastly,

Nothing will prepare you for your first internship. There will, no doubt, be highs and lows. What matters most, in my opinion, is what you can learn and take away from the overall experience, and the people you will get to meet while you are there. But for now, enjoy the acceptance and get ready to learn a LOT.

--

--

Tristan Wedderburn

“Better writing leads to better thinking. And better thinking leads to better communication.”