Мой путь в программисты в 27

Пост создан по просьбам многих пикабушников к комментарию.


Напомню, что это просто мой путь, а не инструкция в первой инстанции. Он не идеален, но с его помощью я достиг своей цели.


(Кому личные истории не интересны, то ссылки на материалы в порядке изучения будут в конце.)


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


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


Выбор языка.  С#

Язык мне подсказал мой знакомый, который обещал меня консультировать по возможности. Им стал си шарп. Плюсов к этому решению добавляло наличие большого количества материалов на русском языке, переведенных книг, ресурс с документацией на русском от самих майкрософт и неспешное развитие языка (т.е. почти все материалы 5-10 летней давности по этому языку вполне себе актуальны и сегодня. За исключением веб технологий). Плюс язык имеет статическую типизацию и очень сильную по функционалу среду разработки. (Незнакомым с программированием это ничего не скажет, но мне тогда это казалось очень важным)


Курс 1

Первым курсом стал "Основы программирования" на степике. Сейчас он стоит 2к рублей, хотя я его проходил, когда он еще был бесплатным.

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

Курс меня зацепил и сильно заинтересовал. Пройден был за 3 недели по по 2-3 часа в день.

(чуть дальше будет бесплатная альтернатива).


После завершения курса я записался на курс обучения по .net от одной компании, где в течении 6 недель мы встречались два раза в неделю, слушали лекцию на полтора часа и потом делали домашку к следующей лекции. Ради этого я даже взял отпуск на работе. Основной контингент состоял из студентов 3-5 курсов, поэтому у них домашки были формата "вспомнить универ" и не занимали много времени. Для меня же все было в новинку. На домашку уходил весь промежуток времени между лекциями, кодить и разбираться приходилось по 12-13 часов в день. В конце третьей недели у меня начали накапливаться долги, а на пятой я покинул обучение, т.к. отпуск кончился и наверстать упущенное стало нереально.


От такого режима обучения я перегорел, поэтому на несколько месяцев бросил учиться. Так что планируйте с умом свое расписание.


Компаний, которые проводят бесплатные курсы, очень много. Но они не пытаются вас прямо таки учить. У них задача простая: с минимальными усилиями из большого количества желающих отобрать лучших для найма.
Для вас, как для учеников, самое полезное от этих курсов - это обратная связь по коду и актуальные темы\задачи по выбранной технологии. Знаний эти курсы не дадут никаких напрямую, но благодаря им вы поймете куда копать.


Курс 2

Второй курс я просто нашел на торренте. Он был самым огромным по весу (что-то около 140гб видосов). Это были курсы от ITVDN

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

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

По C# в курсе три больших раздела: starter, essential и proffesional. Внутри стартера есть все темы курса со степика. Но у вас не будет сайта, где проверят ваш код. Не будет комментов к дз. Т.е. ебитесь как хотите (на самом деле прямо как в жизни и это тоже плюс).

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


Под конец прохождения второго курса я прикупил себе книгу CLR via C#  Рихтера. Весь интернет говорит, что она обязательна к прочтению. Ну кто я такой, чтобы спорить со всем интернетом? Тем более она на русском. Версия языка в книге 4.5, сейчас вышла уже 10 версия, но язык просто оброс новыми приколами, база не поменялась и книга актуальна до сих пор.


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

а. Обучение С# https://www.youtube.com/user/admshwan

б. Обучение С# https://www.youtube.com/channel/UCtLKO1Cb2GVNrbU7Fi0pM0w

в. Для мемов https://www.youtube.com/watch?v=86KLS8das2k&list=PLuGqgO5WmeGPTZqDHZDIum3h7HnfBfzmZ

г. Для понимания профессий и индустрии. https://www.youtube.com/c/ITBEARD


Еще одна маленькая деталь. Блядский джаваскрипт.

Мой путь в программисты в 27 Программирование, Учеба, Личный опыт, Мотивация, IT, Собеседование, Обучение, Мат, Длиннопост

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

