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

История

Сейчас будет много мыла о том как долго я искал работу, как было тяжело и бла бла бла. Поэтому если не интересно листай вниз до советов). Где то 2.5 года назад я понял, что хочу что то поменять в своей жизни. На это было достаточно причин. Учился я на программиста, правда на заочке учился (C++, Delphi и то самые верха) . Были знания еще со школы — Pascal, Basic. И все. Чем черт не шутит, подумал я. И начал рыскать по форумам в поисках инфы. Выбор мой пал на Java. Начал читать книжки. Чего я только не читал. Thinking in Java, Java. The Complete Reference, Head First Java. Все это начиналось читаться. Первые две книги написаны в стиле справочника. И мне было очень тяжело их читать. А вот последняя мне понравилась. Написана легко, на, практически, понятном языке и есть картинки) Прочитал я ее. Но минус всех этих книг — отсутствие достаточного количества практических задач. И тут я натыкаюсь на этот пост — Я переучиваю людей на Java-программистов. Я благодарен судьбе за эту встречу) Я узнаю о джавараше. Тогда проект был еще сырой. Было реализовано уровней 10-15. Их я прошел достаточно быстро. Начал помогать людям в группе в ВК. Потом, спасибо hubert-у, меня взяли волонтером в "тех. поддержку". Помощь новичкам — стало моей работой) Иногда засиживался до поздней ночи, объясняя новичку что к чему. Эти объяснения тоже мне очень помогли. Объясняя, я сам лучше понимал материал и основы Java. Когда достиг 19 уровня первый раз пошел на собеседование. Почитал статьи на хабре и других ресурсах о собеседованиях, написал резюмеху и начал всем разсылать. После первого собеседования, я понял, что это было слишком опрометчиво искать работу) Да я знал основы ООП, коллекции, многопоточность, разницу между ArrayList и LinkedList. Но что такое TomCat, Maven, Servlet, JUnit даже не слышал. Я чуть подзабил. На JR не появлялись уровни, с чего начать изучение J2EE я не знал. Да и ленился попросту. Какое то время я просто отвечал на вопросы в группе ВК и в этом сообществе. Появились новые задания. Они были сложнее. Появились большие задачи. Я снова вернулся к Java. Я подошел к вопросу обучения более серьезно. Нашел пару знакомых программистов. Они мне помогли начать изучение J2EE. Начал учить JS, CSS, HTML, Servlet API, Spring, Hibernate, JDBC. Пытался делать что то дома. Где-то месяца через три опять составил резюме и начал ходить по собеседованиям. Прошел штук 10, но так и не получилось устроится. Где то нехватало знаний, где то наглости, где то слишком много приврал о опыте работы). Участвовал в Ua Web Challenge. Короче говоря, результаты были неутешительны. В реальные проекты от JR тоже не получалось попасть. Нехватало времени и бла бла бла. Короче, напридумывал себе отмазок) Я уже почти опустил руки. Но жизнь всегда вносит свои коррективы. И так вышло, что мне кровь из носу, но надо было поменять работу. Я на два месяца засел в книгах. Подтянул теорию и практику. Опять составил резюме и разослал. В стране сейчас не самые легкие времена. Поэтому было всего два собеседования. На крайнем меня попросили сделать еще тестовое задание, потом было техническое собеседование. И я наконец то получил предложение. Свершилось! И вот я уже вторую неделю работаю программистом. Поток информации просто колосальный. Сейчас я на испытательном сроке. По окончании его, я напишу еще одну статью. А теперь хотелось бы дать пару советов будущим программистам.

