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

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

программирование
программирование

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

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

Если вы не знаете, как выучить язык программирования, то вот вам статья - Как выучить язык программирования

Как вы учитесь лучше всего?

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

Я ничего не знаю о вас, но я не могу просто открыть книгу на 800 страниц и прочитать ее от корки до корки, а затем сказать «Я знаю кунг-фу!». Как бы я ни хотел, я просто не могу.

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

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

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

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

Что вы хотите создать?

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

Ваше подсознание умнее вас

Если вы действительно не верите в то, что делаете, то вы найдете способы избежать этого. Это в значительной степени то, как все формы промедления выходят и останавливают вас в своих следах - стиль Медузы. Я помню, как однажды разговаривал с другом о том, как разделить свой день на определенные занятия, и я помню, что говорил, что буду тратить 1 час в день на чтение конкретной темы, о которой мне действительно было интересно узнать. Он отвечал мне: «Если бы ты нашел свою вторую половинку, ты бы произвольно ограничил свое время с ней?». Скорее всего, вы бы смеялись и говорили «конечно нет».

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

Вот как я выучил каждый язык, который я знаю

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

2600 / AOL / Visual Basic 6

Все началось в конце 1990-х годов. Здесь я, подросток-панк, слушал Slayer на 11-м томе, когда собирался на 2600 встреч в Нью-Йорке. Бродит по улицам с различными распечатками и поваренной книгой анархистов. Я думал, что это было увлекательно, и даже однажды создал Redbox (который работал в моей старой школе). Я до сих пор помню, как столкнулся с техником AT & T, который занимался модернизацией таксофонов и говорил с ним об этом. В любом случае, в то время я иногда заходил на AOL, и в то время люди создавали такие инструменты, как AOHell, которая была вредоносной программой, которая позволяла вам делать такие вещи, как стучать по людям (ошеломлять), наводнять чат и делать другие сомнительные вещи. Все, что я думал про себя, было: «Как в мире люди делают это?». Тогда не было ни Google, ни бесконечного множества учебников. Все, что у меня было, - это смутные 1 лайнеры типа «VB6», которые говорили люди в сомнительных чатах.

Visual Basic 6

Получив Visual Basic 6 я научился, как создавать программы использую VB6. Я понятия не имел, что такое «if statement» или что-то в этом роде. На данный момент единственное, что я знал, что у меня хорошо получалось, это когда дело касалось использования компьютеров для видеоигр. По математике я был средним и никогда не любил читать, так что я не был программистом. Все, что я знал, это то, что мне нравилось возиться с вещами, и я навязчиво посвятил себя изучению чего-то, как только проявлю интерес к этому. Я провел много недель, просто возясь с VB6. Ключевая фраза «возиться». Я не тратил месяц на просмотр видеоуроков Youtube или на чтение сообщений в блоге. Я просто открыл программу и начинал писать что-то, пока это не имело смысла. Затем я просмотрел документацию, когда не знал что делать. Честно говоря, это не заняло так много времени, чтобы что-то базовое начало работать. Я вспоминаю те времена, и это было хорошее введение в программирование на основе событий. Это не слишком отличается от разработки собственных мобильных приложений сегодня. Я не разработчик мобильных приложений, но однажды я скачал Android Studio, потому что мне было скучно. Это дало мне очень ностальгическое чувство к VB6. Вы просто перетаскиваете элементы пользовательского интерфейса на «форму», а затем присоединяете к этим элементам обработчики событий. Короче говоря, я написал несколько ботов AOL и другие программы «Эй, посмотри на меня, я - мудак». Но я также написал несколько законных программ, таких как MP3-плеер и даже мой собственный текстовый редактор. Вы заметили здесь тенденцию? Это все программы, которые я непосредственно хотел построить. Они руководили процессом обучения. Я не стал вдаваться в VB6, думая: «Мне не терпится узнать, как логически создать вложенный цикл for!».

HTML

