I have been interviewing several freshers who were taught Java in engineering schools under computer science curriculum. Sono stato diverse interviste freshers che sono state insegnate in Java sotto le scuole di ingegneria informatica curriculum. Interviewing them highlighted serious problems with their education as well as with the system. Interviste li ha evidenziato seri problemi con la loro istruzione e con il sistema. This is a brief overview of the issues and ways to interview such candidates. Si tratta di una breve panoramica dei temi e dei metodi per tali candidati intervista. At the end I have included my recommendation of courses for software engineers. Alla fine ho incluso la mia raccomandazione di corsi per ingegneri del software.

The students in most engineering institutes are being taught Java directly without a good introduction to object oriented development. Gli studenti di ingegneria, nella maggior parte istituti di insegnamento sono in corso di Java direttamente, senza una buona introduzione alla programmazione orientata agli oggetti. At best they have cursory knowledge of OO concepts like polymorphism. Nel migliore dei casi essi hanno sommaria conoscenza delle OO concetti come polimorfismo. It becomes nauseous to watch them repeat by rote the definitions without demonstrating a clear understanding of underlying concepts and logic. Diventa nausea, per guardare come si rote di ripetere le definizioni, senza dover dimostrare una chiara comprensione dei concetti di base e di logica. Such graduates become nothing more than structured C coders using Java. Tali laureati diventare niente più che strutturata C codificatori utilizzando Java.

Learning Java to most is knowing about the “packages”, which is an incorrect approach. Apprendimento Java per la maggior parte è conoscere i "pacchetti", che è un non corretto approccio. Java is not just about the libraries it provides. Java non riguarda solo le librerie che fornisce. Anyone with logical ability can quickly pick new libraries. Chiunque con capacità logico rapidamente possibile scegliere nuove biblioteche.

Java is a language with a easy to learn syntax which should be first mastered. Java è un linguaggio con un facile da imparare sintassi che dovrebbe essere il primo padronanza. It is a platform which helps you to easily develop cross-platform and web applications. E 'una piattaforma che vi aiuta a sviluppare facilmente multipiattaforma e applicazioni web. Knowing Java without knowing about the web (other than googling and email), for example, is fruitless. Conoscere Java senza conoscere il web (diverse da quelle di googling e-mail), per esempio, è sterile.

Java programmers do not just need to know Java, the language. Programmatori java non solo bisogno di sapere Java, il linguaggio. They need to have an understanding of basic software concepts like three-tier development, relational database management systems, quality processes etc. Di cui hanno bisogno per avere una comprensione di base di concetti come software di tre livelli di sviluppo, database relazionale sistemi di gestione, la qualità dei processi, ecc

Software developers with a narrow understanding of the field are likely to be a liability to themselves and to their companies. Sviluppatori di software con una stretta comprensione del settore rischiano di essere una responsabilità a se stessi e alle proprie imprese. 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. Guardo per le persone che hanno un sano interesse per il settore e non quelli che hanno scelto unicamente a causa del suo stipendio potenziale.

My approach to interviewing them is to find out their clarity of concepts in whatever little (or much) they know. Il mio approccio alla loro interviste è quello di individuare le loro chiarezza di concetti in qualsiasi poco (o molto) che conoscono. I ask lots of “why”. Chiedo un sacco di "perché". Getting them to justify even obvious questions like value of object oriented development or polymorphism sheds light into their logical underpinings. Come arrivare a giustificare persino ovvie domande come valore della programmazione orientata agli oggetti o polimorfismo getta luce nella loro logica underpinings.

My recommended courses for software enginners (1 semester each) would be: Il mio raccomandato corsi per il software enginners (1 ogni semestre) potrebbe essere:

  1. Introduction to computers Introduzione al computer
  2. Computer Language (Fortran) Lingua computer (Fortran)
  3. Algorithm and Data Structures Algoritmo e strutture dati
  4. Object Oriented Development (preferably using SmallTalk) Programmazione orientata agli oggetti (preferibilmente utilizzando SmallTalk)
  5. Java Software Development Lo sviluppo di software Java
  6. Software Development Methodologies (includes Extreme Programming) Metodologie di sviluppo software (include Extreme Programming)
  7. Software Testing & Quality Processes Test del Software e qualità dei processi
  8. Design Patterns in Java Design Patterns in Java
  9. Enterprise Software Development Lo sviluppo di software enterprise
  10. Networking - TCP/IP, UDP, SMTP, POP3, HTTP etc. Messa in rete - TCP / IP, UDP, SMTP, POP3, HTTP, ecc

Optional: Opzionale:

  1. Computer Security Computer Security
  2. Artifical Intelligence Intelligenza Artificiale