Главная

Можно ли вообще быть FullStack-разработчиком?

Это вообще возможно или просто труднореализуемо?

Поделиться:
 

8+

На прошлой неделе я долго думал над концепцией “Fullstack-разработчика” и решил написать небольшое эссе об этом.
Также на написание этой статьи меня вдохновил следующий твит. Этот твит напомнил мне одну историю…Как-то я был на воркшопе, и один из присутствующиъ задал всем вопрос: “Чем вы занимаетесь на данный момент?”. Я с гордостью сказал, что занимаюсь fullstack разработкой веб-приложений. Он ответил с небольшим оттенком сарказма: «Хорошо, если я ничего не буду знать, я спрошу у вас».

Я понял его «шутку» и подумал: «А он ведь прав. Термин  Fullstack-разработчик достаточно расплывчатый и вводящий в заблуждение». Мне стало немного стыдно. Ситуация усугубилась еще и тем, что я был единственным, кто назвал себя Fullstack разработчиком. 🙂

Через несколько дней я осознал, что у спикера была такая же проблема, как и у меня. Его должность называлась «Эксперт по безопасности». Он, вероятно, не был ни охранником космических ракет, ни политико-географическим исследователем. Вряд ли он был математиком, проверяющим безопасность криптографических алгоритмов, которые мы используем каждый день для безопасного подключения к Интернету.

Types of security algorithms. | Download Scientific Diagram

На мой взгляд, “Fullstack мышление”, вероятно, возникло из моего опыта в индустрии разработки программного обеспечения. Я начал делать веб-сайты во времена, когда программное обеспечение не было таким сложным, как сегодня. В те дни каждый веб-разработчик был профессионалом. Нужно было просто взять любой фреймворк для PHP или ASP под бэкэнд и допилить фронтенд.

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

Что вам нужно знать о юзабилити? - Bitte


Я неоднократно слышал следующие аргументы:
«Fullstack разработчик? По-моему, такого не бывает».
«На два стула не сядешь! Надо специализироваться в чем-то одном»
«Много шляп на голову не оденешь».
«Разработка ПО — это не легкая работа — нужно специализироваться».

Да, все они правы, но можете ли вы называть себя Backend разработчиком, если пишете бизнес-логику или API исключительно на C#Python или Java? Термин backend относится к широкому спектру действий. Мне кажется, что термин “Backend developer” предполагает, что вы можете создавать торговые системы, игры, генетические алгоритмы и т.д. Таким образом, «Backend-разработчик» тоже очень расплывчатое понятие, однако по какой-то непонятной причине оно не так сильно раздражает людей, как «Fullstack-разработчик».

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

Это правило остается в силе, даже если ваша основная работа связана с написанием тонны кода на JavaScript или борьбой с пикселями в таблицах стилей CSS. С другой стороны, Backend-разработчику полезно знать, где использовать Grid или Flexbox, а также полезно понимать основы какого-то JS-фреймворка. В идеале это должен быть тот, который использует ваша команда.

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

Это подводит нас к ключевому вопросу: стоит ли стремиться быть Fullstack разработчиком? Ответ — ДА, это вполне разумно. Чтобы помочь вам преодолеть возможные сомнения, я набросал несколько аргументов в пользу полного стека.
❶ У вас будет более широкая картина мира. Вы познакомитесь со всей системой. Вы четко будете определять как плюсы, так и минусы архитектуры, а также сильные и слабые стороны.

❷ Повышение эмпатии. Иногда мы обвиняем коллег в принятых ими решениях. Будучи разработчиком полного цикла, вы сможете лучше понять, почему было принято именно такое решение.

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

❹ Будете распознавать закономерности. Как я уже упоминал в первом пункте, Fullstack преимущество заключается в том, что вы обнаружите отклонение от шаблонов в API и CSS.

❺ Поиск ошибок. Вы гораздо лучше сообщите об ошибке своему коллеге. Чем больше вы знаете контекст, тем лучше решаете проблемы. Вы достаточно быстро поймете, что именно не работает, будь то API или интерфейсная часть.

❻ Обучение чему-то новому. Задавая вопросы и получая ответы, вы получаете уникальную возможность по-настоящему понять систему и её технологии.

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

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

Я надеюсь, что вышеперечисленные причины отбросят у вас все сомнения и побудят открыть для себя что-то новое. Да, возможно, потребуется некоторое время, чтобы познакомиться с совершенно неизвестными областями ИТ, но оно того стоит. Постарайтесь охватить все приложение/систему, а не только её части. Уверяю вас, на это требуется не так много времени, как кажется.

Короче, я считаю, что всегда нужно стремиться к полному стеку. И я буду называть себя Fullstack разработчиком везде, где только смогу. Спасибо!

8+