Hacker Newsnew | past | comments | ask | show | jobs | submit | mrowland's commentslogin

> no matter the project goal, your leadership team (the people in your reporting chain who care about the project) will always have basically zero technical context about the project compared to you.

This is not universally the case, and I've been much happier when I find teams and orgs where this is not true.

Good leaders understand the details. Find them. Be one.


"Weeks of coding can save hours of design"


On a personal level, children are optional; on a societal level they really aren't.


As crazy as it sounds, it still is a clear choice.

It's a common trope in cartoons that the bad guys want the opposite - to destroy the world.

I think you make an important point though, and I have no good argument to it.

The best I can do is point out that having children does not fall on the responsibility of every woman. Not every woman needs to reproduce for society to continue.

So the question is, is it okay for people to judge others for their personal choices, even if it is societally necessary? I think there are countless examples where no one bats at an eye this category of discrimination - for some definition of necessary.


I mean come on, your argument is just weird and makes no sense.

We are talking about the 2nd most powerful biological drive after survival. You wouldn't say "as crazy as this sounds, continued existence is a clear choice" - even though it is, because anyone could decide to kill themselves at any time. And therefore they're choosing not to at every moment they don't.

But you don't say that because that makes no sense.

And thus I say that the notion that having children, while yes in theory a choice, also reflects the second strongest drive after survival and is less of a choice than one might think.

* also as a recent father, I'm gonna pull that card and say that you clearly aren't a parent, and Just Don't Get It.


To address your last point, my first comment was not really specific to children, none of my comments really have been.

I enjoy thinking about these things. So indulge me.

Life objectively is a choice. There is no denying that.

The question I asked above is, should it be morally okay to negatively judge/discriminate people based on their choices, even for a choice that is societally necessary in aggregate?

At first it might seem like the answer is no - but counter examples are easy to think of. Take drinking water. Producing it is societally necessary. Would it be okay to negatively judge an intelligent software developer for pivoting and becoming a pipe repairman for the local water utility? many would think so! You might think it is a waste of his potential. It would not be considered taboo to negatively judge him for making that choice.

Of course there are differences with child birth, but they aren't relevant to the question I've asked above - which is sufficiently answered. The answer is yes, it's okay to judge/discriminate even for societally necessary things.

Of course, the next step is to take the reasoning farther, and ask more questions. Perhaps I shouldn't lump judging and discrimination together. But I'm satisfied here.

Just to circle back and explain how we got here:

1. I started by pointing out that child birth is a choice and that we commonly discriminate people for their choices

2. Someone responded that it is societally necessary in aggregate and not a choice

3. I showed a simple counter example that it is okay to discriminate against people even when that choice is societally necessary in aggregate

Have a good weekend!


There's evidence[1] that there's no difference in intelligence between races at a very young age, and that tested differences only emerge later. This suggests that the IQ differences seen later are a result of societal factors and not something innate.

1: http://scholar.harvard.edu/files/fryer/files/testing_for_rac...


That's interesting; I didn't know that. I should like to read that document in its entirety.


Science's Last Taboo

c4 docmentary https://www.youtube.com/watch?v=Ao8W2tPujeE

(someone with the opposing viewpoint has cunningly put a video up with the exact same name on youtube.)


Agreed. Student earnings requirements aren't much of a problem for CS/engineering students (who can get paid summer jobs related to their field), but they are difficult for students trying to get into industries where unpaid internships are effectively a requirement. You would think Stanford would have made a change to this as well.


I'm a current Stanford undergrad. Most Stanford kids are able to pay for their "student contribution" by getting on campus work-study jobs (like in the Library or career development center), working as dorm staff in the underclassmen dorms, or working as paid researchers in professors' labs.


I've had on-campus jobs throughout college, and making $5000 from those jobs alone would require working somewhere in the neighborhood of 15-20 hours a week. Certainly possible (and many do it), but at that point it starts to have a pretty noticeable affect on your schoolwork and personal life.


What? $5000 a year is a straightforward, achievable contribution, especially with work-study jobs. When I was an undergrad at an ivy league school I made significantly more than that working at the dining hall during the year and the course review guide in the summer, and this was in the mid 90s.


Here's my math:

15 weeks / semester * 2 semesters = 30 weeks. $5000 / 30 weeks = $166 / week. At $8 an hour, that's 20 hours a week; at $10 an hour it's 16 hours. (Ignoring taxes, which are low but still push the hours needed higher.)

This is not accounting for summer jobs, but my original point was that having the student contribution at that level will make some students take a paying but dead-end summer job over an unpaid internship or other opportunity that would benefit them more in the long run. (Another reason unpaid internships are questionable ethically...)


Wages for campus jobs for undergraduates at Stanford start at $13.25/hr, and can go quite high. http://financialaid.stanford.edu/aid/employ/wage_scale.html

And there are plenty of off-campus jobs (SAT tutoring, etc) that can pay $35+/hr.


The schools pay aid recipients $10/hr to sit in the library and study and help checkout books.


For what it's worth, the solution to that question was an open question in computer science for over ten years, so I would guess that people who get it quickly in an interview are more likely to have heard the answer before than successfully invent the tortoise-and-hare algorithm on the spot. Further reading on that question in this old thread: https://news.ycombinator.com/item?id=7953725.


In practice, what happens is that we both acknowledge that if this was a real work problem, step 1 is to google it. I then tell the candidate that i'm not going to judge them on the algorithm they use, just their ability to work through the problem. This isn't a whiteboard problem, it's done on a machine.

It's never happened to me yet with this type of problem, but i'd be really impressed if I did run into someone who has the optimal algorithm for this memorized and can code it on demand in an interview. I'd certainly want to check that they haven't spent all of their time just memorizing algorithms and they can still do other things of course.

If this did happen i'd want to validate that they really understand the solution and aren't just spamming it out by rote, but if they've really got a few algorithms in the bank like this i'll just consider this box checked and move onto other considerations.

all I really want to know is if the candidate has the "horsepower" to deal with these sorts of problems, many people don't. someone who can code optimal solutions to these things on demand obviously does.

That said, obviously this is much easier for someone who's dealt with trees and graphs and such a lot before, so it's not ideal. I'd certainly be interested in a better way.


Would you accept with full credit an answer like this?

Iterate through the list adding its nodes to a set. If a node is already present when we go to add it, then stop, since we've found a cycle. Otherwise if we reach the end there is no cycle. With a hash set which has O(1) insert and membership check, the algorithm takes O(n) time and space since.

Note that I mean we're adding the nodes themselves to the set, not the element stored by / pointed to by the nodes. This may mean storing a pointer to the node in the set, or some other kind of object identifier.

I think this solution is fair to expect from anyone, including the caveat about node identity. Plus a candidate who already knows tortoise and hare should be able to come up with this when asked to solve the problem another way ("what's the simplest, most naive solution you can think of?"). I am not sure that I would expect anyone to come up with solutions beyond this one and the O(n^2) solution during an interview. I think those solutions correspond to knowledge that everyone should have in their working set. "Have I seen this thing before" is a pretty simple application of data structures. The O(n^2) solution trades off storage to track whether a node has been seen with determining it on demand in duplicate each time by traversing the list from the beginning repeatedly.

(If solutions are fair game that involve modifying the list, such as reversing it, or assuming that list nodes can be marked as seen, then make sure the boundary of what's allowed is clearly communicated. Make sure that the candidate does not neglect to consider a category of solutions by mistaking it as out of bounds. Candidates who are asked to design an algorithm to process a data structure cannot usually modify that structure to make the problem easier, so if this is something that you want to encourage, then you might tip the candidate in that direction by asking them to write the definition of their list node, and encouraging them to implement the node however they want as long as it meets your definition of being a linked list. Conversely if this is out of bounds, it might be best to provide the definition of a list node.)

Anyway, it seems like a fair simple interview question along the lines of a medium difficulty FizzBuzz, if the answers above give full credit. I don't think effective software engineers would be tripped up by this. One area of concern might be people looking for overly fancy solutions without trying "er... can I just track what nodes I've seen in a set?", but finding simple solutions is part of being a good engineer. I think there are better questions than this one: (1) it's too easy to memorize all the answers (2) it's already well known by this point (3) I have not heard of a good way to build on the question to make it challenging and interesting for high performing candidates. This might be an OK intro question before moving onto a harder one. I've never asked this in an interview - just going by instinct.


Yes, someone who can code the solution you describe on demand would be a flying colors pass for me.

I agree with you that there are probably better questions. As you say, I'm looking for a medium difficulty fizzbuzz. I also agree with you that this is not going to be challenging and interesting for high performing candidates.

Incidentally, if someone has managed to memorize the solution to this and other algorithm problems I would consider that a pass. just the ability to do that is enough. there's enough code involved that they have to understand the problem pretty well to memorize it, and its the ability to understand that i'm interested in. (Barring some extreme outlier with super memory but bad other skills, but I'll have to detect that with other questions).


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: