One year ago, I remember walking out of my teams project presentation and thinking "Okay, now what?". In this post, I'm going to share some great tips for keeping yourself at the head of the graduating pack.
Despite this post being largely about software engineering, and specifically devoted to BCIT CST graduates, there's a great deal of tips and tricks that can be generalized into whatever field or career you're looking to go into. And while I could write an entire book on my experiences I've had post-graduation from the Computer Systems Technology program, I believe these 5 things will be the most impactful for a new BCIT graduates first steps.
I got to watch a lot of my fellow classmates land great jobs, go off travelling, and get accepted into universities to continue their education in Computer Science. Unfortunately, I also got to watch the opposite, and it usually came down to x reasons.
For the first two points, there really isn't anything anybody can do, so I won't be talking about them. However, approaching your graduation and the opportunites realistically is something everyone has the power to do, whether you want to work in the field or not.
Of my classmates that had difficulty finding work, a lot of them thought along the lines of "I was in option X, so I'm only applying for jobs in field X". While this happened to work out for web and mobile grads, students graduating from AI or Digital Processing options are going to have a much harder time finding work with the same line of thinking. Why is that?
This has everything to do with supply and demand in the job market. In Vancouver, for instance, there is a huge demand for web developers, and generally the positions don't require any formal education. It's very easy to land your resume on the top of the pile with a few public repos and a personal project under your belt.
For those pursuing jobs that require much more specialized training, like AI, the opportunities are a lot more scarce, and the applicants are generally much more educated. If the field you're planning to go into requires more than what BCIT CST provides, chances are the only way you're getting into the field is through a connection in your network, more schooling, or relevant work experience.
So my advice? Cast your net wide, learn from every interview you get (or don't get), and try to land your first job as soon as you can. Having any experience greatly increases your chances of getting the opportunities you do want.
Without the structured lessons, many BCIT graduates find it difficult to keep honing their skills. There's plenty of free courses on YouTube, paid courses on Udemy, and tons of meetups happening all the time. But one of the single most valuable excercises for me has been posting on StackOverflow.
Whether it's a question or an answer, the process involved in articulating your thoughts so that another person can clearly understand you is so critical in the workplace.
One of my favourite things about running a blog is that every single post you write teaches you something new. Whether it's technical, personal, travel-related, increasing your knowledge and experience base is one of the most important parts of being a great software engineer, and one that many ignore.
One thing that employers love to see is how well someone can articulate their thoughts. Giving them an insight into your thought processes and teaching methods will make their decision to hire you that much easier.
Some of my best friendships were made at BCIT, while cramming for a test at 2am, or hacking out the last required feature for our group project 10 minutes before it's due date. We formed lasting bonds with each other, and it's something that's paid off a year later.
I received the offer to the job I currently have because of one of these friendships, and I've had many other offers for varying types of roles. Make sure you're making time to maintain these friendships, as they'll likely be the difference between an opportunity and a closed door.
If there's one single thing that I believe the Computer Systems Technology program missed out on, it's teaching students how to maintain their software over a longer period of time. I couldn't even put a number on the hacked solutions I threw together the night before a due date, never to be seen by another human being again.
And this worked fantastically. But if I had to come back to these "solutions" 6 months later, and attempt to fix something, or add more functionality, I likely wouldn't have any hair left. And that's the feeling I had, 6 months after starting my first job, coming back to buggy and broken code.
This is one of the most important pieces of being a truly great software engineer. Learning how to make descisions that will directly affect your ability to fix them months, or even years, from now. Learning to weed out the packages that will solve your problems, from the packages that are going to create a nightmare when the maintainer quits.
This is why I suggest a personal project. It could be a blog, a portfolio, or even a business idea. As long as it's something that is perpetually a work in progress, you'll continue to find problems with your workflow and engineering practices. Learn to make debugging your code a simple, 5 minute read through, and not something that requires an entire day and countless profanities.
Not only is this going to be a great learning experience, it's also going to be worth a lot of brownie points to prospective employers. Be ready to talk about some of the architectural and design decisions, and be ready to share detailed experiences of how and why it was built in the first place
That's it for this post, but if you have any feedback, questions, or just want to chat, drop me a message on my contact page 🙏. Congratulations on your graduation, and good luck out there!