⌨ Советы тем, кто реально хочет стать программистом
1. Перед тем, как отвалить крупную сумму за курсы — попробуйте почитать книги, это сильно дешевле. Например, по Java есть замечательная «Философия Java», хоть и немного устаревшая. Ключевые концепции языка в ней изложены просто великолепно.
2. Не верьте тем, кто обещает быстрый прогресс и гарантированное трудоустройство — это верный признак инфоцыган (за очень редкими исключениями). В той же Java сейчас требуется гигантский объем информации для успешного трудоустройства — ну как минимум кроме синтаксиса еще Spring, базы данных, Maven/Gradle, автотесты. За три месяца это выучить невозможно. За год — вполне.
3. Избегайте курсов для «умственно отсталых». Тут нужно понимать: можно немного сгладить кривую сложности в начале — подбирать всякие метафоры с паровозиками при объяснении логических операторов, делать красиво анимированные схемы etc. Это отличное завлекалово, когда после вывода трех строк на экран и примитивной программки типа «четное ли число или нет», кажется, что это просто и вообще непонятно, из-за чего сыр-бор. Но потом вам попадется какой-нибудь принцип подстановки Лисков, который вообще-то одна из базовых концепций ООП — и его уже с помощью метафор так просто не объяснить. Или вот вы читаете про особенности индексации таблиц в БД, например, и не понимаете ни слова. Некоторые концепции сложные сами по себе. Это как выпустить учебник «Квантовая механика для дошкольников» (нет, я не уравниваю в сложности квантовую механику и программирование).
4. Вообще старайтесь не забывать про теорию. Немного алгоритмов (хотя бы простейшие сортировки типа пузырьковой и вставкой, бинарный поиск, оценка сложности). Немного структур данных — массивы, связанные списки, бинарные деревья, мапы. Немного спецификаций типа REST.
5. Старайтесь учиться сами столько, сколько возможно. Гуглите книги, статьи на Хабре, видео в YouTube, документацию. Вообще скилл искать документацию самому очень выручает.
6. Обязательно выкроите время на git. Просто поверьте — он будет нужен.
7. Если не знаете английский — учите. В контексте IT та информация, что есть в рунете — это жалкий, недостойный упоминания огрызок по сравнению с тем, что можно найти на английском.
8. Проявляйте инициативу, не ждите, будьте готовы работать за копейки — главное опыт. Свою первую работу я нашел просто — вбил в поисковике «Java Хабаровск работа», открыл первый попавшийся сайт (галера для госа), скопировал телефон, написал в WhatsApp и напросился на собес. Думаете, меня взяли сразу? Нет, меня попросили написать реализацию стека. Я попробовал родить код на доске на массивах, и спустя полчаса меня милостиво отпустили — доучиваться. В итоге я к ним попал через три месяца. Зп на испытательном — 25к, 35к после испытательного.
9. Если уверены в своих силах и чувствуете, что готовы искать работу — старайтесь абсолютно всеми возможными способами попасть на стажировку, такую, где вас условно кинут на амбразуры, где ваш первый pull-request разнесут в такие щепки, что вы потом будете четыре дня плакать на больничном. Именно в таких местах качается реальный скилл программирования. Рост в начале идет только при условии разницы в опыте между участниками, если все на одной ступени — это стагнация.
10. Многие новички не могут родить pet проект, это нормально. Просите тестовое. Поскольку до мидла вам еще как до луны, цель вашего тестового — просто проверка на то, как вы будете писать код (спагетти, названия переменных транслитом, методы по 600 строк и другие признаки идиота сразу отпугнут) и знаете ли вы базовые концепции языка (если в языке иммутабельные строки и вы в цикле их конкатенируете — тревожный колокольчик).
11. Самое главное — подумайте, готовы ли вы этим заниматься всю жизнь даже за большие деньги? Готовы ли вы регулярно говорить «я не знаю, покажи мне, как надо»? Готовы ли вы защемить свое ЧСВ и признать, что всегда и в любой момент времени рядом с вами может оказаться кто-то, кто знает больше вас — и вам придется у него учиться, даже если вы principal с 15-летним опытом? Готовы ли вы в свободное время висеть на литкоде по два-три часа в день, чтобы не уходить в крудо/формошлепство? Потому что нет большего вреда для проекта, чем закостенелый дебил, который тащит в работу архитектурные решения, популярные эдак лет 15 назад. Или придурок, который выгружает всю таблицу БД в оперативку, чтобы отсортировать ее там и вытащить одну запись, потому что он так делал раньше и это работало. Или идиот, который считает, что автотесты — это трата времени, мол, есть же тестировщики.
Потому что если не готовы — пожалуйста, не идите в программисты.
Автор на Пикабу: RandomTech
Комментарии: pikabu.ru/link/D9AM94Xf01