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

от admin

Как учиться программировать: 6 вещей, которые я понял, учась на Хекслете

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

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

Какой язык программирования изучать первым? Неважно!

Не нужно тратить сильно много времени на выбор и мучаться этим. Берите Ruby, Python, JavaScript, PHP, Java, Lisp, да хоть паскаль — не ошибетесь. Для начала вам все равно нужно будет освоить базовые вещи, такие как циклы, условия, переменные, функции, объекты, рекурсию и т.п. Я когда-то в школе немного программировал на всяких бейсиках и C++, но к тому времени, как решил стать программистом, все это успешно забыл.

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

Новички так серьезно подходят к вопросу «Какой же язык программирования выбрать», будто им предстоит подписать договор с дьяволом, и всю жизнь писать только на этом единожды выбранном языке. Лично для меня просветлением стало, когда я увидел профили высокооплачиваемых программистов на бирже Upwork, почему-то очень во многих из них было написано примерно следующее — могу Django, могу Rails, а еще Meteor и Angular, да и Spring тоже. И Joomla само собой.

Потом я спрашивал некоторых знакомых (и малознакомых) программистов об их карьере, и увидел некий паттерн, которого раньше не понимал. Человек может, например, год работать с PHP, потом уйти на Java, потом плюнуть и выучить руби, стать RoR разработчиком, и в итоге заняться Node.js или Clojure. Любой нормальный программист знает несколько языков хорошо и десяток поверхностно. Поэтому не ломайте голову, не пытайтесь выбрать Самый Лучший Язык и строчить для этого тысяча первый вопрос на тостере. Просто берите любой язык и прочитайте по нему хотя бы одну книгу/пройдите курс. Попытки выбрать Самый Лучший Фреймворк из той же серии.

Про первую работу

Очень многие программисты начинают свою работу с весьма непрестижных компаний и крошечных зарплат. И это нормально. Но это сложно принять, особенно тем, кто решает «войти в айти» уже не в юном возрасте, имея семью и детей. Мифам об огромных зарплатах программистов зачастую способствуют школы программирования, которым нужно продавать свои курсы и в итоге на своих лендингах они крупным шрифтом пишут какие-то заоблачные цифры, вроде «средняя зарплата JavaScript программиста 150 000 рублей», при этом часто забывают сказать, что такую зарплату получают люди с опытом в несколько лет (или даже десяток лет), которые могут решать реальные сложные задачи, а вам после их курсов на старте светит тысяч 30 на испытательный срок, и это в Москве. А то и вообще попросят бесплатно поработать. За опыт и еду. Не нужно бояться идти на непрестижную и малооплачиваемую работу, потому что как только вы официально начнете работать программистом, даже за 20 тысяч в месяц, ваша привлекательность в глазах других работодателей и HRов сильно вырастет. На старте работу никто не мешает менять хоть каждые 3-6 месяцев, каждый раз уходя на бОльшую зарплату и более интересные задачи.

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

Учиться программировать сложно

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

Лично я долго (слишком долго) учился на всяких курсах из серии «посмотри на меня, делай как я». Когда начал учиться на Хекслете, у меня от некоторых заданий просто мозг кипел, да и сейчас кипит. Одно задание я пытался сделать 3 дня. Но в итоге я прокачался, и теперь могу решать более сложные задания, чем раньше. Мне кажется, именно в этом должна быть цель хороших курсов программирования. Не в том, чтобы натренировать вашу память на запоминание 1000 функций из какой-то библиотеки. А в том, чтобы заставить мозг напрягаться и с каждым днем решать все более сложные задачи.

Про code kata

На определенном этапе (почти сразу после изучения основного синтаксиса одного из языков программирования), нужно набить руку в решении простых (хотя бы простых, для начала), алгоритмических задачек. Есть десятки разных сервисов, где это можно делать — codewars.com, exercism.io, hackerrank.com и т.п. Проскочить этот этап не получится. Если вы зашли на codewars и просто не понимаете, что от вас хотят, и как решать даже самые простые задачи первых уровней, срочно вливайтесь в какое-то сообщество, где есть программисты и единомышленники, изучающие программирование, и где можно будет задавать вопросы и получать помощь. Одно из таких мест — слак чат Хекслета. Если вы не научитесь решать эти простые задания, вероятность резиста того, что вы сможете решать какие-то реальные рабочие задачи, крайне мала.

Не нужно зубрить названия функций

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

К примеру, если я знаю, что обычно в языках программирования есть возможность привести строку к нижнему регистру. C этим знанием общей концепции, если я захочу например, писать на COBOL, просто загуглю — tolowercase in Cobol. И вуаля Lower-case(Item-1) . Если я буду много писать на каком-то определенном языке, я загуглю основные функции по 100 раз, и на каком-то этапе уже их запомню.

Кстати, это очень полезная штука и для изучения иностранных языков, я лично просто ненавижу делать какие-то списки, карточки и зубрить слова. Особенно у меня вызывают желание ругаться матом наборы слов, вырванные из контекста, типа «100 прилагательных на тему Погода». Это просто нереально запомнить, а даже если и зазубрил сегодня, через месяц 80 процентов забудешь. Гораздо эффективнее просто читать/смотреть интересный тебе контент на языке и искать незнакомые слова в словаре каждый раз, таким образом через какое-то время самые употребительные слова запоминаются естественным образом.

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

Начните изучать разработку с бесплатного курса «Основы современной вёрстки». Вы научитесь создавать статические веб-страницы, стилизовать элементы, использовать редакторы кода с полезными расширениями. В конце курса вы опубликуете свой первый сайт на GitHub Pages.

Тупить — это нормально. (с) Елена Малышева

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

То есть люди, которые занимались программированием много лет, иногда тоже не могут самостоятельно разобраться в какой-то новой фиче, и совершенно не стесняются просить совета и помощи. Однако, с вероятностью 99% предварительно они пытались сами решить эту проблему, обратились к Google и Stackoverflow, но безуспешно.

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

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

Почему программирование — это так сложно?

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

Для программистов важны навыки работы с людьми

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

Всё это довольно неплохо описывает большинство программистов. И до поры описывало меня. Если это про вас, то придётся довольно долго приспосабливаться к работе в индустрии.

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

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

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

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

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

Экспертиза без полномочий

Зачастую ваши идеи будут расходиться с идеями тех кто принимает окончательные решения. Придётся смириться с этим и научиться работать над утомительными проектами и принимать все «шишки», как взрослый человек. Фред Брукс в книге «Мифический человеко-месяц» назвал это «экспертизой без полномочий».

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

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

Обязательное условие — любовь к экспериментам

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

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

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

Компиляция требует абсолютного совершенства

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

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

Идеи просты, но компьютерные программы — сложные

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

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

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

Не каждая ошибка является ошибкой

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

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

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

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

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

Подводя итог: красный, волнистый и раздражающий автоматически не переводится в «‎важный».

Отсутствие ошибок — это НЕ отсутствие багов

Представьте себе, что вы откинулись на спинку стула после тяжёлой работы, довольные тем, что наконец-то исправили все эти досадные ошибки. И теперь можете отдыхать, верно? Нет.

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

Существует два основных типа ошибок: ошибки компиляции (красные, волнистые) и ошибки времени выполнения или логические ошибки. О последнем мы сейчас и говорим.

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

Идеальный пример — деление на ноль. Это математическое выражение не определено, и проблема не очевидна, если просто делить Х на Y. Обе переменные могут быть какими угодно, и значение Y имеет только тогда, когда программа запущена.

Решайте первопроблемы

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

Чтобы стать лучшим программистом, нужно уметь быстро определять первопричину и исправлять именно её. Это я называю «решением первопроблем».

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

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

Таким образом, запомните эти простые правила устранения неполадок и отладки:

  1. Всегда тестируйте код;
  2. Проверяйте и перепроверяйте всё, особенно то, что считаете неважным;
  3. Старайтесь не делать слишком резких изменений, чтобы исправить ошибки — это может создать больше проблем;
  4. Перепроверьте всё ещё раз.

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

Фундаментальная проблема разработки программного обеспечения

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

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

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

Технология — это непредсказуемая, движущаяся цель

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

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

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

Оценка сроков — это сложно

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

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

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

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

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

Почему научиться программировать так чертовски тяжело?

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

  • С чего начать обучение программированию?
  • У вас есть курс по Java для новичков, но я слышал, что нужно изучать Python, правда ли это?
  • На других сайтах все просто и понятно, а у вас какие-то компиляции и тесты!
  • Непонятно зачем нужен этот ваш курс по алгоритмам, в реальной жизни все алгоритмы уже реализованы в стандартных библиотеках

Квинси Ларсон был просто “офисным парнем в костюме”. Он решил научиться программировать. Начал спрашивать людей вокруг. Изучил немного Руби, потом быстренько посмотрел на другие языки вроде Scala, Clojure и Go. Он изучил Emacs, а потом Vim, а потом раскладку Dvorak. Он втыкал в Линукс, копался с Лиспом и кодил на Питоне, и жил при этом в командной строке больше полутора лет.

Его швыряло туда-сюда как листочек в торнадо. Каждый совет, который он слышал, тащил его то в одну, то в другую сторону, до тех пор пока он не прошел “каждый онлайн-курс по программированию во вселенной”. В конце концов, не смотря на то, что он получил работу разработчика ПО, Квинси:

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

Ох. Звучит знакомо?

Фаза 1: Медовый месяц

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

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

С другой стороны, движение «Learn to Code” проделало фантастическую работу по удалению барьеров, и показало что кодить на самом деле довольно просто. Инструменты вроде Codecademy, Treehouse и Code School так мягко и за ручку подводят тебя к коду, что можно быть уверенным – я не просто смогу научиться программировать, я смогу стать полноценным разработчиком!

Внезапно, проблема не в страхе, а в избыточных надеждах и высоких ожиданиях.

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

Проблема в том, что вы находитесь в фазе “медового месяца”. Может казаться, что конец близок, но в реальности вы прошли лишь крохотный отрезок пути. Это только начало…

Рисуем маршрут

Перед тем как перейти к Фазе 2, давайте взглянем взглянем на весь путь.

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

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

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

Читать:
Сколько памяти занимает int

Мы рассмотрим уникальные испытания, которые ждут нас в следующих трех фазах, но для начала вкратце рассмотрим каждую фазу:

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

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

3. Пустыня отчаяния это долгий и одинокий путь через бездорожье, где каждое новое направление кажется верным, но часто вы просто ходите кругами и голодаете по ресурсам, которые могли бы помочь. Остерегайтесь “миражей мании” как сирен пустыни! Они уведут вас в никуда.

4. Подъем благоговения это та часть, где вы наконец находите путь через пустыню и начинаете понимать как создавать приложения. Ваш код все еще дырявый и хрупкий как карточный домик. Вера в себя растет потому что ваши сайты вроде как работают, вы изучили несколько важных паттернов, ваши друзья считают ваши интерфейсы крутыми, но вам страшно заглянуть под капот, и вы не знаете как делать production-ready код. Как отсюда построить мост к состоянию “готов к реальной работе”?

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

Давайте вернемся к фазе 2…

Фаза 2: Скала смятения

Итак, вы находитесь в фазе 1 – „Медовый месяц“. Вы заполняете пробелы и завершаете задачи, связанные с кодом в то время как ваша уверенность и возможности растут. Это не так уж плохо… К чему суета? Вы поднялись на «Гору иррационального изобилия»…

Будьте осторожны! Вы собираетесь переступить пропасть, которая ломает многих сильных учеников, вытесняя их в лагерь под названием „кодинг — это слишком тяжело“. Точный момент этого скачка происходит тогда, когда вы садитесь за клавиатуру, открываете свой текстовый редактор и пытаетесь в первый раз создать проект с нуля без каких-либо встроенных в браузер редакторов, костылей кода или полезных советов.

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

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

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

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

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

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

Два ключевых фактора

Так в чем же на самом деле разница между первой и второй фазой? Почему фаза 2 («Скала смятения») так ужасна по сравнению с фазой 1 («Медовый месяц»)? Понимание этого поможет вам понять, что вашей вины абсолютно нет в том что, ваше путешествие выглядит так, как мы только что описали.

Есть два основных момента во время прохождения каждой фазы: плотность ресурсов и объем знаний. Давайте посмотрим, что это такое, прежде чем изучать, как они выведут вас к фазе 3.

Фактор 1: плотность ресурсов

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

Введите в поисковике «Уроки программирования», и на вас обрушится стена из нужных и полезных инструментов, таких как статьи, видеоролики и учебники. И, честно говоря, это здорово! Никогда раньше не было так много способов, чтобы начать учиться программированию.

К сожалению, на более поздних этапах плотность ресурсов быстро падает. Любой, кто прошёл от стадии новичка до среднего уровня, может подтвердить, что существует БОЛЬШАЯ разница между количеством имеющихся ресурсов в самом начале и тогда, когда вы впервые ищете помощь самостоятельно, без посторонней поддержки.

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

Вот как выглядит плотность ресурсов в каждой фазе (большая концентрация линий указывает на большую плотность ресурсов):

Фактор 2: объем знаний

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

Когда вы только начали обучение, набор вещей, которые вам нужно понимать, ещё достаточно узкий. Каждому человеку, независимо от целей обучение, языка и предпосылок, необходимо изучить, что такое цикл «for», как построить логику условного оператора и познакомиться с основными структурами синтаксиса программирования. А зачастую даже и не приходится сталкиваться с некоторым из вышеприведенных базовых понятий, поэтому объем знаний на этом этапе является очень узким.

Как только вы отходите от основ, вы замечаете быстрое расширение базы знаний, так как начинаете сталкиваться с более сложными вопросами, такими как понимание разновидностей ошибок, или, когда именно использовать код, который вы знаете и как вообще его использовать. А это две разные вещи, потому что нет „правильного“ ответа на точный вопрос… Пока всё очень размыто.

По мере продвижения к третьему этапу объем знаний станет расти. Теперь вы должны понимать, какие инструменты использовать, какие языки изучать, как писать модулярный код, знать основы CS и объектно-ориентированного программирования, обладать грамотным стилем кода и уметь искать ответы на вопросы (хотя бы в нескольких источниках). Каждый заход в Google или на сайт Hacker News погружает вас в огромное множество кроличьих нор и ошеломляет вас такими вещами, которых вы не знаете, но чувствуете, что должны их знать.

Вы не знаете, чего именно вы не знаете.

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

Фаза 3: Пустыня отчаяния

С пониманием ключевых факторов, можно увидеть, что «Скала смятения» является критической точкой. Мучения, вызванные совокупностью быстро растущего объема знаний и упадка плотности ресурсов привели к фазе, которую я называю „Пустыня отчаяния“.

В сущности, это пустыня, где вы знаете, что где-то есть конец, но не знаете, как до него добраться:

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

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

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

Существует НАМНОГО больше вещей, которые предстоит узнать, чем вы, возможно, ожидали. Даже если вы в состоянии заставить работать некоторые приложения, то очень трудно не чувствовать себя слабым звеном в огромной цепочке становления настоящим профессионалом. Трудно измерить ваш прогресс. Как вы узнаете, что вам изучать, если изучаете только необходимые вещи?

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

Безусловно, до этого момента было трудно, но, возможно, вся эта история с веб-программированием и не такая сложная, в конце концов… Everything’s coming up Milhouse!

Фаза 4: Подъем благоговения

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

Это и есть «Подъем благоговения»:

Снаружи всё может выглядеть хорошо, но в глубине души вы знаете, что вы ещё не достигли цели.

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

Это фаза состоит из двух полюсов: вы чувствуете, что одна ваша половина — это пуленепробиваемый разработчик, а вторая — тонкая фанера с дикими глазами новичка, который утонул в своём пути. Чем дальше вы продвигаетесь, тем больше растет терзающее чувство неопределенности, как будто кто-то собирается «разоблачить» вас, как обманщика.

Вы чувствуете, что уже должны стать разработчиком, но дистанция между кодом, который вы пишете и «профессиональной» рабочей средой не сокращается…

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

«Подъем благоговения» всегда занимает больше времени, чем вы ожидаете, и кажется бесконечным, потому что вы так близко… Но вы всё же достигнете его. Если вы настойчиво идёте в правильном направлении (тема следующего поста), то сможете убедить кого-то платить вам и спокойно продолжать учиться дальше. Работа ваша.

На что всё это похоже

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

Одно дело — знать путь, а другое дело — идти по нему. Давайте поможем вам начать.

Как дойти до конца живым

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

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

I: Как Выжить в «Медовом месяце»

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

  1. Начните пробовать разные ресурсы, чтобы найти те, которые лучше вам помогают в обучении, ищите наиболее интересные для вас проекты. Это могут быть быстрые решения от KhanAcademy, упражнения в браузере от Codecademy, книга Learn to Program Криса Пайна или школа кода Try Ruby. В начале будьте открытыми для всего и игнорируйте наставления в стиле «вы должны учить только это». На данном этапе весь код одинаковый.
  2. Далее выберите один подходящий для вас ресурс и старайтесь придерживаться только его. Пройдите курс от начала до конца, чтобы получить все основные знания, которые вам помогут написать базовые скрипты и приложения. А в дальнейшем приготовьтесь начать создавать свои собственные проекты.
II: Выживание на «Скале смятения»

Почти каждый из вас пройдёт через «Скалу смятения», поскольку единственный способ стать разработчиком — это разрабатывать. Вы можете претендовать на эту профессию, подписавшись на статьи (или на туториалы, которые выдают за «полные» курсы), но этим вы будете только откладывать неизбежное. Учебники — это хороший способ решить начальные задачи, но в некоторой момент вы должны будете отучить себя от соски и столкнуться с реальным миром.

Вот три совета, которые помогут самостоятельно перейти к компилированию:

  1. Работайте с кем-то в паре, даже если он такой же новичок как и вы. Вы будете удивлены, насколько легче отладить кажущуюся неисправимой ошибку, если подключить ещё две пары глаз.
  2. Читайте больше чужого кода, чтобы познакомиться с хорошими паттернами. Постарайтесь понять, почему автор сделал именно так, а не иначе. Вы ведь не сможете стать писателем, не читая чужих книг, не правда ли? Мы подробно рассмотрим это в следующем посте, а сейчас, заострите своё внимание на мелких проектах и задачах, для которых другие люди уже написали решения.
  3. Начните с малого и программируйте постоянно. Вы должны думать о будущих крупных и интересных проектах, но для этого ваша отладка должна стать гладкой, а поиск ресурсов не должен составлять труда. Опыт вы ничем не замените.
III: Выживание в «Пустыне отчаяния»

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

Итак, вот ключи к выходу из «Пустыни отчаяния»:

  1. Поставьте перед собой определенную цель, которую вы хотите достичь, потому что в противном случае вы закончите тем, что устанете гоняться за своим хвостом, изучая различные виды интересных, но по большому счёту ненужных вещей. Но если у вас есть свободное время, то можете опустить этот совет…
  2. Найдите верный путь, который ведет прямо к поставленной цели и убедитесь, что он действительно направляет вас к ней. Вам нужно копать глубже и не искать ответ среди рекламных лозунгов, суперобложек и улыбающиеся лиц на веб-сайтах различных курсов на вопрос „поможет ли мне это достичь поставленной цели или нет?“
  3. Сконцентрируйте всё своё внимание и не отвлекайтесь, потому что, если вы относитесь к тем людям, которым интересно изучать код, вы также заинтересуетесь изучением других интересных вещей. В те моменты, когда программирование даётся тяжело, вы должны особенно сильно продвигаться вперед, а не браться осваивать другие модные занятия.

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

IV: Выживание на «Высоком подъеме»

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

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

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

Итак… Возможно ли это вообще?

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

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

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

5 причин, почему у тебя не получается освоить программирование

У многих новичков есть неправильное представление о работе программиста. Поэтому когда они начинают изучать кодинг, то сталкиваются с кучей трудностей: потеря мотивации, выгорание и нехватка времени. Что мешает научиться программировать конкретно тебе и как преодолеть эти проблемы — разберемся вместе с Elbrus Bootcamp.

Хочешь охватить все и сразу

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

Решение. В начале пути лучше не пытаться найти самый лучший язык, а выбрать один и изучать его. По сути можно начать с самых универсальных: JavaScript, Java, Python и так далее. Если не понравится, его в любой момент можно поменять. Ведь настоящие специалисты не стремятся выучить все языки программирования — у них есть база, которую они периодически дополняют. Например, программист работает на PHP, затем учит базовый JavaScript и переключается на один из его фреймворков типа React. Так он постоянно развивается.

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

Выбираешь не тот курс

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

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

Хороший пример грамотного курса Elbrus Coding Bootcamp — школа программирования в формате буткемпа. Это сверхинтенсивная подготовка к профессии разработчика с практикой на реальных проектах. За 3 месяца ты получишь фундаментальную базу по JavaScript, одному из самых востребованных языков: на май 2022 года по нему открыто 9 000 вакансий только на одном hh.ru. Во время обучения в Elbrus Bootcamp ты узнаешь, что нужно, чтобы получить работу. Карьерные коучи научат составлять резюме и помогут подготовиться к собеседованиям.

Используешь готовые решения

Проблема. Чтобы ускорить разработку, новички в кодинге могут использовать сервисы типа Stack Overflow и GitHub для поиска готовых фрагментов. Ошибка таких джунов в том, что они не пытаются понять, почему их код не работает. Они просто сохраняют его как инструмент, который можно использовать.

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

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

Не развиваешь гибкое мышление

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

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

После того, как получишь новую информацию, закрепи ее на практике. Например, напиши код, который будет печатать числа от 1 до 10 с помощью цикла. Можно взять чужой образец за основу, но добавить в него что-то свое. При изучении очередной фишки достаточно в общих чертах знать, что она делает и как ее можно загуглить. Девять раз наберешь запрос в поисковике, а на десятый — вспомнишь сам. Также можно прийти попрактиковаться на бесплатных онлайн мастер-классах для начинающих по JavaScript и Python в Data Science. Там ты освоишь базовый синтаксис языков, разберешь теорию и задачи.

Ставишь труднодостижимые цели

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

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

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

Так, в 2021 году Высшая школа экономики проанализировала процент трудоустройства выпускников Elbrus Bootcamp. Из 510 человек 423 нашли работу в первые два месяца после обучения. Половина из них устроились в компании из сфер IT, цифрового бизнеса и финансов. При этом 46,4% опрошенных не занимались программированием до самого обучения.

Похожие статьи