Check out this great post by Joanna Chen: How I landed a Google internship in 6 months
She has has great advice on building, practicing coding problems (Pramp.com), meeting people, applying, etc.
Special thanks to Siddharth for being the first to introduce me to Pramp.com for free interview practice.
Here are the sites I have experience with and my thoughts
- LeetCode is excellent because there are many problems and explanations. Furthermore the problems without explanations have answers and commented solutions in the discussion boards. It is the best online judge in my (limited) experience.
- Cracking the Coding Interview has many questions and detailed answers in Java.
- Data Structures and Algorithms Made Easy in Java is excellent. Sure there are many, many, many typos. But it has so many code samples for each of the data structures, explanations from worse (brute force) to best (optimized) along with advantages and disadvantages of the many possible solutions.
An honorable mention goes to Free Code Camp. The first time I ever had fun solving code challenges was at Free Code Camp. They did an amazing job of starting off with relatively easy challenges, then they raised the bar. Before I knew it I was doing difficult challenges, yet the hours flew by.
This is an update of this earlier post.
First of all using data structures and applying algorithms has been fun and enjoyable. It is much more fun solving problems just to complete a challenge than it is because I have to pass a test for school.
Second of all, I was completely wrong about only needing 3 rounds to get good. I might need 5 rounds, 10 rounds, 21 rounds. As long as it is enjoyable and keeps improving my coding skills, I am going to keep on keeping on.
I am going to need many rounds of trying, failing, learning, and improving. But every time I fail and read and understand a solution, I get better and more independent. My competence, confidence, and enjoyment are steadily growing.
In So You Want to Become a Better Programmer? John Sonmez recommends using code challenges to improve as a developer.
I would like to enter competitive programming contests but I am very rusty with my algorithms. I completed classes in data structures and algorithms, as well as assembly programming, in 2014.
I plan to improve at solving coding challenges by using LeetCode Online Judge. I will relearn and review the concepts by using these learning principles:
Making Badass Developers – Kathy Sierra
Chicken Sexers, Plane Spotters, and the Elegance of TAGteaching
My plan is to first go through all of the easy and medium questions quickly and just read and understand the solutions. This first round will simply be about relearning and reviewing the concepts. I will probably solve close to 0% of the problems 🙂
The second round I should be able to solve a third of the problems.
By the time I go through the questions for the third time, I should be able to solve two thirds of the problems or more.
Will this system work? Time will tell. But so far I am having fun and learning much with little stress from this first round. So far so good 🙂
I have started doing coding challenges at LeetCode. Even though I took a year-long Data Structures and Algorithms course in 2014, I am extremely rusty and cannot solve very many problems.
I was feeling overwhelmed until I saw this video: Watch Flavian solve three Rubik’s Cubes…BLINDFOLDED!
I read more about how he solved Rubik’s cubes while being blindfolded here: SpeedCubing win 2015 edition of Romania’s Got Talent with quick Rubik’s Cube solving.
This part stood out to me:
The group, called SpeedCubing, went on stage and solved Rubik’s cubes, blindfolded. This representation, for which they have memorized no less than 4,000 algorithms, got them the big prize of EUR 120,000.
I now feel much more confident about my goal to be able to solve problems by applying only a dozen or so algorithms–without a blindfold and without millions of people watching 🙂