Seeking advice for getting a developer job in Google, as a late starter in CS?
-
I was double majoring in economics and math, but after I recently took CS courses on the last fall, I started dreaming of getting a developer job in Google. I am going to be triple majoring, and I have three semester left excluding this semester. (this fall, next year spring, next year fall). I will have taken Intro to CS I, II (Java), Intro to Discrete Structures, Data Structures(C++), and am planning to take two CS courses in each of this fall and next year spring semester. I am an international student from a school with about 60th in CS grad school ranking, and around 100th in college ranking. I am in a year-long research program(Jan-Dec), and doing a research on graph theory with a prominent CS professor, and I expect we would publish in a journal and do presentation on a conference if we do well. Now, though I have a high GPA(around 3.9 if I retake an econ course with an F. I will try my best to get As in all of my CS courses), and do well on CS classes and doing CS research, as I am a late-starter, I wonder if I could become a competent candidate for a developer job. The most certain way at this time might be to get an internship at a good IT company(hopefully, Google), and I am going to prepare for the programming interviews and practice programming interview questions. My questions are as follows. 1. What courses may I take on this fall and the next year spring? My plan is to take 2013 Fall: Intro to Algorithm Analysis / Operating Systems / Intro to Numerical Analysis I (using MATLAB or Python, I guess) 2014 Spring: Algorithm Analysis and Design / Intro to Theory of Computation / (Considering doing TA in Intro to CS?) / Intro to Numerical Analysis II Would these courses (along with the courses I have taken) be sufficient (at least barely) and proper to get an internship in a good IT company? Some other options I am considering are taking Programming Language, or Pattern Recognition in Spring instead of one of the two courses, or taking OS in Spring and taking Machine Learning in Fall. What do you think of doing TA in Intro CS(Java) course? Will it be a lot helpful? 2. What programming languages should I study for the interview? I bought a book for programming interview problems, and surely I will practice solving them with C++. I am planning to study another book and do problems with C++ and Java after I finish this book(probably on August~September). I wonder if I have to study more language. Also, I wonder if I should focus on one language(C++), or be able to solve problems with multiple languages(, i.e. place equal weight on C++ and Java, and possibly some more languages). I have heard someone suggesting learning Python as well to code promptly in programming interview. I also saw some post about the importance of learning scripting language. Besides, I feel like I should learn more about Linux. Of course I want to learn as much as possible, but given limited amount of time, what might be 'essential' languages that I must focus on? 3. I was studying hard to become an economist until I found charm in CS, and I think I was a pretty solid candidate for a graduate school in economics. Though this may not directly affect my chances in getting a CS job, I believe it can give me an edge. How much importance are placed on non-technical aspects of an applicant? I think I am creative, I am passionate, I always think about how to apply what I learn to do something beneficial to others (while I was serving in the army in my home country, for example), I know more economics, etc. I am the founder and president of a math club in my school, too. (Of course, I have weaknesses in non-technical aspect, e.g. English(second language), citizenship, etc.) Provided that my coding experience is relatively short, and my coding skills are not fantastic, what can be my strength that can appeal to software companies, and what more should I do? Please give me some advice. Any advice would be greatly appreciated. Thank you!
-
Answer:
Google has a very similar process for each developer. Your resume has to be attractive enough to get you a chance for a telephone interview. The first one is usually by a recruiter and subsequent one (or ones) are technical by developers. Each technical interview lasts for approximately 45 minutes, and they usually have programming tasks (done on Google docs) along with general technical questions. If all goes well, you should be invited to an on-site interviewing session. The on-site interviews are very similar to telephone interviews: you program on the whiteboard and talk about technical questions. As for your questions: Take classes that help you understand complexity, the workings of an operating system and most importantly, algorithms (Algorithm Analysis, Operating Systems, Algorithm Analysis and Design and Intro to Theory of Computation sound fine). You have to know one language fluently, so you can solve algorithmic problems without worrying about making mistakes in syntax. If you claim you know a language you have to be prepared to back it up with code. C++ is fine. Java would be fine as well in most cases. Knowing either Java or Python will help a bit, but not knowing either will not disqualify you. English is mostly irrelevant (as long as you can understand and discuss technical questions without problems). Citizenship is irrelevant. The best you can do is: Code a lot. Become fluent in C++, Java or Python (probably best in that order). Learn about algorithms as much as you can. Take a good book and digest it thoroughly (code every problem). http://www.amazon.com/Algorithm-Design-Manual-Steven-Skiena/dp/1849967202, http://en.wikipedia.org/wiki/Introduction_to_Algorithms or http://www.amazon.com/Algorithms-4th-Robert-Sedgewick/dp/032157351X are all good, depending on how much time you have. Practice solving algorithmic problems (take a look at http://www.topcoder.com/ archives and similar sites). Learn about common approaches Apply for an internship while it's still an option for you You can read much more on the points I raised at: http://steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html. Best of luck!
Quora User at Quora Visit the source
Other answers
Why Google will not hire you ?, Here Google doesn't mean the Google, it means any company which is very creative to introduce the computer science related products e.g. Google, Microsoft, Apple, Amazon, Facebook, ..or any one else which you feel to be a reasonable fit Please see the attached ppt, that provide few points that might be helpful to plan the missing things around you If exist. http://www.slideshare.net/esumit/why-googlewillnothireyou-24thmay2013sumitarora
Sumit Arora
Related Q & A:
- Would a 'W' on a transcript affect getting an internship/job with CIA?Best solution by Yahoo! Answers
- How do I go about getting a job working in a recording studio?Best solution by Yahoo! Answers
- How do I get a software developer job?Best solution by wikihow.com
- Can I apply for a job prior to getting a work permit?Best solution by Yahoo! Answers
- What are the chances of getting a job in the US with a European Degree?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.