Brian Kernighan's Advanced Programming Techniques Class at Princeton
21–30 of 41 posts
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#22I'm currently trying to choose between Berkeley (Electrical Engineering Computer Science major) and Princeton for undergrad. Has anyone here gone through the Princeton CS program?
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#23I'm currently trying to choose between Berkeley (Electrical Engineering Computer Science major) and Princeton for undergrad. Has anyone here gone through the Princeton CS program?
Ultimately, it really depends on what you're interested in. From my perspective, Berkeley seems very good for systems stuff: parallelism, distributed systems, databases or even computer architecture. The undergraduate CS classes are all rather good and mostly interesting. (Except for the stupid Java/OOP/data structures course--that was a big waste of time, but you can probably just skip it.)
However, the classes really aren't the most important thing. I think there are two things that trump this. One is simply location: Berkeley is very close to a ton of startups. I've met some incredibly smart people running exceptional companies, and even worked at a couple during the year. It's a great resource that would be hard to duplicate anywhere outside of the Bay Area. Even if you don't plan to spend much time working at startups, it's still really cool to occasionally pop down to SF and hang out with hackers; the community around here is really great.
The other aspect that's more important than classes is research. Berkeley has a very project-driven approach to research where people decide on applications first and tailor their research to that. Some projects are really full-stack: for example, at the ParLab (where I'm doing some undergraduate research), there was a demo where everything including the hardware, the OS and the high-level algorithm design all stemmed from active ParLab research, all integrated together at the very end. If you like that sort of thing, it's very neat. The other big lab I know about--the Amp lab--operates similarly.
It's also going to depend on what particular subjects you like. From my perspective, Berkeley is great for all sorts of systems stuff: architecture, distributed systems, parallelism and so on. It's really a great atmosphere for that sort of work, with a ton of cool people to talk to.
Of course, this does mean that most of the stuff that's going on is annoyingly practical. Relatively few people seem to be working on neat theory, and most of that is in complexity. So if you want to study cool theory just because it's pretty, Berkeley might not be ideal.
I've found myself inexorably drawn to PL theory--types, categories, algebras and so on--and Berkeley is really no place for that :(. It's driving me to distraction. So if you're interested in something along those lines, I'm willing to bet that Princeton is quite a bit better. And I really do think PL theory is the coolest field, partly because of how general it--it's applicable literally everywhere in CS and then spills over into math or even physics--but mostly because of how pretty it is.
Also, if you like functional programming--another thing I'm very interested in, unsurprisingly--then Berkeley is also the wrong place. Most people seem to know literally nothing about it beyond its being somehow related to functions and a bit wonky, and I've only met a few people who know much beyond that.
Anyhow, I hope that helps you get a good idea of how Berkeley is like. I'm very biased, but I think my biases cancel out: on the one hand, I go here and it's great; on the other, the things I actually like are sorely under-represented and that really annoys me.
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#24Looking at the syllabus, it looks more like "Miscellaneous Programming-Related Topics" than anything "advanced".
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#25Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#26Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#27Nit: it bothers me when people call JavaScript a "scripting language". What do they mean?
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#28Looking at the syllabus, it looks more like "Miscellaneous Programming-Related Topics" than anything "advanced".
If I were considering that class for a grade, I would hope that those topics would be mostly introduced rather than dealt with in that kind of depth. (Now, if it were a non-graded, non-time-limited, free Udacity or Coursera online course that I could work my through as time allowed, I would rather have the depth. Just don't make me master one new decades-old technological toolbox per week and grade me on it.)
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#29Nit: it bothers me when people call JavaScript a "scripting language". What do they mean?
Re: Brian Kernighan's Advanced Programming Techniques Class at Princeton
#30Funny. STL is as anti-OO as you can get.