Найти тему
Иван Ефремов

Наставление начинающим разработчикам

Я решил написать об этом свой первый пост по двум причинам:

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

Основываться буду на всем ( или не всем ) знакомой картинке “Уверенность vs компетентность”.

Знаменитый график развития программиста
Знаменитый график развития программиста

Эту картинку часто подают как пример того, каким образом развивается разработчик, с какими сталкивается проблемами и чего стоит ожидать. Я же хотел бы описать более “soft skills” темы, которые не очень-то и много где затрагиваются ( и нет, я не буду рекламировать здесь курсы по разработке ).

Year zero.

Твой медовый месяц начался, наслаждайся им.

Самое начало, в котором ты каким-то образом решил связать себя со стезей разработчика по разным причинам ( попробовать/зарплата/посоветовали и т.д. ). Самое главное, что я понял для себя в этот период — это не вдаваться в очень сложные штуки ( низкоуровневое программирование, написание движков и как это работает, можно перечислять до бесконечности ).

В начале своего обучения важнее всего не бояться ошибок компилятора/интерпретатора, не бояться написать говнокод ( ведь откуда ты знаешь как писать хороший код, если не знаешь как выглядит плохой? ), не бояться гуглить, списывать со stackoverflow ( и задавать глупые вопросы тоже, об этом отдельно будет позже ), а так же, если ты не определился с языком и платформой, выбрать то, что наиболее понравилось пытаться написать на этом штуки сложнее hello world’a.

-2

Да прибудет с тобой сила, юный падаван.

Year one.

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

Чаще всего в первый год разработчик пытается найти себя, “свой” язык/платформу и определиться чем конкретно хочет заниматься.

Тебя, если ты на этом этапе, кидает из стороны в сторону. Ты видишь новые технологии и не знаешь за что схватиться. Ты хочешь попробовать себя в gamedev, front-end, back-end, software development, blockchain, да что угодно, ведь всё вокруг так интересно! Умные дяди из интернета пишут, что paste-your-lang-or-technology — гавно, а лучше использовать perfect-lang-or-technology и будешь зарабатывать много денег, получать оргазм от работы, а все девушки с района в один момент станут твоими.

Не верь им.

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

-3

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

И это главная ошибка новичка.

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

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

Year two+.

Ты смело проходишь пустыню отчаяния и начинается новый этап.

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

-4

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

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

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

Еще на данном этапе ты возможно уже овладеешь поверхностно другими языками/технологиями и/или захочешь перейти в другую сферу it. Здесь нужно поступать по методу “тарзана”. Хватайся за новую лиану только когда ты твердо держишься за предыдущую и отпускай только тогда, когда крепко будешь держать следующую. Так же и со сферами в it 🙂

Никогда не пытайся угнаться за кем-то, старайся сравнивать себя только с самим собой в прошлом. Учись, развивайся, пиши домашние проект ( даже плохие ), изучай непонятные вещи ( чем больше инфы будешь по ним читать, тем больше будет появляться понимания ), найди себе хобби вместо программирования ( а то перегоришь ). Главное в жизни — это не работа и карьера, а быть счастливым. У каждого свое понимание счастья и каждый решает насколько сильно в него вкладываться.

Последнее, что я хотел сказать за меня скажет эта картинка:

-5

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

Спасибо, что дочитал до сюда!