FAQ для студентов,
начинающих разработчиков
и будущих стажеров


Продолжаем делиться полезным.
На этот раз речь о том, как войти в IT из глухой сибирской тайги,
как понять, готовы ли вы к стажировке, и - бонусом - что смотреть, читать и слушать, чтобы получить нужные знания.
06-12-2018
IT-стажировка, обучение
Время чтения: 7 минут
Если набрать в гугле простой запрос «Как попасть на стажировку в IT-компанию», то первым делом получите тонну бесполезной информации.

К примеру, что мы видим на первой странице выдачи:

«10 причин пойти на стажировку…» (Серьезно? Я уже решил идти, мне не нужны еще причины!);

«Когда пора начинать поиск работы в IT?» (Спасибо, я уже начал. Поздно говорить, когда надо было!);

«Стажировка в IT: ожидание/реальность» (Это шуточная статья про то, как можно случайно стать офисным бариста. Забавно, но не помогло!);

И, наконец, статья «Как попасть на стажировку в IT-компанию» (Ура! То что надо?! Как бы ни так…), рассказывающая о том, как попасть на стажировку в Google, если на улице вам вручат листовку их программы для студентов BOLD Discovery.

На всякий случай мы походили по улицам заснеженного Омска в поисках таких листовок. Не нашли.
Мы покачали головой и собрали свои полезности. Правда их много, поэтому делиться будем постепенно. Подписывайтесь.
Я студент
Стажировка vs практика
Если вы уже учитесь на IT-специальности, то помните, что можно устроить себе полноценную стажировку вместо летней практики. Разумеется, чтобы вам досталась хорошая компания, в которой вы сможете получить не только оценку, но и практику — необходимо договариваться обо всем заранее. Сейчас поиск места прохождения практик часто возлагают на самого студента, но в вузе все равно могут подсказать варианты, куда можно пойти, если вы горите трудовым энтузиазмом. Пройдет практика «для галочки» или для пользы — зависит от вас на этапе поиска. К примеру, если руководство компании отнекивается и не горит желанием брать студентов — нет смысла и настаивать, даже если уступят — вряд ли будут заниматься вашим обучением. В любой ситуации демонстрируйте серьезность своих намерений. Развлекать студента никто не хочет. Но если вы настроены серьезно, то и компания подойдет к делу обучения с большой серьезностью. Еще один нюанс: практики обычно короткие — около 3 недель, а чтобы получить навыки, нужно работать гораздо дольше — примерно 2−3 месяца. О возможности более длительного сотрудничества тоже нужно договориться заранее.
Не стоит зацикливаться на одной компании. Бывает, что вас не берут на стажировку просто потому что нет времени с вами поработать. Бывает компания просто не занимается такими вещами. Бывает, что выбор кандидатов так велик, что мест уже нет. Лучше сразу прорабатывать несколько разных компаний. Это опять же даст возможность сравнить условия и выбрать наиболее подходящие.
Евгений Тюменцев, CEO in Hello World! Technologies (HWdTech)
Готовы ли вы к стажировке?
Если на IT-специальности вы не учитесь, а занимаетесь самостоятельно, вам нужно каким-то образом понять, когда можно считать себя готовым к стажировке.

Расскажем на примере нашей компании Hello World! Technologies (HWdTech).

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

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

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

Если идей как это сделать нет, и уровень знаний в программировании у вас начальный, и вы нигде этому не учились — ничего, мы вам все равно поможем: ниже есть полезные ссылки на книги и источники, которые стоит изучить, чтобы этот самый «базовый набор умений» приобрести.

