Transcript for:
Сложности и реалии изучения программирования

Почему изучать программирование так сложно или не совсем наверняка тебе встречались люди которые говорили что программирование выучить просто достаточно купить такой-то курс и через месяц ты уже будешь трудоустроен сидеть пожинать плоды и лутать Кучу бабок на удалёнке и новички действительно в это верят в принципе их сложно винить ведь такое стереотипное мышление формируется по ряду причин например на ютуберов по типу Один день из жизни программиста Где нам показы что они работают оди час а оставшиеся сем едят или вовсе ничего не делают или видосы где уже успешные прогеры втирают тебе какую-то дичь мол выучи этот стек технологии и ты гарантированно получишь свой жирный офер за 3-6 месяцев я ничего против таких видосов не имею они знатно мотивируют изучать it но также они скрывают кучу подводных камней о которых не знают новички именно эти подводные камни я и хотел бы сегодня рассмотреть не удивительно но программирование действительно с точки зрения написания кода является само по себе простой задачей на первый взгляд кажется что написать несколько строчек кода понятных компьютеру Это довольно просто запомнил синтаксис и ключевые слова выбранного языка и всё я уже программист Берите меня на работу Однако Реальность гораздо сложнее потому что программирование предполагает логическое мышление решение различных проблем а также немаловажное - это глубокое понимание проблемы которую вы решаете в вместе с инструментами которые вы используете Вот что я пытаюсь до тебя донести программирование - это не кодирование очень часто люди упускают из виду важную часть программирования это способность Мыслить как разработчик и именно из-за этой части программирование и становится таким сложным при обучении дело не в программировании А в мышлении когда человек уже выучив всей программирование говорит что просто иди и выучи какой-нибудь JavaScript Вот тебе курс смотри эти видосы Повторяйте гайды и уже через неделю ты станешь гером ведь это всё просто и понятно И с этим справится даже младенец то такой человек не до конца с тобой честен ведь он не упоминает о тех бессонных ночах кодинга которые он провёл усыпанной тонной непонятных ошибок когда ты сидишь и чувствуешь себя тупым думая что ты единственный неудачник слови вший эту ошибку и о ней ничего нет в интернете Ибо ты даже не понимаешь как правильно её загуглить и я думаю что это потому что это то чему тебя не смогут научить ни учебники ни курсы Ты просто должен испытать это на себе и пройти через всё это сам Однако Давай я тебе попробую всё-таки помочь на твоём пути обучения и расскажу о тех моментах которые ты должен учитывать чтобы быстрее развить данное мышление Давай представим что ты решил стать крутым поваром и начал учиться готовить блюдо с помощью книги рецептов Вот ты запомнил рецепт пирога и уже знаешь что для его приготовления тебе нужна мука сахар яйца и сливочное масло следуя этому рецепту ты скорее всего сможешь печь довольно приличный пирог Однако что если тебе не хватает какого-то ингредиента или ты добавил его в неправильных пропорциях так вот если ты зубрилка программирования без понимания основополагающих принципов программирования Вроде ты отвечаешь на вопросы касаемо языка запомнил весь синтаксис но решить задачу где нужно применить комбинацию твоих знаний уже не можешь знание языка программирования будь то Python JavaScript си Sharp или любой другой язык в этом смысле похоже на простое Запоминание кулинарных рецептов из книги Вот тебе пример допустим ты узнал как работают переменные циклы массивы научился создавать массив чисел и выводить его циклом на консоль ты изучил метод сам который суммирует элементы массива приходишь на Собес и тебе дают задачу поиска среднего арифметического элементов числового массива и тут ты решаешь применить этот самый метод сам Однако тебе скажут что так делать нельзя и ты должен при решении задач на Собес не использовать встроенные методы языка а реализовывать их сам своими руками то есть от тебя хотят видеть чёткого понимания того как этот метод сам устроен под капотом Да он просто проходится по массиву элементов и суммирует их но стоит понимать что я привожу простой пример самое главное понять суть Дело в том что в процессе программирования Ты часто будешь слышать что так делать нельзя этот подход устарел Не используй эту библиотеку или фреймворк и так далее То есть по сути на тебя вешают разные ограничения при решении задачи но при этом ожидают что ты внесёшь свои корректировки и добьёшься решения задачи с применением альтернативных способов Это то же самое если тебе сказали что пирог ты будешь подавать человеку который не ест сахар и тебе нужно его заменить в рецепте чем-то другим Да ты не учился этой замене непосредственно при приготовлении пирога Однако если ты понимаешь суть сахара в рецепте то это позволит тебе внести необходимые корректировки в рецепт как только ты освоишь основы кулинарии то ты сможешь экспериментировать с рецептами и подавать свои собственные уникальные блюда ты теперь не просто следуешь рецептам ты их создаёшь то же самое относится и к программированию имея прочную основу знаний и понимания базовых концепций программирования или технологии которые ты используешь ты сможешь решать задачи уже не просто копируя чужой код со stover ф или с ответов чата gpt А теперь ты сможешь делать это осознанно и внося свои корректировки То есть ты уже создаёшь решение с нуля именно в этом и заключается истинная сложность программирования умение решать проблемы и логически мыслить дело не только в том чтобы знать как писать код но и в том чтобы знать что именно нужно писать чтобы разработать новую функцию или исправить ошибку тебе нужно разбить эту задачу на более мелкие управляемые части а затем систематически обращаться каждой из из них этот навык часто пропускается в обучающих материалах так как ему практически невозможно научить это одна из тех вещей с которой тебе придётся просто разобраться самому Ты должен сам решить все эти проблемы а не просить чтобы их за тебя решил кто-то другой тут всё просто ты попросту не сможешь овладеть навыком решения задач если эти задачи за тебя решает кто-то другой верно учебные курсы и туториалы предназначены для того чтобы помочь тебе лучше освоить программирование показывая Как что-то делать на примере Но для того чтобы стать хорошим программистом тебе также нужно разобраться во всём этом самостоятельно тебе нужно поймать правильный баланс между использованием обучающих курсов и любого рода учебных пособий и самостоятельными действиями вот Почему многие новички в конечном итоге попадают в ситуацию когда они владеют всеми теоретическими знаниями но у них нет практических навыков и они не знают как использовать свои знания это одна из тех ситуаций когда ты изучил слишком много учебных пособий Но у тебя не недостаток самостоятельной практики в этот момент Тебе может показаться что ты всё ещё мало знаешь и люди начинают из раза в раз заново проходить множество различных учебных пособий в итоге это может так никогда и не закончиться и ты так и не научишься применять свои знания на практики Да ты прорешал уже кучу разных примеров но способность решения задач тех что тебе не попадались так и не улучшилась и ты попрежнему идёшь за помощью к чату gpt Вот почему кривая обучение программирования как известно очень крутая потому что тебе нужно сбалансированно потреблять учебные материалы и писать код самостоятельно но важно понимать что чтобы не попасть в эту ситуацию тебе вовсе не стоит полностью отказываться от учебных курсов и различного рода материалов Всё дело в том что они подобны плавательном кругу рано или поздно тебе придётся его убрать и плыть самому на самом деле обучение начинается тогда когда ты начинаешь применять свои знания в разных ситуациях Именно поэтому люди получив офер или меняя место работы так сильно замечают Как растёт их уровень знаний когда ты начинаешь готовить так сказать без рецепта ведь тебе попадаются Задачи о которых ты слышишь впервые а порой настолько уникальные что загуглить их действительно не представляется возможным Вот почему зачастую новички бросают программирование не дойдя до нужного этапа в обучении ведь им казалось что это просто и у них всё пойдёт как по маслу потому что у других это получилось а тут они попадают в среду где не понимают Как решить базовые задачи которые их знакомые прогеры решают за секунду и их начинают посещать мысли что они тупые и не предрасположены к программированию И вообще у них никогда это не получится и это просто пустая трата времени запомни что каждый Эксперт в области программирования когда-то был таким же новичком как и ты продолжай двигаться вперёд продолжай учиться и не Бросай это дело а также не стесняйся задавать свои вопросы другим Я тоже когда-то изучал программирование и конечно я тоже не сразу понимал как решать те или иные задачи поэтому я боялся изучать программирование и думал что я попросту не осилю его но в итоге наступил момент когда ты уже прорешал такое обилие задачи ошибок что разобраться в какой-то технологии или Выучить язык или фреймворк дабы пересесть со стека на стек уже не кажется тебе сложным разбивайте свои задачи на подзадачи с помощью этого подхода даже самые сложные задачи кажутся доступными и дают тебе чёткие отправным способ столкнуться с примерами реальных зада которые тебе будут давать на реальной работе почему это хорошо Ну создание пед проектов заставляет тебя использовать Твой маленький мозг а использование твоего маленького мозга означает решение задач а решение задач означает что ты хороший программист Да твои проекты вряд ли получатся запустить свет чтобы ими кто-то пользовался но тут важен сам процесс создания этих проектов хочешь ты того или нет но ты будешь сталкиваться с проблемами когда тебе придёт в голову идея реализовать ту или иную фичу тогда ты начнёшь задумываться и гуглить А как она реализована из чего состоит под капотом и Как реализовать этот механизм с помощью того инструментария которым ты владеешь на своём языке программирования ещё одна причина создавать свои пед проекты - это твоё портфолио портфолио - это опыт опыт - это работа а работа - это деньги к примеру Именно из-за этого я решил ввести для вас рубрику devc моя задача - показать вам процесс создания реальных проектов на разную тематику чтобы вы вы могли подчеркнуть для себя что-то новое пока был только один выпуск ссылка на видео появится вверху но скоро данной рубрики будет больше на канале также не стесняйся использовать технику фейнмана она гласит о том что ты по-настоящему понимаешь какую-то концепцию только если ты можешь объяснить её простыми словами это заставляет тебя разбивать сложные концепции программирования на их фундаментальные части и По мере того как ты пытаешься объяснить кому-то концепцию быстро становится понятно что ты понимаешь а что нет и это Может тебе понять что тебе следует изучить более подробно и конечно если ты будешь объяснять концепцию кому-то другому или даже самому себе вслух то это поможет тебе закрепить своё понимание и ты запомнишь это ещё лучше также Используй свои неудачи как средство обучения Да звучит банально на ошибках учатся но это факт Все мы не идеальны и допускаем ошибки я также не идеален и допускаю ошибки на работе по сей день каждый программист допускает ошибки из-за рядо факторов самое банальное - Это после чтения тонны кода у тебя под вечер уже замыливание глаз и ты где-то допускаешь опечатки поэтому тебе стоит привыкнуть к тому что у тебя что-то не получается и не работает Это нормально допуская сотни ошибок и решая их у тебя со временем будет представление о том что пошло не так с ловив очередной баг зачастую все ошибки которые я ловлю на данный момент я решаю в считанные минуты так как сходу сильно сужают друг поиска ошибки исходя из своего опыта решения этих ошибок Поэтому ты тоже со временем к этому придёшь следующий совет - Это занимайся регулярно и в течение длительного периода времени и это не 30 минут в день Это действительно мало нужно 24 часа ладно шучу хотя бы от часу в день и наконец что немаловажно - это ты должен перестать себя сравнивать с другими Если у тебя есть знакомый который стал программистом за полгода или ты начитался комментов в интернете где люди через год нашли офер то не впадай в тильт Если ты не уложился в эти сроки ведь ты не знаешь фактического числа часов потраченного на обучение Далеко не каждый признается в том что сидел и 3 дня исправлял какой-то баг единственный с кем ты должен себя сравнивать - это Илан Маск ладно Нет конечно же это ты сам многие продолжают себя сравнивать с людьми которые уже занимаются этим годами Хотя скорее всего ты занимаешься этим меньше недели поэтому Совершенно очевидно что они будут Лучше тебя надеюсь что ты подчеркнул для себя что-то полезное я помогу тебе на твоём пути обучения Если хотите поддержать канал то подписывайтесь на канал и на мой а также оставляйте комментарии и ставьте лайки С вами был канал й кот Всем удачи и до новых встреч