<p>In terms of recruitment, there isn’t a difference that matters - both are recruited at heavily, although Stanford is the “star” of Silicon Valley and is known for producing a concentration of “genius type” CS students (while Berkeley also produces tons of high-quality CS talent, the perception doesn’t seem to be that it does so in such concentration). Many of those companies you mention are headquartered right nearby. Because of that proximity, the career fairs for CS are huge and have a lot of smaller companies - especially startups - since it’s easier for them to go to Stanford’s campus. The proximity also means that people from SV companies are on campus more frequently - talks, lectures (e.g. Mark Zuckerberg randomly taught a session of CS 106A), etc. as well as for programs like Stanford Technology Ventures, Mayfield Fellows, StartX, and the like. Not quite recruitment, but they’re all opportunities for networking, which is the ‘way’ of SV. Basically, Stanford’s a bit more tight-knit with SV than Berkeley, although there are many tech companies near Berkeley’s campus too. I don’t think there’s much difference in pay; some past surveys of graduating seniors had Stanford’s average salary for CS as the same, while other later surveys had it much higher than Berkeley’s, but those surveys are self-selecting and might be completely inaccurate.</p>
<p>Education-wise, I’d say they’ll give you the same quality, although my understanding is that 1) graduate-level CS courses are more available and frequently taken at Stanford (I’d say most CS majors take a few grad-level classes), and 2) some of the intro class sequences move more quickly or require more depth in certain topics. While the course offerings are almost the same (classes in networking, HCI, etc.), the intro sequence at Berkeley - 61A, 61B, 61C - is covered in 3 semesters (1.5 years) and is equivalent to Stanford’s 106A, 106B, 107, which is covered in 3 quarters (1 year), so marginally more rigorous. At Berkeley you’re required to take CS 70, discrete math and probability, which is taken in two separate classes (103 and 109) and goes into greater depth at Stanford. The intro sequence at Stanford takes a different approach to programming languages - Berkeley tends to mix it up (Python one time, Lisp another), while Stanford is constant in requiring Java (106A), C++ (106B), and C (107). There isn’t much difference in structure in the non-intro classes. There is a difference in class sizes, which are large or medium-sized at Stanford but are huge at Berkeley; and grad-level courses are often smaller, so you’re more likely to be able to take CS seminars at Stanford (which also offers a ton of introductory seminars in CS for freshmen/sophomores).</p>
<p>And IIRC, Stanford broadcasts more of its CS classes online (because of the Stanford Center for Professional Development, which allows people in Silicon Valley and beyond to take classes), so when you’re taking one of those classes, you can skip lecture and watch it at your leisure.</p>