happy day

13 Mar 2014

Three years ago, I learned how to print Hello World in Java for the first time.
That semester, I stayed up many late nights crying because I was so frustrated with how hard it was for me to fix even the tiniest of bugs. Everyone in class seemed light-years above me.

Today, I have been accepted to MIT Media Lab’s MAS program, and I’ll be joining Deb Roy’s Cognitive Machines lab this fall. It’s truly a nerd dream come true.

I think if my mother taught me one thing,
it is that
it is not how successful you are
or how wealthy you are
or even how hard you work that matters.
what matters is how interesting you are
because that is your human value.

And mom, if you’re reading this, don’t read too hard into it.

Tags: ,

· · · ◊ ◊ ◊ · · ·

As I sit here working on a project in lieu of going to class for the umpteenth time, I realized with sudden clarity that perhaps the current way that Computer Science is taught in universities is not the optimal way. Large lecture halls, clunky languages– it’s a bad sign when even a die-hard “learning for learning’s sake” student skips class on a regular basis.

anyway, a few thoughts on how I would change the structure of Computer Science courses to maximize efficiency + interest and minimize pain:

STOP TEACHING JAVA.

Seriously. I have never, ever been required to interview in a specific language at any company (even the “big names”), and if the people you’re talking to are deadset on Java, you probably don’t want to work there anyway. C is a much, much better “lower” level language for really grasping the way programming works, and Python is a much, much more fun language if you want to lower the barriers to entry and get students making things right away.

MAKE GRADES ENTIRELY PROJECT BASED FOR NON-THEORETICAL CLASSES

For classes like data structures, advanced programming, OOP, etc., etc. students tend to learn a great deal more and invest much more time and interest in coding projects. These should be the heart of the course, and is what matters in “the real world”, anyway. No one’s going to give you a bonus for remembering the difference between inheritance and polymorphism: let’s face it, you’d take the 5 seconds to Google the
definitions and move on. Big projects, tight deadlines, collaboration: this is where the real learning is.

IF YOU MUST MAKE STUDENTS TAKE EXAMS, STOP ASKING LANGUAGE-SPECIFIC SYNTATICAL QUESTIONS

In my opinion, you should not administer written exams in technical classes (see above). However, if you must, for heaven’s sake, please, please do not ask us things like the difference between strcmp and strncmp. Sometimes coding by hand with pencil and paper is good practice for interviews, but the code should be judged for logic and not syntax. Exams should be theory-based. Technical evaluations should be project-based. EOM.

IF YOU MUST HAVE LECTURE COURSES, PLEASE LIMIT THE SIZE OF THE CLASS

Size matters. This one is a given. Of course small seminars are best, but it’s understandable that budget might not allow for it. Lectures for intro courses only, and please, please try to cap them: there is a huge difference in ambiance and quality of learning between a lecture of 50 and of 250. I’m talking to you, Columbia. When I’m in a room with 300 other students learning about the difference between * argv[] and ** argv I immediately want to fall asleep or eat.

THAT’S ALL I CAN THINK OF FOR NOW.

then again, it’s entirely my fault for taking up class time to write in English instead of C++.

P.S.: Shout out to everyone in AP lecture who’s on Facebook right now. Hello! Now I feel less guilty for skipping class. At least I’m “working” in the library.

P.P.S.: For the record, I do believe that Jae is a great professor and administers valid albeit perhaps too difficult exams. Personally, I enjoy tough exams (sink or swim time/everyone failed so I feel less bad for not studying). The main clincher here is a) the size of lecture (TOO BIG) and b) little grade weight on projects. Neither of these can really be blamed entirely on the professor, cough *administration* cough cough

P.P.P.S.: Yes, perhaps strcmp and strncmp + polymorphism are not the best examples, as esp. the polymorphism question is more theoretically important. But you get the gist of the idea.

P.P.P.P.S. It is probably true that if I took 10 minutes to edit my posts I would not have to use postscripts, but what’s the fun in that?

Tags: ,

· · · ◊ ◊ ◊ · · ·

This is a little late in coming, but I really, really like this article published in the nytimes. Without going into too much detail, since I highly encourage you to read it yourself, the piece, titled “Follow a Career Passion? Let it Follow You” debunks the idea that in order to be successful, you have to start chasing after that one and only dream job, something the author, CS professor at Georgetown Cal Newport calls “the Cult of Passion”.

I see a lot of the detrimental effects of this “Cult” at Columbia. I, too, fell victim to its pressures when I was first starting out in Engineering school. I have always been a passionate learner and somewhat an academic “purist”: learning for learning’s sake, never for grades or awards. When I arrived at Columbia, for the first time in my life, I hated all of my classes. It destroyed my morale. The one course that I truly enjoyed– a writing seminar– ironically, caused me even more anxiety, since it had naught to do whatsoever with Engineering.

There is nothing wrong with encouraging young adults to pursue their dreams or find careers that inspire them. This is all very good and ideal. The old adage holds true: if you are doing something that you love, you are successful already.

However, this philosophy can be problematic because it puts unwarranted stress on career decisions, and moreover, really hurts those who have not yet “discovered” their “calling”, which I think is a BS idea anyway. Combine that with the financial and societal pressure that comes with attending an elite school, and you have a lot of Ivy-League tears. It is nearly impossible to know at age 18 or 20 what you want to do for the rest of your life and that’s okay: you can’t know and if you do, you’re probably wrong.

The issue is intensified when very smart, very passionate indivduals have not yet figured out what makes them happy or what exact field they are enthusiastic about. In these situations, and under high pressure, the urge to slap on the passions of others– perhaps a parent or a professor– or subsitute alternate motives (money, power) becomes all too tempting. For those with a high drive to succeed and perfectionist tendencies, the option to quit or reevaluate, even when unhappiness ensues, may never occur. I am, and remain, highly doubtful that a career, or moreover life, driven by any of these motives could ever be truly fulfilling or even healthy.

Newport, now a professor, argues that his love for teaching has “nothing to do with figuring out at an early age that I was meant to be a professor”, or even that there was anything special about his particular career path. The qualities that cause satisfaction in a career can be found in many areas– and most of all, they have to be earned. What matters is not the choice you make– but what you do once you have made the choice.

I could not agree more. I do not often use the word “love”, but I say it without qualms that I truly love Computer Science. It is a fascinating field of study and I am an eager evangelist. In it I see reflections of myself: the connections to Plato and Aristotle through logic and philosophy, the magic of words and drafting something beautiful that I crave in writing. Sure, there is a lot of debugging and frustration in between, but it satisfies, and most of all, challenges me to be a better thinker. None of these traits are apparent to the non-Computer Scientist or even many Computer Scientists. That’s because I took something that piqued my interests, and molded it into a passion.

I don’t know if I want to be a developer 5 years, or even 2 years (after graduation), from now. That’s because there is never only one right way or one right answer– not even in science. I don’t even know if my enthusiasm or GPA will survive this brutal semester of for and while loops. But I do know for sure that when it comes time to reeavaluate, I will try my best not to worry– because I know that where hard work and dedication go, love will follow.

Tags: , , ,

· · · ◊ ◊ ◊ · · ·