Live data from Hacker News

Can a simple algebra test predict programming aptitude?

codeup.com

181–190 of 216 posts

Re: Can a simple algebra test predict programming aptitude?

#181
post #161

Earlier quoted context omitted.

As was written above: > Work-sample tests are also very good for hiring for specific jobs, and are grossly underused in hiring in the United States.

But isn't essentially all hiring for a specific job?

Not necessarily. For example militiaries routinely recruit (hire) first, and then later figure out where to put the hiree. The same is less common but does happen in industry as well with entry-level college graduate positions, and in some cases even with higher-level positions.

Even if what you say is true, though, some companies intentionally hire people without the necessary skills to do a job, then train them. In that case there's no point in testing them for job-specific skills they don't have so what you want is a way to determine which candidates are likely to be successful after training.

Re: Can a simple algebra test predict programming aptitude?

#182

Earlier quoted context omitted.

This was in a comprehensive i.e. a bog standard school and was in the middle i.e. vocational stream - possibly the approach of having specialisation at the middle and upper school works better for feeding children into UNI/Vocational track.

Right, so the bog standard schools you had the opportunity to attend offered something mine (and many others) do not. As someone who is always looking for good developers I certainly don't want to limit the number of people who can learn CS to only those who happened to live somewhere that offered programming at the public school level.

possibly not fetishizing CS over a more useful general introduction to programming might help.

I haven't had to do any of the big O stuff in anger but I have had to make sure a major telcos billing system reconciled.

Re: Can a simple algebra test predict programming aptitude?

#183
post #176

Earlier quoted context omitted.

It's trivial to blow the stack even on languages with tail call optimization.

By writing incorrect recursion? Or in some other way?

Both, the obvious example is the fibinatchi sequence f(x) = f(x-1) + f(x-2). There are lots of efficient ways of coding it but the most obvious O(n^2) approch is n depth and it can't be tail-call optimized.

Granted, you can write much more efficient code that can be tail call optimized, but there complex and less obvious. There are also languages which cache previous results so the native approch becomes O(n) with fairly elegant code that's still depth n.

PS: Anyway, tail call optimization only works when you can rewrite the code as a loop for more complex structures it's less useful.

Re: Can a simple algebra test predict programming aptitude?

#184
post #174

Earlier quoted context omitted.

If you ask me, a good program is one that is documented accurately and thoroughly. So a good programmer is one who cares enough to document well, and has enough skill to do it with precision, speed, and with good judgement. Of course, being a good scientist or mathematician requires the same skills: know who you are talking to, what they already understand, and why your work matters to them. And be obsessive about do…

There is virtually no evidence that program documentation leads to "better" programs. In fact, there are many people that will maintain that the need for code documentation is evidence of a "bad" program. Regardless of whether you subscribe to this theory or the opposite, there is no "objective" way to differentiate between these 2 spectrums.

[deleted]

Re: Can a simple algebra test predict programming aptitude?

#185
post #174

Earlier quoted context omitted.

If you ask me, a good program is one that is documented accurately and thoroughly. So a good programmer is one who cares enough to document well, and has enough skill to do it with precision, speed, and with good judgement. Of course, being a good scientist or mathematician requires the same skills: know who you are talking to, what they already understand, and why your work matters to them. And be obsessive about do…

There is virtually no evidence that program documentation leads to "better" programs. In fact, there are many people that will maintain that the need for code documentation is evidence of a "bad" program. Regardless of whether you subscribe to this theory or the opposite, there is no "objective" way to differentiate between these 2 spectrums.

No evidence? No evidence for a _definition_?

I am telling you what a good definition of a good program is. Of course there is no evidence that my definition is the same as your (unstated) definition. You can disagree, but this has nothing to do with evidence.

Re: Can a simple algebra test predict programming aptitude?

#186

Earlier quoted context omitted.

