In this case, Bezos saw firsthand how a brain teaser could be answered by "seen something similar once before" much more easily than "worked on it on a team for several hours". Isn't this exactly the sort of brain teaser that we hate seeing in tech interviews?
This one was bad enough that Bezos left the field, yet Amazon (like every other software company) still asks these style of questions of its engineering candidates.
"No, no one can teach you to be innovative or creative, you already are. Humans are the most innovative creatures in the history of this planet, innately, look at all we have created. All you need to do is to un-learn to not be creative. We are all constantly taught, either in school, the military, by our family or by our peers, our company we work for, whatever... to NOT be creative; to in effect comport. First un-learn that. It will unleash your creative/innovative abilities."
Jeff Bezos may not be a physicist but somewhere along his path he learned to stop NOT being innovative.
>He begins working calculus problems in his head as soon as he awakens. He did calculus while driving in his car, while sitting in the living room, and while lying in bed at night.
Not because he was actually smart (ok, perhaps a good memory). Not because he was able to do math really fast, or really accurate, or in his head. None of that. NOT EVEN because he figured out this problem on the spot. That was quite simply not it.
But because he had solved a metric fuckton of problems before, and then got lucky.
I agree with your statement (just got one patent to my name though), but a very important caveat is that you have to learn something (and preferably more than 1 thing) thoroughly before unlearning it. And learning first and then unlearning is vastly different from not learning it at all.
I often see people say things such as, "I have tons of experience with language Y and framework Z and that's all that matters, who cares about trees, graphs and all that ridiculous interview questions..." The big tech companies are looking to innovate and lead, and that's why they ask these questions.
If someone is new to programming and begins by telling me what framework they are considering learning, I often tell them to forget about the framework and learn the language. The language is the foundation that frameworks are built on. Algorithms & Data structures are the framework on which software is built on.
The only time I frown upon such questions is if someone is testing you for exact syntax of the language instead of making sure you understand the nature and solution of the problem.
Asking algo and whiteboard questions completely ignores the "extensive experience across many years". I can spend years gaining deep expertise in an area, and that means absolutely nothing. All that matters is I practiced for 2 months white boarding algo questions under time pressure.
Or to put it another way. Spent 5 years getting a PhD? Who gives a f*ck. Can you code a DP problem in 20 minutes? You're hired!
Architecture is also another part that most programmers fail to grasp.
I think of algorithms as good to know but rarely used. It’s has an answer to every question. So what you get is a bunch of people cramming questions and answers until they memorise it; defeating the entire point.
Can you please elaborate on this? What exactly are we trying to unlearn. I have never been able to think creatively and this has cause me self respect issues.
Be curious and playful (in the domain you want to create in), experiment. Try to figure out things on your own before reading the manual or other learning materials; then learn the existing theory and compare notes. Try to formulate useful heuristics for yourself. Do not reject learning or experimenting with things that seem only tangential to what you are doing.
Innovation is hard. In addition, you have to balance all this against "productivity", such as being focused on a specific problem, getting things done and finishing up.
When looking for a solution, is the path straight? Or is it curvy, full of alternatives that appear strange at first? Staying with the strangeness is part of the unlearning. :)
Take a look at these cards for their fun (and creative!) prompts to look at problems (and the world?) differently. To look in different places, in different ways. To juxtapose and separate.
Take a look at some books (typically grouped under “creativity” on amazon), such as “The Artist’s Way”, or “Steal like an Artist”. “Bird by Bird” is another book I’ve enjoyed.
Some things/tricks/ideas/perspectives will click while others won’t. It’s ok to pick a path. Some tricks will work best at one time or another. That’s also fine — part of the unlearning is accepting that too.
Best of luck and feel free to reach out!
I can somewhat empathize (as I'm sure many others here can), as I often get similar requests from people I interact with on how programming/graphic-design is 'incomprehensible' to them and they 'wish they could do it'. I used to try to offer more practical advice — along the lines of 'Try X online coding resource and see if you like it', but have since defaulted to 'If you really want to do it, then you'll find a way of doing it (and I can help you in any way I can, learning-resource-wise).' which I of course sugar-coat to avoid coming off as condescending (as I obviously do not intend to come across as).
The sentiment that so many people seem to wish they were creative / innovative / more 'logical' is something that I grapple with quite a lot — wondering what levels of 'activation energy' some people need in order to realize they're capable of being creative, and then become self-motivated enough to continue. Like every discipline, it takes years of effort to become good at something, but hopefully only a short fraction of that to 'get into it'.
I think I'll try something similar to your line in future in order to come off as a little more inspiring...
I learnt to juggle really quite well in 2016, because I went to a hall once a week with some friends I really liked and practised while we talked, and dropping the balls and constantly fucking up could be fun because we were bonding over it, I don't have something like that for guitar.
Funny story, my Mom (who was amazing) came to visit me and I took her to a cool food festival. She commented (and I will never forget this) "Wow there are a lot of different kinds of people here" for my Mom seeing so many people of different colors and forms was mind blowing, but bless her heart, she just sat back and took it all in.
Keep in mind, she was a second generation German immigrant. Anyhow, she saw this amazing thing and immediately understood what I was experiencing. So, for each person, I think, there is something different that will click you out of the trench you might be in and let you see something different. Not sure how to explain it any better.
I had my "Algorithms & Data Structures" somewhere around 1996.
How often do you thing I am implementing AVL and B-Trees on typical enterprise applications?
MaxFlow? I had to google for what it is all about.
You won’t pass HC if you don’t at minimum solve the problem at all. And max flow is a nontrivial algorithm, more so than any of the ones I’ve ever known people to get.
You have to have pretty amazing natural talent to be able to get it cold without much studying.
I think it’s a shame that there doesn’t seem to be a middle ground opinion between the elitist “you mean you don’t know about Ford Fulkerson without studying?” and the anti intellectual “all coding interviews are just luck and not a good signal”...
The older, more experienced people at these companies you cite are the ones less likely to have CS degrees, which only became a staple recently. The companies now ask for one because it's an easy mass fizzbuzz filter. It doesn't help them get the best engineers, it helps them not get the worst ones. They have the volume to make up for it.
Saying what they're doing shows ignorance as to why it's working.
So where’s the value as a primary interview technique? Is selecting for people who can read a textbook that helpful?
1) general intelligence
2) conscientiousness (how much effort you put into what you do)
Don't you think asking applied textbook problems is an excellent way to test for both at the same time ?
If you are smart, then what is the problem with going through an algorithm textbook, listening to Youtube explanations when you can't follow and just spending your evenings for 3 weeks or so. Frankly, if you get to chapter 5 out of 20, you've probably seen what you will be asked, so you could easily stop after one week and still easily pass the interview bar.
And if that's too much effort, why should they assume you'll put in effort once you get hired ? They'll be expecting more than one week's worth of effort from you.
Furthermore, Google actually tracks how well it's questions work, how the resulting hires perform. If there really was no correlation there, they'd have changed it (also they've documented it in Laszlo's book, well at this point books)
I bet it would measure even better if they told you a week beforehand that the question would involve some obscure, not super easy but not super difficult algorithm, but one that they can reasonably assume you've never seen before and then asked you to apply it on the interview.
I'm very low-c and that means I have a proclivity to procrastinate and a tendency to not be able to stick with things very long term of my own volition. This doesn't make things impossible to do for me as I even managed to become fluent in Japanese which was a tortuous multi-year effort. Suffice to say higher conscientious would be nice, but it means I have a tendency to also not feel the need to follow all the rules all of the time and this results in my sometimes taking a contrarian or unorthodox approach and sometimes this has a massive and positive benefit. It also means I'm constantly forgetting to log my time sheets and take out the rubbish and things like that piss off my boss and my wife and this is generally considered a problem but my boss and my wife also love me because I do things they don't see other people doing and im considered unconventional but in a very good way.
Everything is a trade-off. It's not like all high conscientiousness people is the right mix of people to have.
Maybe of their engineers and mathematicians, but as a software engineer, Amazon never asked me these types of questions. Software engineering is significantly different, however, so I wouldn't be surprised that they focused more on textbook fundamentals.
To summarize, linked list questions used to be a good test of "can you write C" and are now a bad test of "can you solve problems".
There's always some of that, sure, but usually it's a problem with a bunch of ways to solve it, not just one. Some are better than others. And it's nice if you get the best one. But that's not what I personally care much about- it's how you communicate it, how your pseudocode looks, how well you've thought through the problem, how well you can explain the solution.
There's also usually interviews focused on design. The problem may be easy, but the challenge is in how you'll solve it to handle (m|b|tr)illions of inputs.
FWIW Amazon does experiment with different interview formats. They used to (still do?) interviews where you get a laptop and spend the day working on a simple problem where interviewers will ask you questions about why you did the things you did.
They're not brain teasers, they are real life problems that can worked through iteratively, with some hints and guidance from the interviewer.
Source: Am one of those types of tech interviewers at one of those types of tech companies
I spilled my tea from laughing. Yeah, just the other day I was asked a real life problem of finding out in which order I would burst some balloons for maximum monetary gain.
Source: Am one of those types of tech interviewers at one of those types of tech companies and also part of the HC having reviewed thousands of interview feedback!
Spend half the time on behavioural questions, and half on tech, and suddenly you'll find it easier to justify hiring a well rounded engineer who needed a couple of hints over an unblinking automaton who can solve questions flawlessly yet would struggle with any real-life ambiguity.
This isn’t theoretical, I have done this before in a real interview and it did work.
Guy who looks like a close friend? Yeah I had to give him a hint, but that’s ok. Guy who’s ugly and speaks with a stutter? I had to give that guy a hint, can’t belive he couldn’t figure it out on his own.
See this except from a biography of Bezos:
>... To the amazement and irritation of employees, Bezos’s criticisms are almost always on target. Bruce Jones, a former Amazon supply chain vice president, describes leading a five-engineer team figuring out ways to make the movement of workers in fulfillment centers more efficient. The group spent nine months on the task, then presented their work to Bezos. “We had beautiful documents, and everyone was really prepared,” Jones says. Bezos read the paper, said, “You’re all wrong,” stood up, and started writing on the whiteboard.
>“He had no background in control theory, no background in operating systems,” Jones says. “He only had minimum experience in the distribution centers and never spent weeks and months out on the line.” But Bezos laid out his argument on the whiteboard, and “every stinking thing he put down was correct and true,” Jones says. “It would be easier to stomach if we could prove he was wrong, but we couldn’t. That was a typical interaction with Jeff. He had this unbelievable ability to be incredibly intelligent about things he had nothing to do with, and he was totally ruthless about communicating it.”
Yasantha is an interesting fellow, with contributions in wireless networking, AI, chip design and various other fields.
In this article Yasantha describes Bezos's legendary work ethic.
>Yasantha described how students once dared each other to complete a computer science assignment in a single line of coding. “Finally, I gave up and did this in 10 or so lines of code,” he added, “But I remember Jeff working through all night, in pursuit of the most compact solution, and turned in a two-line solution that was probably the shortest anyone could do…”
>“It goes to prove that Jeff is tenacious, and will not give up like most of us would when presented with a challenge,” he said.
>“He sets his goals and sticks to them. I think that’s a quality that has made him who he is,” Yasantha added.
Think what it meant for someone such as him to give up on his dream to be a theoretical physicist.
Despite his tenaciousness he was forced to conclude there were levels of abstraction he could not reach through hard work.
I would definetly like to be better at telling stories like this.
When I try to tell stories I always end up on irellevant tangents. That have almost nothing to do with the main point. Or I get stuck in some detail and forget what I was talking about.
I've been reading James Gleick's Genius and it was a question I had when reading about 23 year old Richard Feynman.
I love that line.