Источник habrahabr.ru

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

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

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

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

    Если вы студент учащийся на технической специальности, то предполагается, что вы знакомы как минимум с 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

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

    • Angular
    • Jquery/Ajax
    • HTML/ CSS
    • GULP

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

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

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

    • stackoverflow
    • toster
    • Iforum
    • cyberforum

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

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

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

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

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

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

    Вступай в сообщества ITmentor Вконтакте и Facebook

    Помогла статья? Оцените её!
    0 из 5. Общее количество голосов - 0
     

    You have no rights to post comments

    Дмитрий Крикунов

    Публикую статьи, обучающие курсы и новости по программированию: алгоритмам, языкам (С++, Java), параллельному программированию, паттернам и библиотекам (Qt, boost).