Mentoring a Coworker



Lately I've had a problem trying to mentor a co-worker. Strictly
speaking, it's not my job to mentor them. But if he doesn't get
better, the rest of us can't get real work done. I'm hoping someone
has some suggestions to approach this in as friendly a way as possible.
I don't want to have to approach our manager if there's some way we
can fix it. So far it's been a problem for about 2 months.

He lacks some of the most basic programming skills. He won't do things
like incremental compilation, design an algorithm, and in many ways
it's like he barely has basic computer skills (he routinely has no idea
where he just saved a file or what he named it so you can't even search
for it). I don't mean to insult him, casually speaking, he sounds like
a smart guy, but his job performance doesn't at all reflect his
portfolio or his stories about programming in his spare time.

The biggest problem is that he doesn't learn. We all constantly harp
on "incremental compilation", I mean constantly, two to three times a
day. Yesterday I told him multiple times that he should compile and
fix every single error after every function he writes. Another
co-worker asked him every half an hour or so "Did you compile?" and he
kept responding "Yes. No errors." After a 3 hour block goes by, he
asks for help because he has 100+ errors. There are errors as far back
in the file as the very first line (an import statement). 90% of the
errors are simple typos (missing braces, parentheses, etc.), things I
think any competent programmer can fix on their own, and aside from
that, our IDE highlights such errors as you type. Before, I thought
the problem might have been that I wasn't being clear about how
frequently to compile, so I thought saying "after every function" was a
concrete enough guideline but it didn't change.

A couple of us were thinking maybe we should make up a series of
notecard tips or something, give him a few books (like The Pragmatic
Programmer), and get him over to one of our houses on the weekend to
help him out. Do you think we're putting too much effort into helping
him? It's a hard choice, he's a nice guy, I don't want to just tell
the manager "You need to fire him." Thankfully we're in a low-pressure
job, we do research, we don't really have much in the way of time
limits and deadlines in our department so he's not really setting us
back very far. It's more like silent pressure. No one is 'saying'
anything about our recent lack of productivity, but the anxiety is
there just the same that any day now someone is going to be asking
questions about why we haven't produced anything lately.

I don't mean to sound like an elitist. When I first started here, I
know I made mistakes too. But I like to think I learned faster, that I
didn't need to be told dozens of times about the same thing. I'm just
uncertain, is this par for the course? It's my first programming job,
and the first time working with someone new (up until he came I was the
new guy). Is this just what it's like breaking in a new programmer?

.



Relevant Pages

  • Re: interpretive vs. compiled
    ... interpreter executing on a given processor might still execute your ... more complex applications than static programming languages. ... High level and advanced dynamic programming languages such as Common ... Without compile time checks you will probably find the errors ...
    (comp.programming)
  • Re: ///Wannabee Rants
    ... I am reading and reading, and it seems none of you are really able to explain to me why this typechecking is so important, and neither how it works. ... Plus the example Sevag showed was just a couple of lines. ... For the code I posted latly, all the partisipants, having some programming background, understood exactly. ... Now I understand why your compiler took several seconds to compile a 5 liner when tested over a year ago. ...
    (alt.lang.asm)
  • Re: writing drivers using C++
    ... No, both can be done at compile time, though the implementation ... as soon as you got a strict ABI. ... And at least on a programming language level something like an ...
    (comp.os.linux.development.system)
  • Re: VB .NET OOP
    ... > Compile and run, apparently, if it's like VB6. ... My name isn't Eddie. ... I'd written and published about programming since ...
    (comp.programming)
  • Re: ASP.NET performance issue
    ... Loud and clear Kevin. ... I will leave Microsoft for the cleaver stuff ... >> Your speaking to a person whom just picked up a programming ASP.NET in ...
    (microsoft.public.dotnet.framework.aspnet)