Пользователь Дмитрий Мухин
Дмитрий Мухин
9 уровень

Из домохозяйки в программисты

Статья из группы Random
Добрый день, друзья! Я очень рад, что моя первая публикация заинтересовала вас. Это вторая часть моей истории. Первую можно найти по ссылке.
Из домохозяйки в программисты - 1
Так как я работаю Web-программистом, все рекомендации будут связаны с этим направлением. Надеюсь, данная статья даст вам пищу для ума и заряд мотивации!

Сколько я учился

Поняв, что время — это ограниченный ресурс, я не стал искать новую работу в сфере продаж, а решил стать самой крутой домработницей, которая целый день учит программирование и готовит жене еду. Я наткнулся на книжку "Питон для детей" и решил, что если дети могут, то чем я хуже? Разумеется я не додумался зайти на hh.ru и посмотреть, а нужен ли кому-то программист Python в моем городе. Как выяснилось, нет. Но это я узнал после трёх месяцев зубрежки. А еще позже я узнал, что этот язык категорически нельзя изучать первым, т.к. он имеет динамическую типизацию и внутри скрыто много основ, которые нужно знать обязательно! Если вдруг кто-то решит изучать Python, рекомендую youtube канал ItPropaganda. Здесь всё изложено очень вдумчиво и подробно. Лектору надо было быть преподавателем! На hh.ru я заметил, что требуется много верстальщиков, и я переключился на Web. Неважно, с какой стороны запрыгнуть, но я хочу на этот поезд, подумал я! Это заняло следующие три месяца. Именно тогда я понял, что практика — это самое полезное в обучении. Новая информация вылетала быстрее пули. Поэтому после каждого нового ролика или книги я старался все это повторить и что-то даже записать. Лучшими учителями в верстке для меня были: От неё было больше всего пользы. Практика нереальная. Точно не помню, но бесплатный интерактивный курс я проходил около двух недель. А потом купил платный, но только ради Flex верстки.
  • Foxford | WEB-программирование для школьников 8-11.
Тут как с «Питоном»: если дети понимают, то и я пойму. Нашел на просторах интернета.

Как устроился на работу.

Прошло полгода домашнего обучения, и я решил, что пора. Отправил резюме в несколько компаний на должность младшего инженера-программиста и ждал ответа. Через пару дней мне ответили, и я очень волновался. Я сдал тест (он был скорее психологический) и заполнил стандартный бланк, в котором указал опыт в различных IT-направлениях (уровень технического английского, знания языков, умение работать с git, linux и тд), в графе желаемая заработная плата я указал 5 000 рублей. Мне было все равно, сколько я буду получать, я готов был платить им сам, лишь бы меня взяли на работу. Оказывается данная компания практиковала набор студентов, взращивала их под себя и оставляла на постоянной основе. На собеседовании мне запомнилась фраза «до 35 лет ты должен брать, впитывать, а потом отдавать». Меня взяли с испытательным сроком в один месяц с зарплатой в 15000 рублей. Этот месяц был самым лучшим в моей жизни, я достиг желанной цели и узнал, что стану папой. В первый день на работе я узнал, что мне нужно самому собирать свой компьютер, операционная система будет linux (вы знаете где кнопка super в linux?), а моим первым проектом будет создание микросервиса на языке java, который будет работать по протоколу Radius. Сказать, что я был в шоке от ВСЕГО, это ничего не сказать. Я закидывался глицином быстрее, чем Усейн Болт бежал стометровку (шучу, конечно).

Через какие сложности прошел

  • Аглийский

    Недостаточный уровень знания английского языка. Когда вы начинаете работать программистом, вы понимаете, что на русском языке ответов на ваши вопросы практически не найти. Проблема еще в том, что вы не знаете, как именно нужно гуглить (но не переживайте, с опытом все придет). Яндекс поменял на Google.

    Взял за правило слушать английский, пока иду по улице, а именно «Английский по плейлистам»:
    Это тонны часов практики, и вам больше не нужно искать какие-то другие источники для обучения. Я за год посмотрел около 400 уроков.

  • Фреймворки

    Если у вас нет большого опыта в программировании, фреймворки (hibernate, spring) — это камень, о который можно разбиться и потерять веру в себя. Это новые уровни абстракции, паттерны проектирования, бины, singleton, фабрики настолько непонятны, что ты даже не понимаешь, с чего начать. Я помню как сильно смеялся, что фреймворк "Spring" настолько сложный, что для него придумали свой фреймворк "Spring Boot"

    Я постараюсь задать вам вектор:

    1. Если вы не знаете Java, то не смотрите следующие пункты, основы это все! Я проверял^ бесполезно лезть в дебри, учитесь на JavaRush.
    2. Азы Java web-разработки. Для этого подойдет курс очень талантливого парня, которому сейчас года 22-23. Он настолько классный, что я специально нашел его в контакте, и даже хотел съездить в Казань и пройти у него курсы. cсылка, так же ссылка на github всех проектов
    3. Что нужно для работы с БД, замечательно рассказывает этот товарищ
    4. Ну и из свежего — канал let's code. Качество, подача, актуальность — все на высоте! Рассказывает про Spring Boot.
  • Не рекомендую javabegin. Когда надо было быстро выучить Spring в, сдуру купил его курс. Объяснение отвратительное. Мне показалось, что он не знает о чем говорит, просто нашел английский tutorial и запилил видеокурс.

  • Linux (операционная система), Git (система учета версий).

    Для меня работа в командной строке казалась чем-то сверхъестественным. Оказалось, что в мире программирования веб-интерфейсы не в почете: true-программисты должны все делать через терминал. Linux — это бесплатная операционная система с открытым исходным кодом, и подавляющее число программистов работает на ней (MacBook имеет те же команды). Git — это система контроля версий вашей программы, стандарт всех программистов.

    Тут я могу порекомендовать для изучения git вот такой вот интерактивный сайт.
    Расширение на Google Chrome - Octotree — это что-то типа total commander для GitHub.
    Ну и поставить себе Linux: он правда классный, я выкинул Windows на помойку!

