Christmas is almost here and I just finished my fall semester at NYU in the pursuit of my Master’s degree. A lot about my life changed in the past few months. The location, the learning experience, my peers, the climate, it was all new to me. It is the first time I traveled anywhere outside my home country, India. It is also the first time in my life that I will be experiencing snowfall (hopefully sometime soon).
Life in NYC
New York City. The reputation of this city definitely precedes it. A city so vastly different from the town I grew up in, yet so eerily familiar. I have seen these streets so many times in popular media that the roads almost seem familiar, yet I find myself getting lost sometimes. The city is fast and glamorous. Early in the chilly mornings you can see a lot of people hurrying about with large cups of coffee, but almost everyone seems busy and determined. In fact, on many occasions, I am the most laid-back person in the crowd (maybe because I hail from Goa). I read a lot about New York City being crowded, but compared to any decent town in India, that’s really not a lot.
But a thing about NYC that is almost always true is that it is expensive, even compared to most other places in the USA. College fees, food, rent, clothing and everything else. Although I rented an apartment in Jersey City, that is still costlier than other places in the country. One thing I learnt quickly was to stop converting everything I purchase to INR.
Finding an apartment was a big hurdle we (my roommates) were all worried about. It took us about 2 weeks to get one. I would like to point out 2 important things I learnt during the process.
- Either get a guarantor with credit history to sign the lease, or be ready to pay advance rent to compensate for not having credit history.
Do not contact multiple brokers for the same place. We did that and ended up getting blacklisted with an agency.
NYC is a gold mine for those who are travel hungry. Although I myself haven’t explored much of it. That’s partly because of my course load this semester and partly due to the fact that I have been a little lazy. I did manage to see the Freedom Tower. That building was seriously too tall for me to get my head wrapped around it. And just outside the college campus one day, I encountered what is probably the shooting of the new Ghostbusters movie.
I was admitted into the MS in Computer Science program at NYU. The initial admission process is a bit tedious, including the the application, registration, visa, SSN, etc., but eventually everything fell into place. The NYU staff is extremely helpful, and everyone I met was more than happy to assist me. Most of my time this semester was either spend doing work or assignments. I will talk about both of them.
Working as a Junior Data Scientist
Even before my classes started, I managed to get an on campus job as a Junior Data Scientist at NYU’s Center for Data Science. This job was everything I was wishing for and more. Most of my time was spent writing patches for [scikit-learn] while being supervised by Andreas Müller. I was programming in Python/Cython for what is arguably the most popular Machine Learning library around. For a person like me, there isn’t a cooler on campus job around.
I took the standard course load of 3 courses. The course work was a little more than I anticipated, but everyone gets used to it pretty soon and the semester just whizzes by. I’ll try to briefly summarize the most important things I learnt from each course.
I guess this is the single most important subject for a computer scientist overall. I learnt 2 very important things.
The technique of obtaining solutions solving the same problem on smaller instances. I think the most difficult aspect about recursion is making the assumption that smaller instances of the problem are solved. In our effort to obtain a solution, we almost always think of a bottom up approach. But if you can fool yourself to think, for a short time, that a smaller subset of the problem is solved, you can get beautiful solutions to some complex problems.
If you cannot prove it, it’s probably not correct.
We learnt 5 languages : Ada, Scheme, ML, Java and Scala. This was the first time I saw functional programming languages. Initially the idea of not having variables seemed discomforting, but all the functional code I wrote eventually turned out to be short, clean and recursive. I can see why some people like functional languages, although I am still not convinced it’s the solution to all of the world’s problems. I was also very impressed by ML’s type inference, I never knew it could be done so well. I am convinced that if I ever write a programming language of my own, it will be type inferred.
This was the most fun course for me. Although I still have a lot to learn in this area, I have learnt that certain tough problems are easily understood by doing appropriate transformations. I also managed to collaborate with my professor to solve the problem of detecting mirror symmetric objects. Our submission is under scrutiny for CVPR 2016.
So semester 1 is complete and I never realized how it went by. It’s Christmas time and I look forward to my much awaited vacation. After this short cozy break, another intense semester awaits.