top | item 44118174

Show HN: Every problem and solution in Beyond Cracking the Coding Interview

151 points| leeny | 9 months ago

Hey HN, I'm Aline, founder of interviewing.io and one of the authors of Beyond Cracking the Coding Interview (the official sequel to CTCI).

We just compiled every problem (and solution) in the book and made them available for free. There are ~230 problems in total. Some of them are classics like n-queens, but almost all are new and not found in the original CTCI.

You can read through the problems and solutions, or you work them with our AI Interviewer, which is also free. I'd recommend doing AI Interviewer before you read the solutions, but you can do it in whichever order you like. (When you first get into AI Interviewer, you can configure which topics you want problems on, and at what difficulty level, and you can add topics and change difficulty levels as you go.)

Here's the link: https://start.interviewing.io/beyond-ctci/all-problems/techn... (You'll have to create an account if you don't already have one, but there's nothing else you need to do to access all the things.)

105 comments

order

tanchaowen84|9 months ago

To be honest, I’ve done quite a bit of LeetCode, and while it’s great for practicing algorithms and problem-solving, I’ve found that I rarely use these “fancy” algorithms in my actual work. Most of the time, what really matters is breaking down requirements into clear logic, writing maintainable and collaborative code, and communicating well with the team. These skills are hard to assess through algorithm-focused interviews alone. I really hope interviews can place more emphasis on practical engineering skills and real-world scenarios, which would be more valuable for both companies and candidates.

I’m currently preparing for interviews myself, so having access to high-quality, free resources like this is incredibly helpful. The AI interviewer feature, in particular, looks like it will be very useful for me. Thanks again to the author for making these resources available!

IshKebab|9 months ago

I think it really depends on the job. In most jobs I've had the algorithms rarely get more complicated than just avoiding accidental O(N^2). The sort of thing where juniors would do a linear search.

But I did have one job working on an AI graph compiler which used fancy algorithms all over the place. In practice though I found the space between "use the standard library" and "it's NP-complete; use heuristics" where the answer is "you can use this neat dynamic programming trick" is basically nonexistent.

quelup|9 months ago

This is awesome. Just for awareness - I started going through the book a few days ago and there's a lot of other useful information outside of the LC style questions (e.g. what's actually important on a resume, how to realistically get your foot in the door with companies, etc.). Very data driven and comprehensive, so for me there's still a lot of value in the non LC parts of the book.

slackware_linux|9 months ago

Incredible value here, thanks for sharing Aline. The book itself is a wonderful resource, not just for the technical chapters but the rest on resumes and reaching out etc. Even the technical portion provides the framework (boundary thinking, triggers, etc.) which is above and beyond basically any other resource online or in print. The AI interviewer is also super useful and the 'book' section of the site is very well put together. 10/10.

devnull3|9 months ago

I wonder which other professions or trade ask people to perform infront of them in a simulated env as a filter criteria.

Actors for sure with auditions and maybe maybe chefs, male pornstars.

bespokedevelopr|9 months ago

Welders, millwrights, machinists, carpenters, lots of trades have qualifying interviews. I’ve taken written exams in interviews for machining and welding as well as hands on show me parts.

Not that I agree with absurd interview process of software development but they often see themselves more akin to attorneys than tradesmen. The difference being attorneys have to pass a bar exam and even trades have journeyman cards to provide credibility.

Software development has none of that. Real engineering has PE licenses but how do you achieve that in such a broadly scoped field of software development?

We either play the interview game or find a way around it.

williamdclt|9 months ago

All sorts of managers and analysts have "project stages" where they have to analyze data and present a case study.

lapcat|9 months ago

Only male?

jwmoz|9 months ago

'Principal' developer at my last place spent 100 consecutive days grinding leetcode. Shortly after had an interview where they made him do a leetcode test live and he failed it.

The whole thing is broken.

Spivak|9 months ago

It's a whole separate skill to be able to code with an audience, let alone an audience who is judging you. I could forgive a non-technical interviewer not knowing this but surely someone who is a dev themselves understands the very real performance anxiety. It's bonkers why we do this to people— the best I've seen is the in person talks about their experience, architecture, problems they've encountered and how they solved them and then either code samples from their public code if they have some or a short take-home assignment if they don't.

They could cheat on the take-home but it isn't meant to be difficult and you hopefully figured out at the in-person that they're someone who wouldn't need to bother cheating.

HeyLaughingBoy|9 months ago

Principal Engineer level shouldn't even be tested on leetcode. There are far more important things to know about that candidate.

stevenalowe|9 months ago

if only he had spent 101 days...

barbazoo|9 months ago

Or the interview was about more than just leetcode and they just weren’t that good.

bungled|9 months ago

Aline and team are doing great work. Love to see this!

dwightgunning|9 months ago

Proud to have helped work on this. Happy to field any questions.

squeegee_scream|9 months ago

Why make the questions and AI interviewing free? This sounds too good to be true

avinassh|9 months ago

I would like to give a try, but I am getting this for India:

My name is Aline, and I'm the founder of interviewing.io. Thanks so much for your interest. It looks like you’re not in a country where we’re open for business yet, so we can’t create your account, but we’ll add you to our waitlist.

