NUSWhispers – Confession #23372
I know quite a number of peers who enrol in Computer Science with the aspiration to work in Google, Microsoft, Facebook, or you know, one of those tech giants in the Silicon Valley. The truth is, most SoC students won't end up there. Only the cream of the crop do.
If you are an incoming freshman with such an aspiration, please understand that being above average in programming is simply not enough. You need to be f**king good at what you are doing. I'll be honest and tell you that hard work is necessary, but not enough. Being good at CS requires a certain methodological way of thinking and modelling things. If you can't, it will be quite hard for you to excel in this course. You don't have to be like Donald Knuth, but you will need to train yourself to think computationally.
Anyway, here are my two-cents:
1. Don't be reliant on S/Us
Yes I know you have unlimited S/Us for your first year, and a lot of freshies will run into the "aiyah I will just S/U my grades" mindset when you take difficult modules like CS1231 or linear algebra, but treat your first year modules seriously because they help to build up your foundation. Take these modules as if you have no S/Us to count on, and work with the determination to ace these modules. You will definitely need to do well in your foundational programming modules if you plan to be a TA (teaching assistant) or if you want to be accepted into "elite" modules like CS3216 or CS3217 later on.
2. Take up side projects
Build up your portfolio as an undergraduate. You can contribute to open-source projects, take part in hackathons, build your own app, or even join interest groups like NUS Hackers or NUS Greyhats.
Just don't join the Computing Club's management committee (MC) . The MC commitment not only eats up a lot of your time, you will be unappreciated for the sh*t you do for the faculty. More importantly, your employers honestly don't give a damn about you being some publicity or welfare director of club x, y or z.
During the 3-month long summer holidays, you may be asked to help out with organizing the faculty's orientation camps or rag & flag. These are all fun and exciting stuff, but they don't add to your portfolio at all. You may want to consider doing other holiday programmes such as:
- Google Summer of Code (GSoC)
- Computing for Voluntary Welfare Organizations (CVWO)
- SoC Orbital Summer Programme
Note that Orbital is only for first-year students. I'm not sure about GSoC, but CVWO requires you to have decent grades to be accepted into the programme. Alternatively, you can do an internship during the holidays, but make sure your internship teaches you something related to your potential career.
3. Plan your academic schedule early
If you are planning to go for NUS Overseas College (NOC) or an overseas exchange, make sure your timetable allows for it and you are able to map the modules in the right semester. Consult your seniors who have gone for these programmes. Plan at least a year ahead, because you'll be surprised by the amount of paperwork you have to do later on.
4. Earn your professors' trust and make friends with trustworthy peers
SoC has the strangest bunch of people, but we also have some of the nicest profs on campus. Seek advice from them. If you become a teaching assistant and perform really well, you can get a recommendation letter from your prof, which is needed for applying for NOC or even for some jobs and internships. Some professors also have very good connections with local startups and tech companies, and they can even give you very good advice and recommendations for your career.
If you did a group project with a friend whom you felt was responsible and efficient and enjoyed working together, you may want to plan your timetables together to take project-heavy modules again in future.
5. Ask yourself what you really want to do
You may have applied to study in NUS Computing because of the $$$ prospects and even aspire to work in a big company one day, but ask yourself 'why'. E.g. do you want to work at Facebook because of the swag and prestige, or because you are really interested in the work you're doing? I also know some friends who are majoring in Information Security because they are interested in the job prospects but have no interest in the job itself. Instead, try to find something you wouldn't mind doing for the next 30 years after you graduate.