How should I prepare myself for a Master's degree in Computer Science from Stanford or Berkeley? If I am already working as a Software Engineer? Let me begin with a little background information about myself first. I studied physics for my Bachelor's degree from a public university (within the top 20 physics program in U.S.) Now I am working for a robotics startup in Silicon Valley as a software engineer. Not very long ago, I discovered a strong interest toward AI and Machine Learning. I've been taking courses from Coursera and Udacity for convolutional neural networks and deep learning. At work I've been working on the implementation of simple computer vision. However, I feel that I am still lacking a strong theoretical foundation in the field. Thus, I wish to pursue a Master's degree in AI/ML. 

Financially wise, a Master's degree has a steep opportunity cost for me. My annual salary is in the 100~150k range. If I take two years off for the program, it will cost me at least 200k including tuition (considering my taxed income.) The best way for me to save money is to stay in the Bay Area because I can live with my parents; that alone will save me the money for rent and food. 

Here's a little academic background, I have a 3.6 GPA in physics and 3.5 overall GPA if humanities courses are included. I only have A's and B's on my transcript. My upper division physics courses are mostly A's including the two graduate courses I took in Condensed Matter Physics. I also did research in the field but didn't make any significant publication. They only won me scholarships and poster presentations. 

I think I will need to retake my GRE. My verbal portion was merely average, very average. My quantitative portion was about 95th percentile. 
So beside GRE and GPA, who should I ask for letter for recommendation for a Master's degree in Computer Science? Also how should I prepare myself before I apply? 

Your advice and opinion are greatly appreciated!
Whom should I ask for letters of recommendation for a Master's degree in Computer Science? 


See if someone remembers you from your undergrad.  You can send an unofficial transcript as an attachment to jog their memory.  Also ask someone where you work, if unveiling your plan to that person isn't too awkward.


  How should I prepare myself before I apply? 


Pick a couple of programs you're interested in applying to. Read the program of studies carefully, then check the courses you would be signing up for in your first year, to see what the prerequisites are. This will guide you in your course selection, and give you a fair view of how well prepared you are. Make sure to look at the textbooks used, to gauge the level of difficulty.

Notes: The cost of living is much lower in a less built up place, such as, for example, Madison, WI; if you get a TAship, which shouldn't be a problem in CS, you won't be paying tuition, and you'll get a stipend, which will cover slightly a frugal but not spartan life, but not many plane tickets to California.  However, if you prefer to stay in CA, I would think there would be plenty of opportunities there.

I'm not sure how fresh the GRE needs to be.  The application instructions should make that clear and if not, you can email your question.  Don't worry about your verbal GRE.  As long as you didn't embarrass yourself (which you didn't), for a CS master's, that doesn't matter; especially since your nonverbal score was strong.  When applying for a geek degree, it's fine to come across as a geek.