views:

1009

answers:

7

I’m trying to help someone learn Java who’s only programming experience is COBOL on the mainframe. I was wondering if anyone knew any good resources for object oriented concepts. I learned how to program with C++ so just understand the theory behind basic OOP. I’m more concerned about a way to get the basic concepts across, such as encapsulation and inheritance rather then Java syntax. I think it’d be better to teach the concepts of OOP then a language rather then trying to cram both a new language and paradigm in at the same time. Does anyone have any resources or ideas that could help this person learn OOP followed by Java?

+6  A: 

A crazy idea - and one you might not want to use given how your overall goal is Java - but maybe try NetCOBOL for .NET first? It would allow them to use the COBOL syntax they're familiar with while at the same time being able to use the OOP nature of .NET.

Again, since your goal is Java this might not be the best route but it's a thought.

Schnapple
+3  A: 

Honest question: does this person actually want to learn Java or OOP?

If they are then great but I've had a little experience with trying to convert COBOL developers to .NET and it's not always pretty. To put it politely, sometimes when a person is nearing the end of their career they're not really all that interested in completely changing paradigms. I've seen a few people get downright hostile when they're forced to change what they've been doing for decades.

If the person you're referring to is legitimately interested then that's great - but you might want to have a backup plan in place in case you experience hostility.

Schnapple
+2  A: 

This is something that we are going to be facing soon. It would help if you knew some COBOL and could try to relate some of the concepts to them. (i.e. paragraphs as methods and copybooks as a model for objects). However, since I have done both I have to say that the best bet is just trying to start with a basic Java book and work through it. This is a serious challenge I'm afraid, but a good programmer that wants to learn can learn anything.

Anthony Potts
+3  A: 

Are you aware that object oriented cobol exists? Even in the mainframe world, IBM supports these object extensions to the language (what sense does that make is a whole different story). Anyway, it might as well be helpful for them to see the object oriented version of cobol first...

Bartosz Radaczyński
and it's called "ADD 1 TO COBOL GIVING COBOL."
ammoQ
A: 

Did you check the contents of the book Java for Cobol Programmers ? I didn't read it, so I can't comment on that, but may be it could help you.

JuanZe
A: 

The Java for Cobol Programmers book is based on Java version 1.2

The concepts in the book might be helpful, but you'd also need a more modern Java book.

Gilbert Le Blanc
A: 

Learning Java in hope of understanding object oriented programming is like learning to speak French in hope of being able to fly Airbus jets.

Get your friend one of the great OOP books, Object Oriented Analysis and Design (Booch) or Object Oriented Software Construction (Meyer). Or if they prefer an easy read, try the Head First Object Oriented Analysis & Design (McLaughlin, et al).

For the Java part, get Bruce Eckels Thinking In Java.

Joe Zitzelberger