Cramming to Learn Programming Won't Get You into Your Dream Company
You should be more focused on making sure the job you get is one you actually want.
I am willing to sacrifice all of my free time to learn algorithms and prepare the Google interview in 1 year, how should I start? originally appeared on Quora, the place to gain and share knowledge, empowering people to learn from others and better understand the world. You can follow Quora on Twitter, Facebook, and Google Plus.
"I am willing to sacrifice all of my free time to learn algorithms and prepare the Google interview in 1 year, how should I start?" One year? Dude (or dudette)…
There are many great companies. You might be really happy at Google. Or maybe there's a better company for you. Google is not the be-all-and-end-all of companies. It is not the pinnacle of success.
And if you spend all your free time coding, you're going to probably be miserable and burn out. Chasing this dream of yours by getting narrowly focused on one company and spending all your time on it will probably not lead to success there.
Chill. Relax.
Spend some of your free time on coding stuff. Not all. Not even most.
Of that free time, make yourself a better engineer. Learning data structure and algorithms is only a small piece of that.
Learn about the different parts of the stack — scalability, front end, mobile, etc. Learn about security. Internationalization. Design. Computer architecture. (This may be a multi-year goal. That's fine.)
Figure out where you want to focus. Go deep there.
Be comfortable coding basic stuff in multiple languages. These should ideally be significantly different languages, like Java, C++, and Python.
While you're at it, learn how to be a good employee. Get comfortable with public speaking. Learn how to write well, which means clear, concisely and professionally (not elegant creative prose).
Make friends. Socialize. Have some friends who are coders and some friends who aren't.
Spend maybe six weeks on interview prep. Of course I'm going to recommend Cracking the Coding Interview here. Maybe I'm biased. But I also put it together to be your primary resource. Do a bunch of questions from there. Focus on quality here (really pushing yourself through questions and not just looking up the answers when you get stuck), rather than trying to get through as many as possible.
Do some mock interviews. Try being the interviewer as well.
Interview. No need to wait a year for this; you can do this earlier. If you get rejected, so what? You can try again.
Maybe you won't wind up at Google, but you'll wind up in a better spot at the end.
This question originally appeared on Quora. More questions on Quora:
* Software Engineering: What happens if a candidate's approach is correct but they are having trouble writing the code?
* Google Recruiting: How exactly do Google recruiters choose who to contact?
* Job Interviews: Why do interviewers ask questions that do not pertain to the job?
Photo Credit: PeopleImages/Getty Images