HN user

prafulmathur

4 karma

I'm currently studying Computer Science and Business at Northeastern University in Boston, MA. I will be graduating in 2011, until then I'll be involved in three co-operative education (co-op) experiences. The co-ops will allow me to learn about the field before entering. To better my chances of getting a co-op I've been working at Arts Technology Group as an intern. I've also been researching under the supervision of Professor Harriet Fell in the field of Human Computer Interaction (HCI). The research involves utilizing the Wii's (Nintendo's new system) Remote for assistive technology. There have been many challenges the greatest has been trying to develop with a faulty library. I have been working with the library's creator, however, to make it work.

Posts1
Comments4
View on HN

Just start programming in anything really (except PHP, since you may learn some bad habits). Make something you want (i.e. it could be as simple as a greasemonkey script for FF/UserJS for Opera/GreaseMonkIE [or equivalent] for IE). Then try to see if you can program it in a better way and continue to refine it as much as you can.

Ultimately, you're going to learn that writing solid tests are equally, if not moreso, important as writing solid code. They help you determine the root problem, so I suggest just writing some code and learning how to properly test it. Also, test everything! I was coding a project and I think without a proper test suite (I made) and a debugger I would have never finished.

Professor Felleisen taught us a design recipe: http://www.ccs.neu.edu/home/matthias/211-f06/Assignments/recipe.html and it works really well, it ensures a structured and organized code that is easy to maintain down the road.

Professor Felleisen is an amazing professor, I had him for the fall semester for "Fundamentals of CS 1" and he really pushed you. Then his higher level course, "Software Development", I hear that he radically changes the requirements at the last minute. I guess that's to help you learn how to design a solid program in the beginning and then be able to easily change it down the road. It's supposed to be more like the "real world" (but I'm not quite sure when I'll get there).