ID:265798
 
I think it'd be useful to create a guide/quiz that measures someone's competency in coding. It'd probably be difficult to make, but I think it'd be worthwhile. For example, when hiring a coder for a game:

It's hard to judge how good a coder someone is even if they're coding for a game for a significant amount of time. You can't really know if they'll know how to deal with more technical problem until one arises.

I'm just looking for feedback. Ideas, suggestions, reasons why it's a bad idea, ect.
If you were to create this quiz you would probably want to have questions that ask how they would code a certain function, and you would judge them on how effective and well designed that piece of code is.
I'd like a flying car, too.
There's that nasty bit about honesty, which throws this whole idea out the window. Hard to tell if someone got an answer right because they knew the answer, or because they simply looked it up on some cheat sheet they found online, or got the answer from a friend through IM, or have a list of all the right answers from someone who's already taken the test.
This doesn't seem useful for checking someone's competency, but I think having a quiz about DM would be great for beginners to check if there is an area they need to work on in coding.
I don't think it's possible to make such a quiz and make it successful. Knowing code by itself is worthless. The real sign of skill is in how you manage complexity, and that's difficult to capture in a quiz without presenting actual code in a real working environment.

Basically a person's competency can only really be determine by the work they've done.
Impossible to do in any sort of decent and meaningful way. There is probably hundreds of thousands of aspects of BYOND coding you could ask someone about and there is no way you could make a quiz to cover all of those aspects (and even if you did, I doubt anyone would sit and answer so many questions).

When you go to a job interview for a programming position you get asked to prove you can program, not given a quiz. You prove you can do it by showing the interviewer your qualifications, experience and examples/the source code of things you have made in the past.
If you want to hire a coder for a BYOND project then you just do the same thing. Obviously you can't ask for qualifications, but you can ask for experience (in the form of games they have made) and examples/the source code of some of their work (doesn't need to be a full source code, just a small snippet of some of the most complex parts will do).
It is a good and proven method that works. If you want to hire someone then use it (though, this is the internet and it is easy to lie about things on it, so you'll have to be careful about that).
There's just no way to do this. The true test of skill is the code you write, but there's no way to judge that objectively, let alone by a computer.

In most problems there may be multiple right answers, and for each right answer there may be several different ways to format the code that are equally right, but some may be more presentable and better commented than others (two important skills). Among right answers, one may be merely right while another is astonishingly elegant--the latter is the mark of a good algorithm programmer. Then you have the problem of code that "works" but only in a seat-of-the-pants fashion that's prone to break under stress; it's better than an outright wrong result but in terms of skill, not by much. And of course, partial credit should count for something where a mere typo has made an otherwise flawless answer a failure.

It's impossible to judge such a thing. Ten different expert programmers will give you ten different answers about the quality level of a particular piece of code.

Lummox JR
In response to Lummox JR (#7)
How in the heck did you do the 4k challenge. I've always wanted to know how to do that... Do people write or use a program to change code into single letter labels for the variables/procs ???
In response to FIREking (#8)
Aside from the fact that this is completely off-topic, programming like that isn't particularly difficult. Getting a good game under four kilobytes is the more difficult task. I converted a program with bitwise addition and subtraction into a single line before:
#define c #define
c d if
c g else if
c h return
c i var
c j(a,b,c)for(a,b,c)
c k while
c l(x,y)min(x,y)
c m(x,y)max(x,y)
c n(x)abs(x)
proc{a(x,y){d(x==y)h 0;d(x==0)h-y;d(y==0)h x;d(x<0&&y>=0||x>=0&&y<0)h(x<y?-1:1)*b(n(x),n(y));i/s=1;d(x<0&&y<0){i/_x=x,_y=y;d(x<y)s=-1;x=n(l(_x,_y));y=n(m(_x,_y))};g(x<y){i/_x=x;x=y;y=_x;s=-1};.=0;j(var/a=0,a<=15,a++){i/e=(x>>a)&1,f=(y>>a)&1;d(e&&!f).|=(1<<a);d(!e&&f);{.|=(1<<a++);j(a,a<=15&&!e,a++){e=(x>>a)&1;f=(y>>a)&1;d(!f).|=(1<<a)};.&=~(1<<--a);x&=~(1<<a--)}};.*=s};b(x,y){d(x==y){d(x<0)h-(-x<<1);h x<<1};d(!x||!y)h x||y;d(y==-x||x==-y)h 0;i/s=1;d(x<0&&y<0){s=-1;x*=-1;y*=-1};g(x<0||y<0)h-a(n(l(x,y)),n(m(x,y)));g(x<0||y<0){i/a=n(l(x,y)),b=n(m(x,y));h a(m(a,b),l(a,b))};.=0;j(var/a=0,a<=15,a++){i/e=(x>>a)&1,f=(y>>a)&1;d(e^f).|=(1<<a);d(e&&f){do{;e=(x>>a)&1;f=(y>>a)&1;d(e^f).|=(1<<a);d(e&&f){.|=(1<<a+1);k(e||f){.&=~(1<<++a);e=(x>>a)&1;f=(y>>a)&1;d(e&&f).|=(1<<a)}}};k((e||f)&&a++);.|=(1<<a)}};.*=s}}
In response to Popisfizzy (#9)
the european dudes that do this for 3d demo's are nuts

anyways, it was sort of on topic... o.O
In response to FIREking (#10)
FIREking wrote:
the european dudes that do this for 3d demo's are nuts

Totally and completely different.
In response to Garthor (#11)
OH well.