В этот момент, начался бум интернета. Веб-сайты становились реальностью, поэтому, естественно, я хотел создать свой собственный веб-сайт. Моей платформой выбора тогда был Geocities. На моей первой странице было все. Анимированные GIF-файлы, находящиеся в стадии разработки, крупье, писающий на кнопке Internet Explorer и MIDI-саундтрек темы «Экзорцист». Это был самый крутой сайт в интернете (по крайней мере, на мой взгляд). Я перечислил все мои любимые группы, программы, 2600 приключений, и у меня даже была гостевая книга. Тенденция продолжается. Я хотел иметь свое собственное место во всемирной паутине, поэтому я выучил HTML. Никогда за миллион лет я не думал, что «чертовски чертовски создание таблицы HTML звучит как великолепный способ провести вечер». Нет, это было больше похоже на «Я хочу перечислить свои инструменты AOL в сетке, лучше понять это».

ASP Classic

В конце концов я действительно увлекся видеоигрой под названием Quake 2 (и позже 3). Я был довольно хорош в этом и вступил в «клан». По сути, это была группа из нас, кто играл вместе на регулярной основе. Тогда было не так уж много мест, где можно было бы запланировать игры, чтобы играть против других кланов. Единственное место, которое существовало, было OGL, но их платформа была отстойной. Один из моих приятелей по Quake изучал эту штуку под названием ASP, и мы решили создать свою собственную онлайн-игру. Он занимался программированием, а я - дизайном. Здесь я действительно оттачивал свои навыки HTML и дизайна. Это была довольно сложная платформа для своего времени. Это была постоянная лестница, в которой команды могли автоматически планировать и сообщать о своих играх, загружать демонстрации (запись матча) и оценивать команды по победам / поражениям. Я считаю, что на пике у нас было что-то вроде 14 000 участников, и это считалось «тем местом», куда можно пойти, если вы хотите соревноваться. Время шло, я постепенно начал брать ASP, потому что хотел помочь моему другу построить платформу. Я начал с создания сценариев, которые были дополнениями к сайту. Я до сих пор помню, как делал какой-нибудь генератор конфигурации сервера Quake, который имел около 30 000 применений. Я также потратил некоторое время на создание клановых веб-страниц для других команд, и это был мой первый опыт работы на фрилансе. Иногда мне платили деньгами, а иногда я делал это ради веселья. Опять же, моя точка зрения здесь, у меня было очень сильное желание что-то построить в этом случае. Этот проект длился несколько лет, пока Quake 3 не умер. Я думаю, вы могли бы сказать, что это был мой первый опыт применения SAAS, за исключением того, что мы не взимали и не зарабатывали деньги.

.NET / CSharp

Позже я обнаружил, что играю в другую игру. Это была очень точная аркадная игра в гольф под названием PangYa. Чтобы преуспеть в этой игре, вы должны были провести очень точные измерения различных игровых механизмов (ветер, наклон вашего мяча по земле, наклон зеленого цвета и т. Д.). Я поймал себя на том, что яростно набираю цифры в калькуляторе после того, как придумал пару грубых формул, но это было так напряженно, потому что в игре было ограничение по времени, сколько вы можете потратить, чтобы сделать свой выстрел (это была многопользовательская игра). Поэтому я сказал: «Может быть, я смогу создать свою собственную программу, чтобы немного автоматизировать это». В то время .NET была новой и выглядела как действительно хорошая платформа для Windows. Я потратил некоторое время на изучение C #, и после нескольких месяцев его итераций у меня была программа, которая позволяла мне писать заметки для различных лунок, рассчитывать выстрел примерно за 10 секунд и даже увеличивать RECT игры и отображать ее в своем собственном программа, чтобы я мог лучше судить точный угол ветра. Он даже обошел античит-программу игры, хотя на самом деле это был просто прославленный калькулятор с парой линий, нарисованных на экране. Кроме того, если вам интересно, это началось с малого и росло со временем. У меня не было всех этих функций с первого дня. Я начал использовать его, как только он смог заменить калькулятор Windows, который не занял слишком много времени. Надеюсь, вы видите эту тенденцию здесь. У меня действительно была прямая потребность в создании этой программы, и это было одно из моих первых «настоящих» программных приложений. Это были тысячи строк кода, которые прошли через несколько этапов рефакторинга. И я тоже не делал рефакторинга. Я сделал это, потому что его стало немного сложно поддерживать, потому что я так часто работал над проектом. В оригинальной версии был код, который заставил бы вас немного рвать, но в итоге это сработало! Быть способным увидеть немедленную обратную связь о том, что вы хотите работать, - огромное дело, и вы получите это, только если будете в траншеях, пишущих код.

Выводы для применения этого в вашей жизни