Советы

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

  2. Учите английский.У меня английский чуть ниже среднего. Книжки читать могу, но в словарь посматриваю. Так вот я думал, что этого хватит. Читайте с самого начала книги в оригинале. Смотрите видео на английском. Если английский на низком уровне — подтягивайте.

  3. Начните свой проект. Свой проект поможет Вам понять как работает J2EE. В проекте желательно использовать и web, базы данных, и многопоточность, и фреймворки.

  4. Never give up! Не сдавайтесь. Я прошел около 20 собеседований. В одной конторе HR-ка рассказала о парне который к ним ходил 8 на собеседование и на 9тый его взяли.

  5. Врать/Не врать о опыте работы. Это извечная тема для холиваров на форумах. Я пробовал и так, и сяк. Если указать, что нет опыта работы — количество собеседований падает где то 40-60%. Если указать, что есть — шанс пройти собеседование падает на 70-80%. Если все таки указываете — мой совет подготовтесь к тому, что вас будут спрашивать о технологиях, которые вы использовали на проекте. Надо очень хорошо разбираться в них.

  6. Все ок!Будьте спокойными. Не нервничайте перед собеседование, и на нем.

  7. Ходите на собеседования. Вы ничего не теряете. Если вы не прошли - спросите у того кто вас собеседовал о своих пробелах. Если были тесты - попросите листочек с заданиями взять домой (мне дали задания только 1 раз), или как только вышли из здания, сразу запишите по памяти задания которые не смогли решить. Собеседование укажет вам на ваши пробелы.

Что в идеале надо знать

  1. Spring — мне помогла книга Спринг в действии. Кучу туториалов есть и на хабре и на других ресурсах.

  2. Hibernate — книга из этой же серии Hibernate in action. Тоже уйму туториалов можно найти в инете как юзать спринг и хибернейт вместе.

  3. JDBC — очень нужная штука. Я брал инфу тоже с гугла + лекция от Головача. Это первая. Всего их там 7 штук.

  4. SQL — без него никуда. Вот отличный ресурс.

  5. HTML&&CSS — вот неплохой ресурс (да простят меня Зепп и Компания за ссылки на чужие проекты =) ) Бесплатного курса вполне хватит — для старта.

  6. JS — есть на codeacademy курс. Но курс не очень объемный. Рассказываются самые основы. Вот неплохая книга, да на английском. Да это очень хорошо) Там же можете найти другие интересующие Вас курсы.

  7. Servlet — даже не знаю что подсказать. Книжек я по ним не читал. Все брал из все тех же туториалов.

  8. TomCat — контейнер для сервлетов. Поднимает ваше веб-приложение. Все те же туториалы. Не поленитесь — запустите его с командной строки. Поэксперементируйте с настройками. Если вы его просто подключили к IDE и жмете кнопочку Run — вы не умеете с ним общаться).

  9. Maven, Ant — это сборщики проектов. Maven, конечно, сейчас больше распространен. Но если вы поработаете и с Ant-ом это будет большой плюс. Инфу брал с тех же туториалов. На хабре куча туториалов по связкам Spring+Hibernate+TomCat+Maven/Ant.

  10. Паттерны — не обязательно знать 23 паттерна от GOF (Gang of Four — Банда четырех.) 5-6 нужно знать. В принципе тех что идут на Javarush — достаточно.

  11. Лекции Головача. Я просмотрел 1 курс Core и почти весь курс на Junior-a. Практически все пункты, которые я описал выше, есть в его лекциях. Да и Javarush частенько на него ссылается.

Послесловие

Пока Вы перевариваете список советов, технологий и ресурсов, хочу Вас успокоить. Вы не зря на JR. Все эти технологии, без Java просто набор технологий. Java их объединяет в нечто большее. Она их объединяет в проекты. Такое количество разных технологий не должно Вас пугать. Это общий список. Где-то чего-то не будет, где-то будет что-то другое. Но это основной костяк. Продолжайте учить Java и параллельно изучайте другие технологии. Если получилось у такого лентяя как я, тогда и у Вас получится)

Спасибо JavaRush!

Хотелось бы сказать спасибо Зеппу и Компании за такой замечательный ресурс. Вы проделали огромный труд. Впереди как я понимаю — еще больше. Главный плюс — это практика. Без нее — любая теория не принесет особых результатов. Спасибо еще раз)