News for hackers. Stuff that matters.
Re:Tech Interview Handbook by triceratops on Saturday August 17, 2019 @10:57PM (#20727948)
> Can only imagine what this is doing to code quality...

Why would studying algorithms and data structures affect code quality? They would similarly be able to learn to write quality code once they're inside the company, no?

Re:Tech Interview Handbook by jjav on Sunday August 18, 2019 @12:26AM (#20728232)
This race to the bottom, as parent poster said, is from a generation of developers hyper-specializing in interview-style problems. These problems are tiny and self-contained and have a slick solution which can be regurgitated onto a whiteboard in about 30 minutes give or take.

While that is not a negative skill to have, it is also not a skill that I'd list anywhere in the Top-25 of most valuable skills for productive developers.

Re:Tech Interview Handbook by 13thThief on Sunday August 18, 2019 @02:54AM (#20728675)
Just curious, could you list the top 25 (anecdotal?) valuable skills for a productive developer? Thanks.
Re:Tech Interview Handbook by lawn on Sunday August 18, 2019 @05:56AM (#20729287)
Because these problems encourages you to write unreadable code. It makes sense when you write it, because you can fit it in your head, but you never have to revisit it after having passed the problem. It encourages one letter variable names and other quick hacks in the name of speed.

They work against creating readable, understandable and debuggable code which is much more important in general than being able to solve algorithimical problems you'll almost never see in real life.

I've seen this first hand where some were brilliant at these problems but wrote the worst code imaginable. I would rather hire someone who can write clean and simple code and teach them how to solve these problems than the reverse.

Re:Tech Interview Handbook by username90 on Sunday August 18, 2019 @06:03AM (#20729305)
> I would rather hire someone who can write clean and simple code and teach them how to solve these problems than the reverse.

Why? Teaching people to write readable code happens automatically during code reviews, teaching people how to think is a lot harder.

Re:Tech Interview Handbook by lawn on Monday August 19, 2019 @01:12AM (#20735045)
Because producing simple and good code is much more important.

It's quite condescending and narrow-minded to say that solving algorithmic problems is thinking, but writing clean and simple code isn't.

Writing readable code is much more than just formatting code and using decent variable names. It's about simplifying your design just enough. Code reviews is not enough to teach someone this.

Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @12:10PM (#20731036)
> Because these problems encourages you to write unreadable code.

First off, no, writing good code in an interview wins you additional points. Second, why do you think candidates can (or will) continue doing that on the job? New employees aren't allowed free rein to check in code from day 1 at most places - trust has to be earned. And I don't think any decent company allows check-ins without review.

Re:Tech Interview Handbook by closeparen on Sunday August 18, 2019 @03:43PM (#20732356)
Code reviews are good at catching oversights and at giving design & implementation pointers to people acting in good faith. Senior talent doesn't have the time or energy to push back on all of a systematically incompetent person's code until it's good. See the bullshit asymmetry principle. And once you hire two of these people, they'll just review each other.
Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @07:23PM (#20733596)
> giving design & implementation pointers to people acting in good faith

Why automatically ascribe bad faith to people who study for coding interviews? They went to all that trouble to get better at something, so they're obviously diligent and seek self-improvement.

> Senior talent doesn't have the time or energy to push back on all of a systematically incompetent person's code until it's good.

That sounds like a problem with the company's timelines or priorities. If senior talent is so strapped for time that they can't insist on decent designs upfront, then they likely can't hire the right people either. Because even that takes time and energy. Mentoring juniors is part of the job for senior engineers.

Re:Tech Interview Handbook by closeparen on Monday August 26, 2019 @10:27AM (#20800122)
The time to review a diff is proportional to how much work it needs. Code reviews that are within the normal bounds of “needs mentorship” don’t cost that much. Productivity is noticeably down across the board during intern season, though.

It’s more than a full time job to push back on all of a bad hire’s output, and people are accountable for their own projects as well. Things inevitably get to “fuck it, good enough.”

Re:Tech Interview Handbook by _hardwaregeek on Saturday August 17, 2019 @11:20PM (#20728027)
Because you get the college applications problem, where you stop getting the people who have a real passion for programming and coincidentally have problem solving and algorithms skills, and start getting people who are really good at problem solving and algorithms and may or may not have a passion for programming.
Re:Tech Interview Handbook by triceratops on Saturday August 17, 2019 @11:28PM (#20728057)
> start getting people who are really good at problem solving and algorithms and may or may not have a passion for programming.

Why is "passion" so important? And what even is passion? For professionals in every other field, competence, ability to deliver results, and getting along with people, are what matter. Many pros are passionate, in the sense of loving their work, but passion isn't a prerequisite for being a pro.

Re:Tech Interview Handbook by _hardwaregeek on Sunday August 18, 2019 @12:30AM (#20728242)
Oy vey. I didn't mean passion in the "I'll work 80 hours a week for little pay mister!" kind of way. I mispoke. I meant that before, if you based your interview process off data structures and algorithms, you'd get competent professionals who just happened to be good at algorithms. While now you'll get a bunch of people who have specifically trained to be good at algorithms. Which has no bearing on competence.
Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @04:21AM (#20728953)
Why can't people who study to get good at algorithms also study to write better code? They've already demonstrated their aptitude for learning difficult things.
Re:Tech Interview Handbook by _hardwaregeek on Sunday August 18, 2019 @05:15AM (#20729146)
For one, interviewing requires extremely short term knowledge. Almost everybody I know who plays the interviewing game learns just enough to pass the interviews, then immediately forgets it until the next time. So it's not really comparable to learning and refining a difficult topic over the course of a few years, as in the case of software development practices.

Also, it's two completely different skillsets! There's something very weird about interviewing for X but then demanding Y. I don't ask my primary care physician how good he is at surgery, then be like "he knows how to learn difficult tasks, so we're good".

Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @11:58AM (#20730974)
> Almost everybody I know who plays the interviewing game learns just enough to pass the interviews, then immediately forgets it until the next time

Presumably the first time they learned computer science fundamentals it took them some time right? People usually go to college for several years to learn this stuff - or 6-month bootcamps for 40-60 hours/week. Subsequently of course it'll take less time to refresh their knowledge.

> Also, it's two completely different skillsets! There's something very weird about interviewing for X but then demanding Y

I'm not disagreeing here. I just think most companies that use this interviewing style figure that X (easy to measure in 45-minute interviews) is a reasonable proxy for Y (much harder to measure). And Y (writing good code) is easier to train new employees to do as long as current employees maintain standards in code reviews.

Re:Tech Interview Handbook by closeparen on Sunday August 18, 2019 @03:39PM (#20732335)
Maybe they can, but why would they? Algorithms interviews are the only thing with an actual bearing on their future earnings.
Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @07:19PM (#20733580)
> Maybe they can, but why would they?

Professional pride? Wanting to get better?

> Algorithms interviews are the only thing with an actual bearing on their future earnings.

Do they not want promotions or pay increases at their current jobs before leaving? Usually you have to do good quality work to get promoted.

Please read my original comment: https://news.ycombinator.com/item?id=20727948. People who lack these skills can learn after getting hired. Any software company worth working at has a code review and design review process.

Re:Tech Interview Handbook by povertyworld on Sunday August 18, 2019 @12:09AM (#20728181)
Most programming is not solving tricky puzzles, but grinding out code.
Re:Tech Interview Handbook by triceratops on Sunday August 18, 2019 @12:14AM (#20728201)
> most programming is not solving tricky puzzles, but grinding out code.

Sounds like most jobs need dispassionate guns-for-hire who'll do excellent work, no matter how tedious, get paid, and go home. In other words: pros.

Re:Tech Interview Handbook by codingslave on Sunday August 18, 2019 @12:53AM (#20728313)
Because these people are just memorizing coding problems. It's like a spelling b