Итак, вы хотите научиться программировать?

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

Прежде чем мы на самом деле ответим на этот вопрос, я хочу сделать предисловие: все учатся по-разному. Есть разные способы учиться: делать, смотреть, слушать, читать, делать заметки. Каждый учится по-разному или комбинирует эти стили. Например, я ужасно слушаю, как люди пытаются что-то объяснить  — «Я тот, кто лучше всего учится, читая книгу и делая заметки. На самом деле, мои заметки обычно почти дословны из того, что написано в книге, но перепечатывание этих заметок — это то, что закрепляет эту информацию в моей голове. Видеоуроки очень популярны в наши дни, независимо от того, есть ли они на YouTube или на платных курсах, таких как Udemy, Udacity или Treehouse , — но если они не в вашем стиле, не расстраивайтесь и не расстраивайтесь из-за того, что вы делаете что-то не так. Я лично пробовал такие курсы, и они были не для меня  — в итоге я пользовался учебниками.

Теперь о бите кодирования.

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

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

Я согласен с третьей школой мысли; узнать, какой из них используется для того, что вы хотите сделать. Например, хотите делать приложения для iOS? Изучайте Свифт. Поклонник Android? Изучайте Java. Многие люди, которые изучают программирование, делают это с намерением сделать из этого карьеру   и часто они предпочитают двигаться дальше к этой карьере как можно скорее. Так какой смысл в изучении языка, который вы, возможно, никогда не будете использовать в своей области? Изучение языка программирования занимает много времени, и удваивать это время без уважительной причины обычно нецелесообразно для многих людей.

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

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

Вы можете задаться вопросом: «Зачем мне изучать другой язык, как вы сказали выше?». Это отличный вопрос, и ответ заключается в том, что когда вы впервые изучаете язык программирования, вы на самом деле изучаете две вещи.

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

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

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

Поэтому, если ваша школа предлагает Swift, как это делают многие школы в настоящее время благодаря приложению Apple Swift Playgrounds и широкому использованию iPad в классах, возможно, вам стоит пройти этот курс, даже если вы играете в создание игр на C++. Единственное, что вызывает сожаление, это то, что когда вы начинаете изучать язык, который вам действительно нужен, большинство учебных ресурсов будут объяснять его так, как будто вы понятия не имеете, что это за концепции программирования. Так что вам придется пробиваться через эти части, но они не сильно вас замедлят.

Куда вы идете отсюда? Где угодно. Вот несколько очень популярных ресурсов:

  • Удеми
  • Удасити
  • Дом на дереве
  • YouTube

Что касается книг, то они имеют тенденцию различаться в зависимости от языка программирования, но две рекомендуемые серии, которые я постоянно вижу, — это «Head First» и набор книг «Ранчо больших ботаников». Также важно смотреть на производителя языка программирования или тех, кто его использует. Например, и Google, и Apple предлагают отличные ресурсы для обучения разработке приложений для соответствующих платформ.

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