Итак, несколько дней назад @HowtoADHD написал твит о лучших профессиях для людей с СДВГ, и я подробно рассказал, почему разработка программного обеспечения хороша для таких людей, как мы.

Теперь кто-то спросил, какой хороший совет о том, как научиться программировать, если у вас СДВГ. Когда я увидел твит, я обрадовался и был очень рад дать совет, но я понял, что нет возможности уместить его в один твит (да, даже с новой длиной твита). Поэтому я обещал сделать отдельный пост об этом, и вот я здесь.

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

Моя история

Все началось с того, что я решил не учиться на инженера-строителя (через 3 года, да…) и решил искать то, что мне действительно нравится в жизни. прошел через многое, но рядом со мной были хорошие люди, которые поддерживали меня.
Я провел 6 месяцев просто в поисках того, что мне нравится, и, наконец, пришел к выводу, что хочу изучать программирование (я уже знал основы из средней школы но на самом деле это было почти ничего). Поэтому я взял на себя задачу научиться тому, что мне нужно, и, черт возьми, это был беспорядок, я понятия не имел, чему учиться и как.

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

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

И после этого школа не была НАСТОЛЬКО интересной, но это не значит, что она была бесполезной. В конце концов, мне действительно жаль, что я не знал о стольких онлайн-ресурсах, таких как Udacity и тому подобное, или поговорил с кем-то, кто прошел через тот же опыт, что и я, чтобы помочь мне составить список материалов (в определенном порядке) для изучения на моем своя. Несмотря на это, школа была хорошей заменой этому, если честно, и я не жалею об этом.

Актуальный совет

Теперь самый важный совет, который я могу дать, — найдите структуру. Давайте будем честными, если у вас такой же СДВГ, как у меня, вы знаете, что мы ОТСУТСТВУЕМ в правильной расстановке приоритетов в половине случаев, и мы будем перескакивать с одного дела на другое, если у нас нет предыдущей структуры, которая бы нас направляла. Я знаю, что если вы ничего не знаете о компьютерных науках, все может быть очень ошеломляющим; но не бойтесь, у меня есть решение.

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

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

Теперь начнем с основ:

  • Основы программирования. Я рекомендую вам изучить это с помощью Udacity, отличного и бесплатного ресурса, в котором есть то, о чем мы говорили: структура, просто войдите в систему и получите доступ к ней:
    https://classroom.udacity.com/courses/cs101 В случае, если ссылка не работает, курс называется Введение в информатику, он обучает основам программирования с использованием Python.
  • Путь Google: это очень хорошее руководство по разработке, которое Google подготовил для всех, оно действительно хорошее, и я сам некоторое время им пользовался. https://techdevguide.withgoogle.com/paths/foundational/ К тому времени, когда я его использовал, я уже знал большинство этих вещей, поэтому я просто использовал его для определенных вещей, таких как разработка Android. Это все еще очень хорошая и очень хорошая альтернатива. Это руководство идет намного дальше основ, так что вы можете просто следовать ему почти на всем протяжении обучения. (Если вы используете это, используйте рекомендуемый порядок, потому что в этом суть, используйте структуру, предоставленную вам Google).

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

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

  • хочешь сделать игру? https://www.youtube.com/watch?v=qwuPiaFU37w изучите Unity и C# (или любой другой игровой движок, который вам нужен, просто следуйте инструкциям)
  • хотите сделать веб-страницу? https://blog.risingstack.com/your-first-node-js-http-server/ создайте свой первый http-сервер с помощью nodejs, затем начните изучать http/css javascript.

Заметили, что я немного более свободен в том, что вы изучаете, и в том, как получить ресурсы? Это потому, что вы подходите к моменту, когда вы почти готовы к свободе, у вас есть основы, и вы следуете инструкциям, чтобы создавать проекты с нуля.

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

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

Ух ты, мы почти закончили этот хорошо структурированный, но очень бесплатный (мы, люди с СДВГ, любим нашу свободу) учебный список. Вы готовы создавать приложения, но я считаю, что вам следует узнать, как все работает на более низком уровне, поэтому на этом этапе я рекомендую вам немного узнать об ОС и компиляторах.

По иронии судьбы, для своего класса по ОС я сделал видео, в котором рассказывается, что вам нужно знать, чтобы создать собственное ядро ​​(очень простое, оно предназначено для изучения концепций и понимания его немного лучше, а не для того, чтобы вы могли на самом деле сделать свое собственное ядро). Операционная система):
https://youtu.be/fRuBtt6WC1U Надеюсь, это будет полезно.

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

Какой еще совет вы можете мне дать?

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

Последнее, что я хочу сказать: развлекайтесь, ищите то, чем вы увлечены, и занимайтесь этим. Будет здорово, делайте проекты и делайте что-то. Я не могу не подчеркнуть это в достаточной степени. ДЕЛАЙТЕ ДЕЛА, я знаю, что мы плохо заканчиваем дела, но поверьте мне, даже если у вас есть незавершенные проекты на github, это намного лучше, чем ничего, просто убедитесь, что вы работаете над улучшая себя.

Наконец, отключите @HowtoADHD за то, что он дал нам так много ресурсов, чтобы заставить СДВГ работать в нашу пользу, а не против нас.