Java — Помогите юному Java разработчику


Содержание

Быстрый старт в Java: от установки необходимого софта до первой программы

Как вы знаете, Java — один из самых популярных языков программирования в мире и его знание существенно увеличит вашу значимость как программиста. Итак, вы решили начать писать на этом языке. Вам понадобится поставить JDK для того, чтобы писать и запускать программы на Java. JDK — набор софта, разработанного Oracle, содержащий в себе компилятор (javac), среду выполнения (Java Runtime Environment), стандартную библиотеку языка, примеры и документацию. Прочитав эту статью, вы узнаете, как установить и настроить JDK на своей системе, что такое среда разработки и какие варианты IDE существуют для Java. Также вы напишете свою первую программу на Java.

Установка Java Development Kit

  1. Перейдите на сайт Oracle и загрузите JDK для вашей платформы.
  2. После загрузки извлеките полученный архив и запустите извлеченное приложение.
  3. В процессе установке выберите вариант «Development Tool» и нажмите «Next».
  4. Спустя некоторое время установка завершится.

Итак, вы установили Java Development Kit, но это еще не всё. Необходимо настроить его для вашей системы.

Настройка JDK на примере Windows

  1. Перейдите в папку %ProgramFiles%\Java\%версия установленного вами jdk%\bin , нажмите на свойства любого файла в этой папке и скопируйте путь к нему.
  2. Перейдите в свойства вашего компьютера, откройте вкладку «Дополнительно», нажмите «Переменные среды…». В открывшемся окне создайте новую переменную, назовите её Path , в её значение вставьте скопированный ранее путь.
  3. Теперь самое важное. Откройте командную строку и наберите javac , чтобы убедиться, что JRE установлен и настроен. Если выдаётся список аргументов к команде javac , то поздравляю, вы успешно установили и настроили всё, что необходимо для использования Java!

После установки JDK и JRE не помешает установить на компьютер одну из IDE.

Установка IDE

Для начала разберёмся, что такое IDE.

IDE (Integrated Development Environment) – это комплекс программных средств, используемый программистами для разработки программного обеспечения. IDE позволяет с лёгкостью писать, запускать, отлаживать и тестировать код.

Для написания сложных программ целесообразно использовать IDE. Мы рассмотрим наиболее популярные.

Блокнот

Да, и в блокноте можно писать код! Для разработки вам потребуется всего лишь установить JDK и указать путь к ней. Пишете код в блокноте, компилируете с помощью командной строки. Тем не менее, для разработки сложных программ это не самый лучший вариант из-за отсутствия каких-либо дополнительных возможностей, присутствующих в продвинутых IDE.

NetBeans

NetBeans — выбор профессиональных Java-разработчиков. В ней есть уникальные возможности и инструменты, которые позволят вам сделать вашу программу кроссплатформенной, а код удобочитаемым. NetBeans поддерживает не только Java, но и другие языки программирования для десктоп- и веб-разработки. Она полностью бесплатна, скачать её можно с официального сайта. Вот лишь некоторые её возможности:

  • форматирование кода;
  • установка сторонних библиотек;
  • простой графический интерфейс;
  • и многое, многое другое…

Eclipse

Eclipse, как и Netbeans — одна из наиболее популярных IDE. Она предоставляет впечатляющий интуитивно понятный интерфейс и производительную среду разработки, позволяющую комфортно разрабатывать приложения на Java. Скачать Eclipse можно бесплатно с официального сайта. Преимущества:

  • возможность форматировать код так, как вам удобно;
  • поддержка разбиения кода на модули;
  • лёгкость использования одного и того же кода в разных проектах;
  • перетаскивание (drag-and-drop);
  • просмотр содержимого библиотек;
  • удобный интерфейс.

IntelliJ IDEA

IntelliJ IDEA — известная IDE для Java, написанная, как ни странно, на Java. Укомплектована уникальными инструментами и позволяет без проблем ориентироваться в программе. Нахождение ошибок и отладка кода никогда не были такими легкими, как с IntelliJ IDEA.

JCreator

JCreator — продвинутая и самая быстрая IDE для Java, написанная на C++.

Пишем свою первую программу

Итак, вы установили и настроили JDK, JRE и IDE для Java. Каков следующий шаг? Конечно же, написать программу, чтобы окончательно убедиться, что всё работает и вы готовы к изучению языка. Вы познакомитесь с базовой структурой кода на Java и создадите свою первую программу! Стоит отметить, что перед изучением Java следует ознакомиться хотя бы с самыми простыми принципами объектно-ориентированного программирования.

Структуру программы на Java можно представить так:

Структура программы на Java

В файле с исходным кодом содержится несколько классов — это части программы, имеющие определённые функции. Хорошей практикой считается разбиение программы на несколько файлов с исходным кодом, каждый со своим назначением. В классах содержатся методы — действия, которые могут выполнять объекты данного класса. В методе содержатся команды, с помощью которых вы можете получить желаемый результат.

15–16 ноября, Минск, 133–390 br

Перед тем, как приступить к созданию программы, необходимо создать проект, а в нём и файл, в котором будет содержаться ваш код. Рассмотрим создание проекта на IDE Eclipse, но в остальных IDE процесс отличается не сильно. Cверху выберите «File», затем наведите курсор на «New», в открывшемся меню выберите «Java Project». В появившемся окне введите имя проекта и другие нужные вам настройки (если не уверены, что делать, то можно просто оставить все как есть) и нажмите «Next». Готово, вы создали проект! Осталось лишь создать в нём класс, в котором вы напишете свою первую программу. Щёлкните правой кнопкой мыши по вашему проекту (он должен появиться справа) и выберите «New» → «Class». Присвойте новому классу имя (в данном примере – это first ) и нажмите «Finish».

Приступим к написанию вашей первой программы. По традиции — это программа, выводящая на экран «Hello, world!».

Разберём по частям написанное нами:

  • public – это модификатор доступа, определяющий, из какой части программы может использоваться наш класс. В вашем примере public — это весь код;
  • class – ключевое слово, показывающее, что вы объявляете класс, а не что-либо иное;
  • first – имя вашего класса. Круглые скобки определяют начало и конец кода класса;
  • public static void main(String args[]) – объявление публичного статического метода (то есть который можно вызвать, не создавая объект класса). Метод в примере ничего не возвращает и принимает в качестве аргументов массив строк. Единственная команда в этом методе выводит в консоль сообщение «Hello, world!». Заметьте, вместо println можно написать print , разница лишь в том, что в случае с println дополнительно выведется символ переноса строки.

Хорошо, вы написали вашу первую программу. Теперь её надо запустить. Для этого просто нажмите белую стрелочку в зеленом кружке на верхней панели (при наведении курсора на неё должно высветиться «Run»). После нажатия внизу откроется консоль, в которой вы увидите сообщение “Hello, world”! Поздравляю, вы написали вашу первую программу на Java и готовы погрузиться в увлекательный мир этого языка!

Полезные ссылки для дальнейшего изучения

Вот несколько ресурсов, которые помогут вам в изучении Java:

  • документация Oracle по стандартной библиотеке языка;
  • уроки по Java от Oracle;
  • теория объектно-ориентированного программирования;
  • хорошая книга-самоучитель;
  • большое количество интересных и полезных статей про Java на русском языке.

Java — Помогите юному Java разработчику

В этой статья Я расскажу, чем занимается Java Junior разработчик. Здесь я приведу ответы трех моих учеников, а в конце статьи расскажу про свой опыт и сделаю вывод.

Роман, 35 лет, Java-программист. Опыт коммерческой работы 3 месяца.