Если же вы все-таки учитесь/учились на профильной специальности, показателем готовности могут служить ваши лабораторные работы по программированию. Если вы честно решали все задачи на них — скорее всего, базовый набор умений тоже есть.
Как учиться?
Есть такая интересная штука, которая называется «пирамида автоматизации действий». Чтобы прочитать о ней подробно, нажмите на кнопку справа. Вкратце речь идет о том, что наш учебный процесс можно разделить на следующие этапы: «я знаю как, но я ни разу этого не делал» (у меня есть знания), «я знаю как и делал это несколько раз — это трудно» (у меня есть умения), «я делаю это быстро, но еще не привык» (у меня есть навыки), «уже не помню, почему я так делаю, но по-другому не могу» (у меня есть привычка). Так вот: ваше изучение программирования, работа с источниками, поиск новых — все это должно быть на уровне четвертого этапа — привычки. Иначе все зря, увы.
10 000 часов
Известный канадский писатель и журналист Малкольм Гладуэлл вывел формулу, которая описывает, как в совершенстве освоить новый для себя навык.
Формулу назвали «правило 10 000 часов»: считается, что если 10 000 часов посвятить какому-либо занятию, то добьешься в нем большого успеха. С этим правилом есть две сложности. Во-первых, 10 000 часов — это очень много. Правда. К примеру, вы заняты своей работой, учебой и делами и можете выделить на программирование не более 4 часов 3 раза в неделю. Если вы будете трудиться, не нарушая расписания, у вас уйдет 16 с лишним лет.
Столько времени у нас нет!
Есть и хорошая новость: увеличьте время ежедневных занятий хотя бы на час и приблизитесь к успеху: уже 12 лет. Все равно как-то грустно.
Вторая беда этого правила в том, что если вы заучиваете ошибки, то 10 000 часов не улучшат вашего мастерства. Вы просто будете более опытным плохим программистом.
Секрет в том, чтобы не повторять действия механически, а качественно выполнять задания: постоянно учиться, консультироваться с экспертами и руководствоваться их указаниями, получать обратную связь на выполненные работы, посещать профильные мероприятия.
Про поиск информации
Сколько бы мы ни ворчали, а самый хороший сайт с информацией для начинающего программиста — это google.com. И другие поисковики:). Умение искать информацию — один из наиболее ценных навыков кандидата на любую стажировку.
Новичок:
Итак, в Гугле же ничего нет...
стажер:
Первое правило будущего программиста — научись общаться с Гуглом! Если надо попасть на стажировку в IT-компанию, нужно писать конкретно и так, чтобы робот понял: «стажировка it Омск». Но и как средство решения какой-то задачи, способ борьбы с трудностями, возникшими в ходе выполнения какого-то упражнения или задания Гугл отлично работает.
Новичок:
А если не получается?
Стажер:
Мы живем в то время, когда каждая компания, каждый человек, каждая книга и каждое понятие оставили свой след в Сети, а значит его можно отыскать. В IT-компаниях очень любят тех, кто умеет сам добывать информацию. Ну, а на стажировку берут только тогда, когда ты уже хоть что-то знаешь. А если только начал, как я, то первым запросом нужно писать: «что нужно знать чтобы стать *кем стать*». Собственно, этот запрос на YouTube (*кем стать* я заменил на веб-разработчиком), выдал мне много полезных видео. Посмотрев первые пять, я уже знал, что буду учить в первую очередь, а потом все остальное пошло само собой.
Полезные материалы
Что читать?
Делимся книгами! Надо же помочь вам с поиском информации.
Тестирование
Сейчас для программиста важен навык написания юнит тестов. Рекомендуем книги из серии Pragmatic Unit Testing, они вам очень пригодятся. Здесь можно почитать про одного из авторов и про книги.
Википедия
Объективно-ориентированное программирование — это то, о чем тоже обязательно спрашивают на собеседованиях. И если ты прочитаешь всего несколько статей на Вики, то станешь сильно круче других. Читай эту, эту, эту, эту и вот эту статью.
Паттерны
Важно знать кое-что о паттернах проектирования: при общении в команде очень часто используются паттерны и нужно своих коллег понимать. Советуем книгу Сергея Теплякова «Паттерны проектирования на платформе .NET» — она идеально подходит для начинающих. Вот тут можно прочитать про книгу и приобрести.
JavaScript
Знакомство с JavaScript будет вам полезно со всех сторон: и мозги размять поможет, и некоторое понимание программирования в целом принесет. Советуем читать Дэвида Флэнагана «JavaScript. Подробное руководство». Чем свежее издание найдете, тем лучше! Вот тут можно прочитать подробнее об этой книге.
Читайте Мартина!
Но не того Мартина, а Роберта Мартина «Чистый код». Речь о том, что даже плохой программный код может работать. Однако если код не является «чистым», это всегда будет мешать развитию проекта и компании-разработчика. В книге много интересных примеров кода. Здесь можно почитать про автора, а тут про книгу.

Код с душком
Это не шутка, это термин, который обозначает код с признаками (запахами) проблем в системе. Придумал его Кент Бек, но известность подарил Мартин Фаулер, который написал книгу «Рефакторинг. Улучшение существующего кода». Прочитать об этой книге можно тут.
Что смотреть?
Язык программирования Javascript сейчас входит во все области разработки. Очень сильно на это повлияла программная платформа Node.js. В общем, мы ставим на то, что JS будет развиваться. И непременно надо с ним как-то познакомиться. Можно читать (выше мы уже посоветовали, что читать) — а можно смотреть. YouTube вообще большой друг программиста. Там много хороших специалистов, которые понятно и грамотно объясняют. Например, наши стажеры рекомендовали рассказать вам про такого человека как Дмитрий Лаврик. Он на своем канале рассказывает много-премного интересного, в том числе и про JS.
Цикл «Введение в программирование» в виде забавных мультфильмов
Это комплекс видео для новичков, посвященный, собственно, программированию и основам JavaScript, но какой же он душевный! Короче, советуем всем:)
Какие новости?
Хабр
Что и говорить, в нашей среде https://habr.com/ читают все. И вы читайте. Важно понимать, что новости IT и около-IT — это не столько развлечение, сколько обязательное информационное поле, на котором надо пасти свой мозг. Чтобы быть программистом в глухой Сибири — надо знать, что в мире происходит.
vc.ru
Очень любим этот портал. На https://vc.ru/ новости очень разнообразные, но часто попадаются интересные интервью и переводы статей, связанных с IT, искусственным интеллектом и всем тем, о чем вам надо знать.
Medium
А это англоязычный ресурс https://medium.com/ со множеством тематических разделов. Можно читать только «Технологию» и «Стартапы», а можно читать все подряд — заодно и английский прокачаете.
В какие сообщества вступать?
Во-первых, конечно же, вступайте в сообщества IT-компаний, которые есть в вашем городе. Именно там обычно публикуются всевозможные приглашения на стажировку и вакансии. Прямо так и гуглите, например, «IT-компания Омск» и ищите не всякие списки и рейтинги, а именно сайты IT-компаний.

