Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free.

I've just changed jobs and am now working with a junior programmer whose first language is Cantonese. They have a computer science degree but are working in their first programming role after many years outside the computer industry. They have been working for the past two years in almost total isolation and have developed a lot of bad habits.

A fellow contract programmer also speaks Cantonese, but his spoken English is quite poor, is also frustrated by the juniors approach to programming and are unsure what to do. Despite working on projects together in Cantonese the projects over run as the lack of an agreed/reviewed design means they have a merry-go-round of updates until a solution is reached.

Despite gentle verbal encouragement to do so both still struggle to create even the most basic design documents, enter proper check-in comments (i.e. not just 'bug-fix','updates' etc) and contribute at all to the project wikis.

At present the junior programmer doesn't read blogs, books or technical resources. When I ask how they become a better programmer they say they just think more about their own code. They are highly prone to reinventing the wheel with what I can only generously say are uniquely imaginative solutions to well solved problems.

I have tried to explain the KISS principle and SRP to them but I'm not convinced they understand the benefit. I'm sure I can't have explained it very well to be honest. Since I'm not sure if English comprehension is a problem then that is a problem in itself.

Can you recommend ways I can help them when;

  • I can't speak any Cantonese and don't see learning any being effective in a realistic time frame
  • Sending links to resources like thedailywtf.com appears to go over their heads
  • The programming books we've bought remain unread

I've found the following SO questions which might be useful to them but point two above applies;

Are there some programming exercises we could work through together? What tips are there to get some basic documentation created? Are there any Cantonese resources I could point them to?

I appreciate how much easier it is when English is your native language. I genuinely want to help them as much as possible and not judge what could otherwise be perceived as an unwillingness to improve as a programmer.


migration rejected from stackoverflow.com May 12 at 4:54

This question came from our site for professional and enthusiast programmers. Votes, comments, and answers are locked due to the question being closed here, but it may be eligible for editing and reopening on the site where it originated.

closed as off-topic by Ixrec, gnat, durron597, Ampt, Robert Harvey May 12 at 4:54

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking career or education advice are off topic on Programmers. They are only meaningful to the asker and do not generate lasting value for the broader programming community. Furthermore, in most cases, any answer is going to be a subjective opinion that may not take into account all the nuances of a (your) particular circumstance." – Ixrec, gnat, Ampt, Robert Harvey
If this question can be reworded to fit the rules in the help center, please edit the question.

This belongs on programmer.se –  Ikke Mar 1 '11 at 12:12
@ikke Do you know if this can be migrated there or should I just post it and wait for this to be closed? –  Dave Anderson Mar 1 '11 at 23:26
It can be migrated. It just needs 2 more votes. –  Ikke Mar 2 '11 at 7:22
Dave, what eventually happened with these developers? I would love to know if they improved or even you or other's gave up? Was running people at this level Sisyphean? –  Luke Puplett Nov 8 '13 at 10:25

2 Answers 2

Despite gentle verbal encouragement to do so both still struggle to create even the most basic design documents, enter proper check-in comments (i.e. not just 'bug-fix','updates' etc) and contribute at all to the project wikis.

This looks more like an attitude problem than a language one.There's no use in trying to improve them if they do not want to improve.

For example, we also added a required comment on check-in. There are however still programmers who check in with an 'a', 'b', 'c', ' '. And they don't speak a different language.

What can you try to do about it?

  • Keep hammering on the use of proper methods.
  • Try to explain why you use these methods and their benefits. Good developers will be happy to pick it up if they see that it benefits them.

I think there are several things you can do, but the general theme is to increase their exposure to different techniques.

This is predicated on the notion that ignorance is the key factor in poor programming skills (assuming a certain amount of intelligence). E.g. Programmers who don't know recursion always use nested for loops. Re-inventing the wheel is usually a consequence of not knowing that someone else already solved that problem.

You can do this with code reviews and make them change what's bad. I find this very effective with my junior programmers.

Something else I've done is to have them give technical presentations. I provide a topic, large enough to be interesting, but small enough to be able to get into real technical detail. The programmers have to do some research into the proper way to do it and it generally expands their knowledge. For example, pick a design pattern and have them give a presentation on it.

If they are unwilling to do it, you could always do the presentation yourself. This will benefit you as teaching is often the best way to learn, but they still get the exposure.

It's all about expanding their toolbox.


Not the answer you're looking for? Browse other questions tagged or ask your own question.