Re: Mentoring a Coworker



I frequently find, when I cross paths with someone not familiar with my
programming practices, that people will politely ignore what seems
obvious to me because they don't have the accumulated knowledge of the
reasoning behind the practice.

For instance, in my early programming years, if someone told me to
recompile after every function I wrote, I would have thought that they
must have a short attention span and not be very good at figuring out
how the program will work. After I had programmed for a while the need
for this because so obvious that I expect people to instantly
understand when I recommend compiling frequently. (I also save
documents compulsively)

I would suggest that you focus on one recommendation at a time. When
you see a problem suggest how the programming practice would have
prevented it. If done without belittling the person in question, this
can serve to show him WHY the practice is good, instead of just saying
"you should do X".

Of course, there are some people, that have been programming for a
while that are really not any good at it. Some of these people can be
highly intelligent. There comes a time when you have to give up
helping and give feed back to your boss.

-Scott Frye
-------------------------------------------------
Panton in temperantia , comprehendo temperantia.
-unknown
-------------------------------------------------

raisenero wrote:
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: porting from Ikarus to PLT
    ... Please quit advocating bad programming practices. ... With multiple instantiations side-effects are restricted from carrying ... expand-time set of bindings that are side-effects free. ...
    (comp.lang.scheme)
  • Re: Cant read CString after serialization
    ... programs for modern computers in modern languages etc, ... May you give an example of "sloppy" programming practices widely used ...
    (microsoft.public.vc.mfc)
  • Re: n-layer approach
    ... programming in general, and good programming practices in particular. ... This group can't supply you with a background knowledge of programming ... You need to sit down with a few good books for that. ...
    (microsoft.public.dotnet.framework.aspnet)
  • Re: n-layer approach
    ... I have had no formal training in any kind of programming. ... and good programming practices in particular. ... This group can't supply you with a background knowledge of programming ... You need to sit down with a few good books for that. ...
    (microsoft.public.dotnet.framework.aspnet)
  • 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)