Продолжение поста «Как мы станем программистами»

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

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

Но согласившись попробовать, муж сразу же предупредил:

— Я не знаю с чего начать.


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

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

Несколько дней я в перерывах между работой углублялась в информацию с чего начать. Сейчас в интернете просто офигенски много информации об IT и об обучении, прижилась мемная фраза “войти в IT”, а тех, кто меняет профессию называют специальным словом “свитчеры” (switcher).


Логичнее всего начать с основ программирования (Computer Science), этому учат в университетах. Это знания о двоичной системе исчисления, том, как компьютер воспринимает программы, как эти программы строятся, что такое языки программирования и так далее. Это фундаментальные знания, с которыми проще будет воспринимать всё далее. Но всё это теория, которую нельзя будет сразу применить. Обдумав, я поняла, что получать эти знания лучше параллельно обучению более практическим навыкам.


Все свои решения я объясняла мужу, и он соглашался со мной. Обычно нам не так легко договориться, но я действительно глубоко погрузилась в изучение возможных курсов и составление roadmap (карта пути), так что он даже и не пытался оспорить мои решения. В подтверждение своей правоты я прям сразу вываливала тонну аргументов.

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

В какой-то момент я наткнулась на этот ролик:

https://youtu.be/S7xq9x8i47k

Автор будто бы подтверждал всё, что я решила сама. Это владелец платных курсов, но он говорит “не тратьте бабки, сначала проверьте, что вам это нравится” - а это с нуля подкупало))

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

В том числе он посоветовал гарвардский курс по основам программирования (здесь в переводе, но можно загуглить и оригинал “CS50”)

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

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

Но основы мы, как вы можете помнить, решили учить параллельно.

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


То, что я напишу дальше — очень поверхностный взгляд. По факту мы гуглили каждый язык отдельно, смотрели и читали про него, а потом сделали выбор. Здесь же я опишу “первый взгляд”.


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


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

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


Второе место по низкой зарплате у языка php. У меня сложилось ощущение, что это умирающий язык, но на нём создано 70% страниц в интернете, поэтому он вынужден жить, и программисты, которые будут поддерживать этих сайты нужны. Однако, во всех статьях о php пишут “жив”, “не мертв” - а это отталкивает от языка. Когда кому-то приходится говорить о том, что он жив, это выглядит так, как будто он при смерти. Программисты php со мной не согласятся, так что приношу им извинения, это просто мои ощущения.


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


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

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


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

Плюс в некоторых статьях писали, что для геймдева нужны C, C# и Java. Геймдев нас как задротов весьма привлекает, а раз там нужна Java, то она становится еще соблазнительнее (позже я столкнулась с тем, что большинство отрицает связь Java с геймдевом, речь сразу заводится о юнити и си шард, ок). Но повсюду пишут, что без крутого опыта в геймдев не попасть. Ладно, пойдём набираться опыта.


О том, как применять Java картинка в голове не складывается. Зато складывается о том, как применять JavaScript.

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

Продолжение поста «Как мы станем программистами» IT, Мечта, Стимул, Программирование, Видео, Ответ на пост, Длиннопост

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


JavaScript оживляет страницы, то есть лайк поставить этому посту - это JavaScript помогает, залогиниться на странице, написать коммент, всплывающие окна - всё JavaScript (далее JS).

Понять, что делает этот язык легко и это привлекает.

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

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


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


Обдумав в итоге всё, мы пришли к такому пути, копирую из нашего блокнотика:


«Наш предварительный план:

html - css - JS - React и другие фреймворки - здесь поиски вакансий и далее намеки на мобильную разработку - React Native - Java - Kotlin.

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


Не бегите в комментарии ругаться, я всё объясню.


Итак, HTML и CSS - это то, на чём строятся все страницы, просто скелет и раскраска для скелета. Хорошо или плохо это должны знать все программисты, а фронтендеры особенно.

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


Одной из самых главных ошибок свитчеров является то, что начав изучать что-то одно, они скоро это бросают и переключаются на что-то другое. Это можно наблюдать и в нашем плане. С фига ли вдруг вылазит Java, если мы выбрали JavaScript? Объясню. Это далеко идущий план, который может еще поменяться в будущем. Но это способ уйти от JS и фронтенда, если уже на фактической работе окажется, что это не то, что нам интересно. А язык Котлин в конце - это один из самых популярных и высокооплачиваемых языков для разработки на андроид, он выглядит соблазнительно этим, поэтому пока стоит у нас в пути.


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

Примерно к следующей весне мы будем готовы к поиску работы.


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

Получилось много букв :( Скажите в комментах, если стоит писать короче.


Сейчас в моём блоге всего 2 записи, но я не хочу в будущем мучить пикабу мелкими какими-то замечаниями и писульками, так что создала для них телеграмм-канал https://t.me/itBlogMariGRiD . Пока в нём тоже самое, что и на пикабу)