Бинарный салют друзья! На связи снова Инженер Спок!
Сегодня я постараюсь ответить на вопрос, который беспокоит всех новичков в сфере IT, когда они только пробуют программировать и сталкиваются с первыми трудностями: с отсутствием целостной картины и непониманием того, как сложить вместе изученные конструкции языка программирования для решения задачи. Этот вопрос: "почему мне так сложно начать программировать"?
Лайкосы / Подписки / Курсы
В интернете, не в последнюю очередь, благодаря маркетологам GeekBrains, SkillBox и иже с ними, бытует мнение, что программированию может научиться каждый и что, мол, это вообще всё легко и просто. Достаточно занести им сто тысяч рублей и, вуаля, через пол-года-год вы не просто «научитесь программированию», а станете настоящим программистом, устроившись на работу. Замечу, что требований к будущим студентам, как правило, вообще никаких не предъявляется. Получается, что любой дворник или домохозяйка с тремя классами образования может без особых проблем получить профессию программиста.
Для начала я хочу внести ясность в определение «научиться программированию». А что это вообще означает? Когда вы пишете «хеллоу ворлд» вы, в принципе, программируете. Можно ли сказать о человеке, умеющем писать «хеллоу ворлд», что он «научился программированию»? Отнюдь. Тут, конечно, кроется подвох. Писать «хеллоу ворлды» может научиться действительно каждый за исключением умственных инвалидов. Обычные умственно здоровые люди, даже с тремя классами образования, могут гораздо больше, чем хеллоу-ворлд. И тут мы подходим к другой границе. А как далеко могут уйти в программировании такие люди?
Чисто теоретически, могут, конечно, очень далеко, вплоть до устройства на работу программистом. Однако, как вы знаете, у меня десятки тысяч студентов зачислены на курсы, и я в течение уже пяти с лишним лет получал и анализировал различные вопросы по моим курсам и фидбэк в целом. Мой опыт показывает, что люди с очень слабым образованием, те, кто вчера узнали, как включается компьютер, и, что важнее, те у кого низкий уровень логического мышления уезжают от «хеллоу ворлда» не очень далеко. Если смогли установить редактор кода – уже победа. Однако даже на довольно простых программах, где требуется немного подумать, сложить общую картину, мыслить абстрактно впадают наглухо в ступор, и, помучавшись какое-то время, идут писать гневные комменты о том, что курс слишком сложный.
Открою секрет как в таком случае отрабатывают претензию скиллбоксы с гикбрэйнасами.
Они успокаивают, говорят, что всё у вас получится, вот вам решение, кладут его в рот и даже могут разжевать. Человек, когда видит решение, мгновенно понимает, что, блин, решение-то и правда простое. И так повторяется до конца курса N раз. Человек получает сертификат. Теперь зададимся вопросом: «научился ли такой человек программированию?» Ответ, я думаю, очевиден, ибо такой специалист по-прежнему не способен к абстрактному мышлению и самостоятельному решению задач.
Это не делает эти компании плохими, речь тут идёт о другом: о том, что не каждый может стать программистом.
Не справится с простым заданием, конечно, могут и те, кому программирование вполне под силу. Если вы из тех, кто себя чувствует всё-таки более или менее уверенно: способен понимать простую булеву логику и научился включать компьютер не вчера, то:
в первую очередь вам необходимо подписаться на ютуб-канал AvitoTech и, в частности, начать смотреть уникальный курс по паттернам и практикам написания кода. Теперь этими знаниями AvitoTech делится совершенно бесплатно. Курс будет полезен.
- тем, кто неплохо изучил один или несколько языков программирования и теперь хочет разобраться в практиках и подходах к разработке.
- тем, кому интересно, как работать с небольшими и крупными проектами
- тем, кто хочет прокачать свои знания до синьора и понять, что же представляет из себя ООП на самом деле
- тем, кто хочет понять, какие возможности предоставляет ООП и чего можно с помощью него добиться.
Видео на курсе - универсальны. Независимо от используемого ВАМИ языка программирования они будут полезны каждому, кто пишет код.
Подписывайтесь на канал AvitoTech, там очень много всего интересного и полезного, всё как вы любите. И обязательно смотрите курс по паттернам и практикам написания кода. Ссылку я оставлю в описании.
Итак, почему же, окунаясь в программирование, даже вменяемые люди испытывают трудности?
На то есть несколько причин.
- Сваливается невероятное количество новых знаний. Эта причина характерна, разумеется, не только для программирования, однако программирование одна из тех областей, широта которых превосходит все мыслимые и немыслимые пределы. Каждая вторая книга на добрую тысячу страниц по любой мало-мальски значимой теме.При интенсивном погружении, а сегодня все хотят вкатиться в АйТи не за пять лет, а максимум за год, приводит к тому, что человек ощущает себя выброшенным посреди океана. Это давит психологически. Чтобы въехать на должном уровне в программирование, вам придётся ознакомиться с таким количеством тем, что, если просто начать их перечислять, вся статья уйдёт лишь на это. Далеко не все люди на планете готовы такое количество времени посвящать учёбе. А самое «неприятное» заключается в том, что после вкатывания в айти, вам придётся продолжать учиться и делать это на протяжении всей карьеры. Интенсивность, при желании, правда, можно будет понизить. Но если захотите на самый верх – то лет десять придётся вкалывать как лошадь.
- Айтишные профессии сегодня, несмотря на всевозможные кризисы, являются одними из самых востребованных, и, поскольку, все хотят вкатиться в АйТи, вокруг этой темы появляется огромное количество компаний, коучей, блогеров, которые хотят на вас заработать. Само по себе это неплохо, мы живём при капитализме: есть спрос – есть предложение. Проблема заключается в том, что не все йогурты одинаково полезны, и, изучая C# по мануалам Гоши Дударя, вам впоследствии придётся переучиваться.
- Третья проблема проистекает из второй. Когда вокруг столько предложений научить вас программированию – как выбрать адекватные источники информации, где если и косячат, то минимально? Вопрос непраздный и, если честно, простого ответа на этот вопрос у меня нет.
- Необходимость самостоятельно осмысливать и решать поставленную задачу длительное время. На самом деле, оказывается это очень серьёзная проблема. Далеко не все готовы часами решать одну и ту же задачу без достижения результата. Однако в программировании, такое происходит сплошь я рядом. Особенно, когда в этом деле вы ещё совсем зелёный. Помню, как на первом курсе, я решал два дня одну задачу по матану. Мне было принципиально никуда не лезть, никого не спрашивать, да и если честно, на тот момент, я даже не знал кого спрашивать и где найти ответ. Через двое суток я нашёл решение и был очень-очень рад. Стоит ли говорить сколько ещё на курсе было таких же упёртых студентов, добившихся результата? Всего человека 3-4. В программировании, вы нередко встречаете проблему, над решением которой можно думать пару дней. Все профессиональные программисты сталкивались с этим внезапным озарением в душе, когда в голову приходит решение. С уверенностью могу сказать, что далеко не все готовы к такой профессии.
- Отсутствие привычки искать решение проблемы всеми возможными способами.
Частенько я получаю вопросы на курсе из разряда: «после установки postgresql у меня вылезла такая-то ошибка при подключении к серверу – как это исправить?»
Такие вопросы — это первый признак того, что человек никогда не станет программистом. Многие тут могут сказать, мол, человек купил курс и хочет получить поддержку. Звучит, вроде бы, разумно, однако решение его проблемы приведёт лишь к тому, что он продолжит в любой непонятной ситуации донимать куратора, в конце концов получит сертификат и так ничему и не научится.
Прежде чем тратить огромное количество времени на изучение программирования, определитесь готовы ли вы разбираться в огромном количестве материалов, слушать и фильтровать базар блогеров и всяких скиллбоксов, биться лбом об стену в попытке решить задачу в течение нескольких дней и учиться искать информацию, в идеале на английском языке? Если готовы, то тогда есть смысл продолжать.
Какие в целом можно дать рекомендации по изучению программирования?
- Составьте план и график. Нельзя учить программирование один раз в неделю или месяц. Вы должны стараться это делать регулярно и не брать перерывы. Объем изучения очень велик и если вы будете редко заниматься программированием, то вы просто начнете забывать, что и как делать.
- Старайтесь использовать разные источники для изучения программирования. Вы можете купить платные курсы и найти в Интернете бесплатные. Одновременно, не впадайте в состояние бесконечной закачки курсов и книг на диск. Это уже целый вид прокрастинации, когда вы только и делаете, что качаете книги и курсы, но не приступаете ни к одному из них.
- Постарайтесь найти ментора, который уже состоялся в программировании. Я учился без ментора и это сильно меня тормозило, потому что мне приходилось бегать на форумы со своими тупыми вопросами и не всегда я получал на них квалифицированный ответ.
- Не бросайте программирование при первых трудностях. На первых порах вам может показаться, что программирование это очень сложно и вообще не ваше. Все программисты в начале своего пути сталкивались с этим. Даже опытные программисты частенько страдают синдромом самозванца.
- Учите английский язык. Без знаний английского вы автоматически оказываетесь отрезанным от 90% знаний, произведённых человечеством. Наиболее качественные и квалифицированные ответы на ваши вопросы изложены именно на английском языке. Будь то вопрос общего характера или вопрос касательно конкретной ошибки компиляции.
Подведём итоги
Сложность программирования зависит от многих факторов: от того, какой язык программирования вы выберете, от вашего изначального уровня подготовки и опыта, а также от того подхода к обучению, который вы изберёте.
На начальных этапах может показаться, что программирование — это очень сложно, так как требуется собрать кучу знаний в единую картину, привыкнуть к абстрактному мышлению и к исключительно логическому подходу к решению задач. Однако, при старании и упорстве, вы сможете достаточно быстро преодолеть этот этап. И если вы думаете, что начальный этап самый сложный, как бы не так. Дальше последуют этапы «скала растерянности» и «пустыня отчаяния», которые преодолевать будет ещё сложнее. Хотя определённое вооружение к этому моменту у вас уже будет иметься.
Чтобы научиться программированию, нужно много учиться и практиковаться. Практика – это очень важно. Чтение теории не имеет почти никакого смысла, если вы не закрепляете материал на практике. Программирование — это супер-динамичная сфера, где постоянно появляются новые технологии и новые инструменты. Поэтому, чтобы оставаться востребованным в этой области, вам нужно постоянно обновлять свои знания и умения.
Если вы хотите понять, подходит ли вам программирование, то вам нужно задуматься о том, что готовы ли вы учиться постоянно, решать нетривиальные задачи, отслеживать изменения в технологиях и уделять много времени на работу за компьютером. Вам также нужно быть уверенным, что вам нравится абстрактное и логическое мышление, решение сложных задач и кропотливая работа с кодом.
Ну а я, как всегда, хочу напомнить, что абсолютно все статьи пишу с единственной целью – как следует на вас заработать. Поэтому срочно идите по ссылке и покупайте все мои курсы по программированию. До скорого!