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

Мне не стоило волноваться. Я только что закончил первый курс Apple Learn to Code в Swift Playgrounds, и это был один из самых приятных уроков в моей жизни.

Я могу искренне рекомендовать это всем. Если вас, как и меня, волнует вопрос, можете ли вы научиться программировать, программа Learn to Code 1 решит этот вопрос за вас. Теперь я не только точно знаю, что это то, что я могу сделать, я жажду большего. Хорошо, что есть еще две игровые площадки Learn to Code, откуда пришла первая.

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

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

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

turnLeft()
moveForward()
moveForward()
turnRight()

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

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

Я собираюсь продолжить работу над серией Learn to Code. Я чувствую себя настолько более образованным, что даже не хочу строить догадки о том, где я буду в своем обучении к концу третьей части.