Original Post
Ok, so I've become sort of a lone ranger as far as coding goes. The main reason is my school is packed to the brim with contest coders, and I really can't stand the atmosphere they lend to programming. When talking to one of these contest coders I often find myself being talked down to, for instance:
(this is the first time I ran into this guy, in fact I was having a discussion about priority queues before he butted in)
Friend: So, what papers have you read lately? (I know, it's not the best for conversation but it was pretty late at night)
Me (to friend): Oh, not much, I've just been trying to get a good feel for what the best priority queue is for various fields. I think they're pretty interesting.
Contest Coder: (coming from nowhere) You think you know about priority queues? *ahem* Well, if you actually know about priority queues, you should have no trouble with the following problem... (goes on and on about a problem and the various time bounds I need my algorithm to run under, takes like 10 minutes)... oh wait, I forgot, you don't actually need priority queues for that one. Here, let me find the one I was thinking of... (whips out his laptop)
Me: No, it's fine, I'll just do the "interesting problem" you just told me about.
I get back to my dorm, and code it up.
Next week.
Contest Coder: So did you finish my problem?
Me: Yeah, what's your-
Contest Coder: Does it run under O(nlogn)?
Me: Yeah, I'm pretty sure, I've just got to try and remember my algorithm, hold on.
Contest Coder: You should ALWAYS remember the big-O times of algorithms you make.
Me (thinking): ... I finished it 20 minutes after you told me the problem. Then a week passed, with me coding up other things.
Me (talking): It runs in O(n) time.
Contest Coder: Ok, can you email me your answer?
Me: Yeah, what's your email?
Contest Coder: (gives his email) So, what language is it in?
Me: Java, because bluej makes prototyping really fast. Otherwise I'd have used c (knowing that most contest coders program in c).
Contest Coder: Yeah, Java sucks. And I thought about it, you don't really need Priority Queues for anything.
Me: Lol, good one.
Contest Coder: Yeah, I'm serious, what algorithm needs a priority queue?
Me: A*?
Contest Coder: What's that? I bet it doesn't need a priority queue.
Me: (Try to give an explanation with constant interjections by cc and eventually give up)... ok, I'm just bad at explaining things.
This is the typical conversation I get from contest coders (usaco, acsl) that & they dismiss any work that's long term saying stuff like "oh, that's trivial" when my current line of research really isn't (oddly enough, bettering A*).
Not to mention, when they ask for help on a bug they have, I open up their project and find it covered with global variables & branching (<- the newbs at contests mainly). I'm not saying all contest coders are bad, it's just that they should realize other ways of life, err, coding.
What's the best approach if I now have to teach a lot of them how to use blender and povray, and after that python (for use scripting)?
(this is the first time I ran into this guy, in fact I was having a discussion about priority queues before he butted in)
Friend: So, what papers have you read lately? (I know, it's not the best for conversation but it was pretty late at night)
Me (to friend): Oh, not much, I've just been trying to get a good feel for what the best priority queue is for various fields. I think they're pretty interesting.
Contest Coder: (coming from nowhere) You think you know about priority queues? *ahem* Well, if you actually know about priority queues, you should have no trouble with the following problem... (goes on and on about a problem and the various time bounds I need my algorithm to run under, takes like 10 minutes)... oh wait, I forgot, you don't actually need priority queues for that one. Here, let me find the one I was thinking of... (whips out his laptop)
Me: No, it's fine, I'll just do the "interesting problem" you just told me about.
I get back to my dorm, and code it up.
Next week.
Contest Coder: So did you finish my problem?
Me: Yeah, what's your-
Contest Coder: Does it run under O(nlogn)?
Me: Yeah, I'm pretty sure, I've just got to try and remember my algorithm, hold on.
Contest Coder: You should ALWAYS remember the big-O times of algorithms you make.
Me (thinking): ... I finished it 20 minutes after you told me the problem. Then a week passed, with me coding up other things.
Me (talking): It runs in O(n) time.
Contest Coder: Ok, can you email me your answer?
Me: Yeah, what's your email?
Contest Coder: (gives his email) So, what language is it in?
Me: Java, because bluej makes prototyping really fast. Otherwise I'd have used c (knowing that most contest coders program in c).
Contest Coder: Yeah, Java sucks. And I thought about it, you don't really need Priority Queues for anything.
Me: Lol, good one.
Contest Coder: Yeah, I'm serious, what algorithm needs a priority queue?
Me: A*?
Contest Coder: What's that? I bet it doesn't need a priority queue.
Me: (Try to give an explanation with constant interjections by cc and eventually give up)... ok, I'm just bad at explaining things.
This is the typical conversation I get from contest coders (usaco, acsl) that & they dismiss any work that's long term saying stuff like "oh, that's trivial" when my current line of research really isn't (oddly enough, bettering A*).
Not to mention, when they ask for help on a bug they have, I open up their project and find it covered with global variables & branching (<- the newbs at contests mainly). I'm not saying all contest coders are bad, it's just that they should realize other ways of life, err, coding.
What's the best approach if I now have to teach a lot of them how to use blender and povray, and after that python (for use scripting)?