Меня приняли на работу в молодую компанию, основная часть сотрудников которой работают удаленно со всей России и не только. Основная деятельность компании — технологии распознавания речи, автоматизация и роботизация обратной связи клиентам крупных компаний. Кроме, того, мы внимательно следим за потребностями рынка, и если клиенты высказывают какие-то имеющиеся проблемы и потребности, мы рассматриваем их с точки зрения создания коммерческого продукта. Как следствие, 90% кода мы пишем практически с нуля. Так же работа в компании требует взаимозаменяемости, так как необходимо подключаться к другим проектам, если того требуют сроки. Каждый из нас должен уметь писать и фронт и бэк. Причем, часто, один пишет фронт, другой бэк, и наоборот, поэтому нужно писать так, чтобы у коллеги не было проблем с твоей частью. До обучения на Job4j.ru я не имел к компьютерам никакого отношения, поэтому для тех, кто ранее имел опыт системного администратора или программиста других языков, некоторые проблемы, возможно, не будут актуальны.

Итак, какие составляющие обучения не кажутся важными, но в коммерческой разработке имеют большое значение:
— Командная строка. У компании есть сервера. Многие операции быстрее и удобнее сделать через нее. Нередко, некоторые операции можно сделать только через нее.
— Этапы сборки Maven-проекта и их смысл. Тут, кстати, тоже пригодится знание командной строки, например, для сборки проекта без запуска тестов.
— REST-архитектура. Из того, что есть на русском языке трудно понять, что это. Но рекомендую потратить время, для того, чтобы вникнуть в суть этого понятия и как оно реализуется на практике. Методы GET и POST нужно понимать не хуже, чем арифметику
— Нужно вникнуть, что означают и как реализуются такие понятия, как Entity, DTO, Repository, Controller и их взаимосвязь друг с другом при написании кода
— Совместная работа в репозитарии (Git): merge, rebase, откат к предыдущей версии
— Уметь логгировать код (у меня откладка занимает в 4-5 раз больше времени, чем написание кода)
— Обязательно обрабатывать все возможные исключения. В коммерческой разработке не стоит допускать остановки приложения. А если это случилось, как правило, времени на исправление дается немного
— Платформа JHipster и ее неотъемлемая составляющая Angular (фронт в Angular пишется на TypeScript). Это путь к быстрой и качественной разработке коммерческих приложений. Да, придется потратить на освоение не мало времени, но оно того, стоит, через пару месяцев начнете восхищаться этими инструментами и забудете про другие
— HTML5, CSS3, JS(JQuery) стоит уделить больше внимания, чем требуют задания курса
— Основные методы из API работы со строками и коллекциями. Их желательно знать наизусть. Сильно экономит время
— Еще раз ОТЛАДКА. Придется научиться искать решение любой проблемы в Google. Вряд ли Вы первый в мире с ней столкнулись, но скорее всего, Вы первый русский :), поэтому учите технический английский. Необходимо выстраивать отношения с коллегами: иногда они будут Вам помогать и, чем больше они будут Вам помогать, тем быстрее Вы научитесь коммерческой разработке. И да, со многими проблемами отладки Ваши более опытные коллеги уже сталкивались
— Методика написания кода. Сначала пишешь абстракции (название метода с пониманием, какую задачу он решает). Когда есть общая логика взаимодействия системы, начинаешь наполнять методы кодом
— Работа на результат и в установленный срок

Нужно понимать, без этих знаний можно не только устроиться на работу, но и достаточно успешно ее выполнять. Вопрос в том, что с этими знаниями ты становишься программистом, который может создавать коммерческий продукт с нуля. Не буду вдаваться в подробности, почему это важно и полезно.

Из хорошего:
— лично меня, задачи из курса настолько натаскали по Java Core, что ни к Шилдтсу, ни к Хорстманну я еще ни разу не обратился, после трудоустройства. Если что-то уточнить, смотришь в справке по API в IDEA, но, скорее удостовериться, чем узнать что-то новое
— если что-то совсем не получается, тебе всегда помогут, подключится вся команда и проблема будет решена (возможно, так не везде)
— не бойтесь задавать вопросы, будет странно, если Вы их не задаете (либо ничего не понимаете, либо ничего не делаете). Все в команде когда-то были на Вашем месте и к одному и тому же вопросу первые 2-3 раза отнесутся нормально

Александр. 52 года. Java-программист. Опыт коммерческой работы 2 месяца.

Общая ситуация:
К сожалению, в конторе не принято / не установлено ни шефство, ни код ревью. В результате: каждый как бы предоставлен сам себе, что / как хочу, то так и делаю.

Плюсы:
— удобно для новичков. Если я чего-то не знаю или что-то делаю криво — никто об этом как бы не узнает, не проверяет. Делай как угодно криво, лишь бы хоть как-то работало.
— Можно спокойно набираться практики.

Минусы:
— Т.к. никто не контролирует, не проверяет, не говорит «как правильно» — ничего нового мы не узнаем, не обучаемся, не постигаем. Можем годами писать медленно работающий г-код, считая себя вундеркиндами.

Парень, который работал до меня много чего полезного хорошего написал, но наделал большое количество ошибок из-за того что совсем не разбирался в БД. (данные пытался сохранять на сервере в виде xml-табличек, затем копировать в DB, при необходимости получения данных — обратный процесс: достаем из БД, кладем на сервер, открываем, разбираем на массивы или коллекции, производим необходимые операции.
Понятно, что скорость написания и надежность кода с подобным подходом довольно низкая. В результате ему в помощь подыскали меня.

При этом парне проект так и не заработал. (Oracle + Java + JS + C)
Пришлось искать ошибки уже без него. На это у нас ушло около 2-ух недель. Код плохо читаем, без комментариев. Стиль написания — явно не лучший. (классы по 600 строк — не лучший стиль). Ошибка оказалась в работе потоков. Один из поток, который считывал результаты, обращался за данными раньше, чем другой поток их успевал создать. На этом сервер падал без всяких записей в логах.
Поправил логику на «нормальную». Ушло 2 дня — все заработало. Они не могли найти и вычистить эту ошибку около 3-ех месяцев.

Цукерберг рекомендует:  Сниффер на java с чего начать - Нужна помощь в написании сниффера на Java.

1) PL/SQL запросы и пакеты — 20% времени
(хотя и относительно немного, но как оказалось — безумно важная часть, т.к. не знание, не понимание возможностей обработки на уровни базы приводило к серьезным осложнениям работы приложения. 1-2 дня работы с пакетом на Oracle. сокращал работу на Jave-е где-то на 5-10 дней. Не говоря уже о повышении надежности и увеличении скорости работы)

2) Сама Java: классика, массивы, коллекции, jsp, servlet, jstl — где-то 30-40% времени.
(никакого Hibernate бинов и т.п.).

3) Все остальное время — чтение логов, попытка найти и исправить ошибки. (по первым 2-ум пунктам), в основном допущенные предыдущим разработчиком.

Ситуация осложняется не возможностью запускать приложение в debug-mode из-за наличия исполняемых сборок (на С), которые запускаются только под Linux.

Что бы побороть эту ситуацию, мне сейчас придется ставить на свой собственный компьютер линукс, разворачивать на нем приложение и добиваться возможности запускать приложение в debug-mode.

4) Написание отчетов. (20-40 минут в день или два)

5) Конечно SVN. Закачка обновлений и выкладывание изменений, которые делаешь сам.
Я уже раз 10 запарывал версии. Просто перестают работать (видимо случайно что-то портил). Откатываешь до последней стабильной версии и копируешь изменения — все работает. А war-ник из директории, где правишь — слишком часто «нет».

Из обучения: Не хватает знания JS и Linux. Если первое нужно далеко не всем, то начальное знакомство с Linux нужно наверное большинству разработчиков, т.к. сервера чаще всего стоят на Linux и часть операций необходимо производить там (проверка / убийство процессов, перезагрузка приложения, чтение лог-файлов без ftp и т.п.).

