2009-09-20 17 views
8

Tengo un número de programadores de COBOL que se están moviendo a .NET. He encontrado muchas dificultades para adoptar/comprender los principios de programación OO. No tengo ninguna experiencia COBOL, por lo que mi capacidad para encontrar las pocas similitudes que hay es muy limitada.Ayudando a los programadores de COBOL a .Net. ¿Cuáles son tus sugerencias?

No hay forma de que quiera decir "olvídate de tus veinte años de experiencia. Todo esto es nuevo", pero aún no tengo las analogías y las herramientas para hacerlo mejor.

¿Cuál es su recomendación para ayudarme a comprender el mundo .NET?

+0

He seleccionado una respuesta porque parece que es lo correcto, pero todavía estoy interesado en cualquier sugerencia o idea adicional. Gracias a todos. – Rob

Respuesta

8

La manera de hacerlo es pensar en cosas desde la perspectiva del programador COBOL. Esta es una gran distancia para que puedan atravesar, por lo que colocar los taburetes de los pies siempre que sea posible para ayudarlos a caminar es primordial.

La mayoría de los programadores de COBOL tendrán poca o ninguna experiencia de escritorio. El no tendrá experiencia de OOP.Probablemente poca o ninguna red. Etc.

Sin embargo, si han escrito el código COBOL estructurado, tendrán tienen una muy buena idea de lo que es una función. Aunque los párrafos de COBOL no son estrictamente lo mismo que las funciones, la mayoría de los buenos programadores de COBOL comprenderán esa noción rápidamente. Desarrolle los conceptos de programación estructurada que se les ha enseñado durante 20 años. La estructura conduce a funciones que conducen a OOP.

La mayoría de las personas de COBOL con tanta experiencia deberían tener una muy buena comprensión de la lógica de negocios. Usa eso. Aléjese de los ejemplos falsos de "cuadrados y triángulos son formas" de OOP lo antes posible y haga que se concentren en cosas con las que ya podrían estar cómodos, por ejemplo. el ahorro y el control son Cuentas y tienen estas cosas en común ... etc.

Definitivamente entenderán los programas basados ​​en archivos. Olvídate de cosas elegantes de GUI al principio. Haga que escriban programas que imiten lo que estaban haciendo en COBOL pero que los faciliten en conceptos de OOP. Ellos entienden los registros. Los registros no son muy diferentes de las estructuras que no son muy diferentes de las clases. Y así.

La mayoría de los programadores de COBOL comprenderán el procesamiento de transacciones. Usa eso. Debe proporcionar una gran cantidad de material para usar en la enseñanza de OOP y muchas API diferentes de .Net (o cualquier otra tecnología).

Asigne a un desarrollador experimentado de .Net como su mentor. Haga que revise los códigos, esté disponible para recibir consejos, etc. No se limite a arrojar un par de libros y un montón de nuevo software de MS a la gente de COBOL y espere que naden. Esa es una receta para el desastre. Necesitarán un poco de mano y aliento. Pero es posible que encuentre un par de personas sólidas de .Net en ese grupo un poco más adelante y mantenga su conocimiento de los sistemas actuales a bordo.

10

Tuve este problema antes porque era un líder de equipo y tenía cinco desarrolladores de COBOL; tenían 4 veces más experiencia en programación general que yo.

Como habrás notado, debes comenzar desde los fundamentos de programación de OO. Luego, si puede, intente la programación de pares (un .NET dev + un desarrollador COBOL). Esto es lo que estaba haciendo y funcionó muy bien.

Esto podría ser útil también: Microsoft .Net for COBOL programmers

+3

+1 para sugerir Programación de Par y proporcionar un enlace muy específico. –

+0

Definitivamente los emparejaremos cuando podamos. Gracias por la recomendacion del libro. – Rob

+0

La programación de pares realmente funciona en este caso, pero recuerde intercambiar el teclado cada 30 minutos o algo así. Usamos este libro, pero en la segunda edición (mi primer enlace fue originalmente el indicado, pero me di cuenta que ahora lo digo). – Novitzky

1

Dependiendo de lo que quiere que hagan. podría ser una curva de aprendizaje empinada.

necesita minimizar la curva de aprendizaje.

