Содержание

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

Актуальность

Профессия программиста не нуждается в рекламе. Никто даже не задумывается, что один терминал самообслуживания может сократить количество сотрудников банка. Выдать наличку и принять оплату вполне может и «робот». А чем больше таких терминалов, тем больше работы у программистов.

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

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

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

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

Цель

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

Какой язык выбрать?

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

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

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

Если вы ищете своё призвание и вам интересно программирование, вы наверняка задавались вопросом, с чего начать погружение в эту сферу. Один из возможных путей в IT — изучение языков программирования. Так вы освоите первый инструмент будущей профессии: HTML и CSS для вёрстки страниц, Java и Swift для мобильной разработки, SQL для работы с базами данных, а JavaScript и Python — для веб-разработки и не только.

Языки программирования можно освоить самостоятельно — нужно лишь большое желание, целеустремлённость и наличие времени.

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

Скорость обработки

Читабельность

Простота

Графический интерфейс пользователя

C

7

6

2

3

C++

7

6

3

4

C#

6

7

5

6

Java

5

5

6

7

Python

5

6

10

8

Assembler

10

1

1

1

В сравнении с проанализированными языками программирования,
изучение Python имеет ряд преимуществ:

  • Простота освоения.

  • Лаконичность.

  • Удобный синтаксис и простая семантика.

  • Интерпретируемость.

  • Широкая сфера применения.

  • Обширная поддержка библиотек.

  • Большое количество документации и обучающих материалов.

Python — быстро развивающийся язык с большим количеством библиотек, фреймворков. Он хорошо подходит для начинающих благодаря простому синтаксису и минималистичности. Главные минусы — низкая скорость и слабая мобильная разработка. Python — замечательный выбор, если вы хотите заниматься веб-разработкой, DataScience, машинным обучением, нейросетями или автоматизацией, а ещё если вы новичок в программировании и пока не знаете, с чего начать.

Способы изучения языка Python

Исследование

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

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

Ученику №1 – Книгу, №2 – Видео-уроки, №3 – рассказал, как начать изучать программирование самому, №4 – учил сам.

В течении недели они изучали программирование, каждый свои способом. После чего я дал тест по знанию языка Python и спросил мнение обучающихся по их способу. Затем составил на основе собранной информации таблицу, в которой оценил каждый способ по 5-ти бальной системе, где 5 – наивысший балл, 1 – наименьший.

Оценка методов по разным критериям.

Литература

Видео-уроки

Курсы

Помощь наставника

Простота

3

5

4

5

Качество

3

5

5

5

Удобство

5

5

5

3

Актуальность

2

5

4

5

Время

3

4

5

4

Цена

4

5

1

1

Общий балл

20

29

24

23

Вывод

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

Результатом моего исследования стала таблица, которая наглядно показывает плюсы и минусы книг по программированию, видео-уроков, интернет-курсов и репетитора.

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

Все эти методы не плохи, но у них присутствуют разные минусы, закрыть глаза, на которые сможет не каждый.

Как научиться программировать на Java: с чего начать

Если вы уже определились с языком программирования и решили стать Backend-разработчиком, то эта статья для вас. В ней мы разберем наиболее популярный язык программирования в этой сфере – Java. Как выучить Java с нуля? С чего начать учить? Какие источники выбрать? Рассказываем!

Java – это надежный, статически типизированный, безопасный, основанный на классах язык программирования. Он нужен почти во всех областях, таких как розничная торговля, финансы, здравоохранение, логистика. Java совместим и универсален и используется для мобильных, и веб-приложений, игр, веб-серверов и многого другого. Это самый востребованный язык Backend-разработки. Подробнее об этом языке программирования мы писали здесь. Как лучше изучать Java? Рекомендуем начать со следующих пунктов: 

Определитесь с целью

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

Составьте план обучения

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

1) Начать лучше с установки JDK c сайта ORACLE – скачать. Эти материалы помогут в установке и настройке JDK:

Установка и настройка JDK

Установка JDK и IntelliJ Idea.

2) Установите среду разработки, рекомендуем IntelliJ IDEA. 

3) Что касается теории, в первую очередь лучше изучить следующие темы: 

– Средства разработки (JDK, JRE, JVM).

– Среда разработки (IDEA) и запуск первой программы.

– Базовый синтаксис.

– Объектно-ориентированное программирование в Java.

Это основные моменты, которые помогут вам начать путь Java-разработчика. 

Определитесь с источниками информации 

Где вы будете брать всю необходимую информацию по Java? Лучше не ориентироваться на один источник, а использовать сразу несколько вариантов. В любом случае, Google даст ответы на все вопросы. Если хочется структурированных знаний, обратите внимание на следующие ресурсы: 

Java для начинающих. 

Metanit. Руководство по языку программирования Java.

Курс: Java для начинающих.   

Это бесплатные источники, которые помогут не только в теории, но и на практике изучить Java. 

Найдите наставника и сообщество

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

Stack Overflow, форум, где можно задать любой вопрос по Java.

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

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

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

Научитесь программировать для начинающих

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

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

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

Если вы готовы приступить к работе и научиться программировать, давайте присоединяйтесь!

Содержание

Что такое кодирование?

По своей сути код , кодирующий , — это человек, записывающий инструкции для запуска (выполнения) компьютера. Вот и весь код — инструкции, которые создает программист. Такие вещи, как: сохранить здоровье игрока, если здоровье достигает 0, показать игру поверх экрана и т. Д. Компьютер считывает код и делает именно то, что он говорит. Но чтобы перейти от ввода кода к компьютеру, на котором он выполняется, необходимо выполнить несколько важных шагов для понимания (а также хороший первый шаг в изучении информатики).

  1. Во-первых, вы, как человек/программист, сидите за компьютером и пишете код в программу, известную как IDE (интегрированная среда разработки). По сути, текстовый редактор, предназначенный для компьютерного программирования.
  2. Затем этот код компилируется, что означает, что он разбивается на 1 и 0 для чтения компьютером (т.е. компьютерный язык). На этом уровне код (машинный код) нечитаем для человека, но компьютер точно знает, что делать.
  3. Теперь его можно выполнить, и вы можете начать использовать свою программу, играть в свою игру или просматривать свой веб-сайт.

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