Александр, 35 лет. Java-программист. Опыт коммерческой разработки – 6 месяц.

В целом пришлось очень много поработать по фронту: jquery, работа c асинхронными операциями класса deferred, постоянно приходится искать и изучать различные js проекты для решения задач типа таблиц, галерей, загрузчиком, кропа картинок. Также очень много thymeleaf для отрисовки статической информации, форматирование чисел и дат с помощью numbers и temporals. На бэке — все на прямых запросах через jdbctemplate для ускорения работы, отсюда куча джойнов таблиц + еще пришлось разбираться с пагинацией для запросов, чтобы ограничить выгрузку для пользователя. На spring security пришлось сделать кучу вещей в виде разрешений для пользователей и сохранение данных сессий в куки для remember-me сервиса (автовход). Плюс менеджерам нужно постоянно загружать прайсы и данные в базу, для этого используем apache poi для парсинга документов и заливки полученных данных в БД. Ну и самое интересное — задачи на сервере, выполняемые по расписанию — рассылка нотификаций, писем, сбор прайсов с почтового ящика, там приходится использовать Quartz scheduler, а там много подводных камней =)) Так что разных новых задач хватает =)

Теперь я расскажу о своем первой опыте (Арсентьев Петр, опыт работы 10 лет).

Первые задачи касались исправления багов. Обычно это мелкие ошибки на стороне front-end связанные, либо с неверных отображением на JSP или данные загружались с ошибкой в контроллере. Львиную долю времени приходилось сидеть в debug режиме, чтобы найти, в чем проблема. Так же начальник говорил, что если что-то не понятно ищи в google. Причем вся информация была только на английском, поэтому уровень английского пришлось подтянуть. Было много задач с технологиями, про которые я слышал в первый раз. Много задач касались интеграции со сторонними система. Разворачивать их проще всего было в Linux среде. Я помню задачу про импорт данных из active directory. Чтобы настроить это приложение, нужно было поставить windows 2003 или любой дистрибьютив Linux. Причем на Linux AD разворачивался одной командой, это очень удобно по сравнению с конфигурированием Windows. Основной навык, который я прокачал на первой работе был навык поиска информации и умение применить ее в проекте. Так же, часть задач касались SQL. В целом сложилось впечатления, что кроме Java нужно еще знать много сопутствующих технологий.

Как искать Java-разработчика: пособие для начинающих

Я занимаюсь подбором ИТ-специалистов более 7 лет, за это время я получила обширную экспертизу в этой области. Думаю, данный материал будет интересен как рекрутерам с опытом работы с данными специалистами, так и тем, кто только знакомится с миром ИТ, поэтому информацию постараюсь дать максимально просто.

При подборе Java-программиста, как и любого другого айтишника, нужно учитывать специфику данной сферы. IT-специалисты могут изначально показаться необщительными, крайне прагматичными и заносчивыми особами на контрасте с кандидатами с другой специализацией, но в целом, если хорошо изучить рынок, его особенности и на базовом уровне иметь понятие о технологиях, перед вами откроется очень интересный и разнообразный мир.

Java-программист или Java-разработчик (не путать с JavaScript) занимается разработкой программного обеспечения (ПО) обычно в команде программистов. Написанный программный код программист сохраняет в специальном хранилище, которое называется системой контроля версий (Git и тп) . Кроме того, он должен исправлять свои ошибки в написанном коде, уведомление о которых поступает ему от тестировщиков.

Хороший программист (если мы нанимаем специалиста с опытом) имеет знания и практический опыт в технологиях Java, пишет качественный код, допускает не критичное количество ошибок, постоянно в курсе новых технологий и методов разработки, потому что он непрерывно занимается самообразованием.

Основная проблема оценки любого программиста в том, что профессиональные навыки кандидата не могут быть проверены рекрутером, это оценивается техническим специалистом.

Особенности:

  1. Айтишники в основном более интровертны и обычно любят говорить по делу. Предпочитают общаться по электронной почте и не любят, когда им звонят. Отчасти потому, что квалицированному специалисту постоянно названивают рекрутеры и отвлекают от работы, отчасти потому что они лучше воспринимают информацию и гораздо эффективнее общаются по переписке.
  2. Программист обычно сосредоточен на конкретной задаче, над которой он работает не отвлекаясь.
  3. Уровень интеллекта у айтишников в среднем достаточно высок, так как они получили хорошее математическое образование.
  4. Айтишники любят более неформальное общение и неформальный подход к работе.
  5. Они в основном совы и предпочитают работать с 11:00. Также многие достаточно свободолюбивы, не любят дресс-код итд. В таких условиях они обычно достигают лучших результатов.

1. Какова ситуация спроса и предложения на кадровом рынке по этой вакансии, что важно знать о компании, вакансии и условиях работы, чтобы выполнить задачу корректно и в срок, о чем важно спросить работодателя.

На рынке ИТ, в том числе и Java-разработчиков, даже в кризис правила игры определяет соискатель. Предложений достаточно для того, чтобы средний кандидат мог найти работу за 1-2 недели, выбирая между несколькими предложениями о работе. В среднем, на одну вакансию в сфере ИТ претендует 3 кандидата (из исследования hh.ru). Тем не менее, Java не является редкой технологией, эта платформа достаточно популярна у программистов, поэтому найти нужное количество кандидатов для собеседования возможно, но потока по этой вакансии у вас не будет.

При снятиии потребности у заказчика (работодателя) необходимо сразу получить полное описание вакансии, так как составить её самостоятельно без технических знаний в данной сфере рекрутер не сможет.

Обычно требования к джависту состоят из следующих блоков:

– Требование к образованию – чаще всего необходим кандидат с высшим техническим образованием.

– Знание и опыт коммерческой разработки на языке Java (не менее определённого количества лет), то есть студенческие и личные проекты работодателя не интересует.

– Часто указывается знание паттернов проектирования, но не всегда. Обычно успешный разработчик их знает и умеет применять.

– Знание определённого набора фреймворков (Hibernate, Spring итп.) и библиотек (например, JQuery). В каждой компании они требуются свои. Важно в этом пункте сразу уточнить у работодателя, что является обязательным, а что будет плюсом.

– Знание баз данных, например – MS SQL, Oracle и так далее.

– Владение английским языком требуется часто, но не всегда. Обычно, хороший программист постоянно читает много книг по нужным технологиям, в том числе на английском, поэтому так или иначе владеет языком на уровне чтения технической литературы.

– Наличие сертификатов по технологиям Java и другим – требуется редко. Сертификаты в данной сфере не показатель профессионализма, более того, если кандидат в первую очередь хвастается ими, а не своим опытом и знаниями, это обычно тревожный звоночек.

Обязательно уточните у работодателя следующее:

  1. Какой график предусмотрен для кандидата, есть ли переработки, имеется ли возможность график сдвигать?
  2. Присутствует ли дресс-код и насколько строгий?
  3. Где будет располагаться рабочее место кандидата, будет ли это опен спейс или в компании кабинетная система, будет ли он находиться среди коллег-айтишников или среди коллег из других подразделений?
  4. В вопросе компенсации важно иметь четкое представление, что есть оклад, что есть премия и бонусы, белая ли зарплата.
  5. Обязательно узнать обо всех аспектах соц. пакета, он обычно у айтишников очень широкий: кроме ДМС это может быть компенсация фитнеса, бесплатная столовая, 100% оплата больничного, и даже игровые приставки в офисе.
  6. На каком проекте или каких проектах будет работать данный сотрудник, сколько человек в команде, и вообще, лучше честно и прямо спросить: «Чем эта вакансия может заинтересовать кандидата, что мы можем рассказать кандидату, чтобы он загорелся». Это очень хороший вопрос, и адекватный нанимающий менеджер охотно расскажет про все преимущества.
  7. Подразумевается ли профессиональный и карьерный рост на данной позиции?
  8. Какие знания и навыки из описания вакансии обязательные (без которых резюме не будут смотреть) и какие желательные. Например, «знание Java – от 2 лет опыта работы и знание Spring.MVC – обязательно”. Уточните у заказчика, может ли кандидат не указать каких-то из этих ключевых слов в резюме.

