Как не бросить учить python
Перейти к содержимому

Как не бросить учить python

  • автор:

Несколько советов как новичкам не забросить изучение IT

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

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

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

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

Адекватно оценивайте время и силы

Изучать программирование тяжело. Звучит очень банально, но поверьте, многим нужно начать даже с этого.

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

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

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

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

У многих абсолютное непонимание, какие есть отрасли в IT и что для них нужно

Отсюда либо приходят с вопросами «Смогу ли я после какого-то (одного) обучения устроиться разработчиком, аналитиком или тестировщиком?» или «Я пару месяцев поизучал python, потом прошел на степике курсы по С#, потом на ютубе посмотрел курсы по С, потом опять поизучал python и чуть-чуть sql и вот несколько лет все учу-учу и никуда не могу устроиться и ничего путного сделать тоже не могу».

  1. Нужно разобраться, что я хочу строить: самолеты, корабли или ракеты? Если эта аналогия слишком тяжелая, давайте по врачам: вот есть у нас гинеколог, лор и офтальмолог. Вроде все врачи. И база вроде тоже одна. И каждый врач. Но каждый прошел специализированное обучение своей области и не может просто так пойти и работать в другой. Чтобы лору стать гинекологом, ему придется учиться с нуля. Универсальных врачей не выпускают. Нет таких курсов. Вот точно так же и с разработчиками. Нельзя закончить одни курсы и после них стать тестировщиком, аналитиком и разработчиком игр. Нужно выбрать конкретное направление, близкое именно вам и в нем выстраивать план обучения.
  2. Вот выбрали вы свое направление и встает вопрос: какой мне нужен стек? Или по другому: какими технологиями я должен владеть, чтобы устроиться на работу в этой области? Идем на hh и Хабр Карьера, забиваем Junior Python Developer (или какого девелопера вы себе выбрали), смотрим вакансии и выписываем из них требования — вот по сути уже и ваш план обучения. Лайфхак: еще хорошо посмотреть планы различных курсов по этому направлению, они должны примерно совпасть с тем, что вы найдете в вакансиях.
  3. Как я могу его набрать? Лучший способ — это Pet-project. Придумайте проект (или найдите туториал), который вам было бы интересно делать. Это поможет и сохранить мотивацию, и набраться реальных навыков программирования, и будет что добавить в резюме.
  4. Про выбор курсов и обучений мы в этой статье говорить не будем. Об этом я напишу в следующей.

Хватит ли мне курса для трудоустройства?

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

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

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

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

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

И проблема в трудоустройстве людей после курсов не в курсах, а в людях с вот таким подходом.

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

Выбирайте путь сердцем, а не рекламой

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

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

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

Подведем итог

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

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

  • программирование
  • курсы
  • курсы программирования
  • изучение программирования
  • новичкам
  • путь программиста
  • путь в ит
  • выбор профессии

Как я начал учить Python и ничего не произошло

Вы когда-нибудь видели лендинги курсов по программированию? Наверняка да, ведь времена «мидлов за полгода» и «джунов за три месяца» отгремели совсем недавно. Страницы многих успешных эдтех-компаний здесь похожи. За обещаниями золотых гор на золотых песках удаленки мы вглядываемся в светлые лица преподавателей, и после reasons to believe нас встречает… программа обучения. Двух-, а то и трехуровневая простыня со всеми важными темами. И чем их больше, тем лучше: ведь на другой чаше весов уже поджидает стоимость курса.

Стремление показать товар лицом — это, конечно, похвально. Но есть у такой дотошности и обратный эффект: неуверенность в себе. Вчерашним «выпускникам филфака», к которым с натяжкой отношу себя и я, становится страшно. В этом посте я постараюсь всех нас ободрить и расскажу, как преодолел базовый курс Python.

Немного о себе. Моя работа всегда была связана с текстами. В основном айтишными. Я много пишу с экспертами на разные темы, но никакими системными знаниями о языках программирования в итоге не оброс. До этого курса моим высшим достижением был фан-сайт группы «Кино», написанный на информатике с Dreamweaver. На фоне одноклассников с кодом в блокноте выглядело круто, но в голове осталось немного (спасибо, визивиг).

Перемещаемся лет на 17 вперед. В конце прошлого года я получил для бесплатного знакомства экспресс-курс Python «Программирование — и точка». Не буду ссылаться на создателей, чтобы не обвинили меня в рекламе, по названию найти можно быстро.

А теперь время дневниковых записей: как я провел январь.

Первые «умные слова»

В моем экспресс-курсе не обошлось без обзорной лекции о базовых вещах. Что такое компьютер, я более-менее представлял. Думал, что совсем заскучаю, но получил в свой словарь два новых термина: «компилируемый язык» и «интерпретируемый язык». Следом в зачет пошел одобрительный кивок друга-программиста — когда за пивом поведал ему новость о своем курсе и вывалил эту пару определений. И это мне еще про Python ни слова не сказали!

Среда разработки

На курсе использовали среду PyCharm. Раньше я использовал среды разработки только «в режиме просмотра», чтобы, будучи гострайтером, копипастить чужой и непонятный мне код в чужие же посты. Теперь я встал на место тех самых экспертов и должен сам врубаться, что вижу в редакторе.

Здесь и далее я буду отражать свои эмоции от обучения. Они адресованы в первую очередь тем, кто делает первые шаги в программировании, как я, или вообще сомневается в этой затее. Так вот: современные среды разработки — это восторг. PyCharm сам готовит все необходимое для работы, нужно только скачать Pycharm и установить его (по дефолту это бесплатно). Цветовое выделение кода срабатывает на лету; со временем я запомнил, как должны выглядеть те или иные слова, что я вбиваю, и неправильный цвет мгновенно напоминал мне об опечатке или другой проблеме. А еще PyCharm сразу сообщает об ошибках, причем делит их на фатальные (без которых не заработает) и нефатальные («лучше так не делать, могут быть проблемки»). Максимально дружелюбная среда для работы.

Переменные, числа и математика

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

Числа были вынесены отдельной темой. Точнее, типы чисел. Показалось, что это тема, скорее, для общего развития: концепциям, которые я осознавал и раньше, просто дали определения.

Условные конструкции

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

Условные конструкции открыли и мой первый затык. Когда мы утверждаем, что нечто равно чему-то, нужно ставить “=”. Когда мы проверяем, что нечто равно чему-то, нужно ставить “==”. Двойное равно не входило в мой лексикон чуть ли не до финального проекта. А PyCharm не писал, что это ошибка. Много раз я шерстил вроде бы нормальный код вдоль и поперек, пока в голове не улеглось.

На этом этапе пришлось первый раз идти в гугл, потому что тип данных boolean проскользнул мимо внимания. Понял, что логические значения выглядят как обычные слова без кавычек, а еще Python может воспринимать из контекста, даже если они не написаны. Прямо как в человеческом языке 🙂 Впоследствии эта тема не особо мне пригодилась, но есть ощущение, что на более сложном уровне она становится важнее.

Списки и циклы

Если мы хотим перебрать что-то в диапазоне, например, от 1 до 5, мы пишем: for i in range(1, 6). Последнее число в диапазон НЕ включается, а первое включается. Ок, смирился. Можно обратиться к элементам диапазона с конца, используя отрицательные числа. Это удобно. Но при этом первый элемент списка — он для питона не первый, он нулевой, счет с нуля идет. Особенности нумерации — это первое, что меня удивило в языке. Вероятно, на более глубоких уровнях познания это имеет логическое обоснование. Привыкаю и смотрю дальше.

Ага, врубился

К этому моменту я уже привык, что в программировании все нужно объявлять и объяснять. Окей, я объявил, например, что ввожу с клавиатуры некоторый диапазон, в котором должен работать обработчик (обработчик?) for, вот этот самый range. Но как обозначить i так, чтобы обработчик понял, что нужно двигаться по диапазону? Да никак! Эта “i” выглядела для меня так, будто появляется из ниоткуда, но при этом подразумевала именно то, что мне нужно. В других примерах я увидел, что вместо “i” можно указать “_”, а потом узнал, что подойдет любой символ.

В этот момент я был как никогда близок к тому, чтобы все бросить. Спасибо, Stack Overflow, ты прекрасен! И спасибо другим ребятам, что проходили курс: в ответ на мое нытье они признались, что до циклов еще не дошли, порадовались моему прогрессу и вовремя приподняли мотивацию.

Функции и рекурсия

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

Рекурсия, как концепция, показалась очаровательной. Вдохновила на внеклассное чтение, провел весь вечер, залипая на фракталы 🙂

Структуры данных

Здесь я почувствовал, что делаю какие-то реально полезные вещи. Некоторые домашки были связаны с обработкой произвольных текстов. Да я целый MVP «Антиплагиата» вот этими руками сваял! Помимо синтаксиса, нужно было усвоить понятие итерируемости, и дело в шляпе. Ах да, в памяти осталось, что кортежи очень нужны, но постигну их подлинное величие я когда-нибудь потом.

Классы

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

Модули

Классическое начало Fallout представляете? Вспомните момент, когда вылезаешь из убежища/пещеры в совершенно новый, открытый мир — где не знаешь, чего и ждать, так что ждешь всего и побольше. То же самое и с модулями Python. Целая вселенная возможностей оказалась на расстоянии строчки-двух импорта. Таким же когда-то мне представлялся мир модов на скайрим, но кайфа от побед в питоне я получил больше 🙂

Для финального проекта я подгрузил функцию выбора случайного элемента списка. И Tkinter.

Выход из убежища в Fallout 4

Итоговый проект

Курс не включал гайдов по итоговому проекту, но я знал, что согласно плану создателей курса, я должен был сделать тренажер с флеш-картами для изучения иностранного языка. Это когда тебе дают определение слова, а ты должен написать, что это за слово. И так много-много раз в случайном порядке до полного запоминания. К тому моменту я закончил прекрасную игру Yakuza 0, богатую новыми для меня словами и фразами на английском. В итоге выписал штук 80 — база готова.

Tkinter я кое-как осваивал уже сам, по многочисленным гайдам в Сети. Предварительно отрисовал простенькую блок-схему с user journey. Помимо рандомного выбора определений поставил ограничение на 20 карточек за сессию и подсчет правильных ответов — с выдачей какого-нибудь игрового персонажа в зависимости от результата.

Думаю, вы представляете, как это примерно должно работать. У меня получилось где-то 80 строчек кода (не считая словарную базу). В них входило 10–15 модулей (графических элементов) Tkinter и три функции — проверка ответов с подсчетом результата, переход на следующий вопрос с подсчетом показанных карточек, создание финального сообщения на основе числа верных ответов.

Самое классное здесь не то, что я сделал проект сам с нуля, нет. Самое классное — что в начале работы я не имел представления о том, как будет выглядеть большая часть проекта. Всё вырисовывалось постепенно, за каждым поворотом к цели я открывал что-то новое, переписывал, переставлял, стремился к тому, чтобы всё вышло по ТЗ. И оно вышло, да! Я смог сделать из этого готовое приложение — можно было показать его даже без пайчарма.

К чему всё это?

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

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

Надеюсь, и в вашей работе всё еще находится место таким эмоциям. Успехов!

  • python
  • курсы
  • обучение программированию

Как не провалить своё IT-обучение

Как не провалить своё IT-обучение

30.11.2020

3740

Рейтинг: 5 . Проголосовало: 12
Вы проголосовали:
Для голосования нужно авторизироваться

advertisement advertisement

Приветствуем вас, друзья!

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

  • непонимание учебного материала;
  • сложности с написанием кода;
  • прокрастинация (лень);
  • отсутствие мотивации;
  • другие проблемы.

Все эти и другие вещи создают серьезные препятствия на пути к освоению желанной IT-профессии. Однако, всё выше перечисленное — не корень проблемы, а лишь её симптомы. Чтобы сделать свое обучение эффективным, необходимо взглянуть правде в глаза. Какие действия приводят к подобным неудачам? Почему новички быстро “выгорают” и теряют интерес к обучению, а иногда даже перестают видеть смысл в дальнейшем изучении программирования? Почему затрачиваемое на изучение время приносит так мало пользы? Ниже приводим список того, как НЕ стоит поступать, если вы с нуля изучаете программирование и хотите стать хорошим разработчиком.

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

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

Каждый теоретический материал должен быть обязательно закреплен практическими задачами. Вы их можете самостоятельно придумывать на ходу; обычно именно так и происходит. Вы читаете, например, о массивах, у вас в голове всплывают какие-то вопросы в стиле “А можно ли сделать вот так? А что будет, если. ” и это будет отличным способом попрактиковаться. Также не забывайте о множестве задач под каждую тему — вне зависимости от того, обучаетесь вы по книге, либо по другим материалам — никогда не упускайте возможность отточить навыки программирования.

advertisement advertisement

Данное действие нежелательно для новичков, ведь суть их обучения состоит в понимании концепций, а тупое копирование кода напрочь убивает это понимание.

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

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

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

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

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

  1. Знание. Вам необходимо выделять порядка 90% всего вашего внимания и концентрации, чтобы применить знания на деле. Как пример, школьник младших классов, который решает простейшие примеры на умножение и деление — ему необходима львиная доля усилий, чтобы каждый раз вспоминать таблицу умножения.
  2. Умение. На этом уровне человек оказывается, когда он набил руку и уже может выделять на практическое применение знаний меньше концентрации и внимания, а именно — порядка 40%.
  3. Навык. Вы выполняете задачу практически не концентрируясь на ней, однако качество выполненной работы сохраняется. Для примера можно сравнить начинающего водителя и водителя со стажем, который рассекает по дороге и практически не обращает внимания на нюансы, при этом соблюдая все правила дорожного движения. У него все процессы происходят словно на периферии сознания, позволяя без напряжения вести транспорт и чувствовать себя как рыба в воде. Водитель-профессионал на практическое применение знаний выделяет около 10% концентрации и внимания.

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

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

Тема связана со специальностями:

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

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

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

Фобия, актуальная не только в обучении программированию, но и в других сферах нашей жизни: в школе/лицее/гимназии/колледже, в вузе, на работе, да и вообще где угодно. Спрашивать можно и даже нужно. Однако, стоит учитывать несколько нюансов: 1) Вопрос не должен быть глупым. 2) Перед тем, как задать его, вы должны подумать над проблемой, поискать решения и попробовать самостоятельно прийти к развязке. Когда вы поймете, что действительно сделали все, что в ваших силах, но ничего не добились, можете смело обращаться за помощью, не забыв описать предпринятые вами шаги помощнику (-ам).

  1. Сразу идти и писа́ть на форумы, предварительно не погуглив хорошенько (неумение искать информацию)

Вторая сторона медали тезиса под номером 4.

Навыки использования поисковой системы (обычно это Google) и таких сервисов, как Stack Overflow, habr и других является обязательными для любого, кто связан с IT сферой. Вы будете всегда сталкиваться с определенными трудностями и самый оптимальный подход к их решению — поиск ответов в интернете. Если вы новичок, то практически на любой возникнувший у вас вопрос, уже был ранее дан ответ на одном из ресурсов, и это важно всегда помнить.

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

Если никак не получается найти нужную информацию — смотрите пункт 4 этой статьи.

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

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

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

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

Чуть ли не самые главные камни преткновения всех айтишников-самоучек — слишком мало времени на обучение + нерегулярные занятия.

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

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

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

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

  1. Учить множество языков (бросаться со стороны в сторону)

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

Видео курсы по схожей тематике:

Unity Стартовый 2015

Unity Стартовый 2015

Выполнение домашнего задания по курсу C# Базовый

Выполнение домашнего задания по курсу C# Базовый

Практический курс по верстке лендинга

Практический курс по верстке лендинга

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

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

Но как тогда выбрать свой путь в IT? Все достаточно просто. В сети интернет вы можете найти множество материалов касательно того, где можно реализовать себя в IT. Изучите все возможные сферы и выберите 1-2, которые вам больше всего понравились. Теперь можете поверхностно опробовать инструментарий каждой из них. Опять-таки, углубляться никуда не стоит — вам необходимо понять, все ли вас устраивает, нравится ли вам выбранный язык программирования и те задачи, которые вы будете на нем реализовывать. Когда сделаете окончательный выбор, можете приступать к изучению всех необходимых языков и технологий, оттачивать навыки написания кода и разрабатывать проекты для портфолио.

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

  • Как стать Андроид разработчиком?
  • Как стать Python разработчиком?
  • Как стать C# / .NET разработчиком?
  • Как стать Java разработчиком?
  • Как стать FrontEnd разработчиком?
  • и другие.

На нашем YouTube канале вы также можете найти множество полезного контента.

Если вы хотите узнать о том, какое из популярных направлений в разработке выбрать, можете взглянуть на 3.5-часовой вебинар под названием “Как стать программистом? Frontend, Java, Python или .NET — что выбрать?”. Его автор — Дмитрий Охрименко — CEO CyberBionic Systematics, сертифицированный тренер Microsoft и автор курсов по .NET и FrontEnd разработке с опытом в разработке более 10-ти лет.

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

  1. Слишком глубоко копаться в языке/технологии vs поверхностное изучение

Данный пункт также в определенной степени относится к предыдущему. Но что он подразумевает?

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

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

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

  1. Избегать общения с IT-специалистами

Достаточно важный момент, которому, однако, уделяется мало внимания. Рассмотрим ситуацию с двух сторон: 1) Вы посещаете соответствующие курсы по программированию. 2) Вы самостоятельно обучаетесь.

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

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

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

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

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

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

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

  1. Не искать работу, когда ты уже к ней готов

Проблема, возникающая на поздних этапах обучения, когда вы уже в целом готовы подавать резюме в компании, однако, вас сдерживает неуверенность в своих силах. Вашими спутниками становятся такие мысли, как: “А вот, может, это мне еще стоит подучить. ”, “Тут надо еще подтянуть”, “Да мне еще проектов так N надо реализовать. ”, “Я 100% потерплю неудачу на первом же собеседовании” и другие.

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

Бесплатные вебинары по схожей тематике:

Как новичкам найти работу во время войны? Реальный опыт и отзывы

Как новичкам найти работу во время войны? Реальный опыт и отзывы

Как стать PHP разработчиком? - вебинары ITVDN

Как стать PHP разработчиком? — вебинары ITVDN

Чек-лист успешной адаптации или как пройти испытательный срок в компании?

Чек-лист успешной адаптации или как пройти испытательный срок в компании?

Не уверены в своих силах, но весь необходимый материал усвоили и умеете применять на практике? Рискните и подайте резюме, сходите на собеседование — так вы по крайней мере сможете адекватно оценить свой уровень знаний и умений и уже будете отталкиваться от фактов, а не от собственных страхов и предубеждений.

Как определить, что вы уже готовы искать работу? Открываете описание целевых вакансий, смо́трите на требования; если вы, условно, знаете 8 из 10 требуемых фреймворков, значит, полный вперед! “Знаете фреймворки” — это: а) Вы их использовали в каком-либо из своих проектов; б) Эти проекты работают, причем работают нормально.

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

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

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

Здесь уже желательно обладать английским не ниже уровня Upper Intermediate.

Заключительное слово

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

Здесь вы сможете отслеживать все самые главные вкусности от ITVDN: FB, VK, Linkedin, Twitter, Instagram, Telegram.

Желаем вам побед в обучении! Обогащайтесь новыми знаниями и скиллами на ITVDN!

Как гуманитарию освоить Python: 9 советов

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

�� Определиться с направлением

Python для разработки, аналитики и data science подразумевает разные траектории обучения. Прежде чем обращаться к образовательным ресурсам, определитесь, зачем вам этот язык программирования

Кто рекомендует: Туча

Какие направления более востребованы

�� Пройти бесплатные курсы на Stepik

«Поколение Python: курс для начинающих» будет хорошим стартом. Уроки состоят из теории, вопросов и задач, в конце каждого блока нужно сдать экзамен, в финале — выполнить проект

Кто рекомендует: Алена Игоревна

�� Послушать лекции Тимофея Хирьянова

Видеоуроки харизматичного преподавателя кафедры информатики МФТИ покрывают все базовые темы программирования на Python и подходят даже школьникам и неподготовленной аудитории

Кто рекомендует: Алена Игоревна

��️ Пройти курс CS50

Гарвардская программа посвящена основам компьютерных наук и программирования. В учебный план входит изучение C и Scratch, баз данных и SQL, CSS, HTML, JavaScript и PHP. Лекции можно прослушать на английском и на русском

Кто рекомендует: Ilya Lebedev

�� Прочитать книги из серии Head First

В этой серии азы Python даются в простой, почти игровой форме. Стоит обратить внимание на книги «Изучаем программирование на Python» Пола Бэрри и «Учимся программировать с примерами на Python» Эрика Фримена

Кто рекомендует: ezdiumno

�� Потренироваться на платформе Kaggle

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

Кто рекомендует: Алена Игоревна

�� Скачать приложение Mimo

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

Кто рекомендует: Daria Zagorskaya

�� Прочитать A Byte of Python

Бесплатная электронная книга для начинающей аудитории. В ней новички найдут объяснения основных понятий на наглядных примерах и практические задачи

Кто рекомендует: ezdiumno

�� Найти стажировку или вакансию для новичка

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

Кто рекомендует: Lenten

Истории о стажировках в ИТ

�� Больше о том, как научиться новому

Читайте в потоке «Образование». Рассказываем, какие курсы помогут повысить свою ценность на рынке труда, сменить профессию или просто узнать что-то новое

Читать статьи

Больше статей для успешного старта карьеры:

Новости из мира образования, советы по карьере и учебе, вдохновляющие истории — в нашем телеграм-канале: @t_obrazovanie

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *