¿Qué habilidades profesionales necesitas para convertirte en un programador o ingeniero de Java calificado, y qué debes preparar antes de la entrevista? Durante la entrevista, el entrevistador quiere saber qué habilidades profesionales tiene. Los siguientes son lo que necesita un ingeniero de software Java calificado.
1. Habilidades profesionales
1. Competente en programación orientada a objetos que usa el lenguaje Java, tiene buenos hábitos de programación y están familiarizados con las API Java comúnmente utilizadas, incluidos los marcos de recolección, la múltiples subprocesos (programación concurrente), I/O (NIO), Socket, JDBC, XML, Reflexión, etc.
2. Familiarizado con el desarrollo web de Java basado en JSP y Servlets, tener una comprensión profunda de los principios de trabajo y los ciclos de vida de los servlets y JSP, son competentes en el uso de JSTL y EL para escribir páginas dinámicas sin scripts, y tienen experiencia en el desarrollo de proyectos web de Java utilizando oyentes, filtros y otros componentes web y patrones de arquitectura de MVC.
3. Tenga una comprensión profunda de los contenedores del COI de la primavera y los principios de AOP, sea competente en el uso del marco de primavera para administrar varios componentes web y sus dependencias, sea competente en el uso de Spring para transacciones, registros, seguridad, etc., tenga experiencia en el uso de SpringMVC como tecnología de la capa de presentación y el uso del soporte de persistencia proporcionado por Spring para el desarrollo del proyecto web y estar familiarizado con la integración de otros marcos de Spring.
4. Competente en el uso de marcos ORM como Hibernate y MyBatis, familiarizados con las API básicas de Hibernate y MyBatis, y tienen una comprensión profunda del mapeo de la asociación de Hibernate, el mapeo de la herencia, el mapeo de componentes, el mecanismo de almacenamiento en caché, el manejo de transacciones y el sintonía de rendimiento.
5. Competente en el uso de HTML, CSS y JavaScript para el desarrollo del front-end web, familiarizado con JQuery y Bootstrap, tienen una comprensión profunda de la aplicación de la tecnología AJAX en proyectos web, y tienen experiencia en el desarrollo de proyectos utilizando el marco MVC (AngularJS) y JavaScript Engine (Manillars).
6. Esté familiarizado con los productos de base de datos relacionales comúnmente utilizados (MySQL, Oracle), y sea competente en la programación de bases de datos utilizando SQL y PL/SQL.
7. Esté familiarizado con los principios de diseño orientados a objetos, tenga una comprensión profunda de los patrones de diseño de GOF y los patrones de arquitectura de aplicaciones empresariales y la experiencia relevante en el desarrollo real, sea competente en análisis y diseño orientado a objetos utilizando UML, y tenga experiencia en TDD (desarrollo basado en pruebas) y DDD (diseño de dominio).
8. Familiary con el uso de servidores web y servidores de aplicaciones como Apache, Nginx, Tomcat, Wildfly, WebLogic y familiarizado con la configuración de la integración de servidores múltiples, la agrupación y el equilibrio de carga.
9. Competente en el uso de la herramienta de prototipo de productos Axure, competente en el uso de herramientas de modelado de diseño PowerDesigner y Enterprise Architect, competente en el uso de entornos de desarrollo Java Eclipse e IntelliJ, competente en el uso de la tormenta web del entorno de desarrollo frontal, competente en el uso de herramientas de control de versiones de software SVN y GIT, competente en el uso de la construcción de proyectos y las herramientas de gestión maven y graduados. Nota: Debe estar familiarizado con no todos los elementos mencionados anteriormente. Puede realizar los preparativos específicos correspondientes en función de los requisitos específicos del reclutamiento corporativo. Sin embargo, los primeros 6 elementos deben ser los requisitos mínimos y son las habilidades profesionales que debe poseer un ingeniero de software Java.
2. Experiencia del proyecto
Introducción del proyecto
Este sistema es un sistema para z encargado por X y se utiliza para Z. El sistema incluye A, B, C, D y otros módulos. El sistema utiliza el marco de código abierto de nivel abierto Java E y la tecnología front-end F. La capa de presentación utiliza la arquitectura G, utiliza H como View I como controlador e implementa solicitudes de estilo REST; La capa lógica de negocios utiliza el modo J e implementa funciones de transacción, registro y seguridad a través de K, e implementa servicios de caché a través de L; La capa de persistencia usa M para encapsular las operaciones CRUD, y la capa subyacente usa N para implementar el acceso a los datos. Todo el proyecto adopta un modelo de desarrollo P.
ilustrar:
E generalmente se refiere a la primavera (una opción única para el desarrollo de nivel empresarial Java);
F es más probable que F sea una biblioteca jQuery, su complemento o marco de arranque. Por supuesto, si desea construir una aplicación de una sola página (SPA), la mejor solución es el marco MVC front-end (como AngularJS) y JavaScript Template Engine (como Manillars); G es obviamente MVC (modelo-visión-control), y el marco de implementación más probable es Spring MVC. Además, hay implementaciones Struts 2, JSF y MyFaces proporcionadas por Apache para JSF.
H es JSP. JSP es V en MVC. También puede usar motores de plantilla (como marca libre y velocidad) para generar puntos de vista, o varios documentos o informes (como Excel y PDF, etc.).
Yo es un servlet o un controlador personalizado. Son C en MVC. Por supuesto, Spring MVC proporciona despachadores como controlador frontal;
J suele ser un script de transacción.
K debe ser la tecnología AOP (programación orientada a la sección).
L actualmente es ampliamente utilizado por Memcached y Redis;
Hay muchas opciones para M. Las más probables son Hibernate y MyBatis. Ambas tecnologías también se pueden usar al mismo tiempo, pero generalmente agregan, eliminan y modifican la adición, la eliminación y la modificación se entregan a Hibernate para el procesamiento, mientras que MyBatis completan consultas complejas. Además, Toplink y Jooq también son excelentes soluciones de capa de persistencia;
El acceso a los datos en la parte inferior de N se usa tradicionalmente para usar bases de datos relacionales, que pueden ser MySQL, Oracle, SQLServer, DB2, etc. con el advenimiento de la era de Big Data, NoSQL (como MongoDB, Membase, BigTable, etc.) y otras soluciones de acceso a Big Data (como GFS, HDFS, etc.);;
P es el modelo de desarrollo del proyecto, que puede ser un modelo de cascada, un modelo prototipo rápido, un modelo incremental, un modelo espiral, un modelo de fuente, un modelo RAD, etc.
Proceso de desarrollo de proyectos:
1. Análisis de viabilidad: informe de análisis de viabilidad, plan de desarrollo de proyectos
2. Análisis de requisitos: especificaciones de requisitos
OOAD (diagrama de casos de uso, diagrama de tiempo, diagrama de actividad)
Prototipo de interfaz: ayuda a comprender los requisitos y deducir los scripts de transacciones al diseñar la capa comercial
3. Diseño: resumen Manual de diseño y manual de diseño detallado para extraer entidades comerciales (objetos de dominio): diagrama de clases, diagrama ER (etapa de diseño conceptual)
Arquitectura jerárquica: determine las soluciones de implementación técnica de cada capa (específicamente a los marcos utilizados, servidores de bases de datos, servidores de aplicaciones, etc.).
Diseño de la capa de negocios: modo de script de transacción (transacción: una transacción es una transacción cuando un usuario envía una solicitud; script: un método o una función; script de transacción: encapsula una solicitud en un método o una función; modo de script de transacción: una transacción comienza con la apertura del script y termina con el cierre del script).
Hay tres tipos de objetos involucrados en la capa comercial: la clase de script de transacción (encapsula el proceso de negocio), el objeto de acceso a datos (DAO, encapsula las operaciones persistentes) y el objeto de transmisión de datos (DTO, encapsula la pérdida de sangre/objetos de campo de anemia). La relación entre los tres es el objeto de acceso a datos de la clase de script de transacción (agregación). Ambos confían en el diseño físico de la base de datos de la Ingeniería Avance (Diagramas de clase UML Generan el código Java) y el diseño físico de la base de datos de la clase UML de ingeniería UML) (los diagramas ER se convierten en diagramas de relaciones entre tablas, construcción de la biblioteca y construcción de mesa, y usan herramientas para insertar datos de prueba)
4. Codificación
5. Prueba: Informe de prueba, Prueba de unidad de informe de defectos: verifique y verifique la unidad mínima comprobable en el software. En Java, los métodos en las clases se pueden probar e implementar utilizando herramientas JUnit.
Pruebas de integración: las pruebas de integración también se denominan pruebas de ensamblaje o pruebas de articulación. Según las pruebas unitarias, todos los módulos se ensamblan en subsistemas para las pruebas de acuerdo con los requisitos de diseño.
Prueba del sistema: combinación de software confirmado, hardware, periféricos, red y otros elementos juntos para realizar diversas pruebas de ensamblaje y confirmación del sistema de información. La prueba del sistema es una prueba realizada para todo el sistema de productos. El propósito es verificar si el sistema cumple con la definición de las especificaciones de requisitos, averiguar qué es inconsistente o contradice las especificaciones de requisitos y, por lo tanto, proponer una solución más completa. Prueba de aceptación: actividades de prueba de software realizadas antes de que se lance el producto después de que el producto de software haya completado pruebas unitarias, pruebas de integración y pruebas de sistema. Es la última etapa de pruebas técnicas, también conocida como pruebas de entrega. El propósito de las pruebas de aceptación es garantizar que el software esté listo y que el usuario final pueda utilizarlo para realizar funciones y tareas establecidas del software.
6. Entrega y mantenimiento: Manual del usuario, Manual de operación
Iii. Gestión de proyectos
1. Control de versión: CVS/SVN/GIT
2. Construcción automática: Ant/Maven/Ivy/Gradle
3. Integración continua: Hudson/Jenkins
IV. Arquitectura del sistema
1. Servidor de equilibrio de carga: F5, A10
2. Servidor de aplicaciones:
Servidor HTTP: Apache, Nginx (HTTP, reverso proxy, servidor proxy de correo)
Contenedor de servlet: Tomcat, resina
Contenedores EJB: Wildfly (JBoss Application Server), Glassfish, WebLogic, WebSphere
3. Servidor de bases de datos: MySQL, Eclipse, Oracle
5. Aplicaciones de herramientas de terceros (complementos)
1. Herramientas de gráficos: complementos de gráficos basados en jQuery (como JQChart, Flot, Charted, etc.), Chart.js, Highcharts, etc.
2. Herramientas de informes: informes de Pentaho, Iraport, DynamicReports, etc.
3. Procesamiento de documentos: POI, ITEXT, etc.
4. Motor de flujo de trabajo: JBPM, OpenWfe, Snoker, Swamp, etc.
5. Programación de empleo: cuarzo, trabajo de trabajo, rancho, etc.
6. Servicios de almacenamiento en caché: Ehcache, Memcached, Swarmcache, etc.
7. Cola de mensajes: Open-MQ, Zeromq, etc.
8. Marco de seguridad: Shiro, Picketbox, etc.
9. Motores de búsqueda: Indextank, Lucene, Elasticsearch, etc.
10. Ajax Framework: jQuery, extjs, dwr, etc.
11. Complementos UI: EasyUi, Miniui, etc.
12. cuadros de texto ricos: ueditor, ckeditor, etc.
6. Haga preguntas en la entrevista
1. ¿Para qué empresa se desarrolló el proyecto? ¿Cuánto cuesta la inversión en el proyecto?
2. ¿Cuántas personas han participado en el desarrollo del proyecto? ¿Cuál es la proporción de probadores, desarrolladores y gerentes de proyectos en todo el equipo?
3. ¿Cuánto tiempo se ha desarrollado el proyecto? ¿Cuánto código hay en el proyecto total? ¿Cuánto código hay?
4. ¿Qué tipo de modelo de desarrollo o proceso de desarrollo adopta el proyecto? ¿Cuál es la arquitectura del proyecto? ¿Cuál es la selección técnica del proyecto?
5. ¿Qué responsabilidades asumiste en el proyecto? ¿Tiene reuniones o trabaja horas extras a menudo? ¿Cuáles son las ganancias o las lecciones aprendidas después de que se complete el proyecto?
6. ¿Cuál es la parte más difícil del proyecto? ¿Cómo resolver varios conflictos encontrados durante el desarrollo del equipo?
7. Puede hacer las preguntas del entrevistador durante la entrevista
1. Noté que usaste la tecnología X. ¿Cómo resolviste el problema Y?
2. ¿Por qué sus productos usan la tecnología X en lugar de la tecnología Y? Hasta donde yo sé, aunque la tecnología X tiene beneficios como A, B, C, etc., también tiene problemas con D y E, mientras que la tecnología Y puede resolver problemas D y E.
3. No estoy muy familiarizado con la tecnología X que mencionaste, pero creo que es una buena solución. ¿Puedes contarme más sobre cómo funciona?
4. ¿Cómo planea el proyecto su equipo? ¿Cuántas reuniones regulares habrá en una semana? ¿Cuál es la cantidad aproximada de código por semana?
5. La solución en la que puedo pensar en el problema X es actualmente Y. ¿Cómo resolverá este problema?
8. Reglas SAR
La regla SAR se refiere a describir primero el escenario del problema, luego explicar las acciones que tomó y finalmente declarar los resultados.
9. Principio de la entrevista
1. Voz moderada, discurso claro, sonriente, imagen personal y cortesía.
2. Tome la iniciativa de hablar con el entrevistador sobre temas que le interesa para que el entrevistador sea satisfecho.
3. Tome la iniciativa y hable audazmente con el entrevistador sobre contenido familiar y experimentado: proyectos, puntos técnicos, etc., para jugar con sus fortalezas y evitar las debilidades.
4. Debes expresar que realmente quieres obtener este puesto y que estás dispuesto a aprender técnicas que no entiendes.
5. Haga requisitos de tratamiento razonables basados en su nivel real.
10. Autoevaluación
1. Capacidad de aprendizaje (las personas en la industria de TI deben comprender constantemente nuevas tecnologías, herramientas y métodos)
2. Conciencia del equipo (en comparación con el heroísmo personal, la industria de TI aboga más por el trabajo en equipo)
3. Resistencia a la presión (la intensidad laboral de muchas compañías de TI es relativamente alta)
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.