2. Как представлять вакансию соискателям (нюансы и правила создания презентации вакансии).

Здесь нужно исходить их трёх основных мотиваторов айтишника:

  1. Интересные проекты.
  2. Технологии, с которыми он будет работать (например, ему уже надоела та платформа, на которой у него большой опыт, но ему очень хочется работать только с Java).
  3. Повышение своего дохода. Этот пункт может быть заменен на комфортность работы (дорога до офиса, удобство графика, наличие столовой, хорошего места для питания, парковки) или команду (насколько хороший микроклимат в команде и насколько она профессиональная).

В описании вакансии для публикации на ресурсах и в соц сетях обязательно хорошо распишите условия, избегайте казённых и шаблонных фраз. В заголовке достаточно написать «Программист Java” или “Ведущий Java-разработчик».

Составьте шаблон письма кандидату, где вы представляетесь, сообщаете, что у вас есть позиция и сразу пишите, что это Java-программист, далее описание вакансии и информация о компании. И, конечно, здесь распишите все преимущества компании, вакансии и проекта, которые вы ранее получили у заказчика (см. выше).

Кандидату лучше сначала высылать письмо, и потом звонить: “Я высылала вам письмо с вакансией” работает лучше, чем внезапный звонок.

Вакансию лучше подавать с позиции технологий, проекта, компании (чем она занимается, если можно назвать имя, обязательно озвучить его). Кандидат может попросить подумать, договоритесь о том, когда вы ему перезвоните.

3. Где размещаться (источники поиска, в том числе специальные и нетривиальные).

По статистике всё-таки больше кандидатов на Java находится на hh.ru, а лучшие приходят по рекомендации коллег-программистов.

Источники:

  1. hh.ru (и активный , и пассивный поиск).
  2. LinkedIn (лучше заранее работать над своей сетью контактов в тех сферах, где вы ищете и будете искать людей).
  3. Рекомендации других сотрудников-айтишников.
  4. Профессиональные форумы sql.ru и rsdn.ru, vingrad. Периодически появляются новые, теряют актуальность старые. Поэтому постоянно ищите новые ресурсы.
  5. Другие источники: ITMozg, Brainstorage, Programmersforum, Javatalks, Github.
  6. Facebook, Twitter, Вконтакте, жж-сообщества по программированию.
  7. Корпоративный сайт компании или агентства.

4. Стратегия поиска (отклики, активный обзвон, соцсети, объявления и т.д.).

1. Размещение вакансии на hh.ru, сбор откликов и активный поиск.

Для эффективного поиска лучше создать автопоиск на основании ключевых слов, которые соответствуют обязательным требованиям заказчика, например если это опыт в Java и фреймворк Hibernate, наш запрос будет выглядеть как

Java and Hibernate

Количество лет опыта мы будем определять уже по резюме.

2. Публикация объявления о вакансии со ссылкой на описание в соцсетях и на LinkedIn. В зависимости от соцсети преамбула может быть более или менее формальной и должна быть привлекательной и интересной. Попросите своих знакомых сделать репост ваших публикаций.

3. Публикация объявления на профессиональных форумах. Обязательно сначала прочитайте правила форума и раздела «Работа» или «Вакансии». За невыполнение требований вас забанят, а вакансию удалят. Например, на sql.ru публикацию нельзя редактировать, обязательно нужно указать оклад, название компании или агентства и город.

5. Как проводить первичный отбор по телефону (важные правила переговоров и критерии отбора).

По телефону первичный отсев не требуется, за исключением случаев, когда вам еще на телефонном этапе важно прояснить какие-либо мотивационные моменты и отсеять кандидата, если его ожидания не соответствуют возможностям заказчика.

Также, ваша задача – максимально дружелюбно и лаконично передать основную информацию, чтобы привлечь кандидата и чтобы он согласился на встречу. Хорошо, если у вас на первом очном интервью сразу будет присутствовать технический специалист, обязательно в таком случае упоминайте, что интервью будет техническое. К HR-интервью и агентствам айтишники относятся с осторожностью и некой опаской, это факт.

6. Особенности очного общения и оценки кандидатов.

Для айтишников не рекомендуется использование психологических тестов, так как они во-первых, показывают свою невалидность, во-вторых, в данном сегменте рынка труда психологические тесты и вопросы могут вызвать негативную реакцию.

В процесс оценки по желанию заказчика может включаться выполнение тестового задания или предоставление примеров программного кода разработчика.

Если вы подбираете кандидата в свою компанию, обычно HR-интервью совмещается с профессиональным (техническим) интервью, так как рекрутер лишь предоставляет информацию о компании, условиях работы, важных моментах (например, серая зарплата или переработки), выясняет для себя организационные моменты , оценивает мотивацию и адекватность кандидата. Профессионально оценить кандидата сможет только технический специалист.

Если вы подбираете Java-программиста для компании-заказчика, вам нужно будет развёрнутое интервью, чтобы собрать необходимую информацию для заказчика о кандидате.

В таком случае советую разработать таблицу со списком основных технологий по данной вакансии и столбцами: опыт работы (лет), количество проектов, уровень владения и опросить подробно о том, с чем кандидат работал, как он оценивает знания технологии, как много проектов сделал с использованием данной технологии.

Обязательно давайте обратную связь кандидату по телефону или по электронной почте в любом случае.

6. Подготовка кандидатов к интервью в компании.

Здесь нет никаких особенностей, кандидата необходимо снабдить всей необходимой информацией о компании и условиях работы, так как технари на эти вопросы не всегда могут ответить кандидату. Очень желательно рекрутеру присутствовать хотя бы на первом интервью с нанимающим менеджером и техническим специалистом, даже несмотря на то, что 90% того, что будет обсуждаться, не-технарю будет непонятно. Это даст вам возможность скорректировать свой поиск и лучше подобрать хорошего кандидата данному заказчику.

Цукерберг рекомендует:  Ооп - ООП в Turbo Pascal

Спасибо за внимание, я надеюсь, что поиск айтишника, если он вам предстоит, будет лёгким и интересным!

Путь развития Java разработчика.

В данной статье я хочу поговорить о пути развития Java разработчика с точки зрения карьерного роста.

Итак, для начала давайте поговорим об уровнях Java разработчика. В целом, вся лестница выглядит, примерно, так:

  • Интерн (Intern)
  • Младший разработчик (Java Junior)
  • Разработчик (Java Middle)
  • Старший разработчик (Senior)
  • Технический руководитель / Глава команды (Teach Lead / Team Lead)
  • Архитектор (Java Architect)

Поговорим о каждом из данных уровней отдельно.

Прежде всего, стоит отметить, что стэк технологий, который необходим (речь идёт об СНГ) Java разработчику для турдоустройства, примерно одинаков, не зависимо от уровня самоо программиста.

Квалификацию разработчика определяет именно глубина знаний этих технологий и умение их применять на практике.

Что же это за технологии?

  • Java Core
  • Java EE
  • Опыт работы с базами данных (SQL – обязательно, NoSQL – желательно)
  • Hibernate
  • Spring
  • Maven (иногда – Ant)
  • Знание ООП.
  • Методологии SCRUM и т.д.
  • Паттерны проектирования
  • JUnit
  • Log4J, Slf4J и т.д.
  • Git / SVN
  • HTML/CSS
  • JavaScript
  • Tomcat / JBoss

