Рубріки: Мнение

Почему я решил остаться во фронтенде и не уходить в фулстек: история проваленных собеседований

Богдан Мирченко

Разработчик под ником Web Dev Ken поделился размышлениями, почему не стоит стараться быть специалистом сразу в бэкенде и фронтенде, а сосредоточиться на чем-то одном. Его заключения базируются на случае, когда, пытаясь найти позицию фулстек-разработчика, он получил множество отказов.

Вот, что он рассказал.

Моя карьера началась в январе 2018 года. До этого я работал инженером-механиком, поэтому было трудно найти работу в области разработки ПО. Через некоторые время я успешно устроился стажером в небольшую компанию, которая занималась фронтенд-разработкой для своих клиентов. Там я познакомился с Angular, UI-архитектурами и клиент-серверной архитектурой

Изучать Angular было довольно увлекательно, потому что сам фреймворк развивался очень быстро, и было много вещей, которые нужно было изучить и применить к приложению, которое я поддерживал. 

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

После полутора лет работы в этой компании, время от времени просматривая рынок вакансий, я заметил высокий спрос на фулстек-разработчиков. Таких вакансий было вдвое больше, чем на фронтенд-разработчика. Как новичок в программном обеспечении, я хотел быть уверенным в завтрашнем дне, поэтому решил стать фулстек-специалистом, чтобы всегда было легко найти работу. Но я почти ничего не знал о создании приложений с полным стеком. В университете я изучил все основы, такие как реляционные базы данных, архитектуры служб, MVC и даже основы .NET и C #, но я долго не практиковался. Поэтому в свободное время начал повторять изученное ранее, создавая проекты и обучаясь онлайн. 

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

Первое собеседование

Интервьюер попросил создать небольшое решение для визуализации журналов IIS, сохраненных в виде текстовых файлов. Поэтому я разработал решение, в котором файлы анализируются, записываются в базу данных SQL, считываются с помощью Entity Framework, сопоставляются с объектом передачи данных, отправляются клиенту через API-эндпойнт и отражаются в браузере. Я думал, что именно этим занимаются фулстек-разработчики. Я вовремя сдал решение, и меня снова пригласили в компанию, чтобы обсудить его. Там меня неожиданно завалили следующими вопросами: 

  • Что такое работа внутри группы LINQ?
  • Что означает номер конкретной строки?
  • В чем разница между типами и значением объектов?
  • Что может быть не так с приложением, когда оно обрабатывает миллионы строк журналов?
  • Что такое утечки памяти?
  • Что такое сборка мусора?
  • Что такое кодировка UTF-8?

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

Второе собеседование

В отличие от предыдущего второй интервьюер не потребовал от меня создания небольшого приложения, но во время собеседования меня попросили создать диаграмму классов UML с описанием проблемы. На выполнение задания выделили 15 минут. Я пытался найти решение, опираясь на реляционные базы данных, но безуспешно. В итоге мне задали следующие вопросы: 

  • Что ключевое слово virtual делает в C#?
  • В чем разница между абстрактными классами, интерфейсами и наследованием классов в C#;
  • Нужно ли переопределять абстрактный метод?
  • В чем разница между SQL и NoSQL?

Снова только бэкенд? Не справившись с задачей, я отправился на третье собеседование. 

Третье собеседование

Третий интервьюер задавал в основном только технические вопросы, в частности о .NET и SQL Server: 

  • Возможно ли наследование нескольких классов в C#?
  • Что такое функции и процедуры в SQL Server?
  • Что такое левое, правое и внутреннее соединение?

По итогу мне задали примерно одинаково вопросов по фронтенду и бэкенду. В первой теме я разбирался, а по второй ответов почти не дал. Меня не взяли и здесь. 

Вывод

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

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

После всех интервью я понял, чего действительно хотел — стать опытным фронтенд-разработчиком. Мои знания JavaScript до сих пор не идеальны, тогда почему я решил сменить дисциплину, прежде чем стать экспертом в том, чем занимаюсь сейчас? Я не хочу становиться экспертом по бэкенду и фронтенду одновременно, лишь ограниченно зная и то, и другое. Так что решил сосредоточиться на чем-то одном и двигаться дальше.

Источник — https://gifer.com/

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

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

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024