Резюме:

Программирование — это огромный мир, который дарит интересную жизнь. Да, первое время тяжело, да сложно, но это только сначала. Я упрямо шел вперед, и вот уже год работаю full stack программистом, удвоив свою зарплату, выучив такие языки как Java, Python, Kotlin, Typescript, JavaScript; такие фреймворки как Spring и React. Переписал старое самописное хранилище большого проекта на Redux, создал микросервис на Spring Boot. Сейчас веду проект на Spring4, который еще и на XML. А если смог я, сможете и вы. Главное — видеть огромную цель впереди и идти к ней, не боясь неизвестности, а старания обязательно окупятся. Ну и если кому-то интересно, пишите, буду продолжать свою историю. Темы могут быть такими:
  1. Паттерны проектирования (реальные примеры, когда может пригодиться тот или иной паттерн).
  2. Виды аутентификации, авторизации.
  3. OAUTH2.0 на Spring Boot.
  4. Отзыв о topjava (Spring5)
Комментарии (9)
Чтобы просмотреть все комментарии или оставить свой,
перейдите в полную версию
Moubrey Osmodia 0 уровень
17 марта 2020
Java, Python, Kotlin, Typescript, JavaScript; такие фреймворки как Spring и React - - - > Не пожелала бы и врагу своему.... решила подыскать альтернативу VBA для себя... оказалось... единственный правильный путь "HTML->CSS3->" но оставим их в кавычках... легко же и не языки программирования по сути, хотя уже (#категорически против)... дальше - - - > JavaScript (ближе но с извращениями и обойти не вариант) Дальше - - - > Хотелось бы (Python) но он не заменяет PHP.... а дальше Java+qt... получается JavaScript/PHP/Java+qt но это уровень про..., а альтернативы VBA все равно нет о_О... Что то относительно универсально и простое это Лазарус.... но тут и VBA не оставить... и встает выбор VB6 или лазарус... VBA.... А более ли менее адекватное решение опять же VB.NET. хотя бы конвертировать можно VBA... движение в сторону C# и ASP.NET.... и это еще не упомянуты SQL, фреймворки CMS и т.д. все к сложному... а где к простому?... Или хотя бы к одному универсальному... Программеры мазохисты что ли о_О????
Сергей 17 уровень
21 октября 2018
Тут автору важно было бы уточнить. Его локацию (город) и возраст. По скольку, если ты приходишь такой весь осознанный и мотивированный в 20-25, то взрослый и мудрый дядя-работодатель чаще справедливо предполагает, что у него есть минимум 2-3 года чтобы дать тебе набраться опыта и вырастить хорошего спеца. При этом немного платить, потому что нет семьи, детей (как правило) и вообще может родители помогают. И другое дело дело, если ты приходишь в 35. И тогда... ну вы поняли.
Taras Kutselya 24 уровень
18 октября 2018
Если это всего лишь Ваша вторая статья, то у вас есть к этому определенный талант :) Спасибо за информацию и за ссылки. Хочется увидеть следующие статьи в порядке: 2. 1. 3. Удачи, Вам!
Alesha 22 уровень, Москва
17 октября 2018
Давай про паттерны.
Евгений 22 уровень, Киев
17 октября 2018
Спасибо за статью. Как у тебя с математикой? Важна ли она?
17 октября 2018
Сидиков Марсель афигеный лектор, с удовольствием посмотрел его лекцию, очень круто объясняет. Дмиртрий, спасибо за материал! Респект тебе =)
Алексей 17 уровень, Москва
16 октября 2018
Спасибо за интересную статью и полезные ресурсы. Виды аутентификации, авторизации. Вот эта тема лично мне очень интересна. И если будет материал на эту тему, заранее благодарю.
Игорь 11 уровень, Харьков
16 октября 2018
Большое спасибо тебе, мужик!!!