Live data from Hacker News

The Lesson to Unlearn

paulgraham.com

451–460 of 588 posts

Re: The Lesson to Unlearn

#451
post #66

I got into "computer science" before there was a CS degree. Our CS classes were taught in the math dept (fortran), business dept (cobol), or engineering (assembler). The profs were literally 1 chapter ahead of the students. I, however, was in love with the subject. I was the "student advisor" in our "machine room". We had 5 teletypes connected to a remote mainframe at Rutgers. I lived and breathed CS. I wrote tests f…

I think I fall into the "don't get it" category. Could you explain what I should be taking away from this? I understand that being at the leading edge has benefits, but it's not feasible to understand the state-of-the-art across an entire CS curriculum.

It's feasible to know the shape of the current field, so you know where to drill deeper for more information if you want it. For example, you have a file in one format and you want it in another one... if that doesn't make the word 'compiler' or at least 'parser' pop up, you need some more education. You probably don't know everything about compilers, but you can search for information about compilers and find out enough to get by.

The thing to avoid is becoming a person of one book, or a person of one tool, where you know one thing and only one thing, and you experience deep anxiety when you're out of your (one, singular) comfort zone. Being an expert in everything is impossible, but being an expert in one thing with no knowledge of anything else is definitely something to avoid.

Re: The Lesson to Unlearn

#452

Earlier quoted context omitted.

Haha here is the email i have from my facebook interview thats coming up. "Your initial Facebook interview is coming up and we want you to ace it! Here are some tips and resources so you know what to expect and can prepare adequately. Preparing is key. Our initial interview determines whether to continue with a full series of onsite interviews. This initial interview is primarily a coding interview that will take pla…

> Write a function to return if two words are exactly "one edit" away, where an edit is: Inserting one character anywhere in the word (including at the beginning and end) Removing one character Replacing exactly one character I've been writing code my entire life, and I've been employed as a software developer for longer than I'd care to admit. I don't have a quick answer to that problem. I know there's an algorithm…

Look up "edit distance"... it is one of the first problems an Algorithms course will discuss that can be solved by dynamic programming. But ya, no way anyone is coming up with that unless they have seen it before.

Re: The Lesson to Unlearn

#453

Earlier quoted context omitted.

Haha here is the email i have from my facebook interview thats coming up. "Your initial Facebook interview is coming up and we want you to ace it! Here are some tips and resources so you know what to expect and can prepare adequately. Preparing is key. Our initial interview determines whether to continue with a full series of onsite interviews. This initial interview is primarily a coding interview that will take pla…

> Write a function to return if two words are exactly "one edit" away, where an edit is: Inserting one character anywhere in the word (including at the beginning and end) Removing one character Replacing exactly one character I've been writing code my entire life, and I've been employed as a software developer for longer than I'd care to admit. I don't have a quick answer to that problem. I know there's an algorithm…

You don’t need edit distance. The solution is literally a for loop and three if statements. The fact that you can’t stop and think for a few seconds about how you might solve this means you’ve been on autopilot for many years now. This is a proxy test to weed out people who work on autopilot and never think.

Re: The Lesson to Unlearn

#454

Earlier quoted context omitted.

Haha here is the email i have from my facebook interview thats coming up. "Your initial Facebook interview is coming up and we want you to ace it! Here are some tips and resources so you know what to expect and can prepare adequately. Preparing is key. Our initial interview determines whether to continue with a full series of onsite interviews. This initial interview is primarily a coding interview that will take pla…

This is an initial phone screen and in this context this a valuable approach. This is one level past fizzbuzz. 'Can you code something past "hello world"?' is what they're looking for. There's nothing worse than an onsite with somebody who just cannot code at all.

The particular example is bad, though, because there’s room for a massive algorithmic insight. There’s an obvious-enough but terribly inefficient way to do it, and a fancy efficient algorithm that either you know or you don’t. If given this question I would middle through the inefficient way, aware that there must be a better algorithm out there that’s eluding me, and I’d probably get a “vaguely pass” mark, but the kid fresh out of college who has spent the last three months doing leetcode study will regurgitate the correct solution and pass with flying colours.

(Once in a while maybe a complete genius takes the test and reinvents the good algorithm on the spot, but only gets the same grade as the diligent student, for his effort.)

