Читать книгу: «Как стать программистом, переехать в США и получить работу мечты», страница 3

Шрифт:

Как изучать программирование

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

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

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

Видеоуроки и видеокурсы

Видео – это самый эффективный способ восприятия информации. В настоящее время доступно огромное количество бесплатного видеоконтента в области самообучения. Созданы тысячи видеоуроков по всевозможным языкам программирования.

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

Первое, что необходимо сделать, – это найти подходящий набор видеоуроков. Поиски можно начать в Google по запросу [название языка программирования] + видеоуроки. Если у вас нет опыта программирования, то выбирайте русскоязычные видеоуроки. Это сильно упростит восприятие материала.

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

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

Python

ADV – IT – «Python для Начинающих» (YouTube) – основы языка

Гоша Дударь – «Уроки для начинающих» (YouTube) – основы языка

«CS центр» – «Python для решения практических задач» (Stepik) – практика

Coding Medved – «Джанго с нуля на примере создания простого интернет-магазина» (YouTube) – практика

Swift

Alex Skutarenko – «Swift Марафон» (YouTube) – основы языка

Loftblog – «iOS приложение ToDo List на Swift» (YouTube) – практика

The Swift Developers – «UIKit с нуля» (YouTube) – практика

Kotlin

Devcolibri – «Базовый курс по Kotlin» (YouTube) – основы языка

Brain Softer LLC – «Видео-уроки Kotlin» (YouTube) – основы языка

JetBrains – Kotlin (Stepik) – практика

Start Android – «Kotlin. Уроки по основам разработки android-приложений» (YouTube) – практика

JavaScript

DKA-DEVELOP – «JavaScript с нуля» (YouTube) – основы языка

Sorax – «Основы JavaScript» (YouTube) – основы языка

Web Developer Blog – «Уроки JavaScript» (YouTube) – основы языка и практика

Java

Devcolibri – «Java для начинающих» (YouTube) – основы языка

Гоша Дударь – «Уроки Java для начинающих» (YouTube) – основы языка

Mail.ru Group – «Разработка веб-сервиса на Java» (Stepik) – практика

Многие мои знакомые выучили свой первый язык программирования, используя эти видеоуроки. Лично я выучил основы Swift на канале Алексея Скутаренко «Swift Марафон». Алексей создал бесплатный и простой для понимания курс с практическими заданиями. Курс не требует знаний программирования и идеально подходит для новичков. К слову, моя жена выучила Swift по этому курсу, не имея никаких знаний в области программирования.

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

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

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

Книги по программированию

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

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

Вероятно, вам встретятся рекомендации таких популярных книг по программированию, как «Алгоритмы: построение и анализ» (Томас Кормен, Чарльз Лейзерсон), «Совершенный код» (Стив Макконнелл), «Искусство программирования» (Дональд Кнут). Это хорошие книги, но они не подходят для получения первоначальных знаний в области программирования. Вы получите максимальную пользу от этих книг, когда уже какое-то время поработаете по специальности.

Онлайн-школы

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

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

Наиболее известны онлайн-школы от «Яндекса» («Яндекс. Практикум») и Mail.ru (GeekBrains), но в последнее время появляется все больше небольших онлайн-школ. Вероятно, вы часто будете видеть рекламу с обещаниями научить программировать за три месяца и устроить на работу с зарплатой от 100 000 рублей. Реальность, разумеется, отличается от рекламных слоганов. За три месяца возможно выучить основы языка, но для получения прикладных навыков требуется куда больше времени.

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

Офлайн-школы

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

Наиболее популярные школы на момент написания книги: «Тинькофф Финтех», школа программистов HeadHunter и «Школа 21» – проект Сбербанка, основанный на методике, используемой в инновационной французской школе программирования Ecole 42. Ежегодно появляются новые школы, поэтому стоит самостоятельно проверять информацию в поисковике.

Когда я работал в «Тинькофф», мы нанимали очень много ребят из нашей финтех-школы, поскольку выпускники имели хорошие базовые и практические навыки для решения повседневных задач. Сейчас обучение программированию проходит в Москве, Санкт-Петербурге, Новосибирске, Екатеринбурге и Рязани. Доступно множество направлений, среди которых разработка приложений для iOS и Android, программирование на Python, Scala, JavaScript.

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

«Школа 21» отличается от классических офлайн-школ программирования. В этой школе нет преподавателей, а задания проверяют сами студенты. Также оказывается помощь в поиске оплачиваемой практики в ИТ-компаниях. Обучение в школе бесплатное и проходит в Москве и Казани. Перед началом обучения в течение месяца проходит жесткий отбор, после которого начинается более глубокое изучение программирования. Доступны все популярные языки программирования: C, C++, Swift, PHP, Pyton, Rubi, JavaScript и т. д.

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

Я помню, как один парень ездил из Казани в Москву на каждое занятие в «Тинькофф Финтех» и в результате успешно закончил обучение, а затем получил работу.

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

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

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

Создание своих проектов

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

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

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

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

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

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

Идея

Первое, что вам стоит сделать, – определиться с основной идеей продукта. Для этого выпишите на листок список приложений, сервисов или сайтов, которые были бы вам интересны. Идея не обязательно должна быть уникальной, вполне нормально написать приложение для списка дел, трекер выпитой воды или прогноз погоды. Еще больше идей можно найти в Google по запросу side project ideas. На этом этапе важно определиться с выбором и двигаться дальше.

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

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

Дизайн

После того как вы определились с идеей, стоит подумать о дизайне и UX. Можно начать с набросков интерфейса и основных функций в блокноте. Затем перенести этот дизайн в графический редактор – тут хорошо подойдет Sketch или Figma. Если вам не хочется разбираться с графическими редакторами и самостоятельно рисовать интерфейс, то можно попробовать найти готовый дизайн.

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

Например, если вы хотите создать веб-сервис, связанный с фильмами, то достаточно ввести в Google-картинках movies web ui – и вы получите десятки вариантов дизайна для вашего приложения.

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

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

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

Контроль версий

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

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

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

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

Разработка

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

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

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

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

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

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

Публикация

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

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

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

Бесплатный фрагмент закончился.

Бесплатно
400 ₽

Начислим

+12

Покупайте книги и получайте бонусы в Литрес, Читай-городе и Буквоеде.

Участвовать в бонусной программе
Возрастное ограничение:
12+
Дата выхода на Литрес:
13 января 2021
Объем:
240 стр. 18 иллюстраций
ISBN:
9785005306425
Правообладатель:
Издательские решения
Формат скачивания:
Текст PDF
Средний рейтинг 5 на основе 5 оценок
По подписке
Текст, доступен аудиоформат
Средний рейтинг 4,9 на основе 118 оценок
По подписке
Текст
Средний рейтинг 2 на основе 2 оценок
По подписке
Текст PDF
Средний рейтинг 3,9 на основе 11 оценок
Текст
Средний рейтинг 4,4 на основе 14 оценок
По подписке
Текст
Средний рейтинг 4,5 на основе 24 оценок
По подписке