views:

32

answers:

1

Hi everybody,

I am working as a PhD student developing scientific/engineering simulations and algorithms to be tested in these simulations. These days the first student started to work on my project (for his Bachelor thesis) and I am wondering: how should I organize the project now? I think I have some good C++ knowledge (although I still want to improve everyday!) and the code contains some design patterns, lots of templated classes etc. These techniques are new to the student and I wonder if it's a good idea to have him work directly in the trunk of the project.

Do you have any experiences what happens if programming newbies and more experienced programmers are mixed? Does the code get messed up or do the newbies learn more by this? Is it wise to have a branch for the student to test his algorithms and maybe merge them into the trunk later? Should I first give him a book like The Pragmatic Programmer for reading (better suggestions?)?

Thanks for every answer!

+1  A: 

Constant code reviews are an excellent way of a) improving the quality of committed code and b) helping the newer programmers get up to speed, integrate and rapidly learn.

We use code reviews and it really does help in so many ways.

Edit: Another advantage of code reviews is that it gives people a chance to describe why they did something the way they did - code reviews are a two-way process, and both parties can benefit from them. Remember, jsut because they're new, doesn't mean they don't have something to teach you.

So long as the students understand that code reviews are a well-accepted industry practice with no small amount of research backing it up, that it isn't intended to babysit newcomers, and that even experienced programmers use code reviews, it should work out fine.

If it helps, have them take part code reviews of more experienced programmers.

Andy
Thank you, sounds good! Is there anything I can do so that the students don't feel controlled?
Philipp
Glad you think so. See my edit for a bit more information.
Andy