leeny|9 months ago

Odd, that shouldn't be happening. Can you please email support@ and say you're trying to access the book materials, and we'll investigate

joshdavham|9 months ago

I think the reason leetcode problems are still popular is because they test whether a candidate is willing to work hard (‘grind’) on problems that don’t even matter. A lot like what actually goes on at a FAANG company.

hakkotsu|9 months ago

Hard disagree. At FAANG companies, working on problems that "don't matter" is exactly how you get a "Meets Some" or worse at your next perf review. These companies are obsessed with measurable impact - you need to show clear business value, user metrics, or revenue impact. Spend 6 months grinding on irrelevant work and you'll be on a PIP in a blink of an eye

dcsan|9 months ago

This sounds like an amazing resource. What’s the rationale for making it all free?

diarrhea|9 months ago

> What’s the rationale for making it all free?

The writing is on the wall for Leetcode-style interviewing. The signal-to-noise ratio is diminishing in the age of AI (cheating). These sorts of puzzle challenges might no longer play a meaningful role going forward.

Peroni|9 months ago

Aline is a bit of a Hacker News legend. She's been active here for longer than most people have been working and when you see how she's built her product, it's plainly obvious that she legitimately understands and sides with the HN community.

I bet the genuine answer to your question is that she knows it's a resource that could help tons of people (at a time when tons of people need that help) and paywalling it means that it won't serve that same purpose.

hintymad|9 months ago

LeetCode-style interviews used to be an aptitude test, kinda like the weeder courses in college. Now that most people cram for them, they've lost their original purpose.

OnionBlender|9 months ago

I wish I could just submit my solution and be told if it passes instead of dealing with the AI Interviewer. A lot of problems don't have a leetcode equivalent.

leeny|9 months ago

You can try to short-circuit the AI Interviewer by just entering your solution into the IDE. OR you can ask to end the interview, and then you'll get a link to the solution.

We built it this way on purpose, though... the intent is to mimic an interview and gently force you to talk through your thought process, not to have yet another LeetCode clone.

davidpfarrell|9 months ago

How did your site know my first/last name when I gave my email address to create an account and clicked the confirmation link you sent?

leeny|9 months ago

We use Clearbit for enrichment: https://clearbit.com/ That said, all interviews on interviewing.io are anonymous unless you and your interviewer both explicitly opt in to unmask.

neilv|9 months ago

Long ago, some dotcom, founded by students who'd never worked, used their own idea at the time about what software development is about (i.e., Stanford first-year CS problem sets). And since that company had a lot of money (for different reasons), a lot of wannabe companies tried to mimic whatever they did.

Today, CS student's idea of an industry interview has turned into an extortion racket cottage industry, with people not only selling ritual prep books, but now also selling mock interview rituals with techbros who got into the best-paying companies.

Youse has a lovely career potential; its would be a shame if somethings was ta happen to your job interview.

What more does it take to realize this is very time-consuming and expensive theatre, and terrible metric for hiring good software engineers.

And if you're an employer who doesn't care that students spend many hundreds of hours rehearsing for the interview theatre, to the exclusion of getting more experience building things, and that your interviews aren't actually selecting for software engineer aptitude, what happens when the hire takes that same misaligned hoops-jumping mindset to their work.

bko|9 months ago

Thank you for this. Some people are critical of coding tests but I do this there is a point: namely to weed out people who can't code.

Am I the only one that interviewed people with lengthy resumes full of programming experience and when I asked them to do a simple programming exercise they fell flat on their face? I've seen experience in C, gave them take home two hour exam and they couldn't even get anything to compile. What he meant was he took a class a few years back.

You see it in other domains with extensive Excel experience and the guy gets hired and never heard of a vlookup.

I think some of the stuff is overkill but you need to select for people that know how to program.

I for one am glad they exist because I don't have a CS degree but learned on my own. I lucked into this profession through an online leetcode style screener and your book helped me immensely,so thank you

BeetleB|9 months ago

> namely to weed out people who can't code.

You don't need Leetcode style tests to weed those out. Much simpler problems will do it.

stmw|9 months ago

You are not the only one. I've interviewed probably 1000's of engineers and it is striking how often one runs into candidates that can't code... or ones that operate at a level far below what you would expect.

AndrewStephens|9 months ago

Cracking the Code Interview is a great book and excellent for practice and brushing up. But I have found leet-code questions terrible for actually interviewing candidates. A lot of them boil down to whether the candidate knows the specific trick or can regurgitate the memorized solution.

(Maybe I am just bitter because I have more than once bombed a leet-code interview myself)

I interview a lot of people and my go-to coding question is actually a pretty simple question that might be found in a 2-year coding course. What I am looking for is production ready code, good error handling, tidy design, and understandable code. All things that leet-coding specifically discourages.

brettgriffin|9 months ago

Leet Code style questions are a shorthand assessment for two things:

1. Raw mental horsepower

2. The ability to just repeatedly do focused learning, aka just grinding