Я учил и учу сейчас жс на том же itvdn, но если честно, то у них курсы веба намного слабее, чем курсы по шарпам. Поэтому тут советую уже самостоятельно подойти к поиску обучающего контента. Благо ЖС намного популярнее шарпов, а значит и курсов в миллион раз больше. Попробуйте начать с хекслета. Их бесплатный курс покроет все потребности бэк разработчика (так мне говорили). Сам я не пробовал, но его мне советуют в первую очередь.


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


Дальше будет просто список со ссылками на все материалы и краткими комментариями.

Мой путь в программисты в 27 Программирование, Учеба, Личный опыт, Мотивация, IT, Собеседование, Обучение, Мат, Длиннопост

1. Первый курс Основы программирования 2 тыщи рублей. Если не хочется платить, то в п.2. аналогичные темы тоже есть

2. Второй курс. ITVDN c# разработчик. Старые версии есть на торренте. Вас интересуют три блока - starter, essential и proffessional

3. Книга CLR via C#. Спорное чтиво для начинающего, но я читал. На собеседованиях выезжал за счет знаний из этой книги.

4. https://metanit.com/sharp/  шпаргалка по всему языку.

5. https://docs.microsoft.com/ru-ru/dotnet/csharp/ - офф документация от мелкософта

6. Задачи на алгоритмы. Желательны для прокачки, но не обязательны

а. https://www.codewars.com/  - я сидел тут, интерфейс темный зашел больше)

б. https://leetcode.com/  - внутри есть раздел с обучением. Я не пробовал, но многие советовали. Только на англ

в. https://www.hackerrank.com/ - хз что там, просто пусть будет.

7. Вопросы по .net для подготовки к собеседованию

8. Ориентир для дальнейшего развития

9. Ахеренная статья про полиморфизм. Новички ничего не поймут, но его лучше на будущее сохранить. Её прочтение перед собесом меня спасло от тупняков и собрало все кусочные знания о полиморфизме в кучу.

10. Книга "Грокаем алгоритмы" Бхаргава Адитья. Просто крутая книга для развития, читаю сейчас, всем советую. Примеры на питоне

11. Трекер времени - для самоогранизации и вырабатывания привычки не отвлекаться. По крайней мере у меня он выполняет такую функцию.

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

Мой путь в программисты в 27 Программирование, Учеба, Личный опыт, Мотивация, IT, Собеседование, Обучение, Мат, Длиннопост

Если пикабу пережмет картинку, то в комменты скину ссылку на оригинал.


Ну и просто мысли от себя.


Мысль 1.

Без английского в профессии многого не достичь. Рано или поздно вы упретесь в стену, где необходим язык. На русский язык литература переводится с запозданием минимум в год, а то и больше. Великий https://stackoverflow.com/ с ответами на вопросы по коду полностью на англ. Да, там есть ру подсайт, но этого мало. Любое узкое место в технологии потребует гугления на английском.

Отсутствие знаний английского отрежет вам около 50% всех вакансий. И почти 90% вакансий в лучших компаниях.
Как говорил мне мой друг-программист: "Шаг 0 в изучении программирования - это изучения английского".

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


Мысль 2.

До первой работы придется учиться минимум 300-350 часов в зависимости от качества обучения


Мысль 3.

Задача номер один - это просто понять как кодить.

Первый язык учить очень долго и сложно. Выучить второй в раз 5 будет легче. Третий еще легче.

Все языки очень похожи друг на друга, c# на джаву похож на 70% точно в базовых вещах. Некоторые строчки кода вообще будут идентичны


Мысль 4.

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

Я так со знакомым прошлым летом огромный кусок шарпов за две недели отпуска на работе осилил. Он тоже взял себе отпуск и мы задротили две недели по 6-8 часов в день и пинали друг друга. Сам бы я это месяца 3-4 учил

Правда если найдете распиздяя, то он будет тебя тянуть вниз.



Пс. Сегодня 3 января у меня официально закончилась трехмесячная стажировка и я стал наконец джуниор разработчиком.

45
DELETED
Автор поста оценил этот комментарий

Эй, долбоебы, ищу пару для обучения.

раскрыть ветку (1)
23
Автор поста оценил этот комментарий

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

показать ответы
2
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
14
Автор поста оценил этот комментарий

