Какие профессиональные навыки вам нужно, чтобы стать квалифицированным программистом или инженером Java, и что вы должны подготовить перед собеседованием? Во время интервью интервьюер хочет знать, какие у вас профессиональные навыки. Ниже приведены то, что нужно квалифицированному инженеру по программному обеспечению Java.
1. Профессиональные навыки
1. Опытный в объектно-ориентированном программировании с использованием языка Java, имеет хорошие привычки программирования и знакомы с часто используемыми API Java, включая фреймворки сбора, мультипоточное (одновременное программирование), ввода/вывода (Nio), сокет, JDBC, XML, отражение и т. Д.
2. Знакомый с Java Web Development, основанным на JSP и сервлетах, имеет глубокое понимание принципов работы и жизненных циклов сервлетов и JSP, обладают опытом использования JSTL и EL для написания безрассудных динамических страниц и имеют опыт работы в разработке веб-проектов Java, используя слушатели, фильтры и другие веб-компоненты и паттерны архитектуры MVC.
3. Имейте глубокое понимание контейнеров IOC Spring и принципов AOP, будьте опытными в использовании Spring Framework для управления различными веб -компонентами и их зависимостями, быть опытными в использовании Spring для транзакций, журналов, безопасности и т. Д., Имейте опыт использования SpringMVC в качестве технологии презентаций и технологии презентаций и других оснований.
4. Опытный в использовании ORM-структур, таких как Hibernate и Mybatis, знакомые с основными APIS of Hibernate и Mybatis, и обладают глубоким пониманием картирования ассоциации Hibernate, картирования наследования, картирования компонентов, механизма кэширования, управления транзакциями и настройки производительности.
5. Опытный в использовании HTML, CSS и JavaScript для разработки веб-фронта, знакомых с JQUERY и Bootstrap, имеет углубленное понимание применения технологии AJAX в веб-проектах и имеют опыт разработки проектов с использованием фронтального MVC Framework (AngularJS) и шаблон Javascript Template Engine (Handbars).
6. Будьте знакомы с часто используемыми продуктами реляционной базы данных (MySQL, Oracle) и будьте опытны в программировании базы данных с использованием SQL и PL/SQL.
7. Будьте знакомы с объектно-ориентированными принципами дизайна, имеют глубокое понимание моделей проектирования GOF и шаблонов архитектуры корпоративных приложений и соответствующего опыта в реальной разработке, быть опытными в объектно-ориентированном анализе и дизайне с использованием UML, а также имеют опыт работы в TDD (разработка испытательной разработки) и DDD (доменная дизайн).
8. Знакомый с использованием веб -серверов и серверов приложений, таких как Apache, Nginx, Tomcat, Wildfly, Weblogic, и знакомый с конфигурацией интеграции нескольких серверов, кластеризации и балансировки нагрузки.
9. Опытный в использовании прототипа прототипа продукта, опытный в использовании инструментов моделирования дизайна PowerDesigner и Enterprise Architect, опытных в использовании среды для разработки Java Eclipse и IntelliJ, опытные в использовании веб-посторонней системы для разработки, опытных в использовании инструментов управления версией программного обеспечения SVN и GIT, опытного в использовании проекта и инструментах управления Maven и Gradle. Примечание: вы должны быть знакомы не с каждым элементом, перечисленным выше. Вы можете сделать соответствующие целевые подготовки на основе конкретных требований корпоративного набора. Тем не менее, первые 6 пунктов должны быть минимальными требованиями и являются профессиональными навыками, которыми должен обладать инженер -программист Java.
2. Опыт проекта
Введение проекта
Эта система представляет собой систему для Z, заказанную X и используется для Z. Система включает в себя A, B, C, D и другие модули. Система использует фреймворк с открытым исходным кодом на уровне Java Enterprise E и технологию переднего интерната F. В презентационном уровне используется архитектура G, использует H в качестве представления I в качестве контроллера и реализует запросы в стиле REST; Уровень бизнес -логики использует режим J и реализует функции транзакций, журнала и безопасности через K и реализует службы кэша через L; Уровень постоянства использует M для инкапсуляции операций CRUD, а базовый уровень использует N для реализации доступа к данным. Весь проект принимает модель разработки P.
иллюстрировать:
E обычно относится к Spring (универсальный выбор для разработки на уровне Java Enterprise);
F, скорее всего, будет библиотекой jQuery, ее плагин-инфекцией или платформой для начальной загрузки. Конечно, если вы хотите построить одностраничное приложение (SPA), лучшим решением являются фронтальная структура MVC (например, AngularJS) и шаблон JavaScript (например, руля); G-это MVC (модель-View-Control), и наиболее вероятной структурой реализации является Spring MVC. Кроме того, есть реализации Struts 2, JSF и Myfaces, предоставленные Apache для JSF.
H is jsp. JSP - V в MVC. Вы также можете использовать шаблонные двигатели (такие как Freemarker и скорость) для создания представлений, или различных документов или отчетов (например, Excel и PDF и т. Д.).
Я сервлет или пользовательский контроллер. Они C в MVC. Конечно, Spring MVC предоставляет DispatcherServlet в качестве контроллера переднего интерфейса;
J обычно является сценарием транзакций.
K должна быть технология AOP (ориентированное на секционные программы).
L в настоящее время широко используется Memcached и Redis;
Есть много вариантов для M. Наиболее вероятными являются Hibernate и Mybatis. Обе технологии также могут использоваться одновременно, но обычно добавляют, удаляют и изменяют добавление, делеция и модификация передаются Hibernate для обработки, а сложные запросы заполняются Mybatis. Кроме того, Toplink и JOOQ также являются отличными решениями по устойчивости;
Доступ к данным в нижней части N традиционно используется для использования реляционных баз данных, которые могут быть MySQL, Oracle, SQLServer, DB2 и т. Д. С появлением эпохи больших данных, NOSQL (такого как MongoDB, Membase, Bigtable и т. Д.) И другие решения для доступа больших данных (такие как GFS, HDF и т. Д.);
P - модель разработки проекта, которая может быть моделью водопада, быстрым прототипом моделью, инкрементной моделью, спиральной моделью, моделью фонтана, моделью RAD и т. Д.
Процесс разработки проекта:
1. Технико -экономический анализ: отчет о технико -экономическом анализе, план разработки проекта
2. Анализ требований: спецификации требований
Ooad (диаграмма вариантов использования, диаграмма времени, диаграмма активности)
Прототип интерфейса: помогает понять требования и вывести сценарии транзакций при разработке бизнес -уровня
3. Дизайн: Руководство по своему проектированию и подробное руководство по проектированию для извлечения бизнес -объектов (объекты домена): диаграмма класса, диаграмма ER (этап концепции дизайна)
Иерархическая архитектура: определите технические решения для реализации каждого уровня (в частности, используемые структуры, серверы баз данных, серверы приложений и т. Д.).
Конструкция бизнес -слоя: режим скрипта транзакции (транзакция: транзакция - это транзакция, когда пользователь отправляет запрос; скрипт: метод или функция; скрипт транзакции: инкапсулирует запрос в метод или функцию; режим скрипта транзакции: транзакция начинается с открытия скрипта и завершается с закрытием скрипта).
Существует три типа объектов, участвующих в бизнес -уровне: класс сценариев транзакций (инкапсулирует бизнес -процесс), объект доступа данных (DAO, инкапсулирует постоянные операции) и объект передачи данных (DTO, инкапсулирует объекты потери крови/анемия). Взаимосвязь между тремя - это объект доступа к сценариям сценария транзакций (агрегация). Оба они полагаются на форвардные инженерные (диаграммы классов UML, генерирующие код Java) и обратную инженерную инженерную инженерную (Java -код генерирует диаграммы классов UML) Физический дизайн (диаграммы ER (диаграммы ER превращаются в диаграммы взаимосвязи между таблицами, конструкцией библиотеки и построением таблиц, а также используют инструменты для вставки тестовых данных))
4. Кодирование
5. Тест: отчет о тестировании, Единое тестирование отчета о дефектах: Проверьте и проверяйте минимальный тестируемый блок в программном обеспечении. В Java методы в классах могут быть протестированы и реализованы с использованием инструментов JUNIT.
Интеграционное тестирование: интеграционное тестирование также называется тестированием сборки или совместным тестированием. Основываясь на модульном тестировании, все модули собираются в подсистемы для тестирования в соответствии с требованиями проектирования.
Системное тестирование: объединение подтвержденного программного обеспечения, оборудования, периферийных устройств, сети и других элементов вместе для проведения различных сборочных и подтверждающих тестов информационной системы. Системное тестирование - это тест, проведенный для всей системы продукта. Цель состоит в том, чтобы проверить, соответствует ли система определения спецификаций требований, выяснить, что несовместимо с или противоречит спецификациям требований, и, таким образом, предлагает более полное решение. Приемный тест: Программное тестирование, проведенное до выхода продукта после того, как программный продукт завершит модульные тестирование, интеграционное тестирование и системное тестирование. Это последний этап технического тестирования, также известный как тестирование доставки. Цель приемлемого тестирования состоит в том, чтобы убедиться, что программное обеспечение будет готово и чтобы его можно было использовать конечным пользователем для выполнения установленных функций и задач программного обеспечения.
6. Доставка и обслуживание: Руководство пользователя, Руководство по эксплуатации
Iii. Управление проектом
1. Управление версией: CVS/SVN/GIT
2. Автоматическая конструкция: муравей/мавен/плющ/градл
3. Непрерывная интеграция: Хадсон/Дженкинс
IV Системная архитектура
1. Сервер балансировки нагрузки: F5, A10
2. Сервер приложений:
HTTP Server: Apache, Nginx (http, обратный прокси, почтовый прокси -сервер)
Контейнер сервлета: Tomcat, смола
Контейнеры EJB: Wildfly (JBOSS Application Server), Glassfish, Weblogic, WebSphere
3. Сервер базы данных: MySQL, Eclipse, Oracle
5. Приложения сторонних инструментов (плагинов)
1. Диаграммы инструментов: плагины на основе диаграммы на основе JQUERY (такие как JQChart, Flot, диаграмма и т. Д.), chart.js, Highcharts и т. Д.
2. Инструменты отчетности: отчетность Pentaho, Ireport, DynamiCreports и т. Д.
3. Обработка документов: POI, ITEXT и т. Д.
4. Двигатель рабочего процесса: JBPM, OpenWFE, Snaker, болото и т. Д.
5. Планирование работы: Quartz, Jobserver, Oddjob и т. Д.
6. Услуги кэширования: ehcache, memcached, swarmcache и т. Д.
7. очередь сообщений: open-mq, zeromq и т. Д.
8. Фреймворк безопасности: Широ, Пикетбокс и т. Д.
9. Поисковые системы: Indextank, Lucene, Elasticsearch и т. Д.
10. Ajax Framework: jQuery, Extjs, DWR и т. Д.
11. Plugins UI: Easyui, Miniui и т. Д.
12. Богатые текстовые поля: Ueditor, Ckeditor и т. Д.
6. Задайте вопросы в интервью
1. Какую компанию была разработана проектом? Сколько стоит инвестиции в проект?
2. Сколько людей участвовали в разработке проекта? Какова доля тестеров, разработчиков и менеджеров проектов во всей команде?
3. Как долго был разработан проект? Сколько кода в общем проекте? Сколько там кода?
4. Какую модель разработки или процесс разработки применяет проект? Какова архитектура проекта? Каков технический выбор проекта?
5. Какие обязанности вы взяли на себя в проекте? У вас часто встречаются встречи или работа сверхурочно? Каковы выгоды или уроки извлечены после завершения проекта?
6. Какая самая сложная часть проекта? Как разрешить различные конфликты, встречающиеся во время развития команды?
7. Вы можете задать вопросы интервьюера во время интервью
1. Я заметил, что вы использовали технологию X. Как вы решили проблему Y?
2. Почему ваши продукты используют технологию X вместо технологии Y? Насколько я знаю, хотя технология X имеет такие преимущества, как A, B, C и т. Д., У нее также есть проблемы с D и E, в то время как Y -технология может решать проблемы D и E.
3. Я не очень хорошо знаком с технологией X, которую вы упомянули, но я чувствую, что это хорошее решение. Можете ли вы рассказать мне больше о том, как это работает?
4. Как ваша команда планирует проект? Сколько регулярных встреч будет через неделю? Какое приблизительное количество кода в неделю?
5. Решение, о котором я могу подумать для проблемы X, в настоящее время Y. Как вы решите эту проблему?
8. SAR Правила
Правило SAR относится к сначала описать сценарий проблемы, а затем объяснить действия, которые вы предприняли, и, наконец, заявляя о результатах.
9. Принцип интервью
1. Умеренный голос, четкая речь, улыбка, личный образ и вежливость.
2. Возьмите инициативу, чтобы поговорить с интервьюером по темам, которые он заинтересован, чтобы сделать интервьюер довольным.
3. Возьмите инициативу и смело поговорите с интервьюером о знакомым и опытном контенте: проектах, технических точках и т. Д., Чтобы сыграть свои сильные стороны и избежать слабых сторон.
4. Вы должны выразить, что действительно хотите получить эту позицию и что готовы изучать методы, которые вы не понимаете.
5. Сделайте разумные требования к лечению на основе вашего фактического уровня.
10. Самооценка
1. Способность к обучению (люди в ИТ -индустрии должны постоянно понимать новые технологии, инструменты и методы)
2. Осведомленность команды (по сравнению с личным героизмом, ИТ -индустрия выступает за командную работу больше)
3. сопротивление давлению (интенсивность работы многих ИТ -компаний относительно высока)
Выше всего содержание этой статьи. Я надеюсь, что это будет полезно для каждого обучения, и я надеюсь, что все будут поддерживать Wulin.com больше.