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


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

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

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

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

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

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

Язык, с которого стоит начать, зависит от причины изучения. (К примеру, если вы хотите создать приложение под iOS, вам лучше начать с изучения Swift). Если вы со всей серьёзностью отнеслись к намерению программировать, можно начать с языка C. Хотя выбрав Python, вам будет проще влиться в струю программирования. Приводим инфографику для сравнения нескольких популярных языков программирования.

8. Начните с малого… и будьте терпеливы

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

7. Попробуйте приложения для детей

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

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

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

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

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

Курсы по Data Science 

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

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

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

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

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

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

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

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

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

Fundamentals of Computing Specialization (Rice University)

Как научиться программированию? [Руководство для начинающих]

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

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

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

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

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

1. Ознакомьтесь с языком программирования

Знакомство с языком программирования - это первый шаг к изучению программирования. Люди часто начинают с C, C ++, Java или Python. Я лично предпочитаю C ++ вначале, поскольку он не слишком прост (как Python) и не слишком несовершенен с точки зрения библиотек (как C).C ++ довольно быстр и имеет хорошую библиотечную поддержку - лучшее из обоих миров! Кроме того, C ++ - хороший выбор для соревновательного программирования, поскольку он довольно быстр и поддерживает стандартную библиотеку шаблонов (STL). Выбор первого языка очень субъективен и зависит от ваших интересов и целей. Возможно, вас заинтересуют интерфейс, серверная часть, разработка мобильных приложений, разработка игр, наука о данных и т. Д. Если ваша главная цель - получить работу, обязательно ознакомьтесь с нашей статьей о том, какой язык программирования лучше всего подходит для получения работы ?

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

2. Изучите структуры данных и алгоритмы

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

Есть много хороших онлайн-курсов, на которых вы можете учиться. Алгоритмы, часть 1 и часть 2 - хорошие курсы для начала. Важно, чтобы вы потратили время на обдумывание реализации этих структур данных и алгоритмов, чтобы освоиться с ними. Вы можете подумать, что изучение их реализации может не иметь значения, поскольку в конечном итоге используются библиотечные функции.Это одно из самых распространенных заблуждений людей. Понимание реализации поможет вам оценить временную сложность, что поможет вам в дальнейшей оптимизации вашего кода. Есть замечательный веб-сайт Visualgo, где вы можете фактически визуализировать работу различных структур данных и алгоритмов.

3. Запачкайте руки соревновательным программированием

Изучив структуры данных и алгоритмы, вы должны начать решать проблемы на таких сайтах, как SPOJ, Codechef, Codeforces, Topcoder, Hackerrank, Geeksforgeeks и т. Д.Чем больше проблем решишь, тем лучше. Однако лучше решать проблемы в порядке возрастания сложности. Вы можете отсортировать проблемы в порядке убывания количества присланных решений и приступить к решению. Решив около 100 смешанных задач, вы приобретете уверенность в своих навыках программирования.

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

4. Сделать проект

Теперь, когда вы усовершенствовали свои навыки решения проблем и программирования, пришло время создать несколько полезных приложений. Вы можете выбрать какой-нибудь популярный фреймворк для веб-разработки (Django, Flask, Ruby on Rails и т. Д.) И создать с его помощью проект. Создание приложения позволит вам почувствовать настоящую разработку программного обеспечения, что и делают большинство программистов.

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

5. Изучите

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

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

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

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

Это был мой подход к обучению программированию; вот как я научился программировать :) Поскольку вы читаете эту статью, я предполагаю, что вы серьезно относитесь к изучению программирования, и это хорошо! Надеюсь, вы нашли эту статью полезной. Всего наилучшего для вашего обучения! Не стесняйтесь задавать мне свои вопросы / сомнения в комментариях.

Еще читают:

,

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

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

Кроме того, я люблю программировать само по себе: для меня это игра. С логикой действительно весело возиться.

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

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

  • Как правильно выучить новый язык программирования?
  • Какие ресурсы лучше всего использовать?
  • Какой образ мышления?
  • Какие инструменты использовать?
  • Каковы другие преимущества этой методики обучения?

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

Пойдем со мной, дорогой читатель! Давайте отправимся в Страну программирования, где каждая переменная, функции и классы живут в мире и гармонии.

Среда, где можно сосредоточиться

Давайте будем честными: изучение нового языка программирования требует времени и усилий. Нет ничего невозможного, но не ожидайте, что программирование будет easy .

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

Вам нужно:

  • Тихое место, где можно сосредоточиться только на том, чему вы хотите научиться.
  • Место, которое вдохновляет вас . Лучше всего будет там, где у вас не возникнет соблазна заняться чем-то другим.
  • Чтобы быстро выбрать редактор кода / IDE. Мы хотим выучить язык программирования, а не найти идеальный инструмент.Не тратьте на это время: просто выберите самый популярный вариант. Вы всегда можете изменить позже, в зависимости от ваших потребностей. Обязательно советую редактор с каким-нибудь автозаполнением, он вам очень поможет.