Проверяйте, что это действительно компания из вашего города. И смело подписывайтесь! Не факт, что улов будет богатым — многие компании индексируются только на английском (об английском мы еще поговорим), многие — сильно позже стоят в выдаче, чем у вас закончится терпение.
В сообщества компаний из других городов вступайте тоже. Например, к нам vk.com/hwdtech. Во-первых, вдруг вы захотите переехать (это мы сейчас не то, чтобы вас зовем в Омск, скорее — всякое в жизни бывает), а во-вторых, временами вполне себе можно устроиться на удаленную стажировку/работу.

Во-вторых, конечно же, профессиональные сообщества. Вот вам целая толпа таких: https://vk.com/itmozg — здесь очень много интересных курсов и видео!
https://vk.com/programmistov
https://vk.com/iteapro
https://vk.com/bookflow
https://vk.com/proglib — а здесь еще и книги, например!
https://vk.com/tproger — а тут много новостей интересных!
https://vk.com/itcookies
https://vk.com/tech


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

Можем посоветовать крутой курс по теории алгоритмов — https://ru.coursera.org/specializations/algorithms. Требует время, но навыки очень хорошо прокачивает.

Еще не помешало бы познакомиться с SPA. Нет, это не то спа, где массаж и масочки, это Single Page Application — приложение одной страницы. Как уже ясно из названия, оно размещается на одной web-странице, которая для обеспечения работы загружает весь необходимый код вместе с загрузкой самой страницы. Курсы об этом можно посмотреть тут: https://coursetro.com.
Какие подкасты послушать?
Нет времени смотреть - слушайте!
Крутой подкаст для новчиков на английском: https://www.codenewbie.org/podcast
Подкаст для студентов и начинающих разработчиков на русском: https://theartofprogramming.podbean.com/page/3/
Подборка подкастов на Хабре: https://habr.com/post/308 532/
Подборка подкастов на GitHub: https://github.com/AveVlad/russia-it-podcast
Подборка на ProgLib: https://proglib.io/p/it-podcasts/

Английский язык
Предпочтение всегда будет отдаваться человеку, который знает английский. Кандидата более слабого в программировании, но с отличным знанием английского языка возьмут на работу охотнее, чем хорошего разработчика, который не знает английского. На сегодняшний день — это обязательное умение. Если человек сообразительный и говорит по-английски — это гораздо лучший кандидат, чем тот, кто знает много языков программирования. Навыки письменной речи нужны 100%, но и умение говорить на английском тоже требуется.
Евгений Тюменцев
CEO in Hello World! Technologies (HWdTech)
Действительно, многие компании в обязательном порядке требуют от стажеров, а уж тем более от сотрудников иметь определенный уровень английского. Плюс, он давно уже по умолчанию стал языком мира программирования: все самые полезные материалы и курсы — на английском.

Для изучения советуем такой сервис как Lingualeo. Хорошее приложение для смартфона для изучения английского называется Duolingo, можно заниматься и у них на сайте. Для развития навыков слушания и программирования можно послушать курсы на https://coursetro.com/. Также обязательно пользоваться https://grammarly.com/, когда пишешь тексты.
Библиотеки и фреймворки
«Некоторое время назад я заметил, что студенты не умеют пользоваться библиотеками и фреймворками», — сетует наш технический директор, — «Плюс, так как в университете заставляют писать без библиотек, то складывается неправильное отношение к библиотекам. Библиотеки — это важно, это нужно, это ускоряет разработку, упрощает поддержку. Все современные языки и средства разработки предлагают пакетные менеджеры для распростанения библиотек». Этим всем обязательно стоит научиться пользоваться.
Средства разработки
Не писать же код в «Блокноте»?! Если вы не студент профильного учебного заведения, то вы удивитесь, узнав, что именно в «Блокноте» студенты тренируются, например, писать html-код. Но вообще-то далеко так не уедешь.

Рекомендуем установить Visual Studio для разработки под .Net и на C. Он хорош тем, что подходит под все востребованные языки и понимает их. Что надо — то себе и поставите.

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

Существует множество более простых редакторов, типа Sublime Text или Atom — они тоже по-своему хороши, плюс знают много синтаксисов разных языков и библиотек, можно расширить их плагинами.
Продолжение следует
Задавайте вопросы! Мы, в свою очередь, планируем продолжить данный цикл статей и рассказать как можно больше о том, как писать резюме, как попасть на стажировку, чему учиться самостоятельно и многое другое.
Раз в месяц мы делаем рассылку с анонсом новых кейсов и статей, опубликованных на сайте.
Подпишитесь на обновления.
Гарантируем - никакого спама. Нажимая на кнопку, вы даете согласие на обработку персональных данных и соглашаетесь c политикой в отношении обработки персональных данных.