Reflection on My Reflection

Posted on August 18, 2015 by Richard Goulter
Tags: , ,

It’s been a year since I took CS3216 at NUS.
It’s quite a fun course, working on web app technologies. (For context of those who aren’t aware, almost all the coursework involves teamwork, and entry to the course is by-way-of application.).

– I want to reflect on one of the blogposts I wrote; but to say “hey, what I wrote was great” is awful. The blogpost was warts-and-all, though, so let me reflect on it a bit..

(NOTE 2015/08/22: enough people I showed the post to liked it; I was told by a labmate I was famous for my blog [which I sincerely doubt], which I figure to mean the blogpost I’m hand-wringing over here..)

CS3216 the Elite

– Complaints over the exclusive nature of entry into CS3216 made their way onto NUSWhispers; these complaints were met with contempt or ridicule.
(The worst of the complaints being a notion of “CS3216 is for smart/great kids; if I get in I’ll be able to be smart/great.”. – I mean, if you tell students “this class is for smart students, but you’re not invited”, what the fuck d’you expect students to feel?).
The justification given by Prof Ben Leong seems to be along the lines of “CS3216/7 lets top-tier students come together and make cool stuff”. This would make sense if every student in 3216/7 were top-tier, and 3216/7 evinced a nature of incubating quality projects (i.e. projects which live on after semester’s end.). – The latter doesn’t happen; and I’ve reason to doubt that everyone who gets into 3216/7 is “top tier”..
Anyway, Beng’s post is much better. (Beng is, somewhat famously, the creator of NUSMods, which is used by pretty much every NUS student to plan their timetables.). Beng’s post points out he wasn’t born amazing, and worked hard to get to where he wanted. But what I like most about it, – and where Prof Leong’s post also agrees with this – is the idea of doing work outside of school to improve one’s skill.

What I would add/emphasise, though, is that.., like. While “getting work done”, and being industrious are fine virtues, I reckon when it comes to programming, this should be a matter of interest: play around with C++11, because building things “natively” is fun, and so then you can be the guy who knows C++ on the team. Play around with some non-Java JVM language, like Scala or Clojure, because these things are more fun to program than Java. Learn one of Haskell or Erlang, because their not-C/Java/Python nature makes them fascinating to a student who otherwise won’t encounter them in coursework. Learn your way around a terminal, because working in a full-screen terminal looks cool-as-shit and like leet-hacker-skills. etc. etc. – I mean, obviously not all of these things; obviously not all at once.


I wish everyone knew git better.

During 3216, I had a teammate who “didn’t know git”, and in a reflection blogpost I complained about that.
The truth of the matter is more complicated than the guy “didn’t know git”; his incompetencies were far broader than that. And there were worse things than that post complains about. But, anyway. (Said guy was in his final year of a CS degree at this time. Managed to graduate with “honours”, also. And is now working at a bank prob’ly earning much more money than me. I’m not sure what the moral of the story is there.).

I hadn’t read that blogpost since writing it.
I was quite surprised to see it wasn’t as whiney as I recalled. (There’s still a lot of whining; just not as much as I recalled.).
It’s not all bad. Roughly, it goes over:


I’m split about the tone.

There’s some self-chastisement; but it’s all in terms of “I’m being a jerk” and “I wish I were a better man”, and not in terms of “if my team sucked, it’s because I didn’t take more responsibility”. – The whole “sorry to be a dick” and then being a dick is the lamest part. (On further thought, the bitterness here takes the sarcasm to another level.).

But I also admire some of the anger; there’s at least anger at the “3216 is for talented kids” pitch. (It’s awful for someone to kiss their own ass, right; but, hey, if I’m criticising myself, only fair for me to like some things, too.).

– Where I’m most ambivalent is about the anger shown at incompetency.
At worst, being angry at someone’s incompetence potentially has the childishness of incredulity at someone not knowing something obscure. It’s unhelpful to be angry at people for something they needn’t have known, and unwelcoming. People inherently deserve to be treated with respect, even if they’re incompetent.
On the other hand, it’s outright surprising that a final year Computer Science student wouldn’t know (or wouldn’t even learn basic) Git/VCS, let alone someone taking an ‘elite’ course. (NUS’ degree required taking software engineering courses, which teach that, so this isn’t the case of “well, computer science doesn’t necessarily involve programming.”.). – Moreover, in a course which by its nature demands quickly learning new skills/concepts (web app dev for people who haven’t done web app dev before), it’s disappointing, perhaps disrespectful, to not learn basics of what you’re working on.
Frustration is at least understandable, in any case.

(EDIT 2015/08/22: I think it’s rare, really rare, to find people who can mediate situations really well. And confronting people is hard. What I wish in general is that it’d be much easier to applaud and admire mediation than to admire posts where someone gets angry at someone who does stupid shit.).


What I didn’t remember from the blogpost was the notion of “pursuing excellence”.
Not sure the term “renaissance programmer” is widely used, but then as now I like the idea of someone who pursues excellence in understanding the tools of their craft; pursues excellence in how to otherwise be efficient at their craft (e.g. good health, good communication skills).
I think this is where I link to that Bruce Lee video, ‘Be Water My Friend’.

I’m inclined to say anyone who spends a blogpost complaining about the incompetencies of their teammates has further to go to reach such excellence..

Probably also one man’s “excellence” is another person’s “competent”, I’d guess. – With Vim, say, it’s a process of continually learning about commands you’ve not heard of before, and noting how to improve on that.
Surely a healthy, helpful attitude to have. :-)

Newer post Older post