Этот вопрос, пожалуй, волнует многих людей, особенно выпускников ВУЗов. В данной статье я опишу, как и какими способами можно получить ваш первый оффер программиста. Я искала позицию java-developer, однако не думаю, что алгоритм поиска работы будет сильно отличаться в зависимости от выбранного вами языка программирования.
Прежде всего, подумать о своем будущем программиста, следует хотя бы за несколько месяцев до начала самих поисков. Алгоритм простой:
- Выбор языка программирования
- Усиленное чтение документации с последующим решением задачек, разбором примеров и чтение подходящих статей.
- Когда хоть какая-то база уже есть, следует придумать себе какой-нибудь несложный проект, в котором вы будете использовать все то, чему научились.
- Придумываем проект сложнее, параллельно не забываем о том, что надо изучать сопутствующие технологии.
- Желательно все это выкладывать на гит, чтобы в будущем работодатель видел, что процесс обучения у вас шел. О пользе гита я расскажу чуть ниже.
- Заведите себе друга программиста, который время от времени мог вам давать советы или менторить вас (это, конечно, кому как повезет). В целом, лучше не надеятся на чью-то помощь, а делать и развиваться самим.
Теперь каждый пункт подробнее
Выбор языка программирования
Если вы студент учащийся на технической специальности, то предполагается, что вы знакомы как минимум с 3-4 языками программирования и имеете примерное представление о том, чем хотите заниматься. Далее вам придется выбрать между тем, что вам нравится и тем, что будет приносить прибыль и большие перспективы. Например, если вам нравится Pascal, то скорее всего работу программиста на Pascal вам будет довольно тяжело найти, разве что в школе, учителем программирования. Соответственно зарплата у вас будет небольшая и перспективы роста довольно туманные(поправьте меня если это не так, я изучала Pascal только в школе и больше он мне ни где не встречался и я не слышала, чтобы на нем делались какие-либо масштабные проекты. Это всего лишь пример). Если вас такой вариант не устраивает то идем на сайт – TIOBE Index for July 2017 и смотрим какой самый популярный и прибыльный язык программирования и выбираем из них. Если то, что вам нравится совпадает с тем, что популярное и прибыльное – радуемся жизни и изучаем язык.
В случае если вы занимались всю жизнь, к примеру, маркетингом, и вдруг решили переключиться на программирование, то можете смело выбирать из того списка языков и начинать его изучать. В таком случае, конечно, вам придется потратить гораздо больше времени на изучение языка и сопутствующих с ним технологий ибо предполагается, что у вас есть хоть какая-нибудь университетская база.
Усиленное чтение документации с последующим решением задачек, разбором примеров и чтением подходящих статей
Когда вы выбрали язык программирования, можно переходить к данному пункту. Повторюсь, поскольку я выбрала именно Java, на примере данного языка и буду описывать все способы.
Я купила книгу для изучения Java, автор Шилдт параллельно стала открывать javaDoc и читать его(документация по Java, да и вообще почти по каждому языку программирования, если это не 1С, как правило, на английском. Следовательно, желательно чтобы и по нему была хоть какая-то база). Параллельно решала задачки, смотрела туториалы на youtube(их полно! Много материала на каждую тему!) и делала мини-проекты. Я перешла с языка программирования PHP, я работала с ним примерно полтора года, соответственно программировать я хоть как-то могла и по этой причине ознакомление с Java прошло довольно быстро.
На счет материалов по Java, привожу самые толковые, на мой взгляд туториалы, книги и курсы.
Онлайн курсы:
- JavaRush — для самого начала довольно неплох.
- Coursera — можно найти много курсов и не только по Java.
- Codecademy — для самого начала пойдет.
Книги:
- HeadFirst — говорят очень понятная книга.
- Полное руководство Java 8 — Шилдт класскика
- Философия Java — немного замудреная книга, хотя коллекции и многопоточность в ней отлично объясняются.
Видео туториалы:
- Туториал Романа Бровко — у него собраны несколько курсов (ООП, Начало Java, Spring и еще много всяких)
- Школа программирования — хорошо объясняются паттерны проектирования
- Технострим Mail.Ru Group — очень много годных курсов, включая САОД, БД и прочие.
На английском:
- 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 и работу с различными форматами данных. Кому это интересно, напишите в комменты.
Автор: Ksunka132