And sure, it probably does favor #2 these days - but that is a critically important skill. You can trade one for the other, but everybody has some amount of both, and these questions figure out, roughly, your computed aggregate score of these.

They have a very high false negative rate, but an exceptionally low false positive rate for a 60 minute interview, so it works very well in companies with large interview candidate pipelines.

koliber|9 months ago

I disagree. Many of the leet code problems can be solved by thinking them through and coming up with a solution without ever seeing the problem before. If the candidate gets stuck, the interviewer should act as a partner and offer occasional hints in case some sort of trick is involved.

Maybe we have different things in mind when we say "leet-code questions".

I don't know why leet-code style interviews would discourage the things you mentioned.

paxys|9 months ago

People keep saying this, but no one ever shares any meaningful data to make their case. Tech companies have been using Leetcode-style interviews to hire programmers for decades, and have grown in value from nothing to trillions of dollars in that time. The industry as a whole is worth tens of trillions, and the software these fake Leetcode programmers have built has eaten the world. Large companies have all spent billions on recruiting and internal processes and have come to the same conclusion - coding interviews work, and are very effective. Why should they stop? Vibes? Online comments?

QuadmasterXLII|9 months ago

Hot take: these interesting, contained problems that you really can solve on your own are a finite resource, and every time you read the solution to one you permanently deplete that resource for yourself.

stuartjohnson12|9 months ago

Hotter take: manipulating intelligence signals is more effective for achieving things than doing things to improve intelligence.

commandlinefan|9 months ago

You can hedge against that by trying your best to solve the problem once before reading the solution.

lr0|9 months ago

[deleted]

tomhow|9 months ago

That comment and yours both broke the guidelines [1], particularly the one that asks us not to "fulminate".

It's fine and welcome here to critique anything, we're just trying to make HN something other than a ragefest, particularly about topics that people have been saying the same enraged things about for a long time.

When the same things have been said about an issue for a long time, it's time to think about new ideas and new solutions to that issue.

[1] https://news.ycombinator.com/newsguidelines.html

constantcrying|9 months ago

[flagged]

tomhow|9 months ago

It's fine to feel whatever you feel about technical interviews, but the guidelines ask us to be more measured when we post comments here. Several guidelines cover this in different ways:

Comments should get more thoughtful and substantive, not less, as a topic gets more divisive.

Please don't fulminate.

Please respond to the strongest plausible interpretation of what someone says, not a weaker one that's easier to criticize. Assume good faith.

Eschew flamebait. Avoid generic tangents. Omit internet tropes.

Please don't post shallow dismissals, especially of other people's work. A good critical comment teaches us something.

https://news.ycombinator.com/newsguidelines.html

arbll|9 months ago

IMO "easy/medium" coding questions have their place. I run quite a lot of interviews and I have many many "seniors" from known techn companies that can't do exercises that are glorified reverse for loops.

The idea all tech companies require you to know niche data structures is kind of a meme honestly. I'm sure some do but not the ones I've interviewed at at least.

pc86|9 months ago

Because other engineering disciplines don't have joke applicants, because other engineering disciplines have governing bodies distributing credentials. If you're a PE, everybody knows you have a base level of competency in your field. Yeah you might not be a great engineer but you're not going to be the Civil Engineering equivalent of somebody typing questions into ChatGPT and pretending to not understand you when you ask why they're reading a script back to you.

I'm not necessarily arguing that software engineering should have some gatekeeping organization that you need to prove yourself to, but you take the good with the bad. In other engineering disciplines, a third party organization takes the responsibility of filtering out the unqualified people. In software, the hiring companies have to do it, so you end up with the first interview (at least) being spent just proving you're not lying about every single thing on your resume.

ativzzz|9 months ago

Yes and other engineering disciplines have certifications and organizations that require you to pass exams to prove you have the knowledge

They also tend to pay less

Preparing for interviews is a small price to pay

FirmwareBurner|9 months ago

No other engineering discipline has such a low barrier to entry where everyone can self tech themselves at home almost everything people that go through the higher education pipeline can, and then extra on top due to how fast the industry evolves, where even having a degree might not make you qualified for a job today. In no other engineering discipline is all the tooling FOSS.

So the PRO is that anyone can become a SW engineer, but the CON is that when anyone can become a SW engineer you're competing with soo many people on an even playing field that weeding out the wheat from the chaff is tricky and no company had the perfect solution because it doesn't exist.

What other engineering profession things change so fast that tools from ~20 years ago (C, PHP, Perl, etc) are not useful on the job market anymore? What other engineering profession gets hundreds/thousands of applicants per open position? What other engineering profession has such a lack of standardization that every company works completely different, with different tools and different processes to ultimately do the same thing?

In most other traditional engineering disciplines it's not just the university degree or credential that matters to getting in, but a lot of critical knowledge can only be gained from mentoring and learning at the job from graybeards of the industry, knowledge you'll never get if you try to teach yourself, even if technically all the relevant courses and information is freely available online. Not to mention that in a lot of engineering professions the tooling is specialized, non-FOSS and very $$$, so your only chance of touching it is at university or a company who will pay you to get certified in that tooling.