by
SS at 7:45 am on Saturday 26th April
As a data collection (and, often, analysis) nerd, I've collected reasonably accurate data on the cost of the whole process of applying to and attending graduate school. Please don't take any of the below as a recommendation for what to do - it is merely an attempt to rationalise and explain my decision from a PURELY FINANCIAL point of view for others who may be considering a similar career move. Note that my motivation was not solely financial and yours probably shouldn't be - if you don't want to be completely miserable for a year or more! The numbers below are all deliberately imprecise - so make your own calculations if you need to. Note also that these figures are for software engineering jobs!
Let's start off with my salary in London before I started my Master's degree. My last position, at Last.fm, paid £37,000 a year. At Last.fm (a subsidiary of CBS Corporation), there was no salary progression and no bonus because they like employees to be dissatisfied with both leadership and their compensation ;-).
I lived with my parents and commuted into work - this meant my monthly disposable income, after taxes, healthcare, commute, food and student loan repayment costs was approximately £1,000. (Note that if I had been living in London and paying rent, my disposable income would have been considerably closer to 0. Also note that if I didn't have so much stuff wrong with me, I would have saved a fair chunk on healthcare.) For two years this money went straight into savings which I have since depleted to pay for tuition.
The overall year cost of the degree was approximately $70,000. Less if you live frugally, more if you don't. I managed to save money on the estimated graduate student budget provided by the university which is excessive if you know how to cook a little and don't eat out all the time. (Prepare your own caffeine too - coffee shops are expensive and you WILL develop a coffee habit as a graduate student here!)
My burn rate here is approximately $2,000 a month - including rent at $800 a month, food, travel and a modest amount of social. I expect that as I start to have free time when starting to work, I'll be spending more a month - closer to $2,500 a month.
Typical salaries for new software engineers with a Master's degree in the Bay Area range between $100K and $125K, depending on your level of experience and the location. Factor in the cost of owning a car if you live in the South Bay, as well as higher rents. If you work in San Francisco, you can quite easily commute in from Berkeley and pay the same rent. If you wish to move to San Francisco though, expect to pay at least $2K a month in rent. Rents in the South Bay (i.e. Silicon Valley) are about $1500. Rent inflation is high though, so I'd advise checking the market rate closer to when you make your decision.
(A side note: Amazon's offer was comparable for the first year - they offer a $90K base salary with a $20K bonus. This is amusing because the immediate cash bonus is a huge incentive for hapless graduates to sign. While rent and tax is lower in Seattle than California, I feel that pegging your base salary at $20K lower than employers in this area is likely to have repercussions in the future if you do choose to move.)
(Another side note: I'm beginning to wonder if international students/hires are offered lower starting salaries than applicants with permanent residency (i.e. a green card) or citizenship. I have very little data to confirm this but it's a growing hunch.)
Assuming the worst case, which is a $100K starting salary and living in San Francisco and approximating tax to 40%, this works out to a rough monthly income of $5,000. Assuming $1,500 worth of living expenses plus $2,000 in rent, this leaves a disposable income of $1,500 a month. This is considerably better than the situation in London where disposable income was close to 0 when renting your own accommodation. However, there's the obvious $70K that has been spent. Assuming no interest rate, a constant income, constant expenses and a diligent saving regime, this will take 46.6 months, or about 4 years to pay off.
Taking the best case, which is a $125K starting salary and commuting in, that gives us a rough monthly income of $6,250. Expenses, as previously mentioned, of about $2,500 - which leaves a disposable income of $3,750. Again, under the same assumptions, we should be able to pay off the $70K in 18.6 months, or about a year and a half.
This figures are based on the assumption that you'll be attending a year long program and do not get any sort of financial aid. I appreciate that many Master's courses are longer - but the actual increase in cost isn't directly proportional to the length of the program since students often get well paid summer internships which offset the extra semester or quarter well. In addition, there's opportunity in courses greater than a year long to get research or teaching assistantships which offset the tuition cost significantly.
Finally, the obvious question is - why not apply for a job in the US directly and save yourself the $70K cost? The answer is: access to employers. The obvious geographic advantage of being able to interview with employers aside, the immigration situation is notoriously tight and, as a non-US citizen, getting work authorization is difficult. As a Master's student, you have the ability to work legally here for a year post-graduation under 'Optional Practical Training'. If you study a STEM subject, there is an optional 17 month extension which helps too. During this period, students can apply for a H1B visa under a separate category reserved for applicants with a Master's or higher level degree from a US university. (They may also apply under the normal category, I hear that it is variable whether this category is over or undersubscribed relative to the normal category.)
I firmly believe that moving to this area has been one of the best things I can do for my career, earning potential aside. Just about every large technology company in the world has an office or their headquarters within 60 miles of where I live. This element of choice means that I can acquire work experience in highly attractive technologies and don't need to compromise on employer. (This compromise happens all too often in London for computer science graduates who have to make the trade off between a high salary in financial services or interesting work in a pure technology company. Here, I think it's possible to have both.)
by
SS at 6:55 am on Saturday 26th April
I came to the MEng program having worked for three years and travelled for a year before then - essentially four years out of my undergraduate degree in Computer Science. Even then, the last time I studied maths seriously was in the first year of my undergraduate degree, so about seven years before starting the MEng. That being the case, there were a number of subjects I'd wish I'd brushed up on before starting my coursework at UC Berkeley.
The courses I took were Advanced Robotics, Computer Vision, Introduction to Machine Learning and Applications of Parallel Computing. I'll start with general advice and talk about specific tips for each course at the end. These are roughly in order of how important I think they are.
1) Linear Algebra: This is by far the most important area of maths to cover if you study any sort of graphics or AI course. It was heavily used in all four of my courses. There's a great tutorial online here which is actually written by a UC Berkeley professor. Know this well and you'll spend much less time looking up the basics.
2) Statistics: Know your basic probability and distribution rules. Most of AI is heavily statistics based - in particular, Machine Learning is a lot of statistics and most popular successful AI techniques now tend to be probabilistic. Sebastian Thrun has a great overview paper and is the author of the main text on this area.
3) Optimisation: Optimisation is heavily used in the Advanced Robotics course and appears to be crucial for a lot of cutting edge computer science. I had NO idea what this was before starting and this put me at a significant disadvantage. Learn how to formulate basic optimisation problems at the very least. This book by Stephen Boyd is the definitive text on the subject.
4) Matlab: Matlab is a programming language / development environment that is heavily used by academics. As a software engineer, I particularly dislike programming in it - however, most homeworks assume you will be using it and so most examples and starter code is written in Matlab. While you can submit assignments in Python or other languages, the path of least resistance is to use Matlab. Matlab offers a student license but the department should pay for a license for MEng students. In the meantime, you can use the open source Octave software, which is syntactically very similar.
5) C++: If you intend on taking the Applications of Parallel Computing class (highly recommended - it is excellent) or implementing any actual robotics code, you would do well to become familiar with writing and running C++ programs.
6) Linux: It's useful to have some basic ability with the Linux shell and to have a Linux virtual machine set up. You may or may not use this - depending on whether you take systems level classes or not. I recommend installing Linux Mint in Virtualbox.
7) Git / GitHub: Source control will make your life a lot easier. Learn this well and it will make collaborating with peers on homeworks and your capstone project much, much better. Try the brief interactive tutorial on GitHub.
8) Advanced Robotics: Regardless of what it might imply, this course does not rely on the Introduction to Robotics course. Introduction to Robotics is more about robotic manipulators and 'traditional' robotics. Advanced Robotics is more about the theoretical underpinnings of the algorithms to allow planning, localisation and state estimation. It is not practical at all (much to my disappointment) and is very state of the art. I often struggled to understand the motivation for several techniques until the end of the course. However, you'll find that you know most cutting edge techniques by the end of the semester. It also assumes prior coursework similar to the undergraduate Introduction to AI course at UC Berkeley - so I advise taking Sebastian Thrun's Introduction to AI course on Udacity if you haven't taken anything similar before. This is a hard class but thoroughly satisfying once you complete it!
9) Computer Vision: This is a great course taught by a pair of very energetic, enthusiastic professors (Malik and Efros). Highly recommended.
10) Introduction to Machine Learning: Taught by the same professors as Computer Vision, this class suffers from it's large size - being primarily and undergraduate class. The work load is high but the skills learned are very practical. I'd recommend it but it requires a strong stats background.
11) Applications of Parallel Computing: While the course content itself focusses heavily on scientific computing, the homeworks assignments are very practical and very fun. One of my favourite courses so far.
12) Collaborating: Something I realised quickly was that it was very useful to work together on homeworks with my peer group. You'll often find that you can work together to fill in gaps in each other's background - which is essential when you're coming from another country with a different educational background and sometimes lacking pre-requisite coursework. I wasn't able to work with many people for the Advanced Robotics course and this made the experience almost intolerably difficult. On the other hand, working with motivated peers who were also taking Computer Vision made that class much more enjoyable.
I hope this advice helps - feel free to chime in in the comments below!
by
SS at 6:15 am on Saturday 26th April
A number of the incoming MEng students have asked for advice when making their decision to come to Berkeley and one question appeared repeatedly - is the MEng degree regarded any differently by employers to a conventional MS?
From my personal experience interviewing at ~ 14 tech. companies in the Bay Area and having spoken to recruiters and so on - no, it is not.
Generally the Master's degree will get you a slight hike in starting salary but the rest of the process will usually be the same as graduate applicants with a Bachelor's degree. Employers typically hire university graduates into the same entry level software engineer positions (unless you have prior experience - and even then, this will account for a neglible salary hike, since they'll anchor your salary to a 'new grad' salary).
To an employer, a Master's degree is a Master's degree - regardless of whether it is a Master of Engineering or a Master of Science. They may question why it is shorter than normal but the retort to this is that it is a professional program - and not intended to be preparation for a PhD.
The main caveat with getting the MEng degree appears to be its lack of preparation for a PhD program. It isn't the case that having a MEng from Berkeley will make it any easier to get into a PhD program since, aside from some graduate level coursework, you won't have additional research experience. (Although it may slightly upgrade your resume if you went to an unheard of school previously.)
I would also advise prospective applicants to take with a pinch of salt the claims that employers covet the 'Engineering Leadership' aspect of the courses. While these courses are valuable in their own right and may help alumni to advance up the management ladder faster, most employers aren't aware of this aspect of the program and look more for engineering talent than management promise in their new graduate hires.
At some point I will follow up this post with a more detailed one outlining my interview experience and suggestions for how to approach your job hunt. (Be warned, it involves creating a spreadsheet, so get rid of any prejudice against spreadsheets now.) Generally though, in the Bay Area, it is extremely easy to get interviews for CS positions and I don't see any reason why, with adequate preparation, any MEng graduate should be forced to accept an offer they aren't completely enthusiastic for. Indeed, I was able to get my role of choice at a very exciting startup.
(Note I mention CS positions. Product management positions are much harder to come by. Also, other majors sometimes struggle to find jobs.)