Что хорошо в языках программирования, так это то, что почти все они имеют одни и те же основные концепции. Это означает, что вы можете выучить один язык программирования и иметь базовое понимание других. Отличается только синтаксис (грамматика). Конечно, у некоторых языков есть свои особенности и способ ведения дел (особенно исходя из того, насколько он близок к машинному коду), но в основе его лежат фундаментальные концепции кодирования:

  • Переменные
  • Операторы If
  • Функции
  • Циклы
  • И т.д. Поэтому, если вы хотите узнать, как научиться программировать, всегда начинайте с изучения этих фундаментальных аспектов любого языка! Конечно, вы можете захотеть глубже погрузиться в то, что такое кодирование, поэтому, прежде чем перейти к следующему разделу, вы можете ознакомиться с нашей статьей «Что такое программирование и зачем учиться кодировать?». статью или нашу статью Что такое разработчик? Статья Знакомство с отраслью.

    Выбор игрового движка

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

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

    Вот список некоторых популярных игровых движков:

    • Unity
      • Unity, один из самых популярных игровых движков для начинающих, предоставляет вам инструменты для создания игр практически любого типа. 3D, 2D, VR, AR, мультиплеер и т. д.
      • Язык кодирования: C#
      • Плюсы: самый популярный игровой движок — даже для профессиональных программистов, большое количество онлайн-ресурсов для обучения, очень универсальный.
      • Минусы:  по сравнению с другими движками Unity имеет невыгодную графику и 2D.

    • Unreal Engine
      • Unreal ориентирован на графику и используется многими студиями AAA.
      • Язык кодирования: C++
      • Плюсы: графически потрясающий, используется студиями AAA.
      • Минусы: большой размер файла игры.

    • Годо
      • Godot — это игровой движок с открытым исходным кодом, ориентированный на сообщество. Он похож на Unity в том, что вы можете создавать, и постоянно растет по мере того, как все больше людей изучают компьютерное программирование.
      • Языки программирования: GDScript (похожий на Python), C#, C++
      • Плюсы:  с открытым исходным кодом, легкий, универсальный, отлично справляется с 2D.
      • Минусы: менее многофункциональный по сравнению с другими движками, не большое количество обучающих ресурсов.

    • Phaser
      • Phaser — это платформа с открытым исходным кодом для игр Canvas и WebGL.
      • Язык кодирования: JavaScript
      • Плюсы: облегченная среда JavaScript.
      • Минусы: ограничено тем, на каких платформах вы можете создавать, могут также потребоваться некоторые знания веб-разработки в зависимости от того, как вы размещаете свои игры.

    • Гейммейкер
      • GameMaker существует уже довольно давно и отлично подходит для создания 2D-игр.
      • Языки кодирования: GML, C++
      • Плюсы: отличное 2D, большое количество обучающих ресурсов.
      • Минусы: использует собственный язык.

    • Pygame
      • Pygame — это платформа для игр, созданных с помощью Python.
      • Язык кодирования: Python
      • Плюсы:  облегченная платформа Python.
      • Минусы: Python обычно не используется для разработки игр.

    Это большой список, но с чего начать, когда вы изучаете программирование?

    Я бы порекомендовал попробовать несколько движков, чтобы понять, какой из них подходит вам лучше всего, и даже прочитать о каждом подробнее. Если вы не уверены в том, какие типы игр вы хотите создавать, я бы порекомендовал либо Unity 9, либо0057 или Godot за их универсальность. Однако не существует единственно правильного способа стать программистом. Пока вы хотите учиться и имеете стремление развивать свои навыки программирования, подойдет любой движок. В любом случае, игровой движок значительно облегчит процесс обучения программированию!

    Создание вашей первой игры

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

    У вас может быть представление о том, какую игру вы хотите создать, но я почти гарантирую, что масштаб слишком велик, особенно для первого проекта по программированию. Когда вы впервые учитесь создавать игры и писать код, вам нужно , чтобы начать с малого. Большинство людей рекомендуют воссоздать простую ретро-игру, такую ​​как Pong или Breakout. Эти игры имеют небольшой размах, базовую графику и простую механику.

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

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

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

    y

    Знание или понимание кодирования

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

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

    Учебные ресурсы

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

    Курсы Zenva

    • Пакет «Введение в программирование»
    • Мини-диплом по разработке игр на Unity
    • Мини-диплом по разработке игр в Unreal
    • Изучение программирования на Python путем создания игры Игра
    • Полный курс JavaScript для начинающих

    Бесплатные курсы

    • Unity 101 — Разработка игр и основы C#
    • JavaScript 101 — Первые шаги по программированию
    • Phaser 101 — Введение в разработку игр
    • Python 101 — Введение в программирование

    Плейлисты YouTube

    • Программирование на C# — BASICS (E01) 90 2 C++ Как программировать на JavaScript — от Telusko
    • Как программировать на Python — от Microsoft Developer
    • Как программировать на GDScript (для Godot) — от Godot Tutorials
    • Как программировать на GML (для GameMaker) — от Let’s Learn This Вместе

    Соответствующие информационные статьи

    • Лучшие языки программирования для изучения программирования: издание 2022 года
    • Изучение программирования: кодирование и программирование VR-игра
    • Как кодировать приложение AR

    Заключение

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

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

    СОЗДАЙТЕ ИГРЫ

    ПОСЛЕДНИЕ ДНИ: Разблокируйте более 250 курсов программирования, пошаговые схемы обучения, помощь опытных наставников и многое другое.

    ДОСТУП СЕЙЧАС

    Похожие посты

    Почему научиться программировать так чертовски сложно

    Куинси Ларсон был просто «парнем в костюме в офисе» и решил, что хочет научиться программировать. Поэтому он поспрашивал вокруг. Он начал с изучения Ruby, а затем пробежался по другим языкам, таким как Scala, Clojure и Go. Он изучил Emacs, затем Vim и даже раскладку клавиатуры Дворжака. Он выбрал Linux, баловался Lisp и программировал на Python, живя в командной строке более полугода.

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

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

    Ой. Это звучит знакомо?


    Учитесь программировать с Thinkful

    Выберите проверенный путь к высокооплачиваемой карьере с профессиональным наставничеством и поддержкой, гибкими способами оплаты и реальным проектным обучением.



    Этап I: Медовый месяц за руки

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

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

    С другой стороны, движение «Учиться кодировать» проделало фантастическую работу по разрушению барьеров и демонстрации людям того, что код на самом деле совершенно безвреден. Такие инструменты, как Codecademy и Treehouse, самым нежным прикосновением убеждают вас, что вы тоже (нет, любой!) можете не только научиться программировать, но и стать полноценным разработчиком.

    Внезапно проблема не в страхе, а в переизбытке надежд и завышенных ожиданий.

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

    Медовый месяц за руку

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

    Наметить путь вперед

    Прежде чем мы погрузимся в Фазу II, давайте взглянем на картину в целом.

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

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

    Чуть позже мы рассмотрим уникальные задачи оставшихся 3 фаз, но вот что по сути включает в себя каждая из них:

    1. «Медовый месяц за руку» — это веселая прогулка по отточенным ресурсам, обучающая вещам, которые кажутся сложными, но с их интенсивной поддержкой вполне выполнимы. В первую очередь вы изучите базовый синтаксис, но будете довольны своими достижениями.
    2. Утёс Замешательства — это болезненное осознание того, что становится намного тяжелее, когда хватание за руки заканчивается, и кажется, что ты ещё ничего не можешь сделать самостоятельно. Ваши основные проблемы — это постоянная отладка и незнание того, как задавать правильные вопросы, когда вы пробиваетесь к любому импульсу.
    3. Пустыня Отчаяния — это долгое и одинокое путешествие по бездорожью, где каждое новое направление кажется правильным, но вы часто ходите по кругу и вам не хватает ресурсов, чтобы пройти через это. Остерегайтесь «миражей мании», подобных сиренам пустыни, которые сбивают вас с пути.
    4. Взлет Awesome — это когда вы, наконец, нашли путь через пустыню и поняли, как создавать приложения. Но ваш код по-прежнему разрознен и хрупок, как карточный домик. Вы обретаете уверенность, потому что кажется, что ваши сайты работают, вы освоили несколько полезных паттернов, а ваши друзья считают ваши интерфейсы крутыми, но вы боитесь заглянуть под капот и в конечном счете не знаете, как перейти к «рабочей среде». Готовый» код. Как преодолеть разрыв с реальной работой?

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

    Вернемся к Фазе II…

    Фаза II: Утёс Путаницы

    Итак, вы находитесь в Фазе I — «Медовом месяце за руки» — проверяете значки и выполняете задачи по программированию, пока вы растет уверенность и возможности. Это не так уж плохо… о чем весь этот шум? Вы достигли «Пика Иррационального Изобилия»…

    Будьте осторожны! Вы вот-вот перешагнете пропасть, которая разбила многих сильных честолюбивых учеников и отправила их в лагерь «программирование — это слишком сложно». Именно в тот момент, когда происходит этот скачок, вы впервые садитесь за клавиатуру, открываете текстовый редактор и пытаетесь создать проект с нуля без каких-либо причудливых редакторов в браузере, шаблонного кода или полезных советов.

    Дерьмо.

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

    Утес Замешательства

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

    Бууууууууууууууууууууууу!!!

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

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

    Страшно то, что ты еще даже не добрался до мяса. Эта вторая фаза, Утёс Замешательства, ещё очень ранняя. После того, как вы, наконец, устранили достаточно ошибок, чтобы положить конец восьмой чуме в Египте, и фактически завершили пару проектов — тем самым отметив конец фазы II — вы все еще только начинаете.

    Для тех, кто действительно готов сделать на этом карьеру, выживание на Утёсе Замешательства часто является моментом, когда вы решаете пойти ва-банк в своей новой жизни. Но слишком многие остались позади. И, к сожалению, вы вот-вот войдете в «Пустыню отчаяния».

    Два ключевых фактора в игре

    Так что же на самом деле отличает одну фазу от другой? Почему Фаза II (Утёс Замешательства) была такой ужасной по сравнению с Фазой I (Медовый месяц, держась за руки)? Понимание этого поможет вам осознать, что это вовсе не ваша вина, если ваше путешествие выглядит так, как мы только что описали.

    По сути, на каждой фазе действуют две ключевые силы — Плотность ресурсов и Объем знаний . Давайте посмотрим, что это такое, прежде чем исследовать, как они определяют Фазу III.

    Фактор 1: Плотность ресурсов

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

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

    К сожалению, на более поздних этапах плотность ресурсов быстро падает. Любой, кто перешел от начального к среднему уровню, может подтвердить, что существует БОЛЬШАЯ разница между количеством ресурсов, доступных при первом запуске, и тем, когда вы впервые ищете помощь в создании чего-то самостоятельно, не слишком держась за руки.

    Эта проблема усугубляется по мере того, как количество знаний быстро увеличивается, вступая в фазу III, и это одна из причин, по которой мы называем эту фазу «Пустыней отчаяния». Как только вы преодолеете это и начнете привыкать к тому, что именно вам нужно искать, ресурсы вернутся, и вы сможете работать с более техническими инструментами, такими как отраслевые блоги и скринкасты. Частью этого является просто понимание того, какие вопросы задавать.

    Вот как выглядит плотность ресурсов на каждой фазе (большая плотность линий указывает на большее количество ресурсов):

    Плотность ресурсов на каждой фазе — щелкните, чтобы увеличить
    Фактор 2: Объем знаний

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

    Объем знаний, необходимых на каждом этапе — щелкните, чтобы увеличить

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

    Как только вы уходите от основ, вы видите быстрое расширение объема знаний, поскольку вам нужно начать разбираться в более сложных вещах, таких как понимание ошибок и когда использовать код, который вы знаете, знаете как для использования. Это другое, потому что нет «правильного» ответа на четкий вопрос… все становится нечетким.

    Когда вы переходите к третьей фазе, объем знаний расширяется. Теперь вам нужно понять, какие инструменты использовать, какие языки изучать, лежащие в основе CS, как писать модульный код, объектно-ориентированный, хороший стиль и как обращаться за помощью (и это лишь некоторые из них). Каждое посещение Google или Hacker News заводит вас в очередной набор кроличьих нор и заваливает вас новыми вещами, о которых вы не знаете, но чувствуете, что должны.

    Вы не знаете, чего вы не знаете.

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

    Фаза III: Пустыня Отчаяния

    Понимая эти факторы, вы можете увидеть, что Утёс Замешательства на самом деле является просто поворотным пунктом. Боль, вызванная токсичной комбинацией быстро растущего объема знаний и падающей плотности ресурсов, приводит к тому, что я называю «пустыней отчаяния».

    По сути, это пустыня, где вы знаете, что есть конец где-то , но не знаете, как туда добраться:

    Пустыня Отчаяния

    Пустыня длинная и полна опасностей. По пути вы обнаружите, что вас тянет к «Миражам мании» — десяткам заманчивых ресурсов, которые, кажется, содержат решения, которые вы ищете, но которые снова оставят вас в месте, где одинокий песок простирается до каждого. линия горизонта.

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

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

    Нам предстоит узнать НАМНОГО больше, чем вы, возможно, ожидали. Даже если вы можете запустить некоторые приложения, трудно не чувствовать себя потерянным в большей схеме становления настоящим профессионалом. Трудно измерить ваш прогресс. Откуда вы знаете, что вам нужно выучить, и изучаете ли вы вообще нужные вещи?

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

    Конечно, до сих пор было трудно, но, может быть, эта веб-разработка не так уж и плоха… Все идет к лучшему, Милхаус!

    Фаза IV: Взлет славы

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

    Это «Потрясающий подъем»:

    Потрясающий подъем

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

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

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

    Вы чувствуете, что уже должны быть разработчиком, но расстояние между кодом, который вы пишете, и «профессиональной» рабочей средой не может быть больше…

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

    Подъем Великолепия всегда занимает больше времени, чем вы ожидаете, и кажется бесконечным, потому что вы так близко … но вы доберетесь до цели. Если вы достаточно настойчивы в правильном направлении (наверняка это тема будущего поста), вы убедите кого-нибудь заплатить вам за то, чтобы вы продолжали учиться. Работа твоя.

    Как все это выглядит

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

    Одно дело знать путь, а другое идти по нему. Давайте начнем с правильной ноги.

    Как пройти через это живым

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

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

    Ваше продвижение по этапам — Нажмите, чтобы увеличить
    I: Пережить медовый месяц «Держаться за руку»

    Множество доступных ресурсов в «Медовом месяце держания за руку» делает его очень увлекательным.

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

    1. Начните с различных ресурсов , чтобы узнать, как лучше всего учиться и какие проекты вам наиболее интересны. Может быть, это быстрые задачи Khan Academy, упражнения в браузере Codecademy или индивидуальное наставничество Thinkful. Будьте непредвзяты в начале и игнорируйте все, что вы должны
      узнать… на этом этапе весь код одинаков.
    2. Затем выберите один ресурс и придерживайтесь его, как только вы найдете то, что вам подходит. Проработайте до конца вводный курс, который должен дать вам все базовые знания, необходимые для написания базовых сценариев и приложений. Тогда будьте готовы начать строить самостоятельно.
    II: Surviving the Cliff of Confusion

    Практически каждому предстоит пройти через Cliff of Confusion, потому что единственный способ стать разработчиком — это развиваться. Вы можете притворяться, что строите, подписавшись на учебные пособия (или учебные пособия, которые маскируются под «полные» курсы), но вы просто откладываете неизбежное. Учебные пособия — хороший способ перейти от более сложных вводных предложений, но в какой-то момент вам нужно будет отучить себя от пустышки и столкнуться с реальным миром.

    Три совета для самостоятельного перехода к строительству:

    1. Работайте с кем-то еще , даже с новичком. Вы будете удивлены, насколько проще будет отладить невозможную ошибку, если у вас две пары глаз.
    2. Прочтите чужой код , чтобы освоиться с хорошими шаблонами. Попытайтесь понять, почему автор сделал то, что сделал. Вы бы не пытались стать писателем, не читая книг, не так ли? Мы сосредоточимся на этом в следующем посте, а пока не спускайте глаз с любых небольших проблем или проектов, для которых другие люди написали решения.
    3. Начните с малого и постоянно развивайтесь . Вы должны иметь в виду интересные крупные проекты на будущее, но вам нужно научиться удобно отлаживать и искать ресурсы с небольшими проблемами. Там действительно ничто не заменит опыт.

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

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

    Подъем крутости — один из самых сложных переходов. Вы можете разрабатывать приложения но вы действительно хотите стать веб-разработчиком . Чтобы пройти этот этап и приступить к работе, вам нужно сделать три вещи:

    0056 получить отзыв

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

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

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

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