Несколько лет назад у меня был товарищ-разработчик, который спросил меня, где я научился печатать на клавиатуре. Я сказал, а? Что ты имеешь в виду. Это клавиатура. Вы просто нажимаете на него, и в конечном итоге вы получаете удовольствие от этого. Я занимаюсь этим с трех футов роста. Он сказал о. «Я пошла на один из тех курсов набора текста Mavis Beacon».

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

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

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

Так много людей сдаются.

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

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

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

Замена зеленого прямоугольника на красный может занять несколько часов с первой попытки. Может, даже дней. Вам придется гуглить до изнеможения так, как вы никогда раньше не гуглили. Со временем, конечно, это становится для вас обычным делом. Таким образом, вы ставите себе все труднее и труднее. «Хорошо, я могу изменить прямоугольник на любой цвет, который захочу. Могу я сделать так, чтобы два прямоугольника располагались рядом? "

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

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

P.S. Моя жена получает уведомления о новых сообщениях в блоге, прочитала этот и сказала, что это ее вдохновило. Однако она сказала, что было бы полезно, если бы вы включили в сообщение некоторые ресурсы. Я сказал, ну в том-то и дело: тебе не нужны никакие ресурсы. Вам просто нужно найти проект с открытым исходным кодом и запустить его. Она сказала: запустить где? Я смеялся. Хорошо, очевидно, здесь есть разные уровни знаний. Но дело в том, что вам следует немного побороться. Не знать. Пока у вас есть конечная цель и вы твердо настроены, вы найдете решение. Вы можете начать с запуска проекта зашифрованных заметок, над которым я работаю, под названием Standard Notes. Он написан на JavaScript, и настроить его локально не так уж и плохо:

Https://github.com/standardnotes/web

Первоначально опубликовано на list.standardnotes.org.