Friday, 8 May 2015

Co-op Reflections 1.2: Some Hindsight and A Little Foresight

I feel like these posts are becoming a testament to just how fast time goes by! It is already the start of the first week of classes back at Waterloo; with the academic course load returning to full swing, I thought I'd take some time to reflect on my co-op term before things get too crazy.

Looking Back
From feeling extremely overwhelmed to a nice sense of simultaneous challenge yet familiarity, I found myself immersed in many different sides of software development throughout the term. I was lucky to have started during a very busy time for the company; getting to see Dashboards transform from a true work-in-progress to a polished, commercial product was an incredible experience. While I got to work on many aspects of the application, the portion that I'm most proud of is the custom dashboard authoring experience, which I helped build from scratch; thinking back to the very beginning now, it amazes me that we pulled everything together to make it both functional and user-friendly. The responsibilities that I received gave me a more comprehensive understanding of the roles of a software developer; not only do you code, but you design your code to be effective, and test its implementation to (near) perfection. Communication with the team plays such a key role in efficiency; not only is clear communication imperative, but checking in frequently and asking lots of questions allowed me to stay up to speed with others' work. In fact, I almost wish I'd spoken up more; there is only so much that I could understand on my own; by asking more questions, I likely would've saved some time that was spent pouring over confusing parts of the code.

Throughout the term, I was able to work on both frontend and backend code, which allowed me to become familiar with the majority of our project. Through the full-stack immersion, I improved my familiarity with C#, HTML, and JavaScript, as well as even delving into a little bit of SQL. Work on a team with both a primarily backend developer and a web developer, it was really interesting for me to see how they think so differently; while the web developer focuses on user interface and intuitive user interaction across platforms, the backend developer concentrates on optimizing performance and functionality. It was really nice to be able to gain some knowledge on some of the intricacies that go into making the most out of the code.

Looking Forward
One of the things that I'm looking forward to learning more about is software design. It is one thing to write code, but another entirely different experience to design various components of a program for maximum code and performance efficiency. Up until now, we have really only been learning how to program, not so much actually making our programs. That’s why I’m really excited for our Embedded Systems course this term, where we’ve begun to go over the components of various software engineering cycles. I think technical skills by themselves can only go so far; gaining a better understanding of how to design and implement good software is an important ability that'll help tie everything together.

Furthermore, we've begun working on Android application development! I've been really excited about this because it means getting to work with Java and a new platform - I have experience creating many web applications, so it's been fun building something so new and so very different from anything I've done before. This term in itself appears to be a lot more software-oriented than 1A, which I couldn't be happier about.

I never thought that I'd have the opportunity to work in Ottawa and subsequently explore its depths, nor that I would begin my co-op experience diving headfirst into a development role. Throughout the term, I was able to improve many skills, both technical and interpersonal. Above all, I think the most valuable lesson that this co-op term taught me is that adventure is out there waiting to be found. When it comes down to it, the beauty of co-op is getting to discover the diverse opportunities that one can pursue in a particular field; I am already excited to see where I'll go next.