I am planning to quit my job and study algorithms full-time for one year. Can anyone give me some advice?

It is worthy of praise.

Answer by Sunling Yang:

Hey I actually quit my job 2 months ago, studied full-time and am now working at Google so it can be done!

My situation so you can gauge how much it applies to you: I was working at a startup as a software engineer with really long hours and quit for the same reason: wanted to leave and needed time to interview. I had a CS master's and before that I was in Physics, so I spent a month drilling CS fundamentals as I wasn't one of those people that started programming at 8 years old (more like 21). It was time well spent in my case as I really like all things CS (hence the career switch) so I had a lot of fun by myself studying, but I don't recommend being jobless for more than 2-3 months, as the loneliness and the lack of a constant routine can become chaotic (I was lucky to have a bunch of awesome friends that spent time with me on their days off and I tried really hard to always keep a routine of studying 10-5 and after a month I was interviewing regularly), not to mention after 2-3 months the lack of employment starts to look bad on your resume to employers.

All the factors that made it work:

1. I knew that I was okay in Algorithms being from a Physics background and I was weak in Object-Oriented Design, actual coding in general, and systems. So I worked through every problem in Cracking the Code Interview and some of the problems in Coding Interview Questions (some of the solutions might not be correct but they made good coding exercises). I would implement the code in Python and Java and run them in term and Eclipse to make sure the code actually runs correctly. This is crucial for Google and Amazon as they look for right-off-the-bat working code. Another really good book with good questions is Algorithm Design Manual by Steven Skiena. Also Programming Pearls by Jon Bentley really put everything in focus for me: why interviewers are so obsessed with anagrams and palindromes, what each different sort is good for, etc. I also crawled through the Design Patterns (Gang of Four) book and got to the bottom of dependency injection. Not sure whether that helped with solving the problems but it definitely made me a better programmer.

2. I had a practice partner for white-board sessions. One of my past coworkers was also looking for a new job so we took turns practicing white-board sessions for a month. This was crucial for me as I used to freeze before the white board and write all over the place. My coworker also recommended several key systems papers to me: Bittorrent (p2p), Google BigTable, Google GFS, Google Spanner, and Amazon Dynamo, and they were useful for system design questions (Google didn't ask me any, as they considered me to be junior-level, btw, but Amazon did). The swapping tips and the comaraderie really kept me from freaking out about not having a job for the first time since I graduated college.

3. Another reason why I went for this nuclear option of "quit first, find job later" was that I was already recruited by Facebook and Tumblr at the time and I was confident about finding a job even if those fell through. I ended up not advancing up either company, btw, but my applications to Google, Amazon, and LinkedIn went through and I did interview with them, so FB and Tumblr ended up being good practice. So my advice is to interview with a bunch of other companies first so you get some practice explaining to interviewers what you are doing on the board, giving the elevator speech about your resume, etc. There was a downside to spacing out the interviews though: I ended up waiting to hear back from Google and having to postpone responding to Amazon and could not properly bargain for a better salary, but at least I got the job so it's not the worst situation.

All in all, if you do decide to carry out this plan you probably don't need 1 year, and if you can find a support group it is highly recommended. Best of luck!

I am planning to quit my job and study algorithms full-time for one year. Can anyone give me some advice?


Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s