Although I can see how the other reviewers got to the opinions that they got, I don't think that they fully describe him. Simon is a smart guy who is very knowledgable about what he's talking and this usually includes insight as to what is good to use outside of academia (thanks to his industry experience). On a personal level, I wouldn't recommend him as a good professor. Long story short he generally lacks patience with students and tends to look down on them. He's the only professor I've seen at Columbia who curses regularly in class. But if you can look past his teaching style, you will be able to learn some things that you can use in the real world out there. Overall, I'm happy I took the course. In the summer following that semester it absolutely paid off as I used .NET during my programming internship. Noone on the team knew what .NET really is so thanks to Simon's class I was able to stand out.
In my opinion, from the get-go Simon made it clear that he had no desire to teach this class, and he was only doing it as a favor to somebody. He promptly changed the class to an optional office hours session, where we must come prepared to answer any and all questions he might have for us. He seems to really enjoy embarassing students, is exceedingly arrogant and has more contempt for undergrads than anybody else in the department. And he's just a grad student! The man is a complete lunatic, but it was the easiest A I have ever received at Columbia.
This guys i completely insane. He constantly insults both the students and whatever else he happens to be talking about. Unlike a lot of the other professors in cs, he knows what he's talking about, so it's almost worth going to class.