Live data from Hacker News

Can a simple algebra test predict programming aptitude?

codeup.com

171–180 of 216 posts

Re: Can a simple algebra test predict programming aptitude?

#171
post #109

Earlier quoted context omitted.

I disagree with many of your points. First, the algorithmic part of programming is a lot like doing algebra. So much so that algebra is an important part of any serious CS syllabus. Clearly "writing a function or a class" is not the skill they are testing here, but problem-solving. Knowing how to solve simple algebraic problems engages your "problem solving" skills in a similar way as solving something by writing a p…

IMO, what algebra and programming have in common is simply abstraction, so people in the mindset of recognizing patterns to which abstraction can be applied tend to do better as programmers / automation engineers in general.

Even if it was just that, it would probably work as a predictor of skill. After all, people being good at one system of formalized abstract thought must be a reasonable predictor that they will be likely to master another one.

But it's more than that. Algebra and "algebraic reasoning" (to use a non-technical term I just made up) are the underpinnings of Computer Science, which is why Algebra is featured prominently in the CS syllabus. Of course this is obvious in CS theory (where you'll play with numbers as if they were programs), but it's also useful in order to write actual programs.

I'm not saying you must understand Algebra in order to write a CRUD in your typical web application. Likewise, you probably don't need to understand Relational Algebra to write SQL for the aforementioned web application. You can understand surprisingly little in order to "muddle through". And intelligent self-made programmers will actually be able to write complex software without a solid theoretical foundation to back them up (maybe rediscovering the wheel along the way). It's definitely possible to write software without knowing the theory.

However, I think you'll be a better programmer if you do. (My highly subjective opinion: it's definitely more fun if you also understand at least some of the theory!)

Re: Can a simple algebra test predict programming aptitude?

#172
we’ve possibly found a simple method for sorting out the ninja programmers from the less capable programmers

Can we please stop calling them ninja/rockstar/etc programmers and simply use "professional programmers" or "master developers"? This language is cute when you're 16, I guess, but personally I don't want to be compared to a middle-ages asian hitman for hire.

Re: Can a simple algebra test predict programming aptitude?

#173

Earlier quoted context omitted.

>why do you care about it in the first place? Also what is your definition of good programmer? Is this a joke? They care because they are selecting applicants to a programming boot camp and want to select the ones more likely to be successful. I suppose they could make all of the applicants learn to program and select the best ones, but there could be issues with that. And they are pretty clear that they are defining…

>They care because they are selecting applicants to a programming boot camp and want to select the ones more likely to be successful. Just make a programming test. IMO is more certain than relying on knowing algebra well or not. But I don't have any data to show you, is just me thinking about it. >Prove it. I can't, you are right. I just said what I was thinking.

You seem to be missing the point. They can't use a programming test on people who don't know how to program.

Re: Can a simple algebra test predict programming aptitude?

#174

Earlier quoted context omitted.

>"programming aptitude" (whatever the hell that is meant to be) What's not clear about the term?

We as an industry have no objective measure for what is and is not a good program. Therefore, we have no objective measure for who is good at programming.

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 doing it the right way.

Re: Can a simple algebra test predict programming aptitude?

#175
post #142

Earlier quoted context omitted.

I remember reading about a similar but different test that had good results. I can't find the source so this is just from what I remember. Before starting a course the students were shown short snippets of code and asked simple questions about it. They found that consistent answers were a predictor of who would do well. The theory was that people who are able to construct a mental model for the problems ended up bein…

I think you're remembering some papers from Dehnadi and Bornat, starting with http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

That looks like the paper I was thinking of. Thanks for including te link.

Re: Can a simple algebra test predict programming aptitude?

#176

Earlier quoted context omitted.

Just in case this is what you were trying to understand: https://www.google.com/search?q=recursion+is+dangerous&rlz=1... http://m.slashdot.org/story/198499 You can certainly dig up more information. For me, and this is just my opinion based on 35 years of software and hardware engineering, recursion is a neat academic idea but in the real world it is useless and dangerous.

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.

Re: Can a simple algebra test predict programming aptitude?

#177
post #174

Earlier quoted context omitted.

We as an industry have no objective measure for what is and is not a good program. Therefore, we have no objective measure for who is good at programming.

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.

Re: Can a simple algebra test predict programming aptitude?

#178
post #134

Earlier quoted context omitted.

The whole point of what I said is that "hard" is a difficult thing to judge. For some tasks and some languages recursion is much easier to understand, teach and use. Just take the good ol' classical example of quicksort in Haskell or fibonacci in Lisp. Some people can grok recursion in a functional programming language much faster and more easily than they would understand the concept of branching, variable assignmen…

Just take the good ol' classical example of quicksort in Haskell or fibonacci in Lisp. Hell, recursive quicksort and mergesort are easier to teach and remember than the iterative versions even in C and Java . They're divide-and-conquer algorithms, which makes them a natural fit for a recursive solution.

The classic C/C++ versions are recursive, and using the STL, c++'s quick sort looks very similar to the functional one.

From cppreference.com: http://coliru.stacked-crooked.com/view?id=0b2cec4d8c69ffaf

http://en.cppreference.com/w/cpp/algorithm/partition

Re: Can a simple algebra test predict programming aptitude?

#179
post #98

Earlier quoted context omitted.

I think the point being made is that there are probably predictors which have many orders of magnitude more predictive power (e.g. work experience, education, interview questions, programming exercise, available source code, etc.). The male gender is probably correlated to programming ability as well due to the fact that there are more male programmers but it's not a very useful predictor.

Predictors for a school to apply? I wouldn't bet on it. None of your suggestions seem fit. Also, for a job it's probably a better predictor than a resume.

> Predictors for a school to apply?

First, it was suggested that this test should be used for programming job interviews. Second, why would a school who teaches programming care if students had programming ability? If you answer it is because the school wants to maintain a reputation of producing good programmers (hence adding value to the students' resumes), it contradicts your statement that this test is a better predictor than a resume. Otherwise, people would just study algebra instead of going to that school.

Re: Can a simple algebra test predict programming aptitude?

#180
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.

By writing incorrect recursion? Or in some other way?
Post reply on HN