si mal no recuerdo COBAL es una sintaxis wordie (no como C, que usa símbolos para contener su estructura) así que VB.Net puede ser el idioma que su equipo puede recoger más rápido.

entonces echar un vistazo a http://www.learnvisualStudio.net < que tiene un montón de vídeos

la serie principal que estaría interesado en son

Visual Basic 101

Visual Basic 201 - Programación Orientada a Objetos y Diseño Patrones

Esto le presentará la sintaxis y un poco en Object Oreinted Programming.

luego busque en los otros videos para acceso de datos (ADO) progresar lentamente el nivel de habilidad. No willl ser una cosa durante la noche

HTH

Dave

6

empezar por tenerlos uso objetos, en lugar de esperar a llegar a un gran diseño orientado a objetos de todo el sistema por sí mismos.

Puedes hacer lo que hizo mi profesor de Intro to CS: diseña las clases y las terminas, simplemente dejando las implementaciones del método para que se den cuenta. De esta forma, tendrán la oportunidad de acostumbrarse a la sintaxis, usar objetos, alcance, etc., sin esperar que comprendan las complejidades del buen diseño OO.

0

Esta no es una respuesta real, solo un enlace que encontré útil. La mayoría del material didáctico orientado a objetos utiliza los mismos viejos conceptos para enseñar sobre objetos y clases: la jerarquía animal, etc. Este artículo me parece refrescante en el sentido de que comienza con el jugo real: cómo descomponer un sistema en su inicial clases y objetos: http://archive.eiffel.com/doc/manuals/technology/oosc/finding/page.html

1

Trabajé una vez en un proyecto .Net con un experimentado desarrollador de COBOL y lo que noté una y otra vez fue la suposición de que no era necesario verificar los tipos de datos (lo que es comprensible cuando He tenido experiencia en COBOL, donde todo es solo una cadena de personajes vinculados a algún formato): las otras cosas fueron recogidas bastante rápido, pero ese hábito tardó mucho en morir.

0

Lo más importante es recordar que .NET no es un lenguaje de programación. COBOL es un lenguaje de programación.

Si desea que los programadores de COBOL produzcan productivamente aplicaciones .NET, pídales que revisen y evalúen VB.NET e IronPython creando prototipos de algunas aplicaciones pequeñas en estos idiomas. Una vez que hayan probado VB.NET e IronPython, permítales elegir qué idioma usar en el futuro y organizar algún entrenamiento en el idioma elegido.

Hagas lo que hagas, no dejes que usen C# hasta que hayan demostrado que pueden manejar VB.NET o IronPython. Si tiene un espectro de lenguajes de computadora con C++, Java y C# en el extremo del espectro complejo, techy, signos de puntuación, entonces COBOL está en el otro extremo, es sencillo, está orientado al negocio y es de texto sin formato. Tanto VB.NET como IronPython están más cerca del extremo COBOL del espectro.

Si estuviera ejecutando la tienda, me saltaría la evaluación y comenzaré vendiéndolas usando IronPython porque creo que es una mejor opción a largo plazo, y las habilidades de Python se pueden aprovechar en proyectos Linux/UNIX o Java proyectos, así como en .NET.

Lo importante es lograr que estos chicos escriban y depuren algún código real que se ejecute en .NET para que lo perciban y puedan encontrar formas razonables de manejar cosas con las que están familiarizados, como MOVE CORRESPONDING y nivel 88s.

2

[declaración - Desplazamiento por un proveedor de COBOL]

Como alguien que ha sido recientemente tratando de llegar a enfrentarse con COBOL y .NET a mí mismo (especialmente como programador desde hace mucho tiempo transcurrido !, he encontrado la parte más difícil fue entendiendo el framework .NET. Las "palabras" para invocar un método son bastante sencillas, ¡lo difícil es encontrar el método que quieras usar! ¡Intellisense en VS es genial, pero aún necesitas saber por dónde empezar!

También te dirijo a este sitio donde hay una gran tabla comparativa para COBOL vs. C# & VB: http://www.codeproject.com/KB/net-languages/COBOLvsVBvsCSharp.aspx

Micro Focus está haciendo cosas realmente interesantes para que COBOL sea mucho más amigable con .NET, pero será mejor que no entre en demasiados detalles aquí. Eche un vistazo al sitio web de Micro Focus para más información.

Cuestiones relacionadas