Too many basic coding screens seem to rely on some algorithmic insight. I would rather give a candidate a complicated-but-straightforward problem (like a super-fizzbuzz that takes half a page to describe,with a bunch of complicated rules and exceptions to those rules) because that’s closer to what a real world programming task looks like. No room for a clever insight, just translate the problem statement, carefully, into code, and test whether it runs correctly.

Re: The Lesson to Unlearn

#455
A related observation: what is the point of a “B” grade? It means “this person didn’t learn everything.” If you’re going to say “oh ok they got a B so we need to teach them some more”, that’s really useful.

But if you just given someone a “B” and send them up a year at school/university, then presumably they find it harder and harder to do subsequent courses. And over time they learn they’re a B student. Which is demoralising, and possibly also insulting as it ascribes failure of the learning process to the student and not the teacher.

Re: The Lesson to Unlearn

#456

Earlier quoted context omitted.

Being a hiring manager at a big company, I can tell you this is just as frustrating for me as it is for candidates. I hate “leet code” and frankly find algorithmic interviews to be very low signal compared to more practical, open-ended, domain-specific problems. I will say though, the problem is one of “standardization” across an organization where it’s too big for everyone to fit in a room. Suppose you give each tea…

I was a hiring manager at a big company for years. We never did coding tests, and I like to think that I made good choices every time. I kept a high-functioning team together, under fairly humble pay, and stressful, sometimes demoralizing, conditions, for decades. I'm mediocre, at best, at these tests. I don't come from a traditional CS background (started as an EE). I tend to take unusual, hybrid approaches to solvi…

The big problem with using a software portfolio is that plenty of competent engineers don't have impressive work that they can share. If you don't (or can't, because of other obligations like parenting) code in your free time and aren't a recent graduate, you probably don't have much to show.

Of course, difficult whiteboard interviews that require studying to pass have the same problems probably and give less useful information. So, :shrug:.

Re: The Lesson to Unlearn

#457
School grades are more a measure of conformity and ability to adapt a wage-work environment. Performing well in both wage-work and school requires an individual to jump through arbitrary hoops (performance reviews, office politics requiring certain procedures, etc). Teachers are just as capricious as bosses and upper management with their directives.

Perhaps if we move away from wage work then school will change too.

Re: The Lesson to Unlearn

#458
post #101

Earlier quoted context omitted.

> This is great seeing so many PG essays! I've really missed his writing. I love reading his tweets! They're all so down to earth and illuminating. That said, I'm not a fan of his blog writing as much. I find it full of overly-sparse nuggets of wisdom. It needs to be more concise, to the point, with fewer clever metaphors. This article could've been compressed 70% and still have been human readable.

pg seems to have a backlog of essay ideas that he's catching up on. This is all good, but also means that they get written a bit too quickly. It's the classic "had I had more time to spend on this text, it would have been shorter" syndrome.

Indeed, time is of the essence; playing tug-of-war with quality.

Re: The Lesson to Unlearn

#459
post #329

Earlier quoted context omitted.

My solution is smaller companies - that way the underperforming ones can be eliminated more easily.

At Amazon, perhaps one of the largest and most successful employers, the solution to this is that when interviewing, everyone's main goal is to hire people better than the current average of the team. To ensure this, someone experienced with interviewing from outside the team/organization, so called bar raiser, is always added to the interviewing team. This person is there to ensure high quality hires and has hiring…

Amazon phone screens you by saying: "Get out a notebook and a pencil. Write down the code in C to flatten a binary tree into a sorted list, and then read it back to me over the phone."

If this is raising the bar, no fucking thank you.

Re: The Lesson to Unlearn

#460
post #364

Earlier quoted context omitted.

I was a hiring manager at a big company for years. We never did coding tests, and I like to think that I made good choices every time. I kept a high-functioning team together, under fairly humble pay, and stressful, sometimes demoralizing, conditions, for decades. I'm mediocre, at best, at these tests. I don't come from a traditional CS background (started as an EE). I tend to take unusual, hybrid approaches to solvi…

I've often wondered as well why tech companies seem to go out of their way to ignore portfolios. First I thought it's a misguided but honest attempt to make the process look more like a blind meritocracy, to basically turn the interview into a modern version of the Imperial Examination of ancient China. Then I read "Soul of a New Machine" by Tracy Kidder, a book that documents the design process of a minicomputer in…

The benefit of a portfolio for picking a designer is that most often the designer was the only designer on a project, therefore the design can be said to theirs, whereas programmers are seldomly the only programmer on a team and the portfolio can be unclear as to what they contributed.
Post reply on HN