Что главное чтобы устроиться на работу программистом студенту? Законченный проект!


Я заметил что у студентов и джуниоров которые ищут себе первую работу программистом обычно возникают такие вопросы и проблемы:

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

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

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

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

Точно так же частый вопрос: «мне уже %ВАШ_ВОЗРАСТ% не поздно ли заняться программированием? Или уже идти на кладбище?».
Эта тема регулярно всплывает на форумах, и раскрыта там вполне. Будет тяжелей, но всё возможно.

Самое главное чтобы вам было просто интересно программировать. Остальное вторично.

1. Что учить? Какие языки программирования?

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

Обычно с первого языка ты всё равно скорее всего будешь переходить на другой язык.
Но лучше всё таки начать обучение с более классических языков типа C, C++, C# и Java, и которые более менее спроектированы а не такой язык в который всё навалено в кучу как в PHP или Basic. Но не парьтесь особо.

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

3. Учится, учится, и ещё раз учится, а потом учится, учиться, учиться….
И вот ребята уже учит и даже могут пописать код, и вот уже как бы пора бы работу искать.

Я заметил у студентов и джуноров которые ищут себе первую работу программистом одну проблему.
Почти все из них штудируют книги и учебники, даже уже читают шаблоны проектирования, но не знают когда остановится и как же всё таки найти себе работу.
И часто меня спрашивают что-то такое от чего я в шоке, например «А стоит ли учить шаблоны GRASP?».
O_o о боже, да я вообще про них в первые слышу 🙂 Нафига оно тебе?

Ребята, не перезатягивайте.

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

Как можно научится танцевать по книгам? Как можно понять шаблоны проектирования не написав тонны быдлокода и не пересмотрев гибибиты исходников библиотек?

Никак

4. Придумайте себе проект, ёпта!
Иногда джуны в этот момент подвисают и говорят: «та у меня фантазии нет чтобы придумать программу».
Я просто в шоке от такого. Это как это «нет фантазии»? Приятель, а ты уверен что правильно выбрал профессию?

Да блин, я когда дорвался до компьютер мне так и хотелось творить нон стоп. И пофигу что. Мне не понравился калькулятор — я написал свой калькулятор с преферансом  и куртизанками. Свой арканоид, свой сайт итд.
Я обычно даю такой совет: напишите программу для себя. Лично мне понравилось в университете все задачи по математике решать своей программой. Мат алгоритмы прекрасно программируются.
Например решение системы линейных уравнений методом Гаусса — там вам и циклы, и работа с динамическими массивами или вот вам прям задачи для начинающих Java программистов.
Такие задачки отлично тренируют умение структурного программирования.

5. Что нужно уметь программисту?

По сути, вся эта алхимия программирования на самом деле состоит из таких компонентов:

  1.  Собственно структурное программирование: как объявлять переменную, функцию, как писать условный оператор if, приоритет операторов, как организовать цикл, как получить ввод от пользователя и как ему вывести. Это легкотня на самом деле: 15ть операторов, учатся быстро. Почти все языки программирования наследуются от Си (C++, Java, C#, PHP) так что переучивать их не придётся. Это как базовая грамота.
  2. Алгоритмизация: линейный поиск перебором, бинарный поиск, пузырьковая сортировка, быстрая сортировка итд.
  3. Организация и проектирование программы: объектно ориентированное программирование, шаблоны проектирования.
  4. Знание платформы, библиотек и технологий: Java Core, XML, работа с файлами, работа с сетью, работа с массивами, строками и коллекциями.
  5. Умение писать чистый код: как правильно называть переменные и классы, как форматировать код, как правильно писать комментарии, ну то есть как их. не писать 🙂 Понимание приходит после прочтения книги Clean Code
  6. Умение работать с кодом: рефакторинг (книга Фаулера), хоткеи IDE для рефакторинга.
  7. Инженерные практики: юнит тесты, экстремальное программирование (XP), непрерывная интеграция, системы управления версиями (Git, SVN)
  8. Управление проектом и организация процесса: Agile, RUP, SCRUM, Kanban
  9. Умение общаться с закачиком и ладить в команде.
  10. Знание английского языка, умение чётко и лаконично писать документацию.

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

Не зависайте. Вкалывайте, делайте проекты и ищите работу.
Успехов!


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

Реклама

7 comments

    • stokito

      Ну тут порядок пунктов не особо важен и кстати без знания английского можно найти первую работу, но не в аутсорсе

  1. MYSLIVEC

    Помню ты когда-то в Кривом Роге на лекции говорил: «Езжайте все в Киев, там зарплаты выше, но и требования тоже! Киевские программисты сильнее всех остальных программистов из других городов.» Теперь, прочитав твой пост, у меня складывается обратное впечатление так как я проходил не мало собеседований в Днепропетровске и если бы меня брали по твоим критериям я бы на первом собеседовании получил оффер. И тут два варианта: либо тебе с высоты 10-и летнего опыта все кажется примитивным и простым из того что должен знать джун или в Киеве наоборот спрос больше и требования ниже.

    • stokito

      Юра, я написал короткий пост для тех студентов кто учить программирование и начинают искать первую работу, и они хоть и знают что такое наследование, но у них опыта.
      Где брать опыт? Либо коммерческий — т.е сделать кому-то за деньги, но если нет такого то у тебя должен быть свой проект.
      Об этом основная идея статьи, но и попутно ещё несколько аспектов записал.

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

      Это не имеет никакого отношения к городу. В Киеве спрос и требования действительно выше на порядок. Связано это с тем что выше конкуренция и дороже проживание. Чтобы выжить нужно как минимум баксов 400, а деньги просто так никто не платит.
      Точно также джуниор в Кремниевой Долине должен уметь на порядок больше чем киевский джуниор. Джуниор — это прежде всего звание, а не квалификация. Это значит что компания берёт тебя в надежде что ты быстро доучишься, и всё это время старшие коллеги тебя будут контролировать.

      И опять таки, если ты устроился в Днепропетровске, значит ты меня не внимательно слушал: переезжать нужно именно в Киев, а не в Днепр, Харьков или Одессу.
      Всегда нужно переезжать в более лучшие места. А лучшее для айти в Украине — это Киев. Всё остальное от лукавого.

  2. Уведомление: Частые вопросы Java Juniors | Серёжа Пономарёв aka stokito

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s