I completed my first co-op placement in Spring 2011 with PMC-Sierra; at the time, I was only in my second year of engineering at SFU. I severely struggled my first several weeks on the job and felt clueless in many situations. The computer at my desk ran Linux, which I had never used before, so I couldn’t even accomplish fundamental tasks, let alone the work my supervisor assigned to me which involved several different programming languages I was not familiar with.
Although daunting at first, I was not discouraged because I knew Co-op is intended to be a learning experience; especially your first Co-op. At this point, I was not concerned about my lack of skills compared to other members on my PMC-Sierra team, since I figured I still had more than half of my degree to go!
This article isn’t about my first Co-op placement; however, it’s about my last Co-op placement.
Surviving the academic portion of engineering is one thing, but this does not make you an engineer. It’s easy to pass engineering courses without mastering the material, or even without a good understanding of the material in some cases. After completing each semester of courses, I would ask myself “Do I feel like an engineer yet?” The answer was always no, but I came to grips with this answer because my course work was still yet to be completed and I still had more learning to do.
Fast forward to Fall 2012. At this point, I only had one semester's worth of courses before graduation (not including my undergraduate thesis) and I still had to complete eight more months of Co-op. I headed out on the job search again and ended up landing an eight-month software development position with Broadcom. This was just what I was hoping for; a more senior-level software development position as opposed to a more junior level testing position (which was my first Co-op).
Since my degree was nearly completed, and my last remaining courses were not software related at all, I considered this Co-op placement to be more of a test rather than a learning experience.
Am I able to work as an actual engineer? I felt that I can no longer dismiss any lack of skills or difficulties on the job due to being only a junior engineering student; with respect to this position, I already am essentially graduated!
I was quite nervous since I still didn’t feel like a full-fledged engineer.
Despite being much more experienced compared to my first co-op placement, I found myself still feeling clueless numerous times while at Broadcom. My team was working with a tablet platform which I was completely unfamiliar with, all the software was grouped into huge projects with many files all internally linked and I could never find where to look for something, and so on.
Eventually, I was assigned my own project to work on, which was designing and developing a driver for the tablet. This was it, real engineering work, not the watered-down busy work typical of an entry-level co-op position. I had heard of drivers before of course, but I had never written one, and I wasn’t even exactly sure what they were.
I was not feeling very confident; I didn’t even know where to begin. At this point, my main concern was being able to come up with anything and not looking like a complete fool. I asked my supervisor, who had graduated from SFU years ago, “I never learned about drivers, is there any sort of driver development course you can take?” My supervisor shook his head, “not really”. Although I still felt clueless, it was at least comforting to know that I wasn’t expected to know about drivers.
After working on the project for a couple of weeks, which was mainly spent reading documentation; I finally began to gain my footing and started developing my driver. Eventually, I reached my first milestone, which was being able to load the driver onto the tablet successfully, even though the driver didn’t actually do anything yet.
Despite my lack of experience, I was somehow managing to work as a software engineer. It was during this time that I came to a revelation about being an engineer. Engineers need to know how to do many different things, but I’ve found that one of the most important things is being able to learn.
You can have taken all the engineering courses in the world, and have years of professional engineering experience, but there will always be more to learn. Working in a constantly evolving technical field necessitates learning. There will always be new platforms, new programming languages, new projects, and new technology that you will be unfamiliar with at first, but being an engineer means you can quickly learn and adapt to succeed.
I learned many new skills while working at Broadcom, especially on my driver project which is still ongoing. However, the main thing I got from this co-op placement was confidence, the confidence in knowing that I can learn on the job and succeed as a professional engineer in the workplace.
Beyond the Blog
Learn more about the Engineering Co-op Program