Мне кажется вы где-то за меня додумываете смысл поста и моих комментов.
Моя цель в момент самостоятельного обучения была - получать деньги за код. Цель достигнута, но это не значит, что обучение закончено.


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

показать ответы
7
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
10
Автор поста оценил этот комментарий

Если вопрос только в семантике, то называйте как хотите.
Моя цель была - это получать деньги за написание кода. Её я достиг. Про качество кода я ничего в посте вроде не писал.


Да и про фундаментальность знаний я тоже вроде ничего не писал. Все материалы и полученные знания я оценивал только относительно критериев требований к джунам\стажерам сейчас на рынке. Т.е. для меня данные набор материалов сделал возможным получить 3 оффера из 6 собесов.

показать ответы
6
Автор поста оценил этот комментарий

Поздравляю! Мне самому 32, все чаще посещают мысли о смене профессии (работаю инженером-проектировщиком по отоплению и вентиляции), рассматриваю как раз С#, т.к. есть идеи проектов дескопных приложений по специальности. Попробую следовать по твоему плану. Сколько времени ушло от начала обучения до устройства на работу? В какой сфере работаешь? Бэкэнд, разработка дескоптных приложений?

раскрыть ветку (1)
6
Автор поста оценил этот комментарий

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

Пока правлю баги в одной коробочной системе для корпоративных порталов от майрософт.

показать ответы
2
Автор поста оценил этот комментарий

Я не додумываю. Просто обилие постов: "мой путь в ит после..." и люди, которых мне приходится собеседовать создают стереотип: синтаксис выучил - разраб! Что такое пузырёк? Зачем создан ууид? Что такое мвц? Что такое мввм? Уровни нормализации бд? Когда выгодно разнормализовать базу? Откуда раскапывать тормозящий гуй? Почему запрос в бд всегда занимает 25+ секунд, если есть джоины? И на эти вопросы не могут ответить преденты в сеньёры... Сорян, наболело, не могу людей найти.

раскрыть ветку (1)
6
Автор поста оценил этот комментарий
"не могу людей найти."

Вот из-за этого стало возможно это

"синтаксис выучил - разраб".

Меня взяли на работу без знаний фронта вообще. Я жс увидел впервые уже за рабочим компом в офисе и три недели мне платили за то, что я учил основы фронта.


Кадровый голод вносит свои коррективы в реальность.

показать ответы
2
Автор поста оценил этот комментарий

Не берите в голову, я просто тупой, видимо.

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

Почему-то ни разу в курсе не сказали про разметку фигурными скобками. Да, я догадался, как оно примерно работает, но неужели сложно было 1 минуту на это потратить?

Методы тоже... Ключевое слово Имя метода (тип аргумента, имя аргумента)

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


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


static void Main()

{

Console.WriteLine(GetLastHalf("I love CSharp!"));

Console.WriteLine(GetLastHalf("1234567890"));

Console.WriteLine(GetLastHalf("до ре ми фа соль ля си"));

}

static string GetLastHalf(string text)

{

...

}

И подсказка:
Всю информацию о доступных методах класса String вы можете прочитать в официальной документации .NET


Ну, ок. Минут 10 я листал ту страницу, ища в совершенно незнакомых описаниях что-то подходящее. ЧСХ, оно ближе к концу, глаз уже замылился с непривычки и я его пропустил. Но да, оно там есть, не спорю. Но ответ:

static string GetLastHalf(string text)

{

text = text.Substring(text.Length / 2);

string c = text.Replace(" ", String.Empty);

return c;

}

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


Но, раз другие догадались, значит дело во мне.


Дальше было хуже. Локальные и глобальные переменные я понял. Как мне показалось. Ну, что там такого сложного! На тесте из 5 вопросов ответил правильно на 1. Да и то, боюсь, что угадал.

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

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

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


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



Пс.

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

1
Автор поста оценил этот комментарий

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


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

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

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


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

показать ответы
Автор поста оценил этот комментарий

Sharepoint что ли, он жив еще? 😁

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

раскрыть ветку (1)
2
Автор поста оценил этот комментарий

Бля, он самый. Живой

показать ответы
4
Автор поста оценил этот комментарий

1) Ставишь задачу
2) Гуглируешь лучшее решение(язык программирования и другие технологии)
3) Гуглируешь и пробуешь реализовать

Сам подобным методом Python, веб-приложения, REST API всякие, ну и просто скрипты пописывал.

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

раскрыть ветку (1)
4
Автор поста оценил этот комментарий

Хорошо, что пост про шарпы, а не плюсы)

показать ответы
7
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

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

показать ответы
1
Автор поста оценил этот комментарий
А если я столяр с 9 классов образования - есть смысл пытаться? Уже пробовал питон учить, и вообще не понял логику. Хтмл и цсс - легко понял и даже ваял пару сайтов
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Есть

1
Автор поста оценил этот комментарий
Если занимаетесь, то мои советы будут бессмыслены, но вдруг
.Net6, Azure, Blazor
Первые 2 обязательно, второе по интересу, но мне очент нравится, и по сравнению с ранним версиями стал быстрее и стабильнее
раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Спасибо, пока даже не знаю что это, но посмотрю

показать ответы
1
Автор поста оценил этот комментарий

Пиздец они в нем наворотили конечно, помнится ковырял его и плакал

Документация хотя и есть но все равно там песец местами индусы суки натворили

А самую жирную желтожопую суку, придумавшую XAML, вообще стоило бы на баобабе повесить и потом сжечь ритуально чтобы это зло больше не возродилось

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Читаю твой коммент и плачу кровавыми слезами

2
Автор поста оценил этот комментарий

Неужели Вам 350 часов хватило, чтобы устроиться? Это же всего лишь два месяца работы 5/2. Вам наверно Ваш предыдущий опыт сыграл на руку? Или Вы просто сами по себе большой умница)

раскрыть ветку (1)
1
Автор поста оценил этот комментарий

Либо я плохо считаю. Часы прикинул чисто на глаз)

показать ответы
Автор поста оценил этот комментарий

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

раскрыть ветку (1)
Автор поста оценил этот комментарий

Подскажите, где вы зашли в тупик?

Я помню, что первый раз гуглить мне пришлось только на курсе essential от itvdn.

показать ответы
1
Автор поста оценил этот комментарий

Прошел первую часть курса - это не для полных новичков. Это для людей знакомых с другими языками. До методов все было неплохо, но дальше я вывихнул мозг от заданий. Час думал, погуглил, нашел готовое решение и нихера в итоге не понял. Толков-то от такого образования? Пойду попробую "воду", которую ТС рекомендовал скачаю.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Оно так и работает. Просто посмотреть мало. Для помощи в с заданиями есть сайт метанит и несколько Ютуб каналов.

показать ответы
Автор поста оценил этот комментарий

Вопрос - где искать эти стажировки и обучения с целью найти себе работников?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Группы вк\фб айтишных факультетов крупных вузов. Мониторить 10-15 разных городов. Компании сами туда приходять зазывать студентов

Автор поста оценил этот комментарий

В свободное время уходи с него, ибо это медленная деградация

раскрыть ветку (1)
Автор поста оценил этот комментарий

Всеми силами этим занимаюсь.

показать ответы
4
Автор поста оценил этот комментарий

Нахер шарп, учите джаву)

раскрыть ветку (1)
3
Автор поста оценил этот комментарий

Поддерживаю, вакансий на рынке в полтора раза больше, средняя зп по рынку выше на 10% у джавы

показать ответы
5
Автор поста оценил этот комментарий
Добро пожаловать на галеры :)
Родители часто шутили на тему "Что там, тяжело эти кнопки тискать? Сидишь за компьютером, это не лопатой махать". Пока на две недельки ко мне мать не приехала погостить, присмотреть за детьми. Я и жена на удалёнке, дедлайны, работаем, одного на кружки, другого по докторам возим... После этого больше не слышал шуточек таких...
IT такая сфера где нужно всегда развиваться - нужно бежать, чтобы не отставать от других.
раскрыть ветку (1)
2
Автор поста оценил этот комментарий

"Нужно бежать со всех ног, чтобы только оставаться на месте, а чтобы куда-то попасть, надо бежать как минимум вдвое быстрее!"

показать ответы