
История
Сейчас будет много мыла о том как долго я искал работу, как было тяжело и бла бла бла. Поэтому если не интересно листай вниз до советов). Где то 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 тоже не получалось попасть. Нехватало времени и бла бла бла. Короче, напридумывал себе отмазок) Я уже почти опустил руки. Но жизнь всегда вносит свои коррективы. И так вышло, что мне кровь из носу, но надо было поменять работу. Я на два месяца засел в книгах. Подтянул теорию и практику. Опять составил резюме и разослал. В стране сейчас не самые легкие времена. Поэтому было всего два собеседования. На крайнем меня попросили сделать еще тестовое задание, потом было техническое собеседование. И я наконец то получил предложение. Свершилось! И вот я уже вторую неделю работаю программистом. Поток информации просто колосальный. Сейчас я на испытательном сроке. По окончании его, я напишу еще одну статью. А теперь хотелось бы дать пару советов будущим программистам.
Советы
Не тратьте зря время. Учитесь в любом месте, в любое время дня и ночи. Читайте книги, смотрите лекции, решайте задачи. Не ленитесь. Я реально понимаю, если бы я не ленился, то работу бы нашел намного быстрее.
Учите английский.У меня английский чуть ниже среднего. Книжки читать могу, но в словарь посматриваю. Так вот я думал, что этого хватит. Читайте с самого начала книги в оригинале. Смотрите видео на английском. Если английский на низком уровне — подтягивайте.
Начните свой проект. Свой проект поможет Вам понять как работает J2EE. В проекте желательно использовать и web, базы данных, и многопоточность, и фреймворки.
Never give up! Не сдавайтесь. Я прошел около 20 собеседований. В одной конторе HR-ка рассказала о парне который к ним ходил 8 на собеседование и на 9тый его взяли.
Врать/Не врать о опыте работы. Это извечная тема для холиваров на форумах. Я пробовал и так, и сяк. Если указать, что нет опыта работы — количество собеседований падает где то 40-60%. Если указать, что есть — шанс пройти собеседование падает на 70-80%. Если все таки указываете — мой совет подготовтесь к тому, что вас будут спрашивать о технологиях, которые вы использовали на проекте. Надо очень хорошо разбираться в них.
Все ок!Будьте спокойными. Не нервничайте перед собеседование, и на нем.
Ходите на собеседования. Вы ничего не теряете. Если вы не прошли - спросите у того кто вас собеседовал о своих пробелах. Если были тесты - попросите листочек с заданиями взять домой (мне дали задания только 1 раз), или как только вышли из здания, сразу запишите по памяти задания которые не смогли решить. Собеседование укажет вам на ваши пробелы.
Что в идеале надо знать
Spring — мне помогла книга Спринг в действии. Кучу туториалов есть и на хабре и на других ресурсах.
Hibernate — книга из этой же серии Hibernate in action. Тоже уйму туториалов можно найти в инете как юзать спринг и хибернейт вместе.
JDBC — очень нужная штука. Я брал инфу тоже с гугла + лекция от Головача. Это первая. Всего их там 7 штук.
SQL — без него никуда. Вот отличный ресурс.
HTML&&CSS — вот неплохой ресурс (да простят меня Зепп и Компания за ссылки на чужие проекты =) ) Бесплатного курса вполне хватит — для старта.
JS — есть на codeacademy курс. Но курс не очень объемный. Рассказываются самые основы. Вот неплохая книга, да на английском. Да это очень хорошо) Там же можете найти другие интересующие Вас курсы.
Servlet — даже не знаю что подсказать. Книжек я по ним не читал. Все брал из все тех же туториалов.
TomCat — контейнер для сервлетов. Поднимает ваше веб-приложение. Все те же туториалы. Не поленитесь — запустите его с командной строки. Поэксперементируйте с настройками. Если вы его просто подключили к IDE и жмете кнопочку Run — вы не умеете с ним общаться).
Maven, Ant — это сборщики проектов. Maven, конечно, сейчас больше распространен. Но если вы поработаете и с Ant-ом это будет большой плюс. Инфу брал с тех же туториалов. На хабре куча туториалов по связкам Spring+Hibernate+TomCat+Maven/Ant.
Паттерны — не обязательно знать 23 паттерна от GOF (Gang of Four — Банда четырех.) 5-6 нужно знать. В принципе тех что идут на Javarush — достаточно.
Лекции Головача. Я просмотрел 1 курс Core и почти весь курс на Junior-a. Практически все пункты, которые я описал выше, есть в его лекциях. Да и Javarush частенько на него ссылается.
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ
Желаю успеха и дальнейшего карьерного роста!
Подскажите пожалуйста, у кого-нибудь еще есть проблемы с загрузкой страницы sql-ex.ru?
МООС с преподавателем из Стенфорда. На английском языке, без дедлайнов по выполнениям ДЗ, с «бумажкой» (statement of accomplishment) по выполнении 90% задач. Миникурс по реляционной алгебре прошел за 2-3 дня, SQL реально пройти за столько же (из-за занятости уже неделю прохожу).
Очень доступное изложение материала, теория по теме «что это, для чего и как работает» и практика по составлению сложных запросов.
Я себе в резюме и в linkedIn-е указал о прохождении как «дополнительное образование» ;)
Про сервлеты, контейнеры веб-приложений и все в том же духе можно почитать в книге Head First — Servlets & JSP. Мне эта книга дает неплохое представление о том, что и как в вебе происходит и уже позволила достойно ответить на пару-тройку вопросов на собеседовании.
Насчет трудоустройства — молодец! Вероятно, тоже скоро смогу подобный пост написать ;)
А каким образом ты рассылал резюме? в компании, которым требовались программисты или просто по всем работадателям, даже в те, которые не в поиске сотрудника? )
Мои поздравления, земляк, это действительно круто!
Про то, что нужно не забивать на джаву во время изучения других технологий можно выделить жирным шрифтом) А то я столкнулся с тем, что потерял сноровку. Так же вставать по утрам нужно со словами, «практика наше все» и абсолютно любую технологию надо тут же, после изучение использовать на каком то примере, лучше всего в своем же приложении.
Куда устроился?(Если не секрет ;) )
Почему все таки не получилось попасть на проект в ДжаваРаш??? ведь если было столько времени а также был волонтером, то как так?