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 и работу с различными форматами данных. Кому это интересно, напишите в комменты.
Поделиться с друзьями
-->

Комментарии (77)


  1. Listrigon
    25.07.2017 23:00
    +6

    Если честно, то на мой взгляд статья из разряда капитан очевидность. С примерно таким же успехом можно написать статью «Как врачу получить свой первый оффер», в которой описать, что нужно учить, читать и постоянно узнавать предметную область.


    1. Ksunka132
      25.07.2017 23:49
      +4

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


      1. Listrigon
        26.07.2017 07:28

        которые только выпустились и которые не совсем понимают

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


        1. vkushnir
          27.07.2017 00:08
          +1

          Всё сугубо индивидуально, каждый смотрит по своим потребностям, возможностям и желаниям. У кого-то есть большое желание сперва закончить учёбу, а уже потом с полными силами броситься в работу, а не разрывать свой день на кусочки совмещая всё вместе (я не о себе, если что, сам с 3-ого курса уже на работе). Я не знаю, где Вы учились, но в моём университете от специалистов у студентов только надпись на корочке, а в поисках работы эта надпись им абсолютно никак не помогает…


        1. Femistoklov
          27.07.2017 10:45
          +1

          Когда студент выпускается он уже специалист
          Вы не из страны эльфов, случайно? Потому что с нашими безнадёжно устаревшими программами от министерства и нехваткой современных курсов в провинциальных университетах ваша фраза звучит довольно иронично.


          1. Free_ze
            27.07.2017 11:40

            Потому что с нашими безнадёжно устаревшими программами от министерства

            Чем же они настолько безнадежно устарели? С тех пор IP-сети стали иначе работать или красно-черные деревья по-другому балансируются?


            1. Femistoklov
              27.07.2017 13:38

              А что, протокола IP и красно-чёрных деревьев достаточно для того, чтобы стать специалистом?


              1. Free_ze
                27.07.2017 13:46
                +1

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


  1. g0rd1as
    25.07.2017 23:44

    Спасибо, некоторые ссылки утащил себе, хоть я и не разработчик. :)


  1. ru_vlad
    26.07.2017 00:26

    Ksunka132 спасибо вам!
    Как преподаватель могу сказать чем больше таких статей, тем лучше!
    Одно дело когда ты с кафедры такое говоришь и многие пропускают мимо ушей, а другое когда уже тот кто начал работать.


    1. Ksunka132
      26.07.2017 00:39
      +3

      Что удивительно, в нашем вузе нам о таких вещах не говорили. Я про гит узналала, когда диплом почти написала.
      Проблема в том, что много преподавателей старшей школы не вписываются в новые тенденции, от того и полное непонимание студентов на выходе что и как и куда вообще приткнуться. Хорошо, если от кафедры утроиться можно, а если нет? Я жалею, что такой статьи не было, когда я заканчивала бакалавриат. Это многое изменило бы.


      1. fkvf
        26.07.2017 12:57

        Вы программировали во время обучения? Я имею ввиду pet-projects.


    1. cry_san
      26.07.2017 09:51
      +1

      Вообще, если вы теоретик в программировании, то обучать студентов вам не стоит. ИМХО.
      Преподаватель просто обязан работать в данном направлении на практике. Как максимум — писать свой стартап.
      Многие вещи познаются именно в практике. Голая теория вам даст только минимальные основы.


      1. akryukov
        26.07.2017 10:30
        +5

        Реальность такова, что практики в программировании стоят довольно дорого и кроме денег просят ДМС со стоматологией, печеньки и диван на кафедре.
        Поэтому основная масса студентов учится у теоретиков, которые в своей основе — такие же бывшие студенты.


        1. Nakosika
          26.07.2017 21:16
          +1

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


          1. bano-notit
            27.07.2017 03:47

            Вот про рубануть правду-матку это точно. Такое может любой разработчик, не попавший на узкоспециализированную конференцию. Да и вообще, ИМХО, любой человек хочет щегольнуть перед другими, а в таких ситуациях это будет ещё и на пользу.


            1. akryukov
              27.07.2017 09:15

              Одно дело — приглашать "практика" на одноразовое мероприятие, где он щегольнет и на этом все закончится.
              И совсем другое — преподавать на постоянной основе. У работающего специалиста есть три "окна" для такой деятельности:


              • По субботам. Учебные заведения по субботам работают, а на основной работе обычно выходной.
              • Часов в 8 утра по будням. Возможно если рабочий день фактически начинается в 10-11.
              • Часов в 18 вечера. Если есть возможность стабильно уходить вечером.

              Учебные заведения были бы рады, если у них будет преподавать хороший специалист. Однако далеко не каждый специалист будет жертвовать личным комфортом, чтобы связываться с системой образования в общем и со студентами в частности.


              1. Nakosika
                27.07.2017 10:26

                Почти каждый хороший практик был студентом. Я бы точно не отказался немного попреподавать, (уже занимался таким но только для учебного комбината, уровень не тот, хотелось бы большего). На работе можно уладить, это не проблема. Зато потом можно говорить что вот я читал в вузе. Или вот наши сотрудники раз в месяц читают в вузе, и тп. Это и вузу хорошо, и студентам.


                1. akryukov
                  27.07.2017 12:17

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


                  1. Nakosika
                    27.07.2017 14:39
                    +1

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


              1. bano-notit
                30.07.2017 04:09

                Да, я бы честно говоря на постоянку не пошёл бы, потому что не считаю, что такой мероприятие должно быть на постоянной основе, потому что это должно пробуждать интерес к получению этой правды. Эта лекция же не должна проходить под таким названием "Методы и инструменты разработки в современном вебе", это скорее должно быть что-то типа "React и Ng для чайников: плюшки и капканы", это я из своей сферы пример взял. Оно должно пробудить антэрес, потому что всю практику не передать на одной встрече, да и зачем, если компании не проч нанять студентиков, работающих за еду/светлое будущее?


                Вот только есть один прикольчик… Студенты, которым это реально интересно, либо уже на фрилансе сидят, либо где-то работают на полставки, получают реальный практический опыт. Ну ближе там к 3-4 курсу.


      1. ru_vlad
        26.07.2017 10:37
        +1

        cry_san совершенно с вами согласен ) поэтому если вы хороший практик приезжайте и я вам передам свое рабочее место )
        Заодно познакомитесь с учебной программой и практикой обучения, в которой 5 учатся, а 10 "балду гоняют".


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


        1. cry_san
          27.07.2017 05:03

          Столько много вам написал, но комментарий не сохранился (((

          Вы опоздали — я уже преподаю.


        1. Nakosika
          27.07.2017 11:47

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


  1. lastrix
    26.07.2017 03:22
    +2

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


    1. Ksunka132
      26.07.2017 08:30
      +1

      Вы не опишите такой способ более подробно? Где и как искать такие проекты? Интересный совет, спасибо.


      1. IvanYashchuk
        26.07.2017 10:13

        Наверное самая популярная программа для студентов это Google Summer of Code. Учавствуешь в опенсорсе на сотню-другую часов, знакомишься с людьми, получаешь опыт и знания, и ещё платят к тому же.


      1. lastrix
        26.07.2017 13:55

        1. Выбираете любую понравившуюся вам тематику.
        2. Ищите любой проект, который хоть как-то соответствует вашим ожиданиям.
        3. В зависимости от амбиций:
          3.1 Переделываете часть проекта как вам нравится — разумеется ничего не получится, но опыта будет выше крыши, гендальф будет отдыхать в сторонке;
          3.2 Смотрите багтрекер проекта и исправляете баги.

        Как пример, было стремление разрабатывать игры, нашел игру freecol. Так как просто править баги мне наскучило — решил написать свой ИИ к нему, тот что был тогда — так себе, читер и не более того.
        Пока писал ИИ нашел несколько интересных багов в серверной части проекта, которые обычным способом найти нельзя, как пример: ИИ высаживал юнит с корабля, понимал, что это не его район и обратно юнит на корабль сажал. Согласно правилам игры так делать нельзя — очков движения не хватит у юнита, а вот сервер разрешал.
        ИИ я конечно же не закончил, но он один, сам по себе мог строить колонии и более менее существовать сам по себе. Вроде 1,5 месяца просидел над ним.
        И только через год у меня были методы оптимизации в институте, которые бы очень сильно помогли =(


    1. akryukov
      26.07.2017 10:14
      +1

      А не подскажете, в каких open-source проектах новичку в программировании вообще реально что то сделать?
      Новичком в данном контексте считать человека, который освоил основные фичи языка, но еще ни разу не участвовал в промышленной разработке.

      Просто такой совет я вижу довольно часто. Обычно (для java) при этом рекомендуются проекты вроде Apache commons, guava, Spring, Hadoop и другие общеизвестные фреймворки или проекты.
      Но с ними есть две проблемы:

      • Они слишком сложные для новичка. Чтобы сделать действительно полезный коммит в таком проекте, даже опытному разработчику нужно покурить его исходники недельку-другую. Вдобавок у них хитрая система версий. Причем это может быть сложнее чем «релизная на поддержке» и «экспериментальная на будущее». У новичка происходит шок от объема и запутанности.
      • В них существует бюрократия. Коммит, который сделает новичок, может не вписываться в общую архитектуру проекта и скорее всего будет просто отклонен или проигнорирован. Мержить имеют право вполне определенные лица, которых еще нужно поймать.

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


      1. vedenin1980
        26.07.2017 13:04

        У SO есть интересный проект под названием Open Source Advertising. Там разные Open Source проекты ищут программистов, можно выбрать нужный проект и спросить напрямую. Многим проектам нужны любые руки и они найдут работу даже для совсем новичков.


  1. Dmitry_5
    26.07.2017 07:30
    +3

    Вредные советы: 'Не бойтесь лить много «воды» в вашем резюме – это помогает рекрутерам понять, что у вас нет проблем с изложением своих мыслей (это тоже очень важно) и вы можете изъясняться так, чтобы другие вас понимали'


    Наоборот. Никто не будет читать резюме более одной страницы, если вы не идете на должность менеджера среднего звена и выше


    1. vkushnir
      27.07.2017 00:11

      Ну, по поводу «никто» я уж так категорически бы не был настроен, но в целом — согласен, иногда среди обилия воды трудно найти что-то действительно важное. С другой стороны и точка зрения автора вполне понятна. Можно совместить — самое главное на первой странице, а вода уж дальше. Кому нужна вода — найдёт, что искал; кому конкретика — ниже первой не пойдёт :)


  1. San_tit
    26.07.2017 07:43
    -6

    Лучшим первым шагом (для выпускника) будет подойти на кафедру и попросить работу. По рекомендации от преподавателя собеседование будет сильно короче и лояльнее. А поработав пару лет в условном НИИ будет уже и реальный опыт и все остальное.


    1. vedenin1980
      26.07.2017 13:13

      По рекомендации от преподавателя собеседование будет сильно короче и лояльнее. А поработав пару лет в условном НИИ будет уже и реальный опыт и все остальное.

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


      При том что в коммерческой фирме более-менее научат реальным вещам, а в НИИ будут давать те же лабораторки с требованиями "как-то работает, а на код пофиг".


      1. lastrix
        26.07.2017 14:01
        +2

        Покажется странным, но поработать в НИИ все же стоит. Что бы понимать, как не надо работать. Речь про организационные вопросы и попо-часы.
        Очень быстро сдувает все лишние и начинаешь понимать как должно работать предприятие. Особенно когда начнешь пытаться что-то менять и стараться, а все в мусор.
        Во всяком случае, если нет никаких менторов адекватных, которые в случае чего объяснят или дурь выбьют, коей во всякой голове достаточно.


        И нет, в коммерческой фирме более-менее не научат, а научишься. Нигде тебя особо учить не будут.


        1. vedenin1980
          26.07.2017 14:23

          Что бы понимать, как не надо работать. Речь про организационные вопросы и попо-часы.

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


          И нет, в коммерческой фирме более-менее не научат, а научишься. Нигде тебя особо учить не будут.

          Я учил многих в коммерческой фирме. Это обычно окупается, так как специалист вырастает во много раз быстрее. Так что сильно зависит от фирмы, в некоторых наоборот будут стараться чтобы не научился, потому что им нужны манкидевелоперы за копейки, а опытных разработчиков хватает.


          1. lastrix
            26.07.2017 15:06

            для начинающего программиста часто опасно "заразиться" ленью и разгильдяйством

            Обычно для этого нужна почва. Сами по себе люди не становятся лентяями и разгильдяями. Если с детства к аккуратности и трудолюбию приучили — избавится сложно.


            Я учил многих в коммерческой фирме. Это обычно окупается, так как специалист вырастает во много раз быстрее. Так что сильно зависит от фирмы, в некоторых наоборот будут стараться чтобы не научился, потому что им нужны манкидевелоперы за копейки, а опытных разработчиков хватает.

            Проблема в том, что единицы не задают общий формат. А надеяться на чудеса — опрометчиво.
            Манкидевелоперы обычно у не очень способных руководителей, коих более чем достаточно. А удержать опытного разработчика бывает сложно.
            Вот что бы точно опознавать этих "неспособных" руководителей — и нужно идти работать в НИИ на пару лет, лучше еще во время учебы на полставки — посмотреть на них в живую. Только не надо этого делать с устоявшимся мнением, что там все такие — цель понять как одних от других отделять. Будет ощущение, что потерял время, зато прививка на всю жизнь. С ходу этих "эффективных" будешь распознавать. Это не только куроводителей касается. Вообще всего спектра специальностей ИТ.
            А низкая зарплата только в масть в этом случае.


            А теперь попробуй в коммерции, когда работать приходится очень много, заниматься такой социальной инженерией. Долго протянешь? Зарплату тебе не за исследование фирмы дают.


            1. vedenin1980
              26.07.2017 17:25
              +1

              Будет ощущение, что потерял время, зато прививка на всю жизнь. С ходу этих "эффективных" будешь распознавать. Это не только куроводителей касается. Вообще всего спектра специальностей ИТ.
              А низкая зарплата только в масть в этом случае.

              Вы серьезно? А почему пару лет не побомжевать, тоже ведь в чем-то полезный опыт? Идти в "болото" на маленькую зарплату, чтобы научится определять "эффективных" определять? Нет, если жизнь бесконечна, то можно, конечно. Но лучше стараться попасть в нормальную фирму, а для опыта как делать не надо почитать умных книжек/статей.


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


              1. lastrix
                26.07.2017 18:24

                мне не помешало с зп в 30к перейти в коммерцию и зарабатывать 120к.


                Тут вопрос что ты делаешь в "болоте", тухнешь или пытаешься что-то изменить. Хотя бы себя.
                Но разумеется для каждого свое.


                И да, работал в этих предприятиях пока учился.
                И вы очень сильно ошибаетесь. Такие же "болота" и в коммерции бывают. Причем чаще, чем кажется и им для этого не нужны приставки "НИИ" или "НИЦ".
                Пока устраивался на новую работу повидался за 5 собеседований на эти зоопарки.


                1. vedenin1980
                  26.07.2017 18:56
                  +1

                  Бывают, конечно. Но зачем туда идти если есть возможность пойти в нормальную организацию? И нервы сохраняться, опыт сразу пойдет и по деньгам будет веселее. Гугл + голова зачастую помогает не пойти работать в болото.


                  мне не помешало с зп в 30к перейти в коммерцию и зарабатывать 120к.

                  Не думали, что могли начать зарабатывать 120k на пару лет раньше?


                  работал в этих предприятиях пока учился.

                  Ну пока учился можно хоть эникейщиком, хоть дворником в ИТ фирме работать, если других предложений нет (да студентов берут часто не охотно). Но вы предлагаете выпускнику идти целенаправлено в болото?


                  Это потеря времени, денег, карьеры, зачастую проблемы при попытке иммиграции, возможно невозможность завести семью и проблемы на личном фронте, проблемы с самоуважением (когда одноклассники работают в США в гугле, а ты сидишь в НИИ на копеечные зарплаты). Это все стоит опыта распознавания эффективных менеджеров (который все равно придет, только чуть позже)?


                  1. lastrix
                    26.07.2017 21:07

                    Бывают, конечно. Но зачем туда идти если есть возможность пойти в нормальную организацию? И нервы сохраняться, опыт сразу пойдет и по деньгам будет веселее. Гугл + голова зачастую помогает не пойти работать в болото.

                    Асоциальность и не туда затянуть может. Вы недооцениваете степень замкнутости людей и неспособность (нежелание?) понимать окружающих.


                    Не знаю никаких проблем с самоуважением. А рвать в гугл только ради престижа? Деньги? Иммигрировать? Личная жизнь? Вы о чем?


                    Ну пока учился можно хоть эникейщиком, хоть дворником в ИТ фирме работать, если других предложений нет (да студентов берут часто не охотно). Но вы предлагаете выпускнику идти целенаправлено в болото?

                    А зачем работать эникейщиком? Руки марать в пыли? К моменту поступления в институт я уже хорошо программировал. Лучше, чем 80% выпускников этого же ВУЗа. Но обучался-то один. Инет появился поздно. Книжка Попова по паскалю и дельфи-хелп + позже мсдн с msvs 2006-2008 где-то урвал. По ним и учился. Были еще книжки что-то в духе 50 приемов чего-то там от Майерса.


                    Маленькая зарплата — это так же и возможности. Просто взять и например послать начальника в пешее путешествие. Взять и сделать по своему… и еще и оказаться правым. Что бы управлять людьми не обязательно быть руководителем. Хотя по началу я себя очень скромно вел. Очень. Пока не начал понимать что к чему и как да почему.


                    Кому болото — трата времени и сил, а кому песочница, которую будешь крутить как захочешь (денег же не платят, а люди пассивны довольно, кроме слов и ругани ничего не сделают). Да — ненависти огребешь по полной. Но увольнять тебя принципиально не будут, причины же очевидны, напротив — с огромным трудом уволишься.
                    Зато поворошив это все поймешь как оно детально работает и почему (или наоборот почему не работает).


                    В гугле таких же болот хватает, только там ты будешь винтиком и система в целом сложнее, что бы ее изучать без подготовки. А то и вовсе никогда не поймешь как оно получилось именно так. И потерять можно не 1-2 года, а лет 10.
                    А прыгать с одной работы на другую, только потому что на новой больше предлагают? Иметь трудовую, забитую под завязку записями в 1 год? Зачем?
                    Я уже видел резюме людей, у которых 10 раз работа поменялась за 7 лет… Как жить-то, если ты сам болото?


                    1. vedenin1980
                      26.07.2017 22:49

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


                      В целом, вы правы, каждому свое. Не буду дальше спорить,


    1. Glays
      27.07.2017 23:07

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


  1. Krotghar
    26.07.2017 08:27

    Спасибо за статью) Буду очень рад почитать про Spring, так как в данный момент изучаю эту технологию


    1. AlexZaharow
      26.07.2017 20:14

      Простите за непрошеный совет. Поделюсь опытом, чтобы сократить вам время на изучение. Фреймворки не делают что-то такого, что не умеете делать вы. Просто каждый фреймворк заточен под конкретную задачу или класс задач. Если вы понимаете под что заточен фреймворк, то задайте себе вопрос, а как бы эту задачу решили бы вы? Удивитесь, но с таким подходом через некоторое время вы будете наперёд знать что должно быть во фреймворке и просто искать в нём соответствующие разделы. Конечно, не всегда ваше мнение будет соответствовать мнению разработчика в реализации, но архитектурные части вполне могут совпасть.
      Насколько я знаю, Spring достаточно большой фреймворк. Брался одно время за его изучение года 4 назад. И знаете что? Так и не пригодился )))


  1. oleg_gf
    26.07.2017 10:13
    +1

    А если усложнить задачу? Как получить первый оффер не симпатичной студентке из Питера, а сорокалетнему мужику из Мухосранска, решившему сменить профессию, при условии, что он не может бросить свою текущую работу?


    1. Ksunka132
      26.07.2017 10:18
      +1

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


      1. oleg_gf
        26.07.2017 10:51

        Мне интересно, насколько реально новичку получить оффер удалённо?


        1. Ksunka132
          26.07.2017 11:25

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


        1. paratagas
          26.07.2017 11:54

          Моя первая работа программистом была удаленной. Я жил в маленьком белорусском райцентре, где практически не было вакансий для программистов в офисе. Отправил резюме в компанию, находящуюся в ближайшем областном центре — Витебске. Прошел несколько собеседований. Проверяли английский (в 2 этапа — устно и перевод технической документации), знание общих технических вопросов для стека PHP. Потом дали тестовое задание — написать модуль для Drupal — с которым я справился. В итоге я получил оффер и работал удаленно (оформление было официальное, все по ТК). Другое дело, что, начав работать, я столкнулся с кучей трудностей: новые проекты и технологии, а опыта пока практически нет. И если в офисе можно аккуратно подойти к коллеге, взять за пуговку, попросить помочь и получить эту помощь, то удаленно добиться этого от занятого коллеги-разработчика, которого мельком видел при оформлении договора, не так то просто. Под помощью я понимаю здесь в первую очередь нюансы крупного уже несколько лет работающего проекта, а не особенности языков и фреймворков, которые можно найти в доке или на Stackoverflow. В итоге через некоторое время я переехал в другой город именно для того, чтобы работать в офисе. Сравнив оба способа работы, я сделал вывод, что в моем случае профессиоанальный рост в качестве разработчика проходил в офисе гораздо более быстрыми темпами, чем когда я работал удаленно.


          1. oleg_gf
            26.07.2017 13:39

            Спасибо за развёрнутый ответ. Правильно ли я понял, что собеседования были очными?
            И такой вопрос — насколько мессенджеры типа Скайпа могут компенсировать недостаток общения с коллегами?


            1. paratagas
              26.07.2017 13:53

              Все собеседования были по Скайпу (видео и голос). Хотя я был готов приехать и на очное собеседование. Мессенджеры а также всякие «расшариватели» экранов достаточно эффективно помогают организовать рабочий процесс. Но это при условии желания всех сторон участвовать в этом рабочем процессе. Что касается неформальной стороны, то мне кажется, что стать частью коллектива с помощью только лишь удаленных средств достаточно сложно. Мне помогали периодические (2-3 раза в месяц) выезды для работы в офисе и более близкого общения с коллегами и начальством.


    1. g0rd1as
      26.07.2017 22:06

      Кстати, очень актуальный вопрос. :) Можно еще усложнить: если ты имеешь гуманитарное образование и примерно такой же склад ума, но дрейфуешь потихоньку в технари. :)


  1. Anton23
    26.07.2017 10:13

    Да, пишите про Spring.


  1. cssman
    26.07.2017 10:19

    Я целенаправленно шла в большую иностранную компанию так как лично для меня то, что компания большая и иностранная — большой плюс.


    У Вас была какая то тактика и вы её придерживались…

    А в чём плюс, если не секрет?


    1. Ksunka132
      26.07.2017 10:26

      Лично для меня плюс именно в том, что возможен релокейшн в те же самые штаты. Как правило, в таких компаниях работают бОльшие профессионалы, от которых можно многому научиться. Для меня также плюсом являются командировки в штаты, сами условия, обычно, лучше(компенсации, курсы, постоянные курсы повышения квалификации, пересмотр зп раз в месяц-два). Ну и сам подход к работнику. Возможно, в наших компаниях тоже условия не хуже, но пока я не встречала + все наши толковые преподаватели с кафедры, работают именно в таких компаниях и в наши идти желанием не горят.


      1. Listrigon
        26.07.2017 11:25
        +1

        Вы статью пишите для тех, кто мало что еще знает, мало что умеет и не знает как получить свой ПЕРВЫЙ офер(предложение) по работе. И тут же говорите о большой иностранной компании, где бОльшие специалисты, о релокейшене(переезде) в США. Как-то это два совершенно два разных уровня как по мне.


        1. alexeykuzmin0
          26.07.2017 14:30

          Как раз бОльшие специалисты очень важны для начала карьеры, чтобы быстрее и лучше всему научиться. Согласен, relocation получится не сразу, а года через 3, вряд ли раньше, но это не такой большой срок, чтобы на него не планировать.


  1. Free_ze
    26.07.2017 13:37
    +1

    Желательно все это выкладывать на гит

    На гитхаб, судя по контексту.


    1. mayerda
      26.07.2017 14:15

      Спасибо, теперь разобрался.


  1. DreadKnight
    26.07.2017 14:16
    +1

    1. Менторство — очень полезно.
    2. Pet — project, совершенно не обязательно для начала. Вполне сойдет образование, которое дает вуз
    3. GIT — аналогично.
    4. Настоятельно советую прочесать знакомых/знакомых родителей, которые могут устроить.
    5. В хорошем вузе — есть много различных вариантов стажировок через кафедру (там же делают курсовые), в самых разных компаниях. Через них — легко трудоустроится.
    6. Многие средние и крупные компании имеют программы по стажировке. Весь крупняк точно предлагает студентам работу за еду(20-30К) — это очень хорошая сделка для обеих сторон.
    7. Все это работает только при условии, что у вас голова настроена правильным образом. Если нет — то забудьте про программирование.


    1. vkushnir
      27.07.2017 00:13

      2. Это всё очень от вуза зависит. Мало какие вузы обновляют свои программы в ногу со временем. Для фронт енда, скажем, где сейчас преподают React или Angular? Даже jQuery не везде есть :)
      3. Аналогично с чем? Если с тем, что это не нужно — то такие привычки лучше вырабатывать сразу


      1. Free_ze
        27.07.2017 11:49

        Мало какие вузы обновляют свои программы в ногу со временем. Для фронт енда, скажем, где сейчас преподают React или Angular?

        Если будет так, как вы говорите(хотите), то диплом такого специалиста через 5 лет можно будет выбросить в помойку.


  1. menfromearth
    26.07.2017 15:27
    +2

    Расскажу свой опыт(и своих одногруппников, коллег и прочих сверстников).
    1) Поступайте в наилучший ВУЗ, на пределе своих возможностей. Благо в России образование бесплатное(для соотечественников и, насколько понимаю, граждан стран ЕАЭС), плюс сейчас есть ЕГЭ, и для поступления в топ ВУЗы достаточно собраться и выложиться по полной. Привыкайте — умение взять и решить (тут должна быть шутка про русское «умри, но сделай», которое более жестоко, чем «do or die») — это одно из важнейших умений в жизни.
    2) В специальностях нужна математика. Направления, где «компьютерно-программиисткие» вещи занимают больше 1/5 времени от математики — сразу нафиг, иначе (с высокой вероятностью) окажетесь на свалке истории лет через 10-20 (особенно с нынешнем развитием ИИ).
    3) Преподов теребите вопросами, читайте всё, что они рекомендуют и много что еще. Есть еще время — смотрите видеолекции по математике. Рекомендую первые два курса НМУ, в качестве лайт-версии можно видеолекции МФТИ, хотя, чем тяжелее в учении — тем легче в бою.
    4) Только на этом пункте приходим к алгоритмам. Если вам повезло и в ВУЗЕ читают нормальный курс по алгоритмам — отлично. К сожалению, я знаю подобных вузов не больше 10, так что тут нужно что-то делать. Самом популярное — олимпиады.
    5) Олимпиады же заставят научиться решать задачи понятно, и писать понятный и работающий код. Фактически, это мгновенный код ревью от сокомандников плюс тестирование корректности работы программы. Не случайно людей с «желтым» рейтингом codeforces и topcoder с руками отрывают в наукоемкие проекты, независимо от опыта работы.
    6) Гиты, паттерны, комментирование кода, приколы с жесткими наследованиями — в приципе, сложно пройти все предыдущие пункты и не узнать ничего про данные вещи, всё-таки в большинстве ВУЗов все с этим сталкиваются. В крайнем случае, можете посидеть пару выходных и поизучать самостоятельно — никакого рокет сайенс там нет.
    7) Место работы. Тут вопрос самостоятельности — рисковости. ИМХО, самое козырное — небольшая лаборатория с топовыми грантами в каком-нибудь НИИ или небольшой исследовательский отдел в российской компании с госзаказами(как правило, от Министерства Образования, но, также, может быть интересный проект для Министерства Обороны) либо заказами у крупных международных фирм. В подобном месте скорость роста как личностного, так и зарплатного ограничивается только собственными силами. Но это сложно, надо понимать, что конкуренцию вам составляет большая часть топ-10% выпускников России (объективный ректинг по олимпиадам, это 30-50% топового научного потенциала в мире) — так что можно и забуксовать, переоценив свои силы, и оказаться ни с чем.
    Можно быть проще и пойти работать в крупную российскую компанию. Промежуточный вариант между НИИ и международными Гугло-Фейсбуками. Навскидку, Яндекс, Мэйлру, Вконтакте и т.д… Чуть больше уверенность в завтрашнем дне, чуть медленнее рост, чуть больше бюрократии.
    Далее, можно быть совсем неуверенным в себе и очутиться в условном «Гугле». Еще больше стабильности, еще больше бюрократии и «забивания гвоздей», отношение «я начальньник — ты дурак»(естественно, вежливое, но неукоснительное, т.к. твой уровень ниже, просто по табели о рангах внутри компании). Вернуться обратно в топовый проект может получиться только с потерей уровня. Но зато от тебя уже зависит не так много, можно больше времени и сил тратить не на саморазвитие а на «творческую самореализацию».


    1. oleg_gf
      26.07.2017 16:43

      Небольшая ремарка — всё это если в запасе есть годы.


      1. alexeykuzmin0
        26.07.2017 16:50

        А если нет?


        1. oleg_gf
          26.07.2017 19:26

          Тогда JavaScript и PHP.


  1. Zoberg
    26.07.2017 16:21
    +2

    Достаточно спорное утверждение про "посмотри на список самых популярных языков и выбери первый". Думаю, что тут стоит больше покопаться в себе, посмотреть ДЛЯ ЧЕГО используют те или иные языки и выбрать интересную лично для себя предметную область.
    Навскидку (примеры, не 100% покрытие), Java ччаще используется в больших энтерпрайз проектах, банках, финансовых компаниях и в программирования под андроид. C в embedded разработке и системном программирования, C++ когда нужен производительный enterprise код, в разработке игр — зачастую это тоже могут себе позволить только большие компании.
    Не хочешь постоянно думать о мьютексах, многоточности и указателях — тебе в мир javascript. Хочешь быть на волне прогресса и писать крутые производительные веб-сервисы — выбирай Go.


    1. bano-notit
      27.07.2017 04:54

      Вот только нужно вот такой комментарий делать каждые 2 года, примерно. Ну чтобы соответствовать времени. Может в какой-то момент мобильные перейдут на ВебОСи и тогда js взлетит. Может веб потихоньку задохнётся и всё перейдёт в мобильные приложения. Конечно яву с плюсами не скоро заменят в их текущем сегменте, а вот на счёт скриптовых я бы так точно не говорил. Может завтра весь комитет es решит, что нужно уже сделать статическую типизацию или решит всё-же ввести модули, вместо единого DOM, тогда в js придуть указатели, "мьютексы" и вообще многопоточность.


      Это всё очень зависит от трендов, поэтому нужно так же брать в расчёт то, что через 3-4 года вся область твоей деятельности может повернуться на 180 градусов и ты опять останешься где-то позади.


      Всё же чем ближе к пользователю, тем больше подвержено трендами, а соответственно и изменчивости.


  1. werevolff
    26.07.2017 16:22

    Нужна статья: «как выпускнику перестать мечтать о карьере Pascal /Delphi программиста».


    1. Skerrigan
      28.07.2017 05:02

      Все хочу написать статью о автоматизации тестирования (не голая теория, а скорее «как собрать комбайн»). Но увы, «закрытый код». Надо как-то очень аккуратно написать статью, чтобы потом не прилетело.


      1. werevolff
        28.07.2017 06:58

        Закрытый код — в смысле, проект, на котором работает автоматическое тестирование — закрытый? Ничто же не мешает не включать исходники проекта в статью


        1. Skerrigan
          28.07.2017 08:21

          Ну да, сам проект, для которого АСТ написана, закрытый. Однако в виду сложности проекта (это одна из CMS/CRM) — автотесты так же очень сложные как сами по себе, так и весь комплекс в целом. И все это стоило ощутимых денег. Вот и засада — рассказать про то, как в эпоху еще до Selenide, был начат комплекс с Java+Js+PHP (от jQ до ORM (Hibernate), свой планировщик, хороший многоуровневый логгировщик, мультипоточность, запись видео, подсветка элементов с которыми идет взаимодействие, сильная отказоустойчивость тестов) очень хочется. А черевато.


          1. werevolff
            28.07.2017 20:52

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


  1. worldxaker
    26.07.2017 16:56
    +1

    учусь на 3 курсе. устроился работать по фронтэнду после второго собеседования. на пером сказали что учеба мешать будет. в общем искал около двух недель


  1. sfi0zy
    29.07.2017 08:59
    +1

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

    В такие моменты все почему-то забывают, что можно не только спрашивать, но и отвечать. Сначала на самые простые вопросы, потом на более сложные. Это не только расширяет кругозор, учит быстро гуглить и читать документации, но и заставляет приводить аргументы в пользу того или иного решения (ну и ссылки, понятное дело), что очень полезно. Быстро избавляет от синдрома бездумной копипасты. Да и понимающий работодатель сразу увидит, что человек не просто так говорит, что в чем-то разбирается.


    1. Anton23
      02.08.2017 11:54

      +