In 35 years of programming across platforms and languages covering embedded to web applications it is my opinion that recursion is dangerous and useless. There is no way I would use recursion to evaluate how good a programmer might be. To quote the movie: "Frankly dear, I don't give a damn".

Do you imply that functional programming in general is dangerous and useless? And what's your standing regarding the total languages? How dangerous is, say, Agda2? How useless is HOL?

Nothing whatsoever to do with functional programming.

Re: Can a simple algebra test predict programming aptitude?

#187

Earlier quoted context omitted.

In 35 years of programming across platforms and languages covering embedded to web applications it is my opinion that recursion is dangerous and useless. There is no way I would use recursion to evaluate how good a programmer might be. To quote the movie: "Frankly dear, I don't give a damn".

Recursion is a tool. It can be misused, but it is just a tool. And sometimes it can be very useful.

Recursion is mostly an academic tool. In the real world it is a bad idea.

It's interesting that a bunch of people went off in a down-vote spree yet not one person offered a non-trivial use of recursion in commercial, medical or military software.

It wastes resources and it simply isn't safe. Used in the wrong place it can actually kill people.

Re: Can a simple algebra test predict programming aptitude?

#188

Earlier quoted context omitted.

Do you imply that functional programming in general is dangerous and useless? And what's your standing regarding the total languages? How dangerous is, say, Agda2? How useless is HOL?

Nothing whatsoever to do with functional programming.

How is it so? Recursion is the only possible form of iterative control flow in the functional languages. If you do not want to allow any forms of recursion, you cannot use functional languages at all.

Of course, you can explicitly demand totality, and it's perfectly fine, but still it is quite a severe limitation, and you'll have to allow optional unrestricted recursion if you want to have (at leat local) Turing completeness.

Re: Can a simple algebra test predict programming aptitude?

#189

Earlier quoted context omitted.

Recursion is a tool. It can be misused, but it is just a tool. And sometimes it can be very useful.

Recursion is mostly an academic tool. In the real world it is a bad idea. It's interesting that a bunch of people went off in a down-vote spree yet not one person offered a non-trivial use of recursion in commercial, medical or military software. It wastes resources and it simply isn't safe. Used in the wrong place it can actually kill people.

> Recursion is mostly an academic tool.

Wrong.

> In the real world it is a bad idea.

Wrong. Your view of the real world is severely distorted.

> yet not one person offered a non-trivial use of recursion in commercial, medical or military software.

I suspect your 35 years of experience was 1 year repeated 35 times. Otherwise you would have known thousands of cases where recursion is unavoidable.

Take any real world compiler, for example. People nowadays are spoiled, they want meaningful error messages, they want semantic highlighting in IDEs, and so on. So forget about the dragon book, automatons and all such crap - your only option is a recursive descent parser.

If you want a guaranteed quality and proven correctness of your software (since you've mentioned medical and military), you have no other option but to use total languages. It's just too hard to reason about anything else. Which means - you only have recursion and no other means of control flow. Want your software to be 100% correct, robust and predictable - use recursion. I can go on forever, but things I've listed are already more than enough to debunk your point.

> It wastes resources

Wrong.

> and it simply isn't safe.

Wrong.

> Used in the wrong place it can actually kill people.

Incompetent coders kill people. Epileptoids suffering from severe forms of Dunning-Kruger effect kill people. Those who repeat 1 year of experience instead of building experience progressively kill people.

Re: Can a simple algebra test predict programming aptitude?

#190
post #176

Earlier quoted context omitted.

I'm seeing stack overflows (not a problem with tail-call optimization) as the biggest problem here. There are equally dangerous problems, though. Buffer overflows are a very real concern, especially in embedded software; but that doesn't mean that people don't ever use pointers. Everything about software has risks. Yes, they probably shouldn't have used recursion there in that car; but honestly, it's just a stack. En…

It's trivial to blow the stack even on languages with tail call optimization.

Ok, try to blow the stack in a stackless language implementation.
Post reply on HN