Ошибки начинающих программистов
24.07.2023
Статья для тех, кто начинает первые шаги в разработке ПО.
Время чтения около 5 минут.
Автор: Фабрин Максим, Руководитель отдела разработки
Если вы спросите программистов со стажем о том, как они выбрали свой язык,
то большинство ответит, что его ему посоветовал друг/знакомый/форумчанин.
Но почему-то никто не спрашивает о том, какие ошибки совершил этот «доброжелатель» на своем пути и чего стоит избегать.
Вторить разным топикам типа «5 ошибок программиста» про бессмысленные имена переменных,
план разработки и прочее – мы не будем, про это уже написано и не раз :)
Расскажем про ту боль, которую вам предстоит испытывать раз за разом вне зависимости от выбранного ЯП.
Статья максимально оптимизирована под джунов и около-IT, так что грязью сразу не бросаемся, Господа True Разработчики ;)
Подумай дважды
Первое, о чем мы спрашиваем новичка в этой области, готов ли он посвящать своему новому увлечению много времени. Есть ли оно вообще у него, время это?Если вы устроились шофером – вы отрулили 8 часов и свободны.
Если вы устроились кассиром – вы сдали кассу и свободны.
Если вы устроились разработчиком – вам придется постоянно учиться, в том числе в личное время.
И речь не о курсах «Программист на Java за 2 часа», «Освой CSS за 4 минуты» и прочей ерунде.
Речь о полноценном обучении по книгам, видео, форумам.
А главное – это обучение через непосредственное написание работоспособного кода.
IDE (среда разработки) – ваш друг и товарищ и если на собеседовании вы не знаете с какой стороны ее запускать,
то ничего кроме печали это не вызывает.
Разработчик = обеспечен работой
Не редко к нам приходят собеседоваться сотрудники (джуны в основном), которые претендуют на ЗП в районе 50-150к.По факту все, что они могут – это писать код.
«Hello World» в консоли, так сказать :)
Подобный функционал (чистый кодер) будет востребован в компаниях-единорогах,
а-ля Гугл, Яндекс, Тесла и т.п. с миллионами человеко-часов кодинга.
Но молодежь туда просто не возьмут – не хватит квалификации.
А в компании поменьше требуется «многостаночник на минималках».
Как пример, стэк (набор технологий), который мы рассматриваем:
Java + Maven + Spring (де-факто небоходим) + GIT + Linux-сервер (поднять и запустить)
+ Tomcat (поднять и настроить) + HTML (база для отрисовки) + SQL (поднять и настроить, хотя бы SQLite).
И это становится для новичков открытием.
Как итог – они не проходят ни к «единорогам», ни к нам.
Грокать алгоритмы – это, конечно, прекрасно, но в коммерческих проектах важно понимать,
как все устроено и уметь это запустить в полном цикле при необходимости.
Удары в стенку – это больно
Каждый новичок будет ходить по кругу:Я не понимаю -> Я разобрался -> Это не работает -> Я не понимаю …
Раз за разом с каждой новой библиотекой, фреймом, кодом.
Главное правило, которое мы выработали лично для себя, звучит так:
«Не понял, выдохни, и начни снова»
По итогу, в одной из итераций будет прорыв.
Кстати, многие сливаются именно на этом этапе, так как не хватает сил постоянно ломать стенку головой.
Больше – не значит лучше
Еще один интересный подход, когда джун пытается освоить сразу все.Часто можно наблюдать в резюме что-то типа:
Опыт 1-2 года
ЯП: Java, C++, PHP, Python, CSS, JS, SQL, ….
В 50% случаев – это чистое вранье, которое вскрывается при первом созвоне.
То есть до этапа технического собеседования человек просто не доходит.
В 50% случаев – это человек, который прошел 100 500 курсов и не овладел ни одним языком.
То есть опять же до этапа собеседования человек не доходит.
Определитесь с набором технологий, который вам по душе и на старт.
Если вы Backend, то вам требуется лишь база по Front.
Если вы Front, аналогично, нужна лишь база по Backend.
В любом случае в резюме направление должно четко просматриваться, по крайней мере у джуна.
Никаких «Знаю 100 языков и играю на скрипке».
Мама сказала, что буду много зарабатывать
Писали авторы ранее, напишем и мы.Деньги вы начнете зарабатывать тогда, когда сможете решать нестандартные задачи. Либо когда вы станете заменять собой сразу несколько должностей.
В любом случае все упирается в ваши знания, а значит в то, сколько времени вы готовы уделить своему саморазвитию.
Пока вы кушаете, спите, отдыхаете – кто-то другой наберется опыта и выкинет вас с позиции джуна.
Да, таких новичков очень много и это значительно снижает стоимость работы.
Однако вашим преимуществом может стать кросс-функционал,
если вы сможете использовать свой прошлый рабочий опыт (шофером грузовика, например)
для создания ПО (система управления камазом).
Ведь джун – это не обязательно возраст соискателя 20 лет ;)
Базовый английский
Если вы не разработчик 1С – вам потребуется английский.Хотя бы базовый, уровня А1.
Просто поверьте на слово.
Я филолог, но у меня все получится.
Не получится, забудь и ищи себя в другом направлении.
Либо ты не филолог.
Если нет понимания причины и следствия, то код просто не будет работать.
Логика действий, цепочки событий, ветки вариантов – это то, что требуется понимать, а не изучать.
Возможно, что по этой причине среди девушек мало разработчиков и много тестеров.
Мозг девушек не всегда логичен (да простят меня дамы :) )
и именно эта особенность позволяет находить «дыры» в уже разработанном ПО.
В защиту девушек-разработчиков так же скажем, что те решения,
которые приходят к Вам в голову часто становятся открытием для мужчин, но они в этом не признаются никогда в жизни ;)
Смотрите шире
Ваши PET-проекты (самоделки) должны быть оригинальными.HR при подборе кандидата обязательно заглянет в GIT и посмотрит, что вы там ваяли.
Если это стандартный кейс из любого обучающего материала, то у меня для вас плохие новости – вам даже не позвонят, ведь по этому кейсу вас водили «за ручку».
А вот грамотное переиспользование чужого проекта, даже если будет замечено, то вызовет интерес.
Ведь IT и состоит из «переиспользования» всего на свете: библиотек, фреймов, модулей и т.п.
В любом случае дерзайте,
И пусть в этом мире станет хотя бы на 1 программиста больше ;)