I have been interviewing several freshers who were taught Java in engineering schools under computer science curriculum. He sido entrevistar a varios freshers que se enseñan Java en las escuelas de ingeniería informática en virtud de plan de estudios. Interviewing them highlighted serious problems with their education as well as with the system. Entrevistas de relieve serios problemas con su educación, así como con el sistema. This is a brief overview of the issues and ways to interview such candidates. Esta es una breve reseña de los temas y las formas de entrevista tales candidatos. At the end I have included my recommendation of courses for software engineers. Al final he incluido mi recomendación de cursos para ingenieros de software.

The students in most engineering institutes are being taught Java directly without a good introduction to object oriented development. Los estudiantes de ingeniería en la mayoría de los institutos que se les enseña a Java directamente sin una buena introducción al desarrollo orientado a objetos. At best they have cursory knowledge of OO concepts like polymorphism. En el mejor de ellos han somero conocimiento de conceptos de OO como polimorfismo. It becomes nauseous to watch them repeat by rote the definitions without demonstrating a clear understanding of underlying concepts and logic. Se convierte en náusea de ver a repetir de memoria las definiciones, sin demostrar una clara comprensión de los conceptos y la lógica. Such graduates become nothing more than structured C coders using Java. Tales graduados convertirse en nada más que estructurada C usando codificadores de Java.

Learning Java to most is knowing about the “packages”, which is an incorrect approach. Aprender a Java es saber más acerca de la "paquetes", que es un enfoque incorrecto. Java is not just about the libraries it provides. Java no es sólo acerca de las bibliotecas que proporciona. Anyone with logical ability can quickly pick new libraries. Cualquier persona con capacidad lógica puede recoger rápidamente las nuevas bibliotecas.

Java is a language with a easy to learn syntax which should be first mastered. Java es un lenguaje con una fácil de aprender la sintaxis que debe aparecer en primer lugar dominado. It is a platform which helps you to easily develop cross-platform and web applications. Es una plataforma que le ayuda a desarrollar fácilmente la cruz-plataforma y aplicaciones web. Knowing Java without knowing about the web (other than googling and email), for example, is fruitless. El conocimiento de Java sin saber sobre el web (con excepción de Google y correo electrónico), por ejemplo, es inútil.

Java programmers do not just need to know Java, the language. Los programadores Java no sólo hay que saber Java, el lenguaje. They need to have an understanding of basic software concepts like three-tier development, relational database management systems, quality processes etc. Ellos necesitan tener una comprensión de conceptos básicos de software como de tres niveles de desarrollo, base de datos relacional de gestión de sistemas, procesos de calidad, etc

Software developers with a narrow understanding of the field are likely to be a liability to themselves and to their companies. Desarrolladores de software con un estrecho entendimiento del campo es probable que sean una carga para ellos y para sus empresas. I look for people who have a healthy interest in the field and not the ones who have chosen IT solely because of its salary potential. Busco personas que tienen un sano interés en la materia y no los que han optado por el mero hecho de TI de su salario potencial.

My approach to interviewing them is to find out their clarity of concepts in whatever little (or much) they know. Mi enfoque está entrevistando a ellos para saber su claridad de conceptos, cualquiera que sea su poco (o mucho) que conocen. I ask lots of “why”. Pido a los lotes de "por qué". Getting them to justify even obvious questions like value of object oriented development or polymorphism sheds light into their logical underpinings. Obtención de ellos para justificar incluso obvias preguntas como valor de desarrollo orientado a objetos o polimorfismo arroja luz en su lógica underpinings.

My recommended courses for software enginners (1 semester each) would be: Mi recomendó cursos de software enginners (1 semestre cada uno) serían las siguientes:

  1. Introduction to computers Introducción a las computadoras
  2. Computer Language (Fortran) Lenguaje de computadora (Fortran)
  3. Algorithm and Data Structures Algoritmo y Estructuras de Datos
  4. Object Oriented Development (preferably using SmallTalk) Desarrollo orientado a objetos (preferentemente usando SmallTalk)
  5. Java Software Development Desarrollo de software Java
  6. Software Development Methodologies (includes Extreme Programming) Metodologías de Desarrollo de Software (incluye Extreme Programming)
  7. Software Testing & Quality Processes Software Testing & procesos de calidad
  8. Design Patterns in Java Patrones de diseño en Java
  9. Enterprise Software Development Empresa de desarrollo de software
  10. Networking - TCP/IP, UDP, SMTP, POP3, HTTP etc. Redes informáticas - TCP / IP, UDP, SMTP, POP3, HTTP, etc

Optional: Opcional:

  1. Computer Security Seguridad informática
  2. Artifical Intelligence Inteligencia Artificial