В статье мы расскажем, какие шаги предпринять, с чего начать и как построить свое обучение, чтобы стать айтишником, если вы далеки от ИТ.
В первую очередь, вам нужно решить, почему вы идете в ИТ. Вам нравится делать сайты, создавать программы для операционных систем, продумывать дизайн или тестировать? Это решение станет отправной точкой в процессе обучения.
В зависимости от выбора, вы сможете определить для себя программу обучения, подготовить план и подобрать первые источники: книги, сайты или онлайн-курсы.
Если ваших знаний языка не хватает на свободное чтение, начать следует именно с него. Английский будет нужен не только для коммуникаций, вам придется много читать и искать в интернете на английском. Это может быть как техническая документация или ответ на StackOverflow, так и просто интересная тематическая статья на Medium .
Это второй важнейший навык, после знания иностранного языка, который жизненно необходим при обучении. Важно научится правильно формировать запросы и отсеивать ненужную информацию еще на странице выдачи.
Для начала узнайте, чем отличается бит от байта, изучите базовые термины и концепции информатики, узнайте про условия, циклы и прерывания. Как работает процессор, зачем нужен веб-сервер и что за ascii – все это нужно знать, чтобы начать углубляться в ту область, которая вам интересна.
Структуры данных и алгоритмы – фундаментальные для разработки и ИТ понятия. Вам не расскажут о них как следует на прикладных курсах по программированию, поэтому изучите эти вещи самостоятельно.
Для начала разберитесь с терминами стек, дерево, очередь, хеш. Для понимания алгоритмов необязательно зарываться в теорию графов, но как минимум понять – должно быть вашей целью.
Ознакомиться с концепцией объектно-ориентированного программирования будет полезно независимо от того, какой язык вы выбрали и как собираетесь его применять. ООП – один из самых популярных стилей разработки, поэтому вам нужно не только знать определения основных концепций (наследование, инкапсуляция, полиморфизм), но и понимать, как они работают, уметь реализовать их в коде программы.
Если вы уверенно овладели синтаксисом интересующего вас языка программирования, стоит узнать как он работает с разными типами баз данных, а заодно узнать о видах БД и их различиях.
Даже если ваш язык обычно не взаимодействует с базой данных напрямую (например, JavaScript), вам нужно знать что происходит в этой области разработки: вы лучше будете понимать, как работает программа в целом.
Переучиться и сменить профессию можно всегда и в любом возрасте. Важно лишь помнить, что это очень долгий и сложный процесс. И чем позднее вы за это возьметесь, тем сложнее вам будет.
Чтобы стать айтишником, нужно настроить себя на долгий процесс изучения азов и непрерывное самообучение в течении всей карьеры. Запаситесь терпением, ведь между началом обучения и может пройти много месяцев и даже лет.
Многие люди понимают, что сейчас есть устойчивый спрос на IT специалистов и хотят становиться специалистами, чтобы получить пристежную работу. Но на то и IT сфера, что она постоянно динамично развивается. И как тогда получить знания в IT сфере, чтобы стать хорошим специалистом. Где взять актуальные знания, применением которых можно зарабатывать деньги. В этой статье будут приведены советы по IT обучению.
Также запомните, даже в случае качественного обучения, вы продолжаете находиться на старте. От вас зависит, будете вы развиваться дальше самостоятельно, или останетесь на том же уровне, сделаете веб-дизайн своей профессией, или создадите единственный сайт для своих нужд. Решайте сами, чего вам не хватает.
Видео.
Очень полезное видео о том, как «прокачать свои скилы» и стать хорошим IT специалистом.
Начать свой путь к карьере программиста стоит с ответа на вопрос, нужно ли вам программирование вообще? Этот вопрос не относится к тем, кто учится или учился по специальности, близкой к программированию. Если вам в школе математика давалась лучше, чем гуманитарные науки, если вам нравится проводить много времени за компьютером, если вам хочется изучать что-то новое, тогда программирование вам подойдёт.
Есть несколько вариантов развития событий, в результате которых человек становится программистом. Первый - родители-программисты, которые всему научили своих детей. Таким детям даже не нужно идти в университет. Второй вариант - модная профессия программиста. После школы нужно было выбрать, куда пойти учиться, и выбрали модное направление IT, вроде бы понравилось. И последний вариант - хобби, которое переросло в работу.
Если с вами ничего из вышеперечисленного не произошло, значит, у вас есть выбор из четырёх вариантов:
Когда вы станете программистом, через годик-другой будете вольны выбирать любой язык, который вам нравится. Но при выборе первого языка программирования новичок должен учитывать следующие критерии:
Также вам придётся определиться с направлением программирования. Мобильное, десктопное, игры, веб, низкоуровневое программирование и так далее. Самые популярные и относительно лёгкие отрасли - разработка под веб, мобильные и десктопные клиенты. Под каждое направление может подходить один язык и совсем не подходить другой. То есть при выборе языка программирования также стоит отталкиваться и от этого фактора.
В любом случае изучите веб-технологии. Это язык разметки , стили и , который позволит сделать вашу страницу динамической. На следующем этапе изучите серверный язык (Python, PHP, Ruby и другие) и подходящие для него веб-фреймворки. Изучите базы данных: практически в каждой вакансии программиста это упоминается.
Без опыта вы не получите работу. Без работы вы не получите опыт. Замкнутый круг реальной жизни. Но ничего страшного, мы из него выберемся.
Во-первых, не стоит ждать, пока вы прочитаете все книги по выбранному языку программирования. Начинайте писать свои первые строки кода уже после второй главы книги. Выполняйте все задания из книг, перепечатывайте примеры, разбирайтесь в них. Усложняйте примеры и задания из книг своими идеями. Создавайте свои задачи к пройденному материалу. Решайте эти задачи.
Во-вторых, вам нужно найти свои первые проекты. Это, наверное, самый сложный вариант, но рабочий. Вам придётся самому искать заказы, выполнять их, заморачиваться с оплатой. Для новичка это архисложно, но зато затем все остальные варианты покажутся плёвым делом. Выполненные проекты можно будет записать в опыт и показать вашему будущему работодателю. Реальные проекты являются большим плюсом в вашем резюме.
Если вы знаете английский язык, регистрируйтесь лучше на англоязычных биржах. Рынок там больше. Если не знаете английского, учите его. А пока что вам доступны русскоязычные биржи фриланса. Ищите небольшие проекты, которые соответствуют вашему уровню знаний или чуть выше него. Подайте заявку на пару десятков таких заданий. И приготовьтесь получить море отказов. Но если одна-две заявки выстрелят, у вас будет шанс получить реальный опыт.
Ещё одним неплохим вариантом для получения реального опыта является open source. Таким проектам всегда нужны новые люди, пусть даже и новички. Вы можете поискать в проекте баги или посмотреть в баг-трекере и предложить методы их решения. Найти такие проекты легко на GitHub или . Не стесняйтесь задавать там вопросы.
Четвёртый вариант получения опыта - помощь знакомым программистам. Попросите их передать вам маленькие и несложные задания. Если что-то не будет получаться, у вас всегда будет к кому обратиться. И при этом вы будете участвовать в реальном проекте.
Последний способ - собственные проекты, различные хакатоны или работа в коворкинге. Свои проекты сложно начинать самому, лучше поискать знакомых или друзей.
Давайте немного подробнее поговорим о выборе первого языка программирования. Первый язык должен быть простым и популярным на рынке. Таким языком является 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, он самый популярный. Вам нужно знать инструменты, с которыми вы работаете, операционную систему и среду разработки. И главный навык программиста - уметь гуглить. Без этого вы не проживёте.
Вам нужно подготовить резюме. Не просто резюме, а . Не стоит писать там , но и умалчивать о своих умениях тоже не нужно. После того как вас пригласят на интервью, вы должны к нему подготовиться. Пройдитесь по материалу, который указан в вашем резюме. Вы должны быть уверены в своих знаниях. Просмотрите проекты, над которыми вы работали, вспомните технологии, которые вы применяли. И вперёд - к светлому будущему с новой профессией программиста.
Крупнейший ресурс Superjob уже 17 лет помогает работодателям и соискателям найти друг друга. По статистике, IT-специальности уже не первый год входят в пятерку самых востребованных и высокооплачиваемых. Если вы мечтаете об успешной карьере, хорошей зарплате и интересной работе, этот вариант для вас! Учитесь, осваивайте сложный и увлекательный мир IT-разработок и программирования.
Популярных метода 4:
У каждого из этих способов есть существенные преимущества. Но все больше людей отдает предпочтение онлайн-обучению. Клиентами обучающего ресурса GeekBrains стали около 2 млн человек.
Главное преимущество обучения в вузе - диплом. На некоторых предприятиях такой документ необходим: на работу без него не возьмут.
У онлайн-курсов нет минусов обучения в вузе:
Самоподготовка абсолютно бесплатна. К тому же вы делаете только то, что считаете нужным и правильным. Но:
Онлайн-курсы стоят денег. Зато:
Если вы знакомы с мастером своего дела, и к тому же он хороший учитель, вам очень повезло. Этот человек сможет объяснить вам теорию и обеспечит хороший практический опыт. Вот только IT-специалисты редко бывают хорошими учителями. Это разные сферы деятельности.
Курсы GeekBrains ведут преподаватели вузов и практикующие IT-специалисты. Они же пишут статьи в блогах и ведут вебинары. Люди, которые не могут понятно изложить информацию, донести ее до учеников, просто не попадают в этот проект.
Главная проблема начинающего специалиста - найти работу. Работодатели предпочитают нанимать сотрудников с опытом. Учеба на GeekBrains - это практические проекты, которые пойдут в портфолио: вам будет что показать работодателю.
Многие компании ищут сотрудников на GeekBrains. На странице https://geekbrains.ru/career вы найдете список вакансий. Этим работодателям не нужны люди с дипломами. Им нужны сотрудники, умеющие решать конкретные задачи за достойную зарплату. Вы сможете стать как раз таким человеком.
Наверняка у вас есть знакомые, которые работают или получают образование в весьма отдалённой от IT сфере, но время от времени интересуются, как можно переквалифицироваться в успешного и достойно зарабатывающего IT-специалиста.
Сегодня на вопросы о том, с чего начать карьеру в IT, ответили представители тренинг-центра ЕРАМ: Евгений Пешкур, заместитель директора по подготовке персонала, Святослав Куликов, менеджер отдела по функциональному тестированию, Александр Барановский, руководитель образовательных программ по тестированию, и Светлана Захаренко, Java-тренер.
1. Хочу работать в сфере IT, но не знаю, с чего начать. Что посоветуете?
Евгений Пешкур:
Трудно советовать, не зная стартовых условий. Посоветую для среднего пользователя PC, уверенно овладевшего Counter Strike, форумами и социальными сетями.
Учите английский язык. Без шуток. Если вы не восприняли это серьезно, дальше можно не читать. Изучение английского до минимального уровня, применимого в компаниях, работающих на внешние рынки (уровень B1 , если кому интересно) занимает год-полтора. Знание другого иностранного языка будет плюсом, но никак не заменой. Вам простят незнание какой-либо технологии, но не отсутствие языковой подготовки.
В основе всего лежит то, чему учат все ВУЗы, - способность самостоятельно искать и изучать материал . Многие, не осознавая этого, рассматривают курсы как место, где их «возьмут за руку и приведут к успеху». На самом деле, вас приведут к промежуточному финишу, дадут сертификат (оценку, диплом) и далее сделают в блокнотике пометку «профнепригоден». И это будет связано не с результатом финального теста, а с вашим образом мышления. И опытный преподаватель это очень быстро определит, проверяя и обсуждая с вами ваше задание. «Незагугленное» и осмысленное решение (пусть и не работающее, даже попытка его создания), отходящее от того, что он сам преподал днем ранее, для него будет очевидным.
Начните с азов. Смешно и нелепо, но добрая половина из тех, кто идёт на курсы, не знают, что такое бит и байт. Замечали возмущения типа «платил за винчестер на 40 GB, а дали всего на 38»? Почитайте, что такое сети и каковы общие принципы их работы. Познакомьтесь с базовыми понятиями типа ascii, heap, process & thread, прерывание.
ООП. Тут при всей простоте определений всё сложно. К сожалению, простое изучение определений не даёт ничего. Наверное, это одно из немногих мест, где самостоятельное изучение малоэффективно. Попробуйте рассматривать ООП как образ мышления. Понимание ООП приходит через многократное написание и переписывание кода и общение с теми, кто его понял. Простых советов нет, но могу поставить цель: скорее всего вы действительно поняли ООП, если разобрались в работе и смогли написать программу типа Elastic Nodes .
Структуры данных и алгоритмы. Этого также не даст почти никакой из курсов, чаще всего предполагается, что это вы изучили в школе или вузе. Джентельменский набор терминов к изучению: дерево, стек, очередь, хеш. Алгоритмы… Не будем лезть в бутылку и советовать изучить теорию графов, но разобраться с различными алгоритмами надо. Как отсортировать массив (желательно знать и понимать несколько алгоритмов). Ваша цель - понять quick sort. Какие существуют способы обойти дерево.
Как видите, здесь почти не надо ходить на курсы, разве что на английский. Просто не игнорировать то, что вам преподают. Или суметь самостоятельно разобраться, если желание выспаться часто побеждало необходимость посещать скучные пары. Если мои намёки слишком туманны, то резюмирую: АНГЛИЙСКИЙ и немедленно! И понять все термины, упомянутые выше.
На мой личный взгляд, вы НЕ программист, если не способны в игрушке создать танк, побеждающий стандартный набор примитивных танков.
Александр Барановский :
IT - достаточно широкая и объёмная сфера с десятками профессий и специализаций. Поэтому первым шагом является выбор и осознание того, чем именно вы хотите заниматься. Потому что для каждой профессии нужно обладать определённым набором навыков, умений и складом ума. После того как определились с выбором, берёте лист А4 и с одной стороны записываете, что необходимо знать и уметь для начала карьеры в выбранной позиции (программист, специалист по тестированию, бизнес-аналитик и т.д.), а с другой - те знания и навыки, которыми вы обладаете на текущий момент. Точками, на которые стоит обратить внимание и с которыми стоит работать, являются «недостающие» вещи из списка умений. А тут все средства хороши - тренинги, книги, форумы.
Светлана Захаренко:
Мне кажется, начать нужно с понимания, почему вы хотите работать в сфере IT. Чем именно эта сфера привлекает вас, и что является основным мотивирующим фактором. Понимание позволит правильно расставить приоритеты и выбрать нужное направление.
Очень важно понять, чем именно в сфере IT вы хотите заниматься. Говоря о работе IT-специалиста, я бы рискнула провести аналогию с медициной. Медицина - большая область знаний, которая включает в себя множество направлений и профессий, и когда люди решают связать свою профессиональную деятельность с медициной, они скорее исходят из понятия «Я хочу быть врачом-стоматологом» или «Я хочу быть врачом-терапевтом».
2. У меня гуманитарное образование. Можно ли переучиться на программиста?
Евгений Пешкур:
Да. Кто такой «строитель»? Это архитектор, прораб, каменщик, маляр или сторож? А кого вы подразумеваете, говоря «программист»? Работа в IT - это не обязательно именно написание кода. Есть масса специализаций, где гуманитарий найдет себя: тестирование, бизнес-анализ.
Святослав Куликов:
Можно. Сложность переучивания, его скорость, эффективность и иные показатели будут индивидуальны для каждого человека. Стоит честно признать два факта:
. чем вы старше, тем сложнее вам переучиваться (не только на программиста, а переучиваться вообще);
. вы будете долгое время проигрывать в степени профессионализма тем, кто посвятил IT всю жизнь.
Но эти факты - не приговор, и я лично знаю тех, кто пришёл в IT из «гуманитарных профессий», но благодаря своей целеустремлённости добился ощутимых успехов.
Александр Барановский:
Каждый конкретный случай надо разбирать под микроскопом, так как я не могу сказать «каждый гуманитарий может стать программистом», это было бы неправильно. В нашей практике прецеденты были. Но нужно понимать, что это далеко не просто и требует огромных усилий, терпения и упорства.
Светлана Захаренко:
Ничего невозможного нет, переучиться можно всегда, вопрос в конечной цели и затрачиваемых ресурсах. Если вы решили стать программистом именно потому, что программирование вам интересно, переучиться будет не очень сложно, так как скорее всего интерес возник не спонтанно, вы его поддерживали, вы уже имеете представление о программировании, возможно, читали литературу, форумы, пробовали решать задачи.
Если же решение переучиться возникло, когда это стало очень «модно» и уровень заработной платы вырос, переучиться будет сложно. В первую очередь для преодоления трудностей в обучении необходима будет «подпитка», которая часто получается именно из интереса к профессии, а не из мотивации «модно и дорого».
Прежде чем принять решение о смене профессии, стоит соотнести своё желание с уже имеющимися навыками и знаниями. Очень сложно стать космонавтом, имея слабый вестибулярный аппарат.
3. Как выбрать «своё» направление обучения?
Евгений Пешкур:
Посоветоваться с теми, кто достаточно долго работает в IT и сам успел попробовать много различных ролей или тесно работал с представителями различных специализаций. Т.е. это специалист уровня Team Leader или выше. А далее пробовать.
Святослав Куликов:
В последнее время участились случаи «перепрофилирования в IT» с единственной целью - получением высокой зарплаты. Аргумент понятный, честный и имеющий право на существование. Но если деньги - единственное, что интересует вас в IT, то дальше вы рискуете столкнуться с серией сложностей и разочарований, так как заниматься нелюбимым делом - это всегда насилие над собой (даже при хорошей зарплате).К тому же, «мир IT» очень обширен и многогранен, а многие новички даже не представляют, какие бывают «IT’шные профессии и специальности». Тут неплохо бы почитать сайты с описаниями IT-вакансий, а про заинтересовавшее спросить знакомых, работающих в этой сфере.
Из личного и наболевшего: если исходный вопрос звучит как «расскажите мне, чего я хочу», то самым честным ответом будет «не знаю». Чтобы узнать, надо хотя бы немного пообщаться со спрашивающим, так как здесь вопрос из области обучения выпадает в область профориентирования.
Светлана Захаренко:
Попробовать направление «на вкус». Например, если вы выбираете между программированием и тестированием, можно взять задачу и решить её с точки зрения программирования, затем можно взять ещё одну задачу и решить её с точки зрения тестирования, остаётся только сравнить результаты и ощущения. Используйте давно известный способ проб и ошибок. К сожалению, не существует такого рецепта, чтобы сразу правильно и без «шишек».
Продолжение следует...