I am Irvin Lim.

It's Over (Part 3) - Final Thoughts about CS3216

So this is probably going to be the last post on this blog for a while, if I decide to upkeep my writing habits (which has actually been beneficial). I think that apart from writing code, explaining your thought process in prose form gives developers the ample break they need from looking at a black background all day, and forces you to organise your thoughts in a structured and logical manner, much like spending lots of time writing the README.

CS3216 has really been a hell of a ride. I’ve been reading my past posts, as well as other batchmates’ blog posts. I’m quite glad, and even happy at how things have turned out for everyone. The rumours indeed weren’t lying when they branded this module as the “SoC Ranger Course”, though I really think that as with any other module, how much you gain from it is really up to how much you want to.

I initially didn’t plan on doing CS3216 this semester, until I received the email calling for registration. Though I had always heard of the module, I didn’t know what I was getting myself into when I wrote my personal statement and submitted it. As I was working with Leon for Orbital, I also convinced him to join with me. Little did I know that I was among the 40 successful applicants out of more than a hundred. That made things actually start getting real, as at that point in time my knowledge about the more modern web technologies was limited to merely Meteor + React (I don’t consider the LEMP stack to be modern). I knew I had to get my shit together, as I realised that there are so many other zai kias (who may have more relevant experience or being Year 3/4) that I would have to catch up with. Nevertheless, I’m glad to have reached where I am today at the end of this module.

Re-reading the very first post on this blog, What I hope to learn in CS3216, I realised that I had actually fulfilled 3 out of 4 of the objectives I set! With this module, I’ve picked up mockup design skills in Sketch, refined UI/UX knowledge with the help of tutors and classmates, diving headfirst into product marketing, and most importantly, got to work and made friends with a whole bunch of amazing people :)

In retrospect, I really agree that I have gained a lot from this module. Here’s a list of tips for anyone who may want to take this in the future, in case this comes in useful!  

Be open-minded

Come in with the mentality to learn, not to show off. It’s amazing that there’s a module so diverse with people talented in different skill sets, and you definitely can pick up a thing or two from working with people across the different projects, be it frontend, backend, design, business, marketing, or just insights from people from a different batch or different faculty. There is definitely things you can learn when you have a class which is considerably more close-knitted than others - it’s not every module where you have everyone in a single Slack group!

Do something unfamiliar

Though this is rather risky if we are talking about learning a new framework/language, but if you have the right guidance of other teammates in the same group, the best way to pick up a new framework is to just jump straight into a project which makes use of it. For me, I unfortunately did not manage to get to learn a new framework (other than getting to know React/Redux much better). Otherwise, for most developers another extremely useful skill would be to pick up first-hand experience in marketing and market validation. This is rather overlooked by most developers, and I’m kinda glad my final project team went through that hell of pivoting 5 times in order to sieve out good ideas.

Don’t be afraid to work with stronger people

It might be tough, but if there is someone else in the module you look up to, or think that he is really zai and stuff, don’t be afraid to ask to form a team for one of the projects. I am a little guilty of not doing so, and found myself sticking with people I somewhat knew for each assignment. Surround yourself with quality individuals, and you will find yourself learning much more (if he or she is indeed as quality as you thought).

Don’t do other project-heavy modules/commitments

This is extremely important. Don’t be like me and not check how many project you are going to undertake this semester (I had 7 projects, including 4 from CS3216). Don’t underestimate CS2103. Delay difficult modules (for me it is ST2131) if you can. Otherwise, you are in for a rough time, and you will find yourself sacrificing either your other modules, your CS3216 projects, your sleep, social life, or perhaps everything (T_T). I kinda regret having to commit to so many projects, and found myself sacrificing time spent on the Final Project when more testing or UI/UX improvements could be done.

Finally, get the most out of it

As mentioned above, CS3216 is up to how much you want to get out of it. I personally think I have been both lucky and glad to feel accomplished and that I have learnt rather a lot from this whole experience, be it both bad or good ones. Get out of your own bubble and do something you won’t normally do. Instead of whining or lamenting about bad experiences or bad choices in this module, at the end of it all I think that it has been the most rewarding module so far in my short undergraduate life of 3 semesters.

I hope that other classmates are having the same sentiments as me right now. It’s been a great semester (despite going without sleep on two nights every week), I’ve honestly gained a lot from this whole experience. It might also be of interest that all of the 3 apps that I have been involved in have plans to continue after CS3216 - I’ll be working with Eugene and his Final Project team for ExchangeBuddy for a longer-term, Happ is something my team feels (and I strongly feel as well) that is lacking and might be useful, and of course, you can’t forget 1our!

So here’s wishing everyone else who reads this blog in the next couple of weeks all the best in their finals (or catching up with countless webcasts), and I’m looking forward to hopefully doing CS3217 next semester (round 2 of hell yey)!