Вот 4 основные вещи, которые вы можете использовать для ускорения процесса обучения:

Не бойтесь «тратить» время

Иногда я слышу от студентов, что они не предпринимают никаких действий, потому что считают, что это приведет к потере времени. «Зачем это делать, если я могу просто прочитать об этом или посмотреть?». У меня, безусловно, тоже есть эти мысли, но потом я оглядываюсь назад на некоторые из моих лучших моментов в жизни, и они полны действий, а не зрителей. Это быстро выводит меня из этого. Тратить 3 часа на освоение нового языка программирования - не трата времени. Вы формируете мнения, основанные на реальной обратной связи от человека, который имеет наибольшее значение (вы!). Это, безусловно, лучше, чем тратить 10 раз на пассивный просмотр чего-либо на Youtube, задаваясь вопросом «что если» или постоянно пребывая в состоянии сомнения или нерешительности. Просто погрузитесь и постройте вещи. Если вы ищете конкретные стратегии для начала обучения / построения, вот еще одна статья, которую я написал на тему разработки, основанной на вопросах.

Создавайте вещи, которые вас интересуют

Для меня видеоигры были (и до сих пор в некоторой степени) большой частью моей жизни. Это одно из моих хобби. Написание приложений и веб-страниц вокруг этих игр было для меня очень полезным опытом, потому что это было то, во что я верил, и это напрямую улучшало мой игровой опыт. Если вы увлекаетесь играми, попробуйте сделать это тоже. Может быть, вы могли бы создать веб-приложение для построения дерева навыков или какой-либо инструмент организации информации. Что бы ни имело смысл для игр, в которые вы играете. Если вы не увлекаетесь видеоиграми, это не проблема. Просто выберите то, что вас интересует. Например, если вы увлекаетесь боулингом и находитесь в лиге, создайте свою собственную лестницу отслеживания / ранжирования. Как только вы добьетесь успеха, возможно, управляйте им люди, отвечающие за лигу, и следующее, что вы знаете, у вас может быть что-то, что вы можете продать, или, по крайней мере, десятки или сотни других людей будут использовать это. Это отличный опыт.

Полностью поглоти себя в их мире

Вы часто слышите, что люди, которые отправляются в другую страну, быстрее всего выбирают иностранный язык. Это потому, что они полностью поглощены новой средой. Вы должны приспособиться, или вы собираетесь бороться / умереть. С языками программирования или технологиями не отличается. Вы должны писать код как можно больше, посещать встречи при каждой возможности и ассимилироваться с экосистемой этой технологии. Дайте себе разрешение сказать «фу» медиа-развлечениям. Например, вам действительно нужно смотреть 3 часа телевидения каждую ночь? Конечно, нет. Вместо этого потратьте 1,5 часа на кодирование, а затем посмотрите фильм или что-то на Netflix, если вам действительно нужно расслабиться.

Иногда стоит платить за знания

Проблемы, которые у нас с вами сегодня, не уникальны. Те же мысли и неопределенности, которые преследуют ваши мечты, происходили с людьми тысячи лет назад, просто в несколько ином контексте. Вы не первый человек, который пытается узнать то, что вы пытаетесь выучить, поэтому не бойтесь платить за информацию. Самое замечательное в плате за информацию - это то, что часто это путешествие во времени. То, что вам может потребоваться 6 месяцев, чтобы выяснить, было полностью решено и задокументировано кем-то еще за много лун до вас. Воспользуйтесь этими ситуациями, когда они придут к вам, потому что время - это то, что вы не можете вернуть. У вас всегда будут способы заработать больше. Трата 10 или 100 долларов на курс, который экономит ваши часы, полностью стоит того. И я говорю это не просто потому, что я продаю онлайн-курсы. Этот пост был в моей голове за годы до того, как я начал создавать курсы (что совсем недавно было в общем плане), и я тоже плачу за учебные материалы (книги, другие курсы и т. Д.).

Статья была переведена с этого сайта

99
10 комментариев

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

9

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

1

Иногда стоит платье за знания - это заголовок - в данном случае должно было быть "платить за знания"

2

спасибо, заголовок исправил

Комментарий недоступен

1

Статья хорошая, перевод такой, что лучше б на английском оставили :)

в сети есть и неплохие обучающие бесплатные онлайн-курс, например по HTML и не обязательно сразу за все платить