Что надо знать чтобы стать it специалистом. Обучение программированию с нуля – пошаговое руководство для начинающих. Десять шагов от чайника к программисту-профессионалу

Успех - паршивый учитель. Он заставляет умных людей думать, что они не могут проиграть. - Билл Гейтс

Здравствуй, %habrauser%!
Долго думал как получить инвайт, чем я могу быть полезен для IT-сообщества, и вот, наконец-то, нашел, чем поделиться. Опытом! Именно он отличает меня от моих одногодок и не только, так как в свои 23 у меня есть 4-х летний опыт в сфере IT. Был ли он полезен? Да, ведь это опыт. Какой он был? Всё под катом.

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

В публикации я постараюсь осветить этапы в начале IT-карьеры и золотые правила, которые я вынес из них.

Всех, кто умеет учится не только на своих ошибках, прошу под кат.

Этап 0. Подготовка

В первую очередь немного расскажу о себе для более полного понимания общей картины. После окончания техникума (специальность «Обслуживание компьютерных систем и сетей») встал выбор дальнейшего пути: дневное отделение в институте или «заочка» и работа. В силу того, что я изрядно устал протирать штаны на парах (далеко не все предметы вызывают интерес) и захотелось какой-то свободы и взрослости, выбор пал на второй вариант. Посему, когда мои сокурсники наслаждались весной и большими сроками на дипломную работу, я «денно и ношно» корпел над дипломом. Это дало следующие плоды:
а) я получил бесценный опыт (т.к. взял не первую попавшуюся тему из списка дипломного руководителя, а предложил свою и сделал её не для «галочки», а практически внедрил на прототипе);
б) выиграл время на поиск работы благодаря тому, что начал это процесс в тот момент, когда большинство выпускников почуяли скорый deadline и уселись за свои дипломы. Проще попасть на собеседование, пока волна выпускников еще не начала штурмовать работодателей.

Идите на опережение и самообучайтесь
Почему это важно перед первым трудоустройством? Да потому, что это будет огромным плюсом в конкурентной борьбе за работу. А в случае, если конкуренты такие же выпускники, как и вы, это может стать фактором для принятия решения в вашу пользу. Сравните сами: выпускник с хорошими оценками, но без практики и каких либо практических навыков (даже для себя, попробовать) или вы - тот, кто много чего пробовал, спотыкался, но изучал (а это многое значит). Думаю, даже сравнительная таблица не нужна, чтобы сделать выбор. И работодателю не приходится выбирать только на основании престижности ВУЗа или доверии к нему. Он уже видит, кто учился, как все, а кто знал, что ему нужно и двигался в этом направлении.

Этап 1. Поиск работы.

Дьявол в мелочах

Этот этап придется разделить на 3 подэтапа в попытке осветить эти вопросы в полной мере.
Этап 1.1. Резюме
Есть куча сайтов с примерами, описаниями и рекомендациями. Их дают и психологи, и HR-менеджеры, и все, кому не лень. Но как написать резюме, когда тебе нечего писать в опыте работы? Многие мои знакомые начинали туда лепить все, что только могло как-то наполнить резюме. Использовал Photoshop для убирания эффекта «красных глаз»? Добавляем информацию о владении данным инструментом. Делал чертежи для курсового в AutoCAD? Его сюда же.

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

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

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

Есть еще один спорный вопрос, мнение о котором я знаю с обеих сторон: и соискателя, и работодателя. Отправлять ли резюме, если ты не полностью подходишь по требованиям? Работодатель говорит - нет. Я говорю - ДА! И вот почему:
а) Требования иногда пишут HR-менеджеры. И когда ищут специалиста могут скопировать с другой вакансии, не понимая что это значит;
б) Некоторые требования могут оказаться косвенными. Т.е. несоответствие им не помешает взять тебя на работу;
в) Бывают ситуации, когда соискателю требуется сотрудник «на вчера» (случается и такое). Тогда тебя могут взять для выполнения каких-то базовых задач, а недостающие навыки уже «прокачают» в рабочем процессе;
г) Великое и могучее «А вдруг»(с)! (правда, тут может возникнуть неприятная ситуация на собеседовании, но ведь «А вдруг»(с) не возникнет?).

Этап 1.2. Выбор вакансии
Главное - выбирайте то, что по душе именно вам. Не нужно выбирать по престижности, советам знакомых и прочим, не относящимся к вашим желаниям критериям. Работа должна приносить удовольствие (в идеале и хороший доход, но для старта - удовольствие тоже важно). Она будет формировать ваше представление о работе, ведь она первая.

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

