views:

412

answers:

6

I'm training a Junior developer.

I would like to assign him with the task of designing and building an object oriented application.

Are there any non-trivial sample exercises on the web which include good description of a problem and a suggested architecture diagram?

A: 

A typical exercise is to build a Course Gradebook complete with defining the database schema for teachers, students, courses, and so forth. I don't think this is trivial and it has pretty well understood requirements.

BobbyShaftoe
Do you have anything written describing this task? Even though generally it is understood the small details might have a big affect here and I want to use a well tested definition.
Yaron Naveh
+2  A: 

I would recommend you doing like this:

  • Start with giving him simple tasks.
  • Review solutions, comment and say what's could be done in other/better way and why, discuss with him.
  • Let him experiment, and help him with answering questions or giving him some references.

In this way you will see difference in few weeks/months :)

Lukas Šalkauskas
I agree simple tasks are good but I got instructions to give him one big exercise...
Yaron Naveh
+14  A: 

He's been a student for years. He doesn't need or want another assignment, he wants real work, so give it to him. Sink or swim.

Do, or do not. There is no try.

~~ Yoda.

corlettk
Yes except there's no need to let him sink: offer him resources, including yourself, i.e. be available to answer questions.
ChrisW
+3  A: 

Give him one big task that is really required for your organization (that you or somebody else would've been doing otherwise), give him detailed instructions (more than you usually give to an experienced developer: milestones, data sources, etc), and guide him on his advancement.

New developers usually prefer doing real things. In addition, this way he will learn more things that will be useful for his next tasks.

Igor Oks
+9  A: 

In our organization, we have a selection of easy to solve non-critical tickets, which we tend to keep around as something to give to the new staff members as their first tasks. These tickets usually involve things around the main code base, occasionally containing new "nice-to-have" feature requests.

Since they are not urgent/critical, it will not be a big deal if the junior developer makes mistakes. However, they get a sense of what it is like working on the real code, which helps to keep them focused and content.

ASk
A: 

I decided to give him a scheduling system partially based on this:

http://martinfowler.com/apsupp/recurring.pdf

Yaron Naveh
Some thoughts: Why are you essentially assigning him homework? Didn't he go to college already? ?how does this make your company more money? How does it make the junior developer learn more about "the real world"?
Alex Baranosky