<p>I’m interested to know where these jobs are. I’m one of those geeks who loves the proofs, and I’m actually using Rosen in my Discrete Mathematics class right now (I took it for fun, I’m a dual physics/math major). I like the idea of being able to do theoretical computer science, but who really gets these jobs and where?</p>
<p>The ones that I’m familiar with are databases, compilers and operating systems. I’m sure that there are other areas.</p>
<p>I imagine that there’s theory work done at RSA (Burlington, MA, bought out by EMC). IBM does research work as does Microsoft. Jim Gray (presumed lost at sea) did research work for Microsoft out of San Francisco I believe.</p>
<p>Being able to do proofs and understanding the proofs that are required in upper level mathematical theory courses are usually what separates the people that really “understand” math from the people that are just good at doing complex calculations.</p>
<p>I bet the theoretical aspects of computer science are explored by the phd’s.</p>
<p>hadsed, take a upper level class in probability theory. Most engineering majors would run away and cry after taking that class.</p>
<p>In case you didn’t know, Actuaries know probability theory, economic theory, financial theory…and it’s all wrapped around mathematical theory. </p>
<p>You aren’t passing the Actuary exams unless you know a ton about math.</p>
<p>Depending on your school and math program, you can minimize the number of “proof” courses. Since I was “computational” math major, I was required to only take Advanced Calculus (which was a less-rigid version of Real Analysis) than having to take Real Analysis I & II and deal with Rudin (whose book is the standard in Real Analysis). The “pure” math majors were required to take Real Analysis I, Abstract Algebra I and either Real Analysis II or Abstract Algebra II.</p>
<p>In other words, if you want to major in Math and not with as many proof-courses, look for the Applied Math, Computational Math or Computer Science options of the Math major.</p>
<p>It seems like if you’re not going to go into pure math or highly mathematical physics (or I suppose, theoretical computer science) you wouldn’t need to slug through real analysis. I’ve looked at Rudin and Apostol, and I have Spivak (which is the most brutal version of single-variable calculus ever known to man). I don’t see this being useful to anyone else, though I’m sure there are a lot of employers who would instantly hire someone who has the ability to do that.</p>
<p>As to the jobs thing, what is the competition like? Do they strictly hire CMU/Berkeley/etc Ph.D’s or is it not that bad? I know the situation in academia, which seems to be the same across the board, but I’m interested more in private industry.</p>
<p>
</p>
<p>Sounds more like a CmpE curriculum to me (depending on how far you went in embedded systems). And I would be utterly shocked if the majority of people at IBM/Intel didn’t remember the math they were taught in school.</p>
<p>
</p>
<p>Computer Science theory recruiters in industry place a higher premium on a strong record in theory research accomplishments and research impact than on academic pedigree. The top theory schools at the Ph.D. level include MIT, Princeton, U.C. Berkeley, Carnegie-Mellon University, Harvard University, New York University, Cornell Univeristy and Georgia Tech. What makes these schools good are top notch computer science theory courses and training along with distinguished theory faculty advisors. There are probably a lot more schools that are also well-respected in theory. Since there are few theory job openings (as industry needs more programmers than theorists), getting a job in theoretical computer science is highly competitive. Also, the applicant pool to these jobs is quite self-selective (Ph.D’s in theory are generally highly intelligent).</p>
<p>In academic hiring, it seems that smaller schools place more premium on degrees from top schools while larger more research-based schools place more premium on the publications and the impact of the research accomplishments of the candidate. Since there is considerable politics in peer-reviewed academic journal and because the best researchers who are at the best schools are often the best research mentors, there is an indirect advantage to going to a top school.</p>
<p>
</p>
<p>Surely the mathematical maturity and skills that one would gain from going through this material may be very helpful for computer science students. But companies don’t really care about whether you know these things (and since they don’t usually screen candidates through their transcripts, they usually don’t find out). The chance of being asked at a Microsoft or Google or <substitute top=“” cs=“” employer=“”> interview are slim to none.</substitute></p>
<p>They tend to ask:
- basic data structures and algorithms questions (where look for many solutions or deep analysis, not necessarily simply a “correct” one)
- puzzle-type questions that are unrelated to CS but certainly don’t require math-analysis skills but good logic skills and the ability to ask the right questions
- behavioral interviewing questions (how would you respond in a certain situation – more for management)</p>
<p>In fact, the only things they really care about are: school attended, GPA attained, work experience, and possibly research experience. Taking a hard courseload or a double major doesn’t seriously impress.</p>
<p>
</p>
<p>I wouldn’t. The thing is, if you haven’t used Real Analysis or Abstract Algebra for 15 years, why would you remember it. Even if you remember what an epsilon-delta proof is or certain theorems on metric spaces, you probably won’t be able to recall many of the finer details or do many of the more challenging proof exercises without significant review. </p>
<p>Even simple calculus or differential calculus can be easily forgotten by an IBM/Intel employee (especially if it was crammed before exams and had never been used since).</p>
<p>We do hire researchers that can do theory work as well as design and code. We’ve hired many with undergrad degrees, masters degrees and Phds. One advantage of hiring Phds is that they are usually more settled and tend not to job hop as much as those with undergrad degrees.</p>
<p>I hate that I always get on these dumb tangents.</p>
<p>But I’d say either follow Global’s path or do a math-heavy eningeering program if you are on the edge between the two. But don’t overload yourself in college with hard courses in non-major courses.</p>
<p>I really appreciate the responses guys. I’ve got another question for you though, actually.</p>
<p>What sort of engineering would nanotechnology fall under? Or materials science (you know, like the guys that just recently found a way to produce a 1-atom thick carbon material)? I’ve heard of a few schools with grad or undergrad programs in materials science but the only reference to nanotechnology I’ve seen is in PhD specialties within MechE at some places.</p>
<p>This is the topic in engineering that interests me most besides some of the computer science so I suppose I’m wondering whether mechanical engineering would be a good choice if I wanted to pursue academic research in those fields.</p>
<p>Well, if he’s interested in proof, he’s a computer scientist (if he’s in CS)…</p>
<p>@OP
nanotechnology is interdisciplinary. In terms of material, it’s ChemE and material (and usually they are in the same department, if not, ME or Chemistry). I am speaking solely on the engineering aspect only. In terms of functions, it falls on everything… </p>
<p>heck, from the other thread I mentioned artificial cells!!!</p>
<p>One more thing…</p>
<p>Knowing about these programs come from either looking at resumes and/or recalling back when I was looking for a grad school program. Since I did not have knock out undergraduate grades, I had to dig deeper into researching which graduate programs I could actually get admitted to.</p>
<p>Like Jwxie said, it seems like Nanotechnology can be done through a ChemE, ME, Physics or Molecular Science degree.</p>
<p>Mathematics. It’s the most beautiful form of art.</p>
<p>I love you.</p>
<p>For saying what I’ve wanted to say all along, of course…</p>
<p>Definitely become a math major or a physics major. You will get much deeper into the equations. Most engineers, even at top schools, care more about how they can use the equations than where they come from (this is not a bad thing, by any means)</p>
<p>
</p>
<p>This is the truth. Aside from being able to plug numbers into equations and do the occasional derivative, there isn’t much math in engineering.</p>
<p>I’m in CS because I want to be a software engineer. If there was a more practical degree to become one I’d probably go for that instead of taking theory classes. I know that CompE is much more practical, but I don’t plan on going into hardware so I don’t want to take a lot of hardware classes for nothing. The CS electives are practical though (DB admin, video game design, UNIX, etc.). I guess I’ll be looking forward towards the electives rather than algorithms class.</p>
<p>You can always pursue a BS in Physics and later on pursue a MS in the Engineering of your choice. One disadvantage is that you may not be able to obtain a Professional Engineer’s license; luckily, it seems the number of engineering jobs that require a PE is smaller than the number of engineering jobs that do not require a PE.</p>