Интерн (Intern)

Интерн – это человек, который знает лишь основы языка программирования и, на достаточно низком уровне,стэк технологий.

Его главное отличие – не способен самостоятельно решать реальные задачи. Такого человека нанимают, как говорится, “на вырост”.

Огромная проблема современного рынка труда IT состоит в том, что люди, которые имеют знания уровня Intern абсолютно уверены в том, что они, как минимум Junior, не понимая, как именно требования выдвигаются к джуниору.

У интерна нет стройной картины того, как технологии, которые он изучает, взаимодействуют друг с другом, да и сами эти технологии он знает лишь поверхностно.

Чаще всего, интерн слабо ориентируется даже в Java Core и не знает ключевых методов, котрые используются “в продакшене”.

На собеседованиях, такие люди, зачастую, не могут назвать методов класса Object.

  • Грамотное изучение фреймворков.
  • Создание простых, чаще всего, не коммерческих приложений для тренировки.
  • Изучение технологий, которые используются в проекте.
  • Заполнение пробелов в знаниях.
  • Воспитать Java Junior’а за 3-6 месяцев и “полуфабриката”
  • Потратить минимум денег на обучение специалиста
    Интерны, как правило, не получают оплаты, а если и получают, то она находится на уровне стипендии студента.
    Интерн не приносит доход компании, она вкладывает деньги в разработчика и инвестирует в будущее.
  • Потратить минимум времени своих специалистов
    Интерны задают вопросы. Задают много вопросов. Именно поэтому, компании набирают самых расторопных, чтобы эти вопросы были “по существу”. Один интерн занимает, примерно от 1 до 3 часов работы хорошего специалиста в день.


  • Стать Java Junior
  • Получить практический опыт работы в проекте серьёзного уровня.
  • Получить предложение о работе.

Младший разработчик (Java Junior)

Младший разработчик, в народе именуемый джуном является специалистом, который способен самостоятельно решать мелкие задачи. Написать класс, исправить мелкий баг и т.д.

Джуниор знает такие же технологии, что и “мидл”, отличие лишь в глубине понимания и в практическом опыте. И, что самое главное, он уже приносит прибыль компании.

Младший специалист, хоть и пишет код, но он не несёт ответсвенности, если в результате работы этого кода что-то пойдёт не так. Его код обязательно просматривается более опытными коллегами по цеху.

Junior, также, не отвечает за сроки выполнения задачи.

Его необходимо постоянно контроллировать. Как в плане кода, так и в плане времени. Минусом для компании является то, что хороший “джун” задаёт много вопросов тем самым отнимая время у других разработчиков.

  • Создание простых классов.
  • Добавление нового поля в форму.
  • Исправить некорректное отобрадение чего-либо.
  • Добавить уже имеющийся функционал в другое место.
  • Исправление небольших багов.
  • Возложить на специалиста выполнение рутинных и простых задач для того, чтобы освободить более квалифицированных программистов.
  • Экономия бюджета проекта.
  • Постараться как можно дольше оставить человека в компании, чтобы получть полноценного разработчика уровня “мидл”.

Цели младшего разработчика

  • Получить опыт работы в реальном коммерческом проекте.
  • Научиться работать в команде разработчиков.
  • Учиться работать эффективно.
    Джуниоры могут писать рабочий код, но этот код работает не эффективно. Задача же младшего специалиста – научиться находить не только рабочие, а именно эффективные решения, которые будут простыми в поддержке.

Разработчик (Java Middle)

С этого уровня и начинается разработчик с большой буквы “Р”. Это уже не подмастерье, а начинающий мастер. Он способен решать реальные задачи, решать их эффективно и быстро. На плечах мидлов и стоит IT.

Этот человек уже несёт отвестственность за свой код и за сроки. Мидлы могут привлекаться для тестирования системы.

Чтобы описать разработчика в общем, можно сказать, что мидл – это разработчик, которые решает задачи средней сложности в средние сроки.

  • Работы на уровне модулей.
  • Написание функционала в соответсвии со спецификацией.
  • Покрытие проекта тестами.
  • Выполнение основной работы.
  • Прибыль.
  • Иметь в штате человека, который может эффективно решать поставленные задачи за адекватное время.
  • Углубить собственные знания используемых технологий.
  • Заполнить пробелы в знаниях.
  • Научиться активно и грамотно работать в команде.
  • “Вырасти” до уровня Senior разработчика.

Старший разработчик (Senior)

Если мидл – это специлист, который способен ращать задачи средней сложности, то Senior – это разработчик, который способен решать задачи любой сложности в рамках выбранной архитектуры проекта.

Он обязан в совершенстве знать все технологии, указанные в его резюме. Он обязан уметь эффективно работать в команде и предлагать эффекитвные решения проблем, которые возникают.

В случае, если “что-то пошло не так”, именно Senior’ ы должны взвалить на свои плечи основную работу и “тащить” проект.

Senior – это уже “мастер” своего дела.

  • Выполнение задач любой сложности.
  • Работы на уровне фреймворков.
  • Задавать темп работы команды.
  • Работа с клиентом.
  • Иметь специалиста, способного решать любые задачи в рамках проекта.
    если посмотреть на работу старшего разработчика, то мы увидим, что зачастую он пишет собственные фреймворки. Не совсем с нуля, но адаптирует имеющиеся технологии под конкретный проект.
  • Генерирование максимальной прибыли.
    Страшие разработчики приносят компании максимальную прибыль. Именно с этим и связано количество вакансий для Senior’ ов и их нехватка.

Цели старшего разработчика

  • В совершенстве освоить инструменты работы.
  • Найти наиболее выгодные условия для работы.
  • Решить куда идти дальше.
    С этого момента программист решает, хочет ли он дальше расти как специалист, либо идти в менеджмент (PM и т.д.).
  • “Расти выше”.

Технический руководитель / Глава команды (Teach Lead / Team Lead)

См. Старший разработчик + руководство командой.

Это человек, который лучше всех в команде знает используемые в проекте технологии. Он является заместителем Team Lead.

  • Написание спецификаций.
  • Организация работы команды.
  • Ответственность перед компанией за качество и сроки выполнения работы.

Цели технического руководителя

  • См. старший разработчик.
  • Иметь человека, который будет нести личную отвтетсвенность за сроки выполнения работы.

Архитектор (Java Architect)

Высшая ступень эволюции программиста. Как говорится, выше только небо.

Это человек, который решает как именно будет реализован проект и несёт личную ответственность за успех, либо провал проекта.

Он отвечает за технологии, которые будут применяться в проекте.

  • Создание архитектуры проекта в соотсветствии с требованиями.
  • Выбор наиболее подходящих для поставленных задач технологий.
  • Контроль за выполнением работы.
  • Иметь человека, который лично отвечает за успех, либо провал проекта.
  • Иметь грамотного специалиста, готового реализовать проект любой сложности.
  • Какие цели могут быть у арихтектора в плане профессионального роста – является загадкой

Надеюсь, эта статья была полезна для читателей и они получили примерное представление о том, каким путём может развиваться карьера разработчика.

Java junior developer кратчайший путь с нуля до реальной работы?

Приветствую сообщество Toster.ru!!
Пролог к вопросу(немного о себе): Мне 27 лет, жизнь так повернула что через 6 — 9 месяцев нужно будет искать работу, сфера в которой я работаю обмельчала и работать в ней далее самоубийству подобно, и да она не связана с IT как весь мой предыдущий опыт.

