Cracking the Coding Interview: 150 Programming Questions and Solutions

Category: Programming
Author: Gayle Laakmann McDowell
All Hacker News 23
This Month Reddit 3


by gladimdim   2019-07-21

Quote from the book:

"Imagine you have a call center with three levels of employees: respondent, manager, and director. An incoming telephone call must be first allocated to a respondent who is free. If the respondent can't handle the call, he or she must escalate the call to a manager. If the manager is not free or not able to handle it, then the call should be escalated to a director. Design the classes and data structures for this problem. Implement
a method dispatchCall() which assigns a call to the first available employee"


+ UI in Flutter

by kinectking   2019-07-21

From what I’ve learned on this sub, these will be far better investments of your time:

by eatstraw   2019-07-21

I don't know of any standard programming certificates. Java certification from Oracle is one that comes to mind. But there are so many languages to choose from. An associates degree from a community college could land you an internship. You could then transfer to a four-year institution and complete the degree. The college degree is still important these days, and this is what I typically recommend if is an option. Coding bootcamps are another option. Some only charge you if you get a job afterwards.

Another way to show your ability is to create an online portfolio of your code examples, maybe a website or some GitHub repositories. The bottom line is that you'll have to prove your worth to get an interview and an offer. Interviews tend to have coding questions, so be prepared for that (Cracking the Coding Interview). Just as important is being someone that they'd want to work with. Present yourself well. Starting salaries around double your salary are very possible. I've seen many offers in that range or higher. Good luck.

by democratizetech   2018-11-10

As anyone working in tech will tell you, landing a job/internship can be attributed to some combination of past work, interview practice and luck.

Some good resources for interview practice are [ , which is a must have for any technical interview prep.

To find a side project to work on, I would suggest trying to solve a small problem you have in your daily life with software. For example, maybe you want to brush your teeth for longer, or remember to do something everyday. A project like this will allow you to both write actual code, but also talk about your process with deeper understanding to interviewers.

Besides that, there are other great online resources that can help you learn more nuanced aspects of software engineering like or

by Just_a_Lampshade   2018-11-10

Don't. Do not under any circumstances say you would work for them over all other choices. There's a few reasons for this.

  1. It often comes off as non-genuine. Hiring managers hear this phrase constantly
  2. It seems desperate.
  3. It's easy to lowball you or keep you waiting if they know you aren't going anywhere. Companies make offers very quickly to the candidates they want to take quickly before someone else does

This isn't necessarily done on purpose, but I've seen it happen first hand too many times to count. It's almost like the "bad-boy" dilemma in dating- the guys who seem farthest away to reach are usually the most in-demand.

Instead, communicate your passion through the knowledge you have about their company. Talk about their things they've done you admire, ask them questions about how the framework they use and why (Do your research, don't say anything obvious!). If there are company github projects, read through them all. Try to get an idea of what they might be working on next and why.

In a phone interview your goal is not to get the job, just to get to the next interview. Give them what they need without sending across any red-flags. Really look closely at the job description and make sure you check each criteria. Have prepared answers for questions like: "Tell me about yourself," "Where do you see yourself in 5 years," etc.

I'd also recommend buying "Cracking the Coding Interview" if you have some time to prepare: [

It's extremely helpful.

by Redrot   2018-11-10

Can't speak for graduate programs, but if you're applying to positions that involve coding, you'll be asked at the very least about your coding experiences, and (if you're applying to a company that actually has decent tech) be asked some technical coding questions - so basically, don't sweat the wording too much because companies will verify your experience in interviews. For applying to software development positions, I highly recommend checking out Cracking the Coding Interview , this book pretty much hits the nail on the head for everything you need to prepare for.

For reference, I was a math major and only took 2 coding courses in college (1 was required for all graduates), but I had been coding in java since 7th grade, and despite learning practically nothing new in college and getting fairly rusty, I was hired at a smallish company and do data science and software dev (currently messing around with neural nets basically just as experimentation). I put down on my resume/cv that I had 10+ years of experience in Java, was fairly proficient in C++ and Python (which was true, I had done some work in those in college and coded up some fairly large projects), and said "had experience with" a few other languages.

by partisan   2017-08-19
I'm sorry you are having trouble finding work. I know what it is to have to support a family.

It can be demotivating, but don't give up, and take a look at some of your algorithm books. Or cut to the chase:

by mmcru   2017-08-19
thanks a lot for your post. input from active professionals is invaluable to me.

i've actually been working on learning angular for the past few weeks. i've stopped updating my github in that time since i'm just doing basic stuff, but once i finish some more tutorials and documentation i plan on building an angular project to display on my github. are there any particular features that would really catch your eye as someone who hires programmers?

any suggestions regarding the coding interview problem? i see recommended a lot.

by tldrtldr   2017-08-19
Isn't there a book dedicated to coding interviews?

by pleaseprovideadvice   2017-08-19

I can only recommend bootcamps for 2 types of people:

  • Someone with a CS degree 10 years ago and needs to update skills quickly, changing cities, or going back into tech a career
  • Someone who cannot commit to a 2-4 year degree program due to family, financial or other commitments

But for the rest, I think you're better served biting the bullet and going back to school for an actual diploma or degree program.

For what a bootcamp provides, I think it's really expensive ($8600-9000 over 2-3 months). Ironically, the appeal of a bootcamp is also the main flaw of a bootcamp: time. For people who have no tech background (which is the main target demographic of bootcamps), you're essentially cramming all these tech concepts, languages and frameworks in 2-3 months. Are you going to retain all of this information 6 months later?

When you graduate from a bootcamp, you're competing with CS graduates, diploma students who had years to hone their skills. Give yourself an honest assessment and ask how you'll do against them?

I highly recommend going through a book called: Cracking the Coding Interview

These are the type of questions that the top companies will ask. Good luck with your pursuit!

by donjulioanejo   2017-08-19

Looking at your post and your other replies in this thread, I feel like you simply don't do that well in coding or technical interviews.

Now, I'm IT, not development, but a few people I've met swear by this book:

Buy it or find a PDF and get cracking :)

by joenyc   2017-08-19

I strongly recommend Cracking the Coding Interview and The Algorithm Design Manual .