image

Этот вопрос, пожалуй, волнует многих людей, особенно выпускников ВУЗов. В данной статье я опишу, как и какими способами можно получить ваш первый оффер программиста. Я искала позицию java-developer, однако не думаю, что алгоритм поиска работы будет сильно отличаться в зависимости от выбранного вами языка программирования.

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

  1. Выбор языка программирования
  2. Усиленное чтение документации с последующим решением задачек, разбором примеров и чтение подходящих статей.
  3. Когда хоть какая-то база уже есть, следует придумать себе какой-нибудь несложный проект, в котором вы будете использовать все то, чему научились.
  4. Придумываем проект сложнее, параллельно не забываем о том, что надо изучать сопутствующие технологии.
  5. Желательно все это выкладывать на гит, чтобы в будущем работодатель видел, что процесс обучения у вас шел. О пользе гита я расскажу чуть ниже.
  6. Заведите себе друга программиста, который время от времени мог вам давать советы или менторить вас (это, конечно, кому как повезет). В целом, лучше не надеятся на чью-то помощь, а делать и развиваться самим.

Теперь каждый пункт подробнее


Выбор языка программирования


Если вы студент учащийся на технической специальности, то предполагается, что вы знакомы как минимум с 3-4 языками программирования и имеете примерное представление о том, чем хотите заниматься. Далее вам придется выбрать между тем, что вам нравится и тем, что будет приносить прибыль и большие перспективы. Например, если вам нравится Pascal, то скорее всего работу программиста на Pascal вам будет довольно тяжело найти, разве что в школе, учителем программирования. Соответственно зарплата у вас будет небольшая и перспективы роста довольно туманные(поправьте меня если это не так, я изучала Pascal только в школе и больше он мне ни где не встречался и я не слышала, чтобы на нем делались какие-либо масштабные проекты. Это всего лишь пример). Если вас такой вариант не устраивает то идем на сайт – TIOBE Index for July 2017 и смотрим какой самый популярный и прибыльный язык программирования и выбираем из них. Если то, что вам нравится совпадает с тем, что популярное и прибыльное – радуемся жизни и изучаем язык.

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

Усиленное чтение документации с последующим решением задачек, разбором примеров и чтением подходящих статей


Когда вы выбрали язык программирования, можно переходить к данному пункту. Повторюсь, поскольку я выбрала именно Java, на примере данного языка и буду описывать все способы.
Я купила книгу для изучения Java, автор Шилдт параллельно стала открывать javaDoc и читать его(документация по Java, да и вообще почти по каждому языку программирования, если это не 1С, как правило, на английском. Следовательно, желательно чтобы и по нему была хоть какая-то база). Параллельно решала задачки, смотрела туториалы на youtube(их полно! Много материала на каждую тему!) и делала мини-проекты. Я перешла с языка программирования PHP, я работала с ним примерно полтора года, соответственно программировать я хоть как-то могла и по этой причине ознакомление с Java прошло довольно быстро.

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

Онлайн курсы:

  • JavaRush — для самого начала довольно неплох.
  • Coursera — можно найти много курсов и не только по Java.
  • Codecademy — для самого начала пойдет.

Книги:


Видео туториалы:


На английском:

  • thenewboston — много интересных и полезных уроков
  • Derek Banas — разработка игра на Java

Cоздаем несложные проекты


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

  • транспонирование, умножение, сложение и другие операции с матрицами — Довольно полезно для понятия массивов и циклов.
  • Любые задачки на рекурсию, факториалы – поиграйтесь с работой функций.
  • Создание блокнота — потренируетесь работать с чтением и записью в файл.
  • Создание галереи фотографий – работа с фото.
  • Немного посложнее – сделайте чат, хотя бы однопоточный – попробуете сокеты и системы ввода и вывода.
  • Сделайте динамичный сайт на Spring с использованием БД. – попробуете CRUD операции.

Параллельно проходите тесты. Вот несколько сайтов на которых очень много различных тестов.

  • quizful — ну совсем много тестов и не только по Java
  • muliver — тесты по-проще
  • IT.MAIL.RU — объемный тест по Java

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


Если вам нравится создавать десктопные приложения – то это соответствующие технологии. У Java, для примера – JavaFX, swing. К этому всему добавляется знание баз данных как реляционных так и нереляционных. Самые популярные БД.

Создание “боевых" проектов


Итак, у вас уже есть неплохая база и можно переходить к данному пункту. Здесь, я думаю, тоже все понятно. Единственная рекомендация это быть активными и задавать вопросы на различных форумах. Вот список наиболее популярных:


Теперь опишу небольшой лайфхак как получить бесплатное обучение и небольшой опыт работы. Это различные стажировки, их много и они полезные. Стажировки, как правило, проводят большие компании, на стажировках вас обучают, вы делаете проект, вас менторят и на выходе вы получаете знания + опыт + опыт работы в комманде + проект. Стажировки, обычно, бесплатные, но вам и так платят бесплатным опытом работы и неплохим проектом. Если все у вас хорошо, то компании, при которых вы проходили стажировку могут предложить вам работу, однако не стоит на них полагаться, это лотерея, все зависит от того, к какому hr-менеджеру вы попадете, к какому техлиду, в каком он будет настроении. Причин брать вас или нет — тысячи и порой они очень абсурдны. На стажировку может попасть почти любой студент или выпускник, длительность стажировки примерно от 3 до 6 месяцев. Данный путь самый простой и, на мой взгляд, самый правильный. Если у вас не получилось и вам после стажировки не сделали оффер – не расстраивайтесь. Делайте дальше проекты и выкладывайте их на гит. Идти на следующую стажировку, если вы не студент 3-4 курса и особо не торопитесь устроиться на работу, смысла нет. Идите устраиваться на работу сейчас, а не тратьте время еще на одну стажировку, на которой вам может повезти а может и нет.

Список стажировок:


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


Cоставление резюме


Хорошим тоном считается писать резюме на английском языке. Английский — важен и нужен и, в IT-сфере рано или поздно вы с ним столкнетесь в полной мере. Работодателю важно чтобы вы в своем резюме максимально подробно описывали такие пункты как: где вы учились, что учили, что делали, какой с��едний балл(некоторым компаниям это тоже важно), какие технологии знаете, какие проекты делали, как обучались, владение иностранными языками, ваши цели, ССЫЛКИ на проекты(это повышает ценность вашего резюме в разы), если у вас есть публикации, то и на них тоже приводите ссылки. Почти везде используются системы контроля версий, именно по этой причине вам тоже лучше за ранее научиться использовать их. Это тоже повысит ценность вас как специалиста и сделает немного ценнее ваше резюме. Не бойтесь подробно описывать в вашем резюме проекты, в которых вы участвовали и технологии, которые вы использовали – это помогает рекрутерам понять, что у вас нет проблем с изложением своих мыслей (это тоже очень важно) и вы можете изъясняться так, чтобы другие вас понимали, а инженер, который вас будет интервьюировать будет понимать, что вы ориентируетесь в том, что использовали при создании того или иного проекта.

Дальнейшие шаги


Когда у вас есть небольшой опыт, база знаний, несколько рабочих проектов и нормально составленное резюме, смело начинайте рассылать его везде, где только можно. Не ждите, что звонки от рекрутеров посыпятся на вас на следующий день и не расстраивайтесь, если их мало. В конце концов, вы не техлид Oracle с опытом работы > 10 лет. Ходите на ВСЕ собеседования и решайте ВСЕ тз, даже если вы знаете, что не пойдете в эту компанию. Для вас это опыт и он довольно ценный. На собеседованиях обычно спрашивают стандартные вещи которые вы можете узнать здесь -> Вопросы для Java junior developer Вопросы самые банальные, за 2-3 недели, сидя с компом, можно легко подготовиться.

Свой первый оффер я получила после 3 недель поисков работы и после 8 собеседований. После каждого собеседования я прорешивала все задачки, на которых засыпалась и разбирала вопросы, которые мне были непонятны. Это очень полезно, так как вопросы обычно примерно похожие и с каждым разом вам будет все проще и вы будете чувствовать себя более уверенно. Также я наполняла гит проектами, что тоже повлияло на звонки и пришлашения, но об этом я писала уже выше. Я целенаправленно шла в большую иностранную компанию так как лично для меня то, что компания большая и иностранная — большой плюс. Не соглашайтесь на первый оффер, только если это не компания, в которую вы мечтали попасть. Если у вас есть первый оффер, второй и последующие получить гораздо проще и условия можно попросить себе гораздо лучше. Что и говорить, мой знакомый программист после третьего оффера повысил себе ЗП в два раза.

Суммарно, поиски работы заняли у меня около месяца, зато я нашла именно то, что искала. К моменту соглашения у меня было уже в запасе 4 оффера и я могла спокойно между ними выбирать. Я, на сколько это было подробно, описала весь путь от начала изучения языка программирования до получения оффера. Если у вас есть вопросы, задавайте. Не бойтесь быть активными, инициатива приветствуется, мало кому интересно работать с овощами…

P. S.: Я планирую написать цикл статей по Spring и его применении, включая Spring Security, Spring Boot, Hibernate и работу с различными форматами данных. Кому это интересно, напишите в комменты.