Как я сейчас учу Java: Читаю — «Шилдт Г. — Java 8. Полное руководство. 9-е издание (2015)», поглядываю на примеры кода в книге «Хорстманн К., Корнелл Г. — Java. Библиотека профессионала. Т1 — 2014» , смотрю видео на канале Golovach Courses. Иду по курсу javarush.ru но пока не понял насколько это эффективно т.к. решил продвинуться в теории по книге, чтобы потом закреплять все этим онлайн курсом.

Вопрос: Прошу старших товарищей дать рекомендацию по обучению на сейчас (скорректировать мою схему Выше), дать ссылки на вкусные ресурсы о которых я не знаю.
Но в основном подсказать что по Вашему мнению нужно изучить (с указанием литературы или ресурсов) чтобы в кратчайший срок дотянуть до устройства на работу.

  • Вопрос задан более трёх лет назад
  • 36583 просмотра

2 месяца как работаю разработчиком ))) желаю всем дойти до своей цели, на любые вопросы с радостью отвечу.

Перед прочтением поста прошу достать свой компас сейчас мы будем его настраивать или же решим что он все таки показывает в отличную от программирования сторону, дело в том что люди которые читают подобные статьи находятся в смятении, и прочитав очередную саксес стори пытаются замотивировать себя идти в этом направлении, это все понятно — я писал этот пост именно для вас, выше вы найдете предисторию чтобы все это “примерить на себя”, чего таить и я в свое время делал точно также, причем я больше мотивировал себя чем шел к цели.
Будучи разработчиком сейчас я вполне отдаю себе отчет что мог им и не стать, да у меня была цель, да были мотиваторы, но реально почти до самого конца я вел себя так как будто не хотел этого — чуть что давал слабину, расслаблялся и чуть-ли не забрасывал все это дело, года 2 я просто думал что выучу все сам и по факту вообще ничего не делал, уже будучи на курсах я держался в хвосте из — за чего постоянно был в авральном режим и чуть догонял костяк как тут-же сбавлял темп и отставал, вообще процесс обучения этому занятию переодически очень сильно вымораживает и тот самый фильтр который многие не проходят, я могу посоветовать тебе читатель иметь свою философию и подход к этому занятию, в итоге у тебя все равно все “поднимется” и “победится», советую читать и перечитывать tutorials.jenkov.com/software-as-career/learning-i. с правильным мировозрением все это преодолевается намного легче.
Внимание! Если вы хотите стать разработчиком, то уже сегодня примените весь ресурс что у вас есть. Хотите попробовать сами выучить все ? Вперед! но общайтесь активно с комьюнити, ходите на конференции, и пишите код, много кода, и главное пишите его правильно, посмотрите как устроены небольшие опенсорс проекты, почитайте про трехслоную архитектуру и дерзайте! Не получается ? или вы видите что темп черепаший, а уже начинает надоедать и руки опускаются ? ОК! все к этому приходят, вам нужен турбоБуст а это ментор или курсы.

Если Вы говорите себе что у вас нет денег то блин ребята это песня — займите, заработайте,
украдите — это вообще не проблема, когда вы устроитесь разработчиком Вам будут платить деньги и не маленьикие, все это окупится с полна. Если через пол года самообучения Вы выгялдите на собеседовании как полный идиот, то нужно срочно что то менять!

Ну если, вы и дальше ищите статьи и варианты выучить джаву за 21 день то просто перестаньте тратить свое время, это не ваше, увы и АХ!

Как это было — много писать не буду (а получилось в итоге много И ДАЖЕ ОЧЕНЬ), могу посоветовать статьи Стаса Лазенко на dou.com, там расписан путь (на ближайший 1 — 1.5 года), не нужно учить все что там есть от корки до корки, но в конце у вас должно быть свое приложение в моем случае это https://bitbucket.org/Mikeismynick/phonebook, там написаны инструменты которыми я пользовался, все что там перечислено это технологии которые активно используются в современной веб разработке, если и не придется работать с ними в итоге то знать о них и пощупать надо, и да там не весь список технолгий которые нужно изучать, вот то что я указывал в резюме,

Классические алгоритмы и структуры данных Java SE 7 ООП IO Collections Multithreading Concurrency Utilities JDBC JPA Hibernate(ниже написал что именно) Servlet JSP Spring Framework (IoC Container, JDBC, ORM, MVC) JavaScript jQuery Ajax JSON Twitter Bootstrap XML (DOM, SAX, StAX) JUnit Mockito IntelliJIDEA Git/Bitbucket Maven Tomcat MySQL

по хибернейту — нужно уметь поставить на проект, знать где конф файлы и как их настраивать, список аннотаций которые должны быть в проекте изложен в первый 7 — 8 главах референса, на проекте должны быть таблицы находящиеся в отношениях manyToOne oneToOne, manyToMany соответственно хибер должен все это покрывать, неплохо поработать через jdbc для начала чтобы понять а зачем вообще нужен хибер.

Приложение писалось 2 месяца (и не чисто писалось а с пробой технологий и перепиской на более современные с целью глубже понять как это современное работает под копотом и зачем оно в общем то нужно если и без него тоже можно написать рабочий вариант). Сразу скажу если хотите доучиться используйте весь доступный вам ресурс, не пускайте все на самотек со словами вот ща немного посижу и потом немного, вы просто потратите время, наймите ментора или идите на курсы в группу, самостоятельно учится конечно можно, но почти наверняка вы перегорите т.к. темп будет черепаший и вам будет казатся что вы этим плотно занимаетесь, а смысл в том что плотно это когда тебе снится java )) ( но вы в общем то и будете 90% времени учится самостоятельно даже на курсах и у ментора, т.к. программирование иначе никак не выучить).

Без ментора очень тяжело, оглядываясь могу сказать что выучить нужно много и желание учится часто будет пропадать тк. цель будет маячить где то там далеко, а процесс разработки переодически просто вымораживает особенно когда ты ищешь багу 6 часов а окозалось что просто где то по не внимательности пропустил самую тривиалную вещь.

Я лично учился в группе getJavaJob (собственно мне это здесь и посоветовали, поклон ребят !!), чистыми учился около 6-7 месяцев, работал очень плотно, 3-4 часа в день минимум, конечно не всегда так получалось но и в выхи и в праздники я тоже учился так что назвал средние цифры. ну и у всех голова и бэкграйнд разный, считаю что быстро схватывал, но отсутствие бэкграунда и посредственный англ очень тормозили меня. На курсы пришел прочитав 150 стр. из «полного руководства» Шилдта.

Цукерберг рекомендует:  Html - else {} срабатывает постоянно!! Подскажите плз)

Что до конкретных курсов то очень рекомендую попробовать, курс поделен на 2 части, первая длится 2 месяца и там учат java se (алгоритмы, структуры данных) паралельно прививают правильный стиль программирования и учат работать с инструментами разработки (idea, git, debugger). Ну и организатор курсов суров, если начинаешь тупить и отставать то он быстро тебя подрежет и ты престыженный будешь дальше пилить, пилить ))

Конечно не все так радужно реально я учился больше года т.к. выпадал из учебы, и депрессовал и плакал и богу молился чтобы он дал мне сил, хотя сам не верующий. Но в итоге преодолел и стал сильнее )) а гланое огонь в глаза и желание расти. Всем удачи ! )))

Кстати в slack сидит русскоязычное комьюнити канал называется 3monthjunior, заточенное как понятно из названия на подъем до джуна и трудоустройство ))) чуть не забыл, мега важно иметь людей которые буду подсказывать и толкать вперед

Состояние рынка junior java и первый проект

