Общее руководство по самообучению

Когда я научился писать код для создания Streamplate, мой друг спросил меня:

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

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

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

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

Короче говоря, кодировать легко.

print "Hello"

Выше - простой скрипт Python, программа, код, как бы вы это ни называли. Вот и все.

Вот что упрощает программирование:

  1. Напишите код,
  2. Запустите код,
  3. Смотри на ошибки,
  4. Исправь ошибки,
  5. Снова запустите код,
  6. Повторяйте до завершения.

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

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

Выше представлены известные программисты-самоучки: Маргарет Гамильтон, доктор Грейс Хоппер, Стив Возняк, Илон Маск, Билл Гейтс, Марк Цукерберг и Франц Аллен. Все, что вы собираетесь изучить самостоятельно, бесконечно легче, чем то, что им обычно приходилось изучать и развивать.

Держите под контролем свою точку зрения, когда вы сталкиваетесь с проблемами во время разработки - вы пишете простую программу, а не код программного обеспечения в полете для миссий Apollo и Skylab (Маргарет Гамильтон - женщина рядом со стопкой страниц - весь код).

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

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

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

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

Некоторые языки могут обрабатываться машиной быстрее, потому что их интерпретация требует меньше усилий, но программисту может быть сложнее управлять ими. К таким языкам относятся C, C ++ и (отчасти) Go.

Языки, которыми проще управлять программистам и которые, как правило, не так быстро выполняются (хотя это обобщение, есть способы почти сравнять скорость с C), в первую очередь, являются Java, Python, JavaScript. JavaScript в основном используется для веб-сайтов и некоторых операций на стороне сервера, в то время как Python и Java довольно универсальны и многоцелевые.

Чтобы научиться использовать Python, вам сначала понадобится способ написания кода через приложение. Я бы порекомендовал либо Visual Studio Code, либо Atom, оба бесплатные.

После установки любого из них можно начинать кодирование.

Для начала, это мои рекомендации для форумов / поисковых систем, которые достаточно общие, чтобы удовлетворить большинство запросов:

  1. YouTube - предоставит видео-объяснения и реализацию большинства проблем / концепций, с которыми вы столкнетесь.
  2. Stack Overflow - одна из немногих отраслей, где есть такой точный форум вопросов и ответов с такой надежностью и доступностью. Поиск в Google с вашей проблемой, скорее всего, даст результаты со ссылкой на Stack Overflow. Фактически, если вы хотите знать, где ваш первый шаг в программировании - вот оно.
  3. Sentdex - высококвалифицированный программист, который работает и документирует действительно крутые проекты (используя машинное обучение для автомобилей в Grand Theft Auto 5, чтобы они стали автономными, финансовое моделирование, сканирование веб-сайтов и т. Д.).
  4. Google - естественно, это приведет к появлению ряда вариантов для рассмотрения, но большинство из них будут связаны либо с YouTube, либо с переполнением стека.

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

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

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

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

Если он у вас есть, то вы знаете, какие ресурсы использовать при возникновении любых вопросов.

Удачи!

Обязательно подпишитесь на Ограниченный релиз Streamplate, запуск которого состоится 11 марта!

В настоящее время я отлаживаю некоторые из ~ 100 000 строк кода Python, Swift и PHP, и вы можете следить за моим прогрессом на Medium или узнать больше о Streamplate в наших учетных записях Facebook или Instagram.

Спасибо :)