Этап 1.3. Собеседования
Я изучал много статей по этому поводу (и вам советую это сделать) и даже сам проводил собеседования, поэтому могу привести некую «выжимку» правил, которые помогут пройти его более эффективно:
а) Не волноваться. Многие сейчас подумали «Ага, на экзамене тоже говорят не волноваться, но не получается!». А нужно. Связная и последовательная речь всегда располагает к соискателю;
б) Готовьтесь к собеседованию. И это относится не только к внешнему виду. Следует «отрепетировать» рассказ о том, что вы уже знаете и умеете, рассказать об этом подробно. Лучше даже с описанием проблем, с которыми пришлось столкнуться во время реализации. Так вы сможете завязать диалог и чувствовать себя уверенней, повествуя о том, в чем вы разбираетесь. Если работодателю будет интересно что-либо другое - он сам направит разговор в нужное русло;
в) Узнайте побольше о компании, куда вы идете на собеседование. Работодатель должен понять, что вы идете не наобум, а целенаправленно к ним. Это так же располагает;
г) Почитайте и ПОЙМИТЕ теорию по тем направлениям, которые указываются в требованиях. Я сам часто «забивал» на теорию, думая, что главное - это быстро разобраться при наличии проблемы. Работодатель так зачастую не думает. И в некоторых ситуациях он прав. Если у вас нет опыта работы - вы можете знать только теорию. И вы должны её знать.

Этап 2. Работа

При счастливом положении звёзд правильном выполнении предыдущих этапов вы устроились на работу. Но это не повод расслабляться. Не буду давать советы, как себя вести в коллективе и в выполнении трудовых обязанностей, т.к. это очень сильно разнится в зависимости от коллектива/руководства.

Но есть «железобетонные» советы как НЕ нужно делать, работающие везде:
а) Не отлынивайте от работы. Таких людей никто не любит. Работу необходимо расценивать как опыт, коего у вас на данный момент еще нет;
б) Делайте свою работу качественно. Казалось бы банальность, но нет. Есть люди, которые по незнанию или из-за лени вместо правильного решения задачи «лепят костыли». Не надо так (с). Никто не любит переделывать за другими. Так же как никто не любит, когда банальную задачу решают долго путем переделывания своих же «костылей»;
в) Если у вас все-же остается свободное время - не тратьте его на социальные сети, игры и прослушивание музыки. Как бы это грубо не звучало: вы еще никто. И только от вас зависит, станете ли вы кем-то или так и будете специалистом «самого среднего звена». Обучайтесь постоянно , будь то какая-то информация о внутренних сервисах компании, которые касаются ваших должностных обязанностей или какая-то более общая информация о том, что вам понадобится в дальнейшем для развития (раз уж вы в своей работе достигли «дзена»). И не нужно откладывать обучение. «Потом» может не настать. Как случилось и у меня: работал, в ус не дул и игрался в свободное время, радуясь тому, что все работает, все обучены на выполнение рутины. И тут - БАЦ! Ликвидация компании, банкроты. С чем мы идем искать работу? С опытом игры в последние месяцы вместо полезных знаний. Не самый удачный багаж.
г) Проявляйте инициативу. Это может поспособствовать как расширению вашего опыта, так и продвижению по карьерной лестнице. Изучайте работу других сервисов, вдруг вы в процессе работы найдете более подходящее и интересное место для себя. Помните, что вы еще не сформировались как специалист и можете попробовать найти себя в другом, родственном направлении. Но это ни коим образом не значит, что нужно «метаться» и сдаваться при первых трудностях. Они будут везде.

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

Ну а чтобы предупредить вопрос «Чего ты добился, чтобы раздавать советы тут», вкратце опишу свой опыт работы. Первое место работы: сначала ведущий специалист отдела программно-технического обеспечения регионального отделения банка, через несколько месяцев - уже начальник этого отдела. Еще через год -начальник отдела, поддерживающего IT-инфраструктуру всего банка - и так 3 года. И это не связи и знакомства, а то, что я говорил - вникание в работу других сервисов. Замечают молодых и инициативных, которые могут и хотят развиваться и работать.

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

UPD: Всем новичкам советую

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

Определитесь со специализацией

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

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

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

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

Освойте базовые понятия

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

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

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

Ознакомиться с концепцией объектно-ориентированного программирования будет полезно независимо от того, какой язык вы выбрали и как собираетесь его применять. ООП – один из самых популярных стилей разработки, поэтому вам нужно не только знать определения основных концепций (наследование, инкапсуляция, полиморфизм), но и понимать, как они работают, уметь реализовать их в коде программы.

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

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

Так как же стать айтишником?

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

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

А вы знаете что нужно знать начинающему IT специалисту? Внимательно изучите каждую рекомендацию. Поразмышляйте, повозмущайтесь, выпишите доводы за и против. Неважно какая у вас конкретно IT специальность. Просмотрите все и затем шаг за шагом и начните захватывать эти чекпоинты.

1. Миру выгодны идиоты

Это неоспоримый факт. В глобальном социально-экономическом смысле большинство людей существует ради оборота денежных средств. Как ещё объяснить наличие ипотек, процветание банков, продаж псевдознаний, ключей к истине и заполняющих пустоту развлечений. Занимайтесь самообучением. Читайте, думайте, осмысливайте, подвергайте сомнению.

2 процента людей - думает, 3 процента - думает, что они думают, а 95 процентов людей лучше умрут, чем будут думать» (с) Бернард Шоу

2. Не полагайтесь на образование в школах и институтах

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

Людям всегда нужен кто-то, кто будет присматривать за ними. 95 процентов людей в мире нуждаются, чтобы кто-то говорил им, что делать и как себя вести». (с) Арнольд Шварценеггер.

3. Читайте как можно больше

Сократите до максимума чтение френдленты, газет, просмотр новостей, не доверяйте СМИ. Читайте классику мировой литературы, научные труды, исследования, учебники. Одной-двух книг в неделю будет достаточно, чтобы поддерживать мозг в рабочем состоянии, способном мыслить абстрактными категориями.

4. Общайтесь

Общение с другими людьми - это активное действие с обратной связью. Здесь нужна откровенность и способность облечь свои мысли в слова так, чтобы собеседник понял вашу мысль в максимально неискажённом свете. Слова не должны служить обману, учитесь не скрывать свои истинные намерения.

Я полагаю, что каждый человек представляет человечество. Мы различаемся интеллектом, здоровьем, талантами. Однако мы все едины. Все мы - святые и грешники, взрослые и дети, и никто никого не превосходит, никто никому не судья». (с) Эрих Фромм.

5. Не теряйте время на неуверенность в себе

Пока вы мучительно раздумываете, стоит ли что-то сказать или сделать, за вас это сделают другие, и, скорее всего, не самым лучшим образом.

Если нас не уважают, мы жестоко оскорблены; а ведь в глубине души никто по настоящему себя не уважает» (с) Марк Твен.

6. Если вам кто-то не нравится - не общайтесь с этим человеком

И уж точно не заводите с ним дружбу или семью.

7. Найдите себе старшего товарища

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

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

8. Ищите людей круче вас

Умейте не только удивляться их способностям: «Чёрт возьми, как ему это удаётся?», а действительно узнавать, как.

Знаете ли вы отличительную черту посредственности? Негодование из-за успеха другого». Айн Рэнд.

9. С возрастом вы будете становиться всё более консервативным

Поэтому именно сейчас, пока молоды, делайте наиболее безумные вещи. Потом у вас просто духу не хватит.

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

10. Снижайте расходы

Серьёзно. Если вы умеете не тратить материальные ресурсы впустую, вы умеете не расходовать зря и свои духовные. Только так вам хватит сил на реализацию своих безумных смелых идей.

11. Не будьте слепым потребителем

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

Не быть жадным - уже богатство, не быть расточительным - доход». (с) Цицерон.

12. Изучайте программирование

Программирование сегодня - это гонка разработчиков программ, стремящихся писать программы больше и с лучшей идиотоустойчивостью, и вселенной, которая пытается создавать больших и лучших идиотов. Пока вселенная побеждает». (с) Рик Кук.

13. Добейтесь уже кубиков на животе

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

14. Научитесь готовить

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

15. Научитесь спать

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

16. Имейте план по захвату мира

Если вы не ставите себе цель, в вашей жизни что-то да получится, а если ставите - получится всё.

Никакой транспорт не будет попутным, если не знаешь, куда идти». Эдгар Аллан По.

17. Выберите себе любимое дело

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

18. Не пытайтесь исправить людей

Лучше ищите тех, кого вам не хочется исправлять.

PS

Статью: 18 вещей, которые нужно знать растущим специалистам , взял на IT-мозге. Бывает собираю классные статьи.

IT-специалист – одна из самых востребованных профессий нашего времени. Что нужно знать и уметь, чтобы овладеть такой профессией? Где можно получить эту профессию? С какими "неудобствами" сталкиваются ИТ-специалисты? Давайте попробуем в этом разобраться.

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

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

Кто такой IT-специалист?

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

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


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

Так появилось целое семейство профессий, которые объединены одним названием : программист, системный аналитик, системный архитектор, специалист по системному администрированию, специалист по информационным системам, специалист по защите информации, оператор ПК, менеджер информационных технологий, администратор баз данных, Web-мастер и т.д.

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

Какими личностными качествами должен обладать IT-специалист?

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


Также будущий IT-специалист должен:

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

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

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

Преимущества профессии IT-специалист

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

  • Каждый человек стремится идти в ногу со временем, занимаясь саморазвитием, повышением образования, расширением кругозора. Но для этого, чаще всего, требуется специально выделять свободное от работы время. IT-специалист имеет возможность повышать свой интеллектуальный уровень без отрыва от производства, поскольку это является и его прямой обязанностью.
  • Поскольку трудовая деятельность IT-специалиста является интеллектуальной, то, благодаря тем же технологиям, он может осуществлять ее, находясь на большом расстоянии от непосредственного места работы (то есть, удаленно).
  • Нельзя не отметить востребованность профессии и достаточно высокий уровень зарплат (причем как в частном бизнесе, так и в государственной системе). Согласно статистическим данным, эта профессия отмечается ежегодным приростом заработной платы на 10-16%, которая часто выплачивается в долларовом эквиваленте.

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


Недостатки профессии IT-специалист

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

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

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

  • (Российский государственный университет нефти и газа); Факультет автоматики и вычислительной техники;
  • ; Факультет информационных технологий.
  • Кстати, если имеется хороший базовый уровень по математике и английскому языку, то перед сдачей вступительных экзаменов в ВУЗ неплохо было бы пройти подготовку на специальных курсах: icnd1 или Cisco. Такая предварительная подготовка поможет успешно сдать вступительные экзамены, попрактиковаться и получить начальное представление о будущей работе.

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

    С чего начать

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

    Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:

    • Самообразование . Этот вариант можно использовать как самостоятельно, так и в паре с другими методами. В интернете полно , и приложений , которые помогают изучать различные языки программирования и технологии. Но это самый тяжёлый путь для начинающих.
    • Университет . Если вы оканчиваете школу и хотите быть программистом, тогда идите в университет. Если не за знаниями, тогда за корочкой. Она может послужить бонусом при устройстве на работу. Хотя и какие-то знания вы тоже получите. Но не забывайте заниматься и самообучением. К выбору вуза стоит подойти очень ответственно. Внимательно изучите программы обучения и выбирайте лучшие технические вузы.
    • Ментор . Будет очень неплохо, если вы найдёте человека, который согласится помочь вам и направит вас в правильную сторону. Он подскажет подходящие книги и ресурсы, проверит ваш код, даст полезные советы. Кстати, мы уже писали о , где вы сможете найти ментора. Наставника можно искать среди знакомых программистов, на IT-тусовках и конференциях, на онлайн-форумах и так далее.
    • Специализированные практические курсы . Попробуйте поискать в своём городе курсы, где вас обучат какому-нибудь языку программирования или технологии. Я был приятно удивлён количеством таких курсов в Киеве, в том числе бесплатных и с последующим трудоустройством.

    Какой язык, технологию и направление выбрать

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

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

    Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.

    В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.

    Как получить начальный опыт

    Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.

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

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

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

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

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

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

    Почему стоит выбрать Python

    Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является Python . Я очень советую выбрать именно его в качестве первого языка программирования.

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

    Справедливости ради стоит упомянуть и о других языках программирования. Java может стать неплохим выбором для новичка. Этот язык популярнее, чем Python, но и немного сложнее. Зато инструменты для разработки гораздо лучше проработаны. Стоит только сравнить Eclipse и IDLE. После Java вам будет проще перейти к работе с низкоуровневыми языками программирования.

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

    Языки C и C# очень сложны для новичка. Ruby - хороший выбор в качестве второго языка, но не первого. JavaScript - очень простой язык, но ничему хорошему он вас не научит. А задача первого языка программирования всё-таки научить вас чему-то правильному, задать какую-то логику.

    Важен ли английский язык

    Важен! Не знаете? Учите. Знаете? Совершенствуйте. Учитесь читать, писать, слушать и говорить на английском. Делайте упор на техническую литературу. Слушайте англоязычные подкасты. Читайте англоязычные учебники по программированию.

    Что нужно знать, кроме языка программирования

    Конечно же, кроме языка программирования и английского, нужно знать что-то ещё. А вот что - зависит от направления, которое вы выберете. Веб-программист обязан знать HTML, CSS, JavaScript. Десктоп-программист учит API операционной системы и различные фреймворки. Разработчик мобильных приложений учит фреймворки Android, iOS или Windows Phone.

    Всем нужно выучить алгоритмы. Попробуйте пройти курс на Coursera или найти подходящую для себя книгу по алгоритмам. Кроме этого, нужно знать одну из баз данных, паттерны программирования, структуры данных. Стоит также познакомиться с репозиториями кода. Хотя бы с одним. Обязательно знание систем версионного контроля. Выбирайте Git, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.

    Последние шаги

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