Добрый день.
Прошу знающих людей прояснить ситуацию на рынке junior java и помочь с выбором первого проекта.
О себе. Мне 27.
Образование магистратура ЛЭТИ, направление телекоммуникации. Работаю инженером по микрочипу. Живу в СПб
В апреле 2020 года понял что хочу изучить java и пойти по этому поприщу далее по жизни. Этот год (почти) обучения принес огромное удовольствие.
До этого дня смог изучить и закрепить следующее: SQL (норм), Maven (норм), Git (очень не много, т.к. времени уже не хватало, но суть и навыки работы есть), SVN и Spring (сейчас активно изучаю), Hibernate(основы), HTML/CSS (нормально понимаю), сервелаты (шаблоны основные), протокол HTTP с универа хорошо понимаю. Ну и само ООП норм понимаю. Вопросы на собеседование которые есть в интернете хорошо могу ответить. В моем понимании хорошо это значит передать суть без воды, зависаний «ээээ, нуууу, » , просто и по факту.
английский норм. сложные переговоры конечно не потяну, но и уровня «читаю, общаюсь со словарем, с людьми пока стесняюсь», тоже нет конечно.
Я планирую собственно увольняться в апреле/мае и искать работу juniora.

А вот теперь вопросы.
Первый.
Я открыл hh, вбил junior java и пришел в ужас. =(
Вакансий кот наплакал, и зарплаты 15-25 тысяч рублей. (Сейчас я получаю 60000, с премиями иногда 90000).
Я адекватно понимаю что зарплаты будут раза в два меньше на junior, чем у меня сейчас, примерно я расчитывал на 35-55 т.р. но 25?? у меня кошка треть за месяц съедает.
Люди скажите, что сейчас адекватно происходит на рынке, реально ли найти работу и КАК искать? как вы искали? просто в Питере же много компаний классных на эту тематику, неужели вакансий нет?
Спасибо.

Второй вопрос.
Изучив статьи в интернете на предмет что людям помогало при устройстве я заметил, что часто повторяется наличие опыта в каком либо проекте.
Сейчас у меня есть примерно 3-4 месяца в запасе, один из который будет свободен от работы в офисе. Подскажите пожалуйста за какой проект взяться? В интернете проектов раздолье и не хочется делать тот который после 3-4 месяцев даст слабый выхлоп.
На какой проект обратить внимание и на чем сосредоточить усилия чтобы получить максимум пользы, какие технологии он должен задействовать? можете название проекта, или примеры дать. Очень буду за помощь вам благодарен.=)

Как стать Java разработчиком? (Java Developer)

Как стать Java разработчиком? (Java Developer)

Курс программирования java от ITVDN.com и купон на 15% скидку «BCJBD1F»

Java обучение

Одна из лучших школ по программированию ITVDN предлагает курсы Java обучение

Java Developer – это программист, приоритетной задачей которого, является создание сложных систем для обработки данных (BigData). Как правило, java разработчики создают БС (сложные банковские системы), web приложения, на java пишут серверную часть (Back end), облачные хранилища данных.

В наше время, Java программисты (java developer) очень востребованы. Их опыт применяется в тех областях, где требуются проекты с многопользовательской обработкой данных. А также предъявляются очень высокие мерки требований к уровню безопасности. В обязанности Java программиста обычно входит:

  • разработка архитектуры приложения
  • разработка бизнес-логики приложения
  • поддержка и сопровождение проекта
  • написание технической документации

Java – это объектно ориентированный и строго типизированный язык. Его можно сравнить с C (си) подобным синтаксисом. А C (си) в свою очередь похож на C++ (cpp) и C# (C sharp). В тоже время, в языке Java есть как свои плюсы, так и минусы. Если помним, то Java-приложения для запуска использует специальную виртуальную машину, из за этого факта, приложения запускаются немного медленнее, по сравнению например с тем же C++, но этот минус легко превращается в плюс, когда виртуальная машина позволяет запускать приложения на windows или unix системах. Это дает независимость от платформы. Для Java написано огромное количество фреймворков, библиотек и это дает вам возможность разрабатывать собственные приложения быстрее.

Как правило, Java разработчик обладает уверенными знаниями в ООП (объектно-ориентированном программировании), он должен уметь писать читабельный код, который будет понятен другим программистам java и применять шаблоны проектирования, хорошо знать структуры данных, алгоритмы, так как это напрямую влияет на скорость работы приложения, ибо скорость выполнения итерации сильно зависит от применения эффективного алгоритма, java developer обязан знать базы данных (DB), что бы выполнять сложные запросы и выборки из нескольких таблиц. Под Java написано множество библиотек и фреймворков (Framework). И для того, что бы быстро разрабатывать приложения, не изобретая велосипед, нужно знать их не только на уровне любителя, но и понимать, как эти библиотеки и фреймворки устроены внутри.

Для легкого старта в изучении языка Java ITVDN рекомендует пройти курсы Java developer.

Знания для Java Junior [закрыт]

Есть ряд компаний которые занимаются разработкой мобильных приложений. В основном это интернет-магазины, приложения-каталоги и прочие приложения для бизнеса. Есть вариант туда устроится через n-ное время, но возник вопрос. Чтобы не порождать дискуссии и разные мнения хотелось бы узнать необходимый минимум для разработки такого приложения и какими инструментами пользуются программисты.

Думаю он(минимум) не такой разносторонний. Гугление дает слишком расплывчатый ответ.

Нужно ли знать Hibernate, Android Studio, сервлеты/апплеты и т.д. Если накидаете список что по Вашему мнению необходимо буду благодарен.

Закрыт по причине того, что необходимо переформулировать вопрос так, чтобы можно было дать объективно верный ответ участниками Kromster says support Monica, Алексей Шиманский, pavlofff, user181100, ЮрийСПб ♦ 5 июн ’17 в 10:46 .

Вопрос порождает бесконечные прения и дискуссии, основанные не на знаниях, а на мнениях. Для получения ответа перефразируйте ваш вопрос так, чтобы на него можно было дать однозначно правильный ответ, либо удалите вопрос вовсе. Если вопрос можно переформулировать согласно правилам, изложенным в справке, отредактируйте его.

1 ответ 1

Любой будущий программист должен уметь нагуглить FAQ вопросы (включая вопрос «Знания для Java Junior», естественно).

  1. Типы в Java , inboxing , outboxing , как примитивы друг в друга преобразуются.
  2. Коллекции, иерархия интерфейсов и реализаций, чем ArrayList «лучше» LinkedList . Обязательный вопрос по HashMap -ам, что такое хеш-функция, внутреннее устройство.
  3. Строки, циклы, управляющие структуры, что появилось в JDK 7 по сравнению с 6-й. На 8-ку еще мало кто перешел.
  4. Интерфейс, Абстрактный класс, 3 принципа ООП, несколько шаблонов проектирования.
  5. Servlet , JSP , JSTL , Tomcat или другой Servlet container , никуда не девается жизненный цикл и как это все работает.
  6. Advanced топики для джуна: системы контроля версий Git , Svn , системы сборок Maven , Gradle , Spring , Hibernate , Web-Service -ы (обычно REST ) — жирный плюс.
  7. Иногда чтобы завалить спрашивают про устройство памяти, что такое стек или куча, куда создаются объекты, зачем нужен garbage collection , параметры запуска JVM .
  8. Базовый SQL , подзапросы, что такое сущность->связь, спроектировать 2 таблички и выполнить по ним запросы. noSQL могут спросить.
  9. Базовый JS и CSS . HTML . Основные типы HTTP запросов, в чем их предназначение и отличие.
  10. JDBC , как это вручную создать connection , запихать statement , preparedstatement , вычитать данные в result-set , пробежаться по нему, закрыть connection .
  11. Как работает wait , notify , notify all , почему нельзя использовать sleep , как создать dead-lock , вокруг чего бывает синхронизация.
  12. Что такое static -методы и переменные.
  13. Потоки ввода вывода, базовые вещи, прочитать строку из консоли, какие бывают фильтры.
  14. Английский крайне важен для аутсорса.

Java — разработчик

Программирование и СУБД

Курсы Java

Курсы разработки мобильных приложений

Разработка мобильных приложений

Веб-программирование

Эту Дипломную программу
в нашем Центре успешно закончили
1657 человек!

Java – самый популярный и востребованный язык программирования. С помощью Java реализованы многие известные веб-проекты: Amazon, eBay, LinkedIn, Yahoo!; написано большинство андроид-приложений, этот язык используют для создания приложений многие банки и корпорации.

Среди всех программистов именно разработчики Java пользуются самым большим спросом – их зарплата на 30-40% выше, чем в среднем по рынку труда. Освоив Java, вы становитесь востребованным разработчиком, который может найти работу в компаниях-лидерах рынка в России и за рубежом. А это автоматически означает интересные проекты, возможность удаленной работы или переезда в другую страну, высокий оклад, соцпакет и другие «плюшки».

Хотите стать Java-разработчиком? Эта комплексная программа поможет вам овладеть профессией с самых азов и получить все необходимые для успешного трудоустройства навыки и знания.

Программа содержит 7 курсов и включает как обучение необходимым основам (основы программирования, решение алгоритмических задач, программирование на Си), так и непосредственно изучение Java до продвинутого уровня. Слушатели получат практические навыки написания программ и приложений и узнают о современных тенденциях в программировании.

Занятия ведут профессиональные разработчики с многолетним опытом. Они поделятся с вами лайфхаками профессии и помогут стать уверенным Java-разработчиком. Кроме того, вы получите максимум информации для сдачи сертификационного экзамена Java SE Programmer.

Программа курса соответствует требованиям профессионального стандарта «Программист».

После обучения выдается диплом центра с указанием профессии – Java-разработчик. Престижный документ станет подтверждением ваших знаний и навыков и поможет в трудоустройстве.

Начните карьеру в программировании с беспроигрышного варианта! Изучите Java в «Специалисте»!

Средняя зарплата программиста 100 000 рублей

50% программистов работают удаленно

Дипломная программа «Java-разработчик» включает в себя курсы:

Что такое дипломные программы в «Специалисте»:

  1. Очный или очно-заочный формат обучения.
  2. Инновационная методика с использованием современных технологий.
  3. При прохождении дипломной программы в формате очного обучения, Вам будет предоставлен доступ к записям онлайн-обучения для самостоятельной подготовки и закрепления учебного материала.
  4. При очно-заочном обучении – дистанционное обучение в удобном темпе по записям онлайн-обучения, 1 очная консультация в неделю по расписанию (не менее 1/3 от общего времени обучения).
  5. Оплата в рассрочку: первоначальный взнос – 25% от стоимости дипломной программы.
  6. Престижные документы об окончании: диплом о профессиональной переподготовке по окончании всей программы, сертификат Центра международного образца (если предусмотрен), международный сертификат вендора после каждого авторизованного курса.

Обучение в рассрочку для дипломных программ — это выгодно и удобно!

Не ломайте голову, где взять всю сумму на обучение по дипломной программе, у нас Вы можете оплачивать его частями. Мы предлагаем Вам рассрочку на оплату обучения!

Стоимость обучения (рублей)*

Курс может быть заказан согласно ФЗ-44, ФЗ-223 (закупка/аукцион/запрос котировок/конкурсные процедуры)
с 10:00 до 17:00 Вечер или Выходные
Стандартная цена
Очно-заочно Онлайн Записаться
Частные лица 146 090 146 090 102 890 146 090
Организации 161 390 161 390 113 890 161 390
Первый взнос (для частных лиц) 36 500 36 500 25 700 36 500
Очно Очно-заочное обучение Частные
лица Органи-
зации Частные
лица Органи-
зации Java — разработчик
Включает в себя 7 курсов:
367 171 930 146 090 189 930 161 390 163 300 102 890 180 400 113 890 Основы программирования и баз данных 36 Выбрать дату 7 990 9 990 4 990 5 990 Основы решения алгоритмических задач 24 Выбрать дату 8 990 9 990 4 990 5 990 Программирование на языке C (Си) 72 Выбрать дату 22 990 25 990 13 990 15 990 Java. Уровень 1. Основы программирования 60 Выбрать дату 26 990 27 990 15 990 16 990 Java. Уровень 2. Разработка клиент — серверных приложений 60 Выбрать дату 28 990 31 990 16 990 18 990 Java. Уровень 3. Разработка серверного программного обеспечения на Java Enterprise Edition 56 Выбрать дату 37 990 41 990 22 990 24 990 Разработка приложений с использованием SPRING и Spring MVC/REST 55 Выбрать дату

37 990 41 990 22 990 24 990

*«Цена от» — минимальная возможная цена на данный курс, зависит от формата, вида обучения, выбранного времени занятий и указана с учетом действующих акций и специальных предложений. Точную цену на конкретную группу Вы можете узнать по тел. +7 (495) 232-3216.

Для юридических лиц (организаций) указана минимальная цена, действующая при полной предоплате.

Документы об окончании

В зависимости от программы обучения выдаются следующие документы:

Диплом о профессиональной переподготовке по специальности

Cертификат международного образца

* Для получения удостоверения вам необходимо предоставить копию диплома о высшем или среднем профессиональном образовании.

По окончании каждого отдельного курса, входящего в Дипломную программу, в личном кабинете слушателя формируются электронные сертификаты об обучении по каждому отдельному курсу. По окончании обучения по Дипломной программе выпускнику выдается Диплом о профессиональной переподготовке установленного образца.

Обязательно уточняйте перед заключением договора, какой документ Вам будет выдан после окончания обучения!

Заказ добавлен в Корзину.

Для завершения оформления, пожалуйста, перейдите в Корзину!

Java–разработчик

Сможете создавать приложения для многопоточной распределённой обработки данных.

Создавать профессиональные серверные Java-приложения.

Длительность:

  • 26 академ. часов видео в записи;
  • 2 вебинара по 2 академ часа.

Даты: 26 августа — 27 сентября.

Темы в рамках курса:

  • Базовые синтаксические конструкции и операторы в Java;
  • Ссылочные типы данных и обработка ошибок;
  • Работа с массивами и строками;
  • Объектно-ориентированное программирование в Java;
  • Unit-тестирование;
  • Устройство платформы Java;
  • Сборка и упаковка Java-приложения;
  • Классы-контейнеры;
  • Исключения;
  • Работа с файлами.

Продолжительность:
34 вебинара по 2 академ часа.

Даты: 27 сентября — февраль 2020.

Темы в рамках курса:

  • Особенности работы виртуальной машины;
  • Принципы работы сборщика мусора: какие бывают и чем отличаются;
  • Контейнеры и алгоритмы;
  • QA и тестирование;
  • Проектирование;
  • Логирование;
  • Работа с СУБД: jdbc, Hibernate;
  • Многопоточность;
  • Сетевое взаимодействие приложений (NIO, Netty);
  • Проектная работа;
  • и т.д.

Продолжительность:
28 вебинаров по 2 академ часа.

Даты: февраль 2020 — август 2020.

Темы в рамках курса:

  • Конфигурирование Spring-приложений;
  • AOP, Spring AOP;
  • Spring Boot;
  • Работа с базами данных;
  • DAO на Spring JDBC
  • Основы ORM, JPA, Hibernate как провайдер JPA;
  • Разработка Web-приложений;
  • Spring Security: Архитектура;
  • Проектная работа;
  • и т.д.
Понравилась статья? Поделиться с друзьями:
Все языки программирования для начинающих