Программирование
- Что из себя представляет разработка?
- Как выбрать язык программирования для обучения?
- С чего начать изучение?
- Где искать материалы для обучения?
Что из себя представляет разработка?
Для людей которые совсем не представляют, что делает программист на работе, постараюсь объяснить простыми словами. Есть проект, например какой-то сайт. Пусть будет ВК. У ВК есть группа людей, которые разбираются в том, какие новые функциональности хотят видеть пользователи. Они заметили, что многим не нравится слушать голосовые сообщения. Было решено добавить возможность распознавания речи, чтобы пользователь нажал кнопку и увидел текст голосового сообщения. Дальше эта идея подробно расписывается на бумаге: как и что должно работать. После этого в игру вступают дизайнеры. Это ребята которые по описанию фичи рисуют то как она будет выглядеть на сайте. И вот на следующем этапе начинают работу разработчики. У них на рабочих ноутбуках есть самая обычная папка, в которой лежит много текстовых файлов. Вот в этих текстовых файлах находится код на разных языках программирования. Задача разработчика добавить в нужные места такой код, чтобы все выглядело и работало согласно дизайнам и описанию фичи. Если все работает, дальше работу программистов проверяют тестировщики, и, если все хорошо, отправляют пользователю.
Как выбрать язык программирования для обучения?
Когда человек начинает гуглить что-то про изучение программированию, голова идет кругом от огромного количества разных языков. На эту тему можно рассуждать очень долго, но суть видео и статей сведется к тому, что люди защищают тот язык, на котором пишут. Ищут в нем плюсы, знают как обойти его минусы или просто закрывают на них глаза. Тем не менее есть несколько критериев по которым можно сделать +- объективный выбор.
Когда я смотрел на эти графики 4 года назад, я в первую очередь обратил внимание на JavaScript, и не пожалел о своем выборе. В любом случае важно понимать, что когда выучен 1 язык программирования, второй учится в разы легче.
- Популярность языка (Статья на тему). Это важно, поскольку у популярного языка большее комьюнити, больше обучающих материалов.
- Количество вакансий (Статья на тему). Тут все понятно. Больше вакансий - больше работы.
- Средняя зарплата разработчиков (Статья на тему). Это не должно быть самым важным пунктом среди трех перечисленных, тк. зарплаты очень сильно зависят от компании. Но для общего представления стоит это знать.
Дальше я буду рассказывать обо всем на примере JavaScript, просто по той причине, что я прошёл этот путь. На этот вопрос, как и на другие, уже нашли ответ. Существуют так называемые дорожные карты. Гуглятся по запросу «JS дорожная карта» можно много на них смотреть, но в них есть кое-что общее. Это большие блоки JavaScript, HTML, CSS. Эти 3 вещи основа которую надо знать обязательно. Подробнее про каждый из этих трех языков мы поговорим в будущем, но если хочется с чего-то начать, можно открыть YouTube и вбивать уроки по каждому языку в том порядке, в котором они написаны выше. Также я преступно поздно узнал о такой классной штуке как матрица компетенции программиста (Хороший пример матрицы к которой я иногда обращаюсь). Сильно запариваться по поводу того, что вы чего-то не понимаете из этих тем, не стоит, поскольку разные должности требуют разных знаний, но посмотрев на неё можно примерно понять область знаний которые стоит подтянуть.
Где искать материалы для обучения?
Я большой противник курсов поскольку человек мысленно перекидывает ответственность за свое обучение на кого-то другого и расслабляется. Но если вы думаете что это будет дополнительным стимулом и без курсов не обойтись, важно понимать, что одними курсами все равно не обойтись 100%. Поэтому вот мой топ сайтов для обучающихся.
- САМОЕ важное, что должен уметь делать программист - правильно формулировать вопрос в Гугл. В работе приходится обращаться к гуглу почти каждый день, во время обучения нужно гуглить целый день.
- youtube.com - Главный друг человека, который только начал обучение. Вбиваете например «JavaScript уроки» и вам попадается пара-тройка плейлистов с названиями наподобие «JavaScript с нуля». Найдите того, кто объясняет понятнее, и смотрите его. Если что-то не поняли в объяснении, сформулируйте запрос в Гугл и ищите до тех пор, пока не сможете объяснить своими словами. Это идеальный вариант.
- habr.com, medium.com и прочие сайты со статьями - Скорее всего вам будут часто попадаться на сайты со статьями. Иногда они будут на английском, это нормально, пугаться не стоит. Переводите в переводчике, делайте все как там написано, и все будет работать. Если не работает - формулируете вопрос и пишите в поисковой строке гугла.
- stackoverflow.com - Это лучший источник информации когда попадется незнакомая ошибка. Просто вставляете в поисковую строку Гугла текст ошибки, с вероятностью 99% в первых ссылках будет этот сайт. В основном там пишут на английском, но переводчик поможет разобраться что к чему.
Подытожим.
Для того, чтобы начать изучать любой язык программирования, нужно:
- Выделить первые шаги, изучив несколько дорожных карт того языка, который вы выбрали.
- По выделенным темам искать обучающие видео в YouTube, статьи в интернете, электронные учебники или курсы.
- Я бы посоветовал долго не штудировать синтаксис на маленьких задачках и поставить перед собой цель сделать стандартный «Список дел». Обычное приложение которое может создавать, отображать, изменять и удалять текстовые заметки. Такие приложения называют CRUD приложениями (Create Read Update Delete) и очень часто их дают в качестве тестового задания на позиции джуна. В процессе его создания вы изучите синтаксис языка, столкнетесь с кучей проблем и будете искать их решение в гугле. Никто не мешает поискать гайды в YouTube «Как сделать список дел на JavaScript» к примеру. Делаете все как на видео, набираетесь опыта. Далее к этому приложению можно будет прикрутить базу данных, написать для него сервер и, если вам хочется запариться, развернуть в интернете, чтобы кто-то мог зайти туда по ссылке.
- Если в процессе обучения в статье или обучающем видео вы заметите незнакомый символ или слово в коде (такое будет происходить очень часто), лучше поставить на паузу, погуглить это слово и разобраться что оно означает, где применяется и зачем.