У меня есть целая статья, которая больше посвящена обучению в целом, если вам интересно.

Первый шаг: изучение основ вашего языка программирования

Основы включают:

  1. Синтаксис кода
  2. Основы программирования

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

Не бойтесь основ, если вы новичок. Вы получите их по пути.

В поисках лучших ресурсов

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

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

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

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

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

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

Вы можете спросить себя: почему книга? Почему бы не подписаться на статьи о Великом Интернете? Или смотрите видео на Youtube? Качество контента в Интернете может быть очень случайным. Вы не хотите принимать неправильные привычки; легко усвоить неточные концепции, увеличивающие вашу путаницу. Учиться легче, чем отучиться .

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

Вы хотите избежать неправильных представлений, «зная» что-то, что верно лишь частично или абсолютно неверно.

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

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

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

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

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

Оценка ваших знаний

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

  • Что я узнал в последний раз?
  • Какова цель этих примеров и чему вас пыталась научить книга?
  • Что означает этот конкретный синтаксис?
  • Какова цель этой функции?
  • Каков результат этого примера?

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

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

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

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

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

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

  1. Читать книгу
  2. Скопируйте код
  3. Проверяйте себя время от времени без книги
  4. Поиграйте с кодом - измените его, добавьте свои идеи, чтобы понять, как он на самом деле работает
  5. GOTO 1

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

Второй шаг: начало побочного проекта

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

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

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

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

Какой побочный проект вы можете создать?

Я уже писал серию статей о сторонних проектах:

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

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

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

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

Лучший способ работать над побочным проектом

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

Затем выполните следующие действия:

  1. Откройте редактор кода.
  2. Выберите функциональность, которую вы хотите закодировать.
  3. Код
  4. .
  5. Google - ваш друг, когда вы застряли.
  6. Ура! Ваш функционал работает.
  7. Вернуться к 2.

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

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

Не тратьте много времени на поиск лучших инструментов. Я бы посоветовал не использовать какой-либо фреймворк для вашего первого побочного проекта. Если вам нужны библиотеки, возьмите первую, рекомендованную сообществом (или получившую первое место в рейтинге Google), и действуйте.Еще лучше: напишите код самостоятельно, если он не слишком длинный (или слишком скучный).

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

Шаг третий: покажите миру свои новые таланты

Поделитесь своим кодом и повысьте авторитет

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

Как и почему git выходит за рамки этой статьи. Если вы хотите, чтобы я сказал об этом, вы можете связаться со мной. Я хотел бы получить известие от вас!

Установите git в свою систему и создайте учетную запись на Github. Затем продвигайте свой проект.

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

Это даже лучше, чем создание портфолио, наполненного пустотой!

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

Как это хорошо?

Получите обратную связь от коллег

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

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

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

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

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

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

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

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

Эта часть - не только эгоцентричная болтовня обо мне и о том, насколько я хорош (для этого есть страница о блоге), но и о том, чтобы дать вам конкретные примеры.

Как я научился программировать 20 лет назад

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

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

Я прочитал все и скопировал большую часть кода во время чтения. Книга научила меня всем основам программирования на низком уровне. Это чертов С.

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

Как я выучил Голанг в 2018 году

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

  1. Первый шаг: Один из моих коллег посоветовал мне прочитать «Практика», скопировав весь код, приведенный в качестве примера.Это то, что он сделал, чтобы выучить язык.
  2. Второй шаг: На полпути к написанию книги я начал свой первый побочный проект на Голанге: testomatic.
  3. Третий шаг: я поделился своим кодом в группе Google Golang и в сабреддите Golang. Милое сообщество Golang дало мне ценные отзывы, помогая понять общие идиомы.

Результат? Я нашел работу в мае 2018 года в качестве разработчика Golang на полную ставку. Мой побочный проект testomatic очень помог мне вначале, поскольку я не был уверен в синтаксисе.Очень полезно!

  1. Бонусный шаг: после того, как я начал новую работу, я прочитал Go in Action, чтобы лучше понять основы и механизмы языка.

Вот несколько интересных графиков времени, потраченного на изучение Голанга:

Первый шаг: прохождение Effective Go

  • По оси ординат - Помидор, который я делал каждую неделю.
  • One Pomodoro - это 25 минут целенаправленного обучения.

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

Я хотел быть готовым к новой работе, и мне было хорошо.

Второй шаг: testomatic, мой первый побочный проект на Голанге

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

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

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

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

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

Как я изучил Clojure в 2020 году

А! 2020! Вы были полны обещаний. Человечество в целом увидело ваш потенциал. У нас было полно проектов, мы сидели на своих диванах, наблюдая хаос и страдания, обуздавшие мир.

Каким-то образом мне все же удалось сделать то, чем я очень горжусь: я изучил Clojure.

  1. Первый шаг: добрая душа снова посоветовала мне прочитать бесплатную книгу Clojure for the Brave and True.Эта книга так хороша! Автору нужен миллион долларов и статуя в моей гостиной.
  2. Второй шаг: На полпути к чтению книги я все еще пытался понять первые главы. Это совершенно новая парадигма, так что не судите меня.
  3. Третий шаг: прочитав книгу, я нашел игру-змейку, написанную на Clojure, и изменил ее для своих нужд. Я хотел научить его некоторым концепциям Vim. Вот результат.
  4. Четвертый шаг: Чувствуя, что я немного больше контролирую свою судьбу, я продолжил свой собственный проект, используя библиотеку для создания игры Sokoban.В то же время я многое узнал о WebGL. Почему нет? У меня было время.

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

Вот некоторые данные:

Это время, которое я потратил в 2020 году на чтение Learn Clojure for the Brave and True. Я тоже скопировал весь код. Красная кривая была моей целью, синяя кривая - сколько времени я действительно потратил на нее.

Итого 38,75 часов. В конце 2019 года я потратил на это уже 20 часов, так что общее количество составляет 58,75 часа.

И снова самое сложное - это начать. Тогда время летит незаметно!

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

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

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

Алан Перлис

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

Между прочим: вы никогда не заканчиваете изучение языка, и это здорово. Учиться весело!

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

Вот сокращенная версия метода обучения, описанного в этой статье:

  • Шаг 1: найдите известную и получившую рейтинг книгу, следуйте ей и напишите код, приведенный в качестве примера.
  • Шаг 2: на полпути к книге (или когда вы чувствуете, что готовы) начните небольшой побочный проект . Если это что-то личное, то даже лучше. Продолжайте читать книгу и параллельно заниматься сайд-проектом.
  • Шаг 3: покажите свой код тем, кто может дать вам отзыв. Лучше всего иметь наставника!

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

Я согласен с тем, что копирование примеров кода из книги и кодирование собственного побочного проекта требует больше усилий, чем пассивный просмотр видео по кодированию на Youtube.Однако, поскольку вы (возможно, подражатель) разработчик, вы сможете получать от этого удовольствие, по крайней мере, большую часть времени.

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

,

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

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

Несколько лет назад я заинтересовался созданием веб-сайтов и научился писать свою первую веб-страницу на PHP. Хотя я не стал плодовитым программистом (я все еще передаю на аутсорсинг большую часть своей разработки сегодня), я считаю себя достаточно грамотным, когда дело касается программирования. Это облегчило мою работу по ведению технологического бизнеса, поскольку я могу делать большинство мелких настроек сам, не полагаясь на программиста.

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

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

Понимание основ: Starter Pack

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

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

Стоит отметить, что HTML технически не является языком программирования; то есть вы не можете выполнять вычисления, как на традиционном языке. Наряду с CSS это просто язык для обработки интерфейса веб-страницы. Но он действительно служит отличной отправной точкой, и очень важно изучить его, прежде чем создавать более сложные веб-сайты с использованием таких языков, как PHP, Ruby on Rails и Python.

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

Создание набора для микрообучения

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

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

При изучении языка программирования я создаю папку или документ с отдельными разделами для каждой новой команды, с которой я сталкиваюсь.Это то, что я называю «комплектом для микрообучения». Здесь я размещаю все полезные ссылки (с таких сайтов, как Quora, StackOverflow или другие форумы, связанные с программированием), которые я могу найти по этой теме, а также свои личные заметки.

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

Интерпретация реальных сценариев

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

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

Сейчас самое полезное место для изучения скриптов на любом языке - это GitHub. Эта ссылка предоставляет вам сотни скриптов, написанных на языке Python.

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

Щелкнув по исходным файлам, вы найдете страницу с именем face_detection_cli.py. Судя по названию файла, это одна из самых важных страниц для программы.

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

Да, в этом случае мы правы. Перейдем к следующим строкам.

Они читают:

из в будущем import print_function
import click
Import os

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

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

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

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

На Quora я наткнулся на эту информацию, которая очень простыми словами рассказывает мне, что делает эта строка кода. По сути, это импорт определенной переменной или функций ( print_function в данном случае) из другого модуля ( __function___ ). Я обязательно записал это в своем наборе для микрообучения.

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

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

Написание собственных приложений

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

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

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

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

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

Почему традиционного обучения недостаточно

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

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

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

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

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

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

.

Смотрите также