Hacker News new | past | comments | ask | show | jobs | submit | altdatathrow's comments login

All it took was one failed coup


Please stop defending an attempt to overthrow a lawful election as goofing around.


> but this is partially our fault

Yes, I've called dang out on his inaction numerous times. HN is utterly filled with alt-right scum.


You might be living in a bubble if you think HN is alt-right. Trump got 46.9 % of the vote. He has nowhere near that level of support here.


Information overload leads to people seeking succinct information and answers. The upvote/downvote systems ubiquitous today are easily manipulated to spread misinformation, propaganda, and fake news.

We need to do away with upvotes and downvotes. It’s manipulated everywhere it exists.


It won’t happen. And the reason is: It outsources community curation. A couple of moderators can manage millions of posts, because they only need to pay attention to the outliers. It also allows the moderators to easily fall back on “it’s what the community wants” when the core values change.


And even when not explicitly manipulated, the wrongness is baked into the system. At least once a week, I catch myself rewriting a comment not to improve it but to increase my chances of getting upvotes. How many claims do I make, how many positions do I believe, simply because I know somewhere in my subconscious that they'll get upvotes?


Why is there so much aversion to proving one's abilities? Programmers today feel they shouldn’t have to do whiteboards, hackerrank, or take-homes.

How does a prospective employer evaluate someone’s problem-solving and programming chops?


I can only speak for myself but as far as the first two the problem is that given the pressure and time constraints your success is generally dependent upon whether or not you’ve churned through similar enough problems in preparation so it’s not as much a test of your coding ability as simply pattern matching ability, which is important on some level, but not nearly as useful as, say, being able to research a solution to a novel problem and having a general sense of where to start. But for some reason we’ve equated the ability to do leet code problems with the ability to do the latter and now I’ve got to spend a significant amount of time churning through a bunch of coding exercises to prove myself instead of proving myself by doing real projects and being able to speak about them. As for take-homes, my main problem with them, other than the risk that you’re doing unpaid work, is that you often just submit your solution to the void without any chance to discuss your solution and the trade-offs you made, improvements you would implement given more time, etc. so you can imagine it quickly becomes an onerous time drain that doesn’t seem like a fair trade of time on your part if every company asks for one.


Personally, I don't mind take home assignments or even live coding challenges as long as they are testing skills I use for my job (front end web dev). I've spent a lot of time getting good at what I do, and I am actually happy to show those skills off to potential employers.

But hackerrank/leetcode don't test for those skills. They test your ability to memorize solutions to trivia questions, typically things you'd never be asked to do in the workplace.

There's enough to learn to be good at software without having to also memorize arbitrary trivia.


>But hackerrank/leetcode don't test for those skills. They test your ability to memorize solutions to trivia questions, typically things you'd never be asked to do in the workplace.

That's not really true. Most of them are variations on a relatively small set of techniques. Dynamic programming, back tracking, tree traversal, sliding window, greedy algorithms, and minimal connected tree will solve 90% of them. And those are all techniques that are occasionally useful.

Sure, some of them will have some esoteric math or algorithm that makes the solution trivial if you know it. Or sometimes there will be some confusing wording. But so long as they're not like that it's a pretty fair test.


> And those are all techniques that are occasionally useful.

Shouldn't we be testing for skills that you will be using 90% of the time in your day job rather than skills that are occasionally useful (and thus could be looked up / learnt on demand if necessary).


I love algorithms, but in all my years of coding I've never had to use DP on the job. IMO, it's not useless knowledge or never used, but it's not something I think most developers are going to use at their companies to accomplish their tasks so it feels like a weird thing to test and dismiss a candidate for.

I know developers who have written books on subjects related to development and are 100x the developer I am, but have no knowledge of DP beyond what was taught to them decades ago because they never used it when helping to build systems used by millions of customers.


HackerRank is a platform. You can design and implement your own exercises on HackerRank. We do this at our company; we design real-world problems and even test our own engineers to make sure “we” can pass our own evaluations.

I understand that at many companies, they just use pre-canned questions and all the above criticisms apply. But I don’t think this is the fault of the platform; it’s a conscious choice of the company to do so.


> Why is there so much aversion to proving one's abilities? Programmers today feel they shouldn’t have to do whiteboards, or hackerrank, or take-homes.

Because it doesn't necessarily prove one's abilities. Each of those items have pretty obvious flaws:

- Whiteboard: Usually idealized problems requiring specific knowledge that is easily looked up, but not necessarily in one's short-term memory. Whiteboard is generally not the tool one uses to write code. It's very easy to bomb these sessions despite being competent.

- Hackerrank: Easy to cheat. Usually toy problems with idealized properties, i.e. they don't have the dirty edge cases you see in real world development. This also tends to be just a first-pass filter for getting an phone interview or maybe on-site.

- Take Home: Easy to cheat. May run afoul of existing employment agreements. Requires a pretty large up-front time commitment, and IME does not actually avoid the on-site whiteboarding sessions anyway. It's more of a first-pass filter.

> How does a prospective employer evaluate someone’s problem-solving and programming chops?

That's the million dollar question. As an industry we just don't have a good system for identifying competent developers. My personal approach is to stick with folks I've already worked with, who have a long track record of delivering. That doesn't scale at all and is not very good for folks just entering the industry.

I truly wish we had better answers and I support anyone trying to build something that explores the problem space. It's nice to have diversity in hiring practices.


Cheating on the take-home assignment is easy to fix: have an interview after the assignment is turned in, and ask the candidate to walk through their code, explain their choices and design decisions. (The task should have a few places where making a decision is necessary, eg. whether to use a relational or a NoSQL database.) This can expose cheaters that have no idea about their choices, and help the interviewer understand or accept some decisions they might dislike or disagree with.


My problem with the whiteboards and hackerrank tests is that it is an entirely different ability.

Writing algos from memory on a whiteboard is not what I do in my job. It isn’t a subset of what I do in my job. It isn’t something I have ever done in a job at all. You may as well be giving me a first year chemistry final.

So it is just something I drill, forget, and then re-drill when I want a new job.

I am fine with take homes though.


In my experience as a hiring manager, Hackerrank is useless now. There are too many cram schools which teach you how to pass a hacker rank test and many junior developers will beat the crap out of seniors just because they know how to game the system. It ends up optimising your hiring pipeline for people who have time to cram.

The same problem happens with take home tests. It pretty much optimises for people with more time on their hands (i.e. people who don't currently have a job, people without kids etc).

In both cases a lot of good people will be filtered out. Some people think it's good to avoid bad hires at all costs but I don't think wasting people's time is particularly ethical.


because doing b-tree traversal from memory on paper correlates only so much with building successful business applications.

there's market leaders breaking new grounds every day, and for those I'd say it might be appropriate.

then there's your average bookkeeping application that is at most transforming existing data based on problem already solved by the customers, and these are like the majority of jobs on the market, but still pretend to hire the best 10th percentile - except they don't provide a 10th percentile pay and the job is boring and soulless so they probably won't even have a 10th candidate apply to begin with

> How does a prospective employer evaluate someone’s problem-solving and programming chops?

how do factory evaluate the capacity to tighten bolts?

this problem was solved by Ford a century ago.

if one's building run of the mill business software with spaceship grade engineering, you're trying to solve a hiring problem you shouldn't be having to begin with.


I don't care about the tests, but I do care about my time. That's why I'm not taking anything home. They either take the time to look at my GitHub / StackOverflow / Whatever profile or make me do some test, but I'm not spending more time on these things than what's absolutely necessary.


If we had an agreed upon credentialing system with a unified standardized test series, under a non-profit consortium, like engineers, doctors, lawyers, actuaries, etc. we might get somewhere. But that's a huge hill to climb, and it's debatable what if any technology specific content should be included.


I don't think most jobs actually depend on formal testing: there are a lot of people doing science and engineering work that aren't duly-accredited "Professional Engineers" and, of course, there are many other fields that also don't have accreditation.


> Why is there so much aversion to proving one's abilities?

I am ok with leetcode screens ( actually enjoy them) but I hate take home assignments. Worse is now companies asking you to do both.


If you're 40+ and have dozens of large projects delivered in the real world for both commercial and government clients, Hackerrank and its ilk can still make you look like a beginner just because you couldn't solve one of their toy problems in the ridiculously short time available. Additionally I get annoyed when some toy SMS message problem barfed up by an online coding tester has an incorrect solution when I have a correct one.

I'm slow and methodical. I'm proud of it. My code runs for years in demanding environments without breaking and I'm famous for it, at least within my own network. My code is boring. The tech I choose is boring. The solutions I deliver are predictable.

Hiring an experienced engineer is not difficult. Can the person do the work? Can we see some examples? Will they get on with the team? How quickly can they get up to speed? Will they deliver value to you?


>If you're 40+ and have dozens of large projects delivered in the real world for both commercial and government clients, Hackerrank and its ilk can still make you look like a beginner just because you couldn't solve one of their toy problems in the ridiculously short time available.

Is this a flaw or a feature? What I'm really asking is: is it a coincidence that some of these tests may tend to filter out an older demographic? It may be yet another one of those ways that some people can be filed away as not being a "culture fit" or whatnot.


If you're hiring a senior engineer, it doesn't really make sense to filter out the older demographic. Do you expect a 25 or 30 year old to have 15 years experience in a work environment and 10 years in using XYZ stack/language/tech?


A lot of companies don't care if you have x years of experience. They hire based on what they think is talent, and then train them. Even for senior-level positions, they may only care that the person is senior, not necessarily, "has x years in language x".

To be sure, there are companies that do care about domain experience - and I personally value it as well. But that experience often carries a price that some companies will jump through hoops in order to avoid paying. I've seen that first hand, unfortunately.


The problem here is that for lots of big projects, there are typically only so many people who really drive the project to the completion. If you work for a big bank, you'd actually have a couple of people like you and a dozen of bystanders who lend a hand here or there, but are barely competent. They will have exactly the same resume as you, and it might even look more impressive. But their 20 years of experience in development is really just a couple of years played over 10 times.

So when hiring, I don't care if you're slow and methodical, or super fast. What I care about is that you understand basic algorithms and data structure (lists, sets, maps, trees) and can apply them to simple problems without me telling you that using a hash map here will speed up the solution tremendously, or using a heap will simplify the code. Those simple problems are also taken from most common patterns we see in our codebase, which consists of lots of geospatial data processing and analysis.

And if you need more than an hour to solve a couple of those simple problems (let's say, find duplicates between two lists), you'll definitely have a problem fitting in with the rest of the team - since everyone on the team has solved those problems and agrees that we need people with at least this basic algorithm knowledge to be able to make a significant contribution here.

These questions also a first hour of the interview, the rest goes deeply into discussion of previous projects you made, different architectural patterns, etc.


>And if you need more than an hour to solve a couple of those simple problems (let's say, find duplicates between two lists), you'll definitely have a problem fitting in with the rest of the team

result = set(l1) - set(l2)

Time taken: 20 seconds. I take your point that you need people with at least a certain level of competence. I found I saved those who were hiring an awful lot of time by sending them example code or asking them to give me a challenging weekend project as a test, perhaps even something they needed doing for real. But I dread these exam-like online tests where I have to have a right answer in 20 minutes. I don't work like that. Few people over 40 do any more.


If you're talking about python, I believe you - where you should have &.

And there are many developer position applicants that wouldn't be able to do it. If you actually solve it in 20 seconds, I presume you passed the test.


Oops - set intersection not difference.


> Why is there so much aversion to proving one's abilities?

Some people complain that the questions and exercises being asked are silly.

And most people are bitter about a rejection and want to vent.


A good bunch of downvotes? I struck a nerve, it seems.


The author of the post, Ray Dillinger <bear@sonic.net>, was involved in the bitcoin project alongside Satoshi at the very beginning: http://diswww.mit.edu/bloom-picayune/crypto/137799

He's among a very small group of original authors. He quite literally bought into Bitcoin when it was just an idea.


Bought in and unfortunately sold out @ $1/BTC. At $30K/BTC it's a life of regrets left to live.


Gratitude is so rare they should close this as "could not reproduce"


Hahah. Ha. Oh.

I think that we (I include myself) are so wrapped up in our own struggles that we often fail to do the simplest things. Yes, one can't live on "thanks" alone, but we should offer gratitude more often.

As someone who occasionally gets thanked for my writing, it is great to know that some of my shouting into the void has actually helped a person.

It even helps the thanker: https://time.com/5026174/health-benefits-of-gratitude/


I generally don't do humor on HN but this comment is gold :) Well deserved upvote for you.


fyi that mysql multiple column answer is incorrect, mysql does indeed support row/tuple comparisons [1]:

> For row comparisons, (a, b) > (x, y) is equivalent to:

> (a > x) OR ((a = x) AND (b > y))

[1] https://dev.mysql.com/doc/refman/8.0/en/comparison-operators...


Just in case you might be able to help me out.. is there any SQL flavor that supports specifying any except certain columns? For example something like:

SELECT * EXCEPT FOO_ID FROM FOO;

I have always wanted this but have never vome across it...


The correct answer is to just apply a view and enumerate the wanted column names once.

Otherwise, dynamic column names (that's your search engine fodder) require introspection…

    -- "Chinook" sample database
    select column_name
    from information_schema.columns
    where table_name = 'Track'
    except
    select 'UnitPrice'
… coupled with the moral equivalent of PL/pgSQL `execute` (i.e. run-time eval) statement.


Thanks for answering! Currently I do use views but it's just something I had wondered about.

I mean, the information from the information_schema must be updated anyway when one deletes a column or table, so I thought maybe a function like that which looks it up could exist.

I will try with PL/pgSQL, have long wanted to familiarise myself with it anyway.


Postgres has a clever trick [1] you can use, though I wouldn't say it's something I would ever use.

[1] https://blog.jooq.org/2018/05/14/selecting-all-columns-excep...


I've also wanted this on Postgres for years.

If there's subset of rows you frequently want, you may just be able to define a view and use that. (At one point, I defined a text macro in my terminal to list the fields I usually wanted on our "orders" table.)


Never heard of such a thing but maybe a good question for SO.


Maybe

WHERE NOT EXIST (SELECT ...)

can help?


I think the question was about excluding columns, not rows.

I don't know any way to do that personally.


That is good to know! I’ve only used this approach with PGSQL


Add SiriusXM to the list of companies to never work with because they pull the same shit.


Trump has set a precedent for what is acceptable behavior of public servants and the lasting damage will take decades to undo. He pardoned someone convicted of war crimes. He's convinced hundreds of sitting governors, represetnatives, and senators to openly object to and instill distrust in the integrity of elections. He's publicly questioned and disparaged the integrity of nearly every government institution from the military to intelligence agencies to the IRS.

So, yes, we're viewing this in Trumpian terms because there's a very clear link to eroding trust in government institutions.


so you blame gerald ford for the 1976 west point cheating scandal? or do you think it was a time-delayed nixon effect?


If the examples set by our leaders were irrelevant or inconsequential, we wouldn't need leaders at all, only managers.


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

Search: