Как научиться быстро программировать: Секрет быстрого программирования: не задумывайтесь / Хабр

Содержание

Секрет быстрого программирования: не задумывайтесь / Хабр

Программировать быстро — это легко! Так считает инженер-программист компании Google, который все публикации в своем блоге подписывает лаконичным «Макс». Макс также работает главным архитектором, комьюнити-менеджером и релиз-менеджером в Bugzilla Project. Мы в Alconost впечатлились и перевели его советы о том, можно ли как научиться программировать с космической скоростью.

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

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

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

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

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

Это может звучать невероятно, но работает исключительно хорошо. Задумайтесь: когда вы сидите перед вашим редактором, но работа идет небыстро, потому ли это, что у вас низкая скорость набора? Я сомневаюсь: «слишком много набирать» — редкая проблема программистской производительности. Паузы, когда вы не набираете, — вот что все замедляет. А чем обычно заняты в таких паузах разработчики? Пытаются перестать думать — может быть, о проблеме, об инструментах, о сообщении в почте, да о чем угодно. Но всякий раз, когда такое случается, оно означает проблему. Размышления сами по себе — не проблема, но признак какой-то другой проблемы. Вероятно, вместо того, чтобы ходить по кругу в своих мыслях, вам стоит обратить внимание на что-то из этого:

Понимание

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

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

Таких вариантов — бесчисленное множество. Многие пользуются языком программирования, не разбираясь, что (, ), [, ], {, }, +, * и % означают в этом языке. Некоторые разработчики не понимают, как на самом деле работает компьютер. Помните мой «Единственный секрет программиста-рок-звезды»? Вот где суть! Ведь если ты по-настоящему понимаешь, тебе не надо прекращать ненужные размышления. Это также побудило меня написать книгу: понимание того, что есть незыблемые законы создания программного обеспечения, может избавить от многих эпизодов «борьбы с размышлениями».

Так что, если вы оказались в мыслительном тупике, не пытайтесь решить проблему в своей голове — ищите то, чего не понимаете, вне себя. После чего возьмите и посмотрите на что-то, что поможет вашему пониманию. Это применимо даже к вопросам вроде «Прочтет ли когда-нибудь пользователь этот текст?» У вас может не быть Департамента исследований пользовательского опыта для настоящего ответа на этот вопрос, но вы можете хотя бы нарисовать что-нибудь, показать другим, выслушать их мнение. Не пытайтесь просто сидеть и думать — сделайте что-то. Только действие ведет к пониманию.

Рисование


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

Начинание


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

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

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

Пропуск шагов


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

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

Не перепрыгивайте шаги при разработке своей системы — и это позволит вам быть продуктивным.

Физические проблемы


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

Отвлекающие факторы


Когда разработчик отвлекается на что-то внешнее, например, шум, ему может понадобиться некоторое время подумать, чтобы вспомнить, над чем он работал в своем решении. Ответ тут относительно прост: перед тем, как садитесь за разработку, убедитесь в том, что ваше окружение не побеспокоит вас или отвлекающие факторы не будут вас прерывать. Одним нужно закрыть дверь в свой офис, другим — надеть наушники, кому-то — поставить статус «Не беспокоить»: сделайте так, как вам нужно. Возможно, вам понадобится помощь вашего менеджера или сотрудников, чтобы создать действительно благоприятную для разработки среду.

Неуверенность в себе


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

Ложные представления


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

Бездействие


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

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

Как вам такой подход?

О переводчике

Перевод статьи выполнен в Alconost.

Alconost занимается локализацией приложений, игр и сайтов на 60 языков. Переводчики-носители языка, лингвистическое тестирование, облачная платформа с API, непрерывная локализация, менеджеры проектов 24/7, любые форматы строковых ресурсов.

Мы также делаем рекламные и обучающие видеоролики — для сайтов, продающие, имиджевые, рекламные, обучающие, тизеры, эксплейнеры, трейлеры для Google Play и App Store.

Подробнее: alconost.com

Программирование с нуля: 10 способов научиться программировать самостоятельно

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

Мы обновили эту статью 11.05.2023 — добавили новые ссылки, примеры, уточнили описания курсов и поправили мелкие неточности.

Содержание

Выясните, почему вы хотите программировать

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

Если вы хотите стать программистом, первое что следует сделать — это записаться на профессиональные курсы (Google собрал список навыков и курсов для тех, кто хочет стать инженерами-программистами).

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

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

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

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

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

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

  • Codecademy — платформа для обучения кодингу через интерактивные уроки. Она предлагает курсы по многим языкам программирования, включая Python, Java, JavaScript и другие.

  • freeCodeCamp — бесплатная образовательная платформа, которая помогает учиться программированию через проекты и упражнения.

  • Coursera — платформа для онлайн-обучения, предлагающая курсы по широкому спектру тем, включая программирование. Курсы предлагаются от ведущих университетов и компаний по всему миру.

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

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

  • Stack Overflow — форум вопросов-ответов для программистов. Это место, где вы можете задать вопросы и получить ответы от сообщества.

Выберите правильный язык программирования

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

Язык, с которого стоит начать, зависит от причины изучения. К примеру, если вы хотите создать приложение под iOS, лучше всего начать с изучения Swift. Но если вы намерены программировать всерьез и надолго, можно начать с языка C или выбрать Python — с ним в 2023 году будет проще влиться в программирование. 

Пройдите курс Специализация Python от Coursera, стоимость $49 в месяц.


Как научиться программировать? Начните с малого… и будьте терпеливы

Независимо от выбора языка или метода обучения, вам следует начать с самого начала. Когда Дэвид Сински (David Sinsky) научился программировать за восемь недель, потратив одни выходные на изучение основ Python, а другие, к примеру, на Django. Взяв учебник, он удалял написанный код и снова проходил материал с нуля.

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

Начать программировать можно с приложения для детей

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

Не имеет значения, сколько вам лет — даже детские анимационные приложения могут научить основам программирования. А у edX есть курс обучения по Scratch.

Онлайн-курсы, чтобы начать программировать: 

iOS Certification Course: App Development for Creative Entrepreneurs — специализация по основам разработки для iOS. На курсе вы приобретете навыки, необходимые для создания собственных приложений, которые сможете продемонстрировать на собеседованиях или выложить в магазин iTunes. 

Programming for Everybody: Getting Started with Python — специализация по Python для всех. Знакомит с фундаментальными концепциями программирования, включая структуры данных, сетевые программные интерфейсы приложений и базы данных, с использованием языка программирования Python. обработки и визуализации данных.

The Full Stack — курс для тех, кто планирует разрабатывать серверные приложения. На выходе сможете создавать frontend и backend новых приложений, используя свои навыки разработчика полного стека на Django.


Воспользуйтесь бесплатными онлайн-тренингами

Бесплатные онлайн тренинги и проекты типа Codecademy, Hour of Code и другие могут помочь вам в написании первой успешной программы. Учебные пособия от Khan Academy, Codecademy, Code.org и других познакомят с основами программирования и всем необходимым для создания игры, сайта или другого проекта.

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

Пройдите онлайн-курс

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

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

Бесплатные книги по программированию

Если вы застряли на какой-то проблеме или вам нужно найти ответ на свой вопрос, не стоит забывать о справочниках. На GitHub можно найти коллекцию из более чем 500 бесплатных книг по программированию. Там же есть и электронные книги, охватывающая 24 языка программирования.

Изучайте, играя

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

Некоторые обучающие сайты сами являются играми: Code Combat и CodinGame — инструменты, используя которые вы сможете и весело провести время, и научиться новым навыкам в IT.

Найдите наставника или станьте им

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

Разберите чужой код

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

Только не забудьте поделиться своим кодом, если вам удастся улучшить часть ПО.

Обзорные курсы по программированию и алгоритмам: 

Fundamentals of Computing Specialization (Rice University) — специализация на базе курса компьютерных наук Университета Райса. Вы получите навыки программирования на Python с нуля и примените их создании более 20 увлекательных проектов.

Java Programming and Software Engineering Fundamentals Specialization (Duke University) — введение в Java для начинающих. Специализация научит вас основным концепциям программирования и поможет писать программы для решения сложных задач. Вы получите базовые навыки, необходимые инженеру-программисту для решения реальных проблем — от разработки алгоритмов до тестирования и отладки программ.

Data Structures and Algorithms Specialization (University of California) — практически ориентированный курс по алгоритмам, разработанный командой экспертов из UCSD и бывшим инженером Google. Предназначен для тех, кто хочет углубить свое понимание алгоритмической теории и практики, решая около 100 задач по программированию.

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


Примечание

В статье есть ссылки партнеров. Это значит, что если вы что-то покупаете с нашей помощью — вы также поддерживаете dev.by. (Вот другой способ).

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

Редакция может выражать свое мнение и пробовать всё на себе.

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








Как быстро научиться программировать

Эта статья посвящена тому, что нужно делать и чего не делать при обучении программированию. Он также даст вам советы о том, как учиться наиболее эффективным способом. Эти советы основаны на опыте Наташи Постоловски в качестве разработчика-самоучки, которая сейчас работает разработчиком программного обеспечения в ThoughtWorks в Австралии. Вы можете подписаться на нее в Твиттере @npostolovski.


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

Иметь так много доступных учебных ресурсов — это хорошо, но это также создает проблему.

Если вы хотите научиться программировать, с чего начать?

Чему ты учишься и чему не учишься ?

Как лучше всего практиковаться и как быстрее всего улучшить свои навыки?

Эта статья призвана помочь ответить на некоторые из этих вопросов.

Google Trends предполагает, что число людей, заинтересованных в обучении кодированию, быстро выросло за последние несколько лет.

Четко определите свои цели

Люди учатся программировать по разным причинам. Возможно, вам потребуется изучить основы JavaScript и Ruby, чтобы подать заявку на работу в качестве младшего разработчика полного стека. Возможно, вам достаточно знать HTML и CSS, чтобы закончить школьный проект, или, может быть, вам нужно немного изучить Python, чтобы иметь возможность выполнять анализ данных с помощью Numpy. У вас может быть идея для игры для iPhone, которую вы хотите написать на Swift, или захватывающая концепция для первой популярной игры в виртуальной реальности, созданной с помощью Unity 3D. Ваша идея стартапа на миллиард долларов может потребовать сложного машинного обучения, или вам может понадобиться простое программное обеспечение, которое поможет решить проблему в вашем малом бизнесе. Есть тысячи причин, по которым кто-то может захотеть научиться программировать, и тысячи разных подходов к этому процессу.

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

Как правило, я рекомендую следующее:

    • Если вы создаете статический веб-сайт (это означает, что ему не нужно хранить данные или иметь динамическое поведение), подумайте для начала об изучении HTML и CSS. Вы также можете в конечном итоге решить изучить JavaScript, если он вам нужен.
    • Если вам нужно создать приложение для iOS, изучите Swift. Если вы создаете приложение для Android, изучите Java.
    • Если вы хотите создать веб-приложение, вам необходимо изучить HTML, CSS и веб-фреймворк. Веб-фреймворк — это то, что упрощает хранение данных и добавляет динамическое поведение в ваше веб-приложение, например, возможность иметь учетные записи пользователей и отображать данные из базы данных. Некоторые популярные веб-фреймворки включают:

      1. Django, написанный на Python
      2. Ruby on Rails, написанный на Ruby
      3. Метеор, написанный на JavaScript
      4. Laravel, написанный на PHP
    • Подходящая для вас веб-инфраструктура будет зависеть от того, что вы пытаетесь создать. Я действительно думаю, что Ruby on Rails — отличный вариант для тех, кто учится программировать, так как он очень хорошо документирован в Rails Guides.
    • Подходящая для вас веб-инфраструктура зависит от того, что вы пытаетесь создать. Я действительно думаю, что Ruby on Rails — отличный вариант для тех, кто учится программировать, так как он очень хорошо документирован в Rails Guides.
    • Если вы хотите создать игру, вам следует изучить Unity.
    • Если вы хотите заниматься наукой о данных или машинным обучением, Python и эти библиотеки — хороший выбор. Библиотека — это заранее написанный код, облегчающий выполнение определенных задач, например отображение диаграммы рассеяния.
    • Вы даже можете пройти этот тест, чтобы узнать, какой язык программирования вам больше всего подходит.

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

В идеале вы должны сформулировать такое утверждение:

Через 3 месяца я хочу опубликовать веб-сайт для группы моего друга.

Или…

Через 6 месяцев я хочу запустить работающую MVP или « Минимально жизнеспособный продукт » версию моей бизнес-идеи.

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

Поймите, как лучше учиться

Не существует лучшего способа научиться программировать.

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

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

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

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

Например, еще в 2006 году, когда Ruby on Rails только начал набирать популярность, многие программисты впервые узнали о Ruby, прочитав книгу, ласково известную как «Книга о кирках», названную в честь изображения кирки на обложке. Том на 864 страницах, в котором исчерпывающе подробно описаны все аспекты языка программирования Ruby, «Книга о кирке» стала легендарной среди программистов на Ruby. И все же для тех, кто впервые изучает код, начать сейчас может быть очень сложно!

Работайте над тем, что важно для вас

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

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

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

Сравните следующие сценарии: два человека учатся принимать платежи по кредитным картам на веб-сайте. Как вы думаете, кто сохранит эту информацию? Человек, который учится, потому что «когда-нибудь это может пригодиться», или человек, которому отчаянно нужно выяснить, как принимать пожертвования через свой веб-сайт для независимого документального фильма, который они пытаются снять?

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

Найдите хорошую компанию

Будь то наставник или кто-то из ваших знакомых, который также учится программировать, поддержка кого-то бесценна. Обучение программированию может быть сложной задачей, и полезно знать, что кто-то другой проходит через те же трудности. Если вы не знаете никого, кто учится программировать, вы можете попытаться встретиться с ними, посетив местные технические встречи на Meetup.com. В некоторых группах встреч проводятся вечера «Новичков», которые привлекают много новичков. Если в вашем районе нет местных митапов или встречи вам не по душе, такое сообщество, как CodeNewbie.org, — еще одно отличное место для поиска поддержки. Если вам нравится идея научиться кодировать вместе с группой других людей, то, возможно, вам также стоит изучить учебные курсы по кодированию.

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

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

Будьте последовательны

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

Отслеживайте свой прогресс

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

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

Завершить начатое

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

Помните: лучше закончить одно дело, чем начать десять дел и не закончить ни одного.

Сообщения об ошибках — ваши друзья

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

Не пытайтесь выучить все


Признание того, что вы не освоите все, на самом деле хорошо, когда вы пытаетесь научиться программировать, взято из нашего Codementor Office Hours with Haseeb.


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

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

И помните, для этого нет скрипта!

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

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

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

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

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

1. Выберите язык по назначению

Независимо от того, изучаете ли вы программирование впервые или продолжаете обучение, вы должны знать, что вы хотите изучать и почему.

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

2. Начните с основ

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

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

В нашем бесплатном курсе Learn to Code with Blockly мы познакомим вас с универсальными концепциями и методами, общими для всех языков программирования, а затем вы сможете перейти к языку по вашему выбору на таких курсах, как:

  • Learn Java: For интересующихся разработкой программного обеспечения и мобильных приложений.
  • Изучите JavaScript: изучите язык, лежащий в основе большинства динамических веб-страниц и приложений.
  • Learn Python: отличный выбор для первого языка, потому что он легко читается и используется в веб-разработке и разработке программного обеспечения.
  • Изучение HTML: Если вы хотите создавать веб-страницы, это ваш первый шаг.
  • Изучение C#: начните учиться создавать видеоигры и мобильные приложения с помощью этого популярного языка программирования.

3. Практика кода

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

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

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

  • 10 задач по кодированию HTML и CSS для начинающих
  • 10 задач по коду JavaScript для начинающих
  • 10 задач по коду Python для начинающих
  • 10 задач по написанию кода C++ для начинающих
  • 10 задач по коду Java для начинающих

4. Достаньте ручку и бумагу

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

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

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

5. Используйте инструменты и методы отладки

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

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

6. Ставьте реалистичные цели и придерживайтесь их

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

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

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

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

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