Дэн Щербаков ⚛️
100 subscribers
22 photos
50 links
Канал для фронтенд-разработчиков о том, как развиваться и увеличивать зарплату.

Senior Frontend Developer с 6 годами опыта. За этот период увеличил зарплату почти в 7 раз.

Начинайте тут: https://t.iss.one/code_lab/280
Download Telegram
Leetcode 70. Remove Duplicates from Sorted List

Эта задача не станет сюрпризом для тех, кто писал свой Linked List.

Дан указатель на голову листа. Создаем на него указатель. В цикле перебираем ноды: пока есть текущая и следующая ноды, проверяем, совпадают ли значения. Если совпадают - следующая за следующей нода становится на место следующей. Иначе следующая занимает место текущей.

Можно решить и рекурсивно, однако решение займет O(n) по памяти.

var deleteDuplicates = function(head) {

let temp = head;

while(temp && temp.next) {
if(temp.next.val !== temp.val) {
temp = temp.next;
} else {
temp.next = temp.next.next;
}
}

return head;
};
Leetcode 94. In-order обход дерева.

Это простой рекурсивный обход бинарного дерева. О деревьях и типах обхода (DFS, BFS, In-Order, Post-Order, Pre-Order...) уже писал ранее.

Чтобы понимать этот код, нужно уяснить, как работает стек при рекурсии.

Функция traversal вызывается на корне дерева. Далее в стек помещаются последовательно все вызовы на левых нодах - до тех пор, пока в вызов не будет передан null. После этого наполнение стека закончится. Произойдет неявный возврат undefined. Интерпретатор сможет выполнить следующую операцию - закинуть в массив значение предыдущей ноды. Затем вызывается та же функция на правой ноде, и процесс повторяется до исчерпания дерева.

var inorderTraversal = function(root) {
const result = [];

function traversal(node) {
if(node) {
traversal(node.left);
result.push(node.val)
traversal(node.right)
}
}

traversal(root)

return result;
};
Мои главные ошибки в программировании за 5 лет

Накопились, скажем так, точки роста. :) А именно:

1. Поверхностный анализ задач.
Чтобы решить задачу на 100%, нужно:
- внимательно прочитать задачу
- понять, какого результата ожидает заказчик
- понять, откуда брать данные и готовы ли они
- провести небольшой ресерч, как решать такую задачу
- обсудить с заказчиком все непонятные тонкости
- брать задачу в работу

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

Что изучить, чтобы так не делать?

Лекция по анализу задач: www.youtube.com/watch?v=ugGT4T5HcsI&t=9263s
Курс по софт-скиллам: https://youtube.com/playlist?list=PLfDKoUW4baOdVtmuBkfLt649c2L8KqZmx&si=CVc2ekvITCVBIqlN

2. Программирование реализаций, а не интерфейсов.
Сначала пишу код, потом подгоняю интерфейс.
Это неверный подход. Ни о каком LSP или DI не может быть и речи, когда ты не знаешь заранее, что код принимает и возвращает. Ты не видишь место кода в системе.
Напротив, спроектированный заранее интерфейс создает Black Box, который задает написанию коду понятные рамки.
Теперь я проектирую систему заранее, а реализации пишу после.

3. Изучение решений вместо проблем.
Например, учу TypeScript, а не теорию типов и область применения типов данных.
Так можно стать мидлом, но не синьором.

4. Развитие только в технологии.
Скачок в карьере дает только понимание, как код конвертируется в ценность (например, выручку компании). Это помогает расставлять приоритеты, выбирать технологии не по хайпу, а по потребностям домена, и общаться с коллегами от бизнеса на их языке.
👍1
Чистая архитектура - зло?

В блоге "Кодируем" (@koduryem) узнал, что кто-то из нас говорит: чистая архитектура - творчество университетских программистов, раньше писали без них и все летало!

Я прокомментировал:

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

Более того, накидывать абстракции заранее - нормально. Опытный разработчик может предсказать, в какую сторону будет расти проект, и заранее абстрагировать пару фабрик. Остальное применит в ходе рефакторинга. Неопытный абстрагирует все, что может, потому что хочет показать свой профессионализм. Другие споткнутся об его код, упадут и закричат на весь интернет, что чистая архитектура - зло. :)

Этим постом ставлю точку над срачем, зло чистая архитектура или нет
ChatGPT уже заменил программистов?

Встречал на vc.ru статьи от СЕО маленьких компаний, которые с восторгом отзывались о GPT:

"Бот написал код по моему ТЗ, и я сам собрал его по инструкции. Мой программист мне больше ни к чему!"

Что здесь не так?

- Нет времени. Запустить продукт - мало, его нужно поддерживать, рефакторить, чинить и развивать.
- Нет экспертизы. Даже старшие разработчики не всегда понимают, как задать ChatGPT вопрос. Ответы O1-preview (лучшая модель OpenAI) слишком общие, и даже она ошибается.
- Нет ответственности. Бот ни за что не отвечает, юридическая база ответственности компаний-провайдеров ИИ отсутствует.

О массовых увольнениях программистов, как видите, не может быть и речи.
👍2
Дэн Щербаков ⚛️
ChatGPT уже заменил программистов? Встречал на vc.ru статьи от СЕО маленьких компаний, которые с восторгом отзывались о GPT: "Бот написал код по моему ТЗ, и я сам собрал его по инструкции. Мой программист мне больше ни к чему!" Что здесь не так? - Нет…
You don't know React

После 5 лет в разработке с радостью узнал, что Реакту еще учиться и учиться. Например:

- Compound Components Pattern, который реализует Open-Close Principle.
- Provider hell - лесенку оберток вокруг App - легко избежать через хелпер, принимающий массив компонентов и параметров.
- Каррирование коллбэков помогает делать чище JSX.

Это лишь мелочи из того, что я узнал. С одной стороны, заставляет усомниться в своем профессионализме. С другой - воодушевляет: пробелы в знаниях понятны, будущий уровень - тоже понятен.

Я продолжу инвестировать время в обучение: амбиции требуют больших компетенций. Заканчиваю материал по TypeScript, начинаю воркшоп по React от Anthony Alicea. В планах - "The Software Architect Mindset" от ArjanCodes и продолжить книгу Luca Mezzalira о микрофронтах.
👍8
Правда ли, что в 2025 работу во фронтенде найти сложнее?

Еще недавно было так: закинул резюме на HH, и HR сами пишут пачками. Но в 2025 всё поменялось.

Я сам столкнулся с этим, когда искал позицию синьора в конце 2024. Критерии были простые:

- Х2 к зарплате.
- Возможность в будущем стать тимлидом.

Делал, как раньше: написал резюме левой пяткой, выложил на Хабр Карьеру и hh. Думал, HR сами будут писать пачками. Но… компании смотрели - и не звали на собеседования.

Начал откликаться сам - впервые за всю карьеру. За неделю получил всего 2 приглашения - и не прошел даже HR-собеседование.

Этот результат сильно встревожил. Я не понимал, что делаю не так.

Решил разбираться и вложился в процесс:

- 50 тысяч рублей на карьерные консультации.
- 15 тысяч на подписки и Boosty экспертов, чаты «паровозиков»...
- 40+ видео с интервью.

В результате я оптимизировал резюме под HR и алгоритмы досок объявлений. Понял, как правильно подать свой опыт на скрининге и создать впечатление, что я отлично подхожу под вакансию.

Главное - научился, как не бояться того, что чего-то не знаю. Как грамотно говорить с HR и на техническом интервью - как специалист, а не студент на экзамене.

Вот тогда пошли офферы.

Я настолько обнаглел, что отказался от оффера на почти 300К, потому что они не захотели торговаться выше. :)

И наконец вышел на отличную работу синьором - по ТК, с классным ДМС и карьерными перспективами.

Так что да, стало сложнее. Но если подходить с умом — всё возможно!
👍8
Зачем айтишнику свой блог?

Привет! Поделюсь, зачем я шесть лет веду этот канал.

Кроме написания кода, я решал две задачи:

1. Как устраиваться на работу.
2. Как развиваться, когда устроился.

Для этого я качал тех скиллы. Посмотри выше примеры решений задач с Leetcode, конспекты по SOLID и другие посты. Когда объясняешь другим, сам понимаешь еще лучше! Это не шутки, оно так работает. :) А если ты новенький, читай пост приветствия, познакомимся!

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

- не повторять ошибки, по которым я сам прошел.
- не страдать от непонимания, что делаешь не так.
- не тратить время и деньги на консультации не по своему профилю.

Так что теперь я не только делюсь кодом и архитектурой, но и помогаю в более сложных "софтовых" вопросах. Под ключ, короче.)

И это нефигово заряжает! Жизнь приобрела еще один смысл.
👍5
Как улучшить резюме фронтендера в 2025?

Смотри, 50% резюме программистов - полная шляпа. Моё старое - не исключение :)

Чтобы повысить грейд и зарплату во фронтенде в наше время, мало написать от балды и ждать. HR не будут откликаться на такое резюме! Ведь конкуренция высока, и другие уже освоили навыки самопрезентации.

Давай расскажу, как оптимизировал резюме на HH.ru - и за 14 дней получил несколько вкусных офферов :)

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

Прикрепил к посту пример. Это одна из предыдущих работ.

Пользуйся и находи работу быстрее, бро 🔥
👍4
Топ 5 карьерных ошибок фронтендера

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

На самом деле секрета нет. Есть однотипные, базовые ошибки, которые многие допускают по неопытности. Давай разберем:

Не качать софт-скиллы. Представь, ты сидишь на одном месте годами, делаешь однотипные задачи, перерабатываешь. Зарплата не растет, здоровье падает. А другие получают повышение. Жиза, да? Это исправляется софт-скиллами.

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

Учить все подряд. Ты фронтендер, тебе не нужны Python и C++ “на всякий случай”. Это прокрастинация. Углуби экспертизу в своей отрасли, изучай софт-скиллы и AI-инструменты (но, пожалуйста, не уходи в машинное обучение!).

Не качать смежные технологии. Да, тебе не нужен C++, но тебе пригодится общее понимание бэкенда, баз данных, паттернов проектирования, архитектуры. Так ты сможешь проходить интервью на крутые должности.

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

- Задерживаться в одной компании надолго. Два-три года поработал, накопил денег на полгода - и меняешь. В идеале, на другую отрасль. Иначе твои навыки прирастут к домену компании, и ты станешь невостребованным на рынке. Особенно касается тех, кто работает к бигтехе.

Ошибок, конечно, гораздо больше. Я перечислил только главные. Исправив даже только их, ты уже сможешь прийти к результату.
👍3
Как меня уволили 😱

Записал кружочек о том, как меня однажды уволили и какие уроки я вынес 💚
This media is not supported in your browser
VIEW IN TELEGRAM
👍5
Как просить прибавку, если страшно услышать "нет"?

Сколько раз ты думал: "Хочу больше денег, но если попрошу – вдруг откажут, и я стану в глазах начальства жадным нытиком?"

Логика понятна. Но знаешь, кто точно не получит прибавку? Тот, кто её не попросит.

Разбираем по шагам, как просить повышение дохода грамотно – без страха, с максимальными шансами на успех.

1. Подготовь аргументы

Работодатель не раздает деньги из доброты. Ему важно, почему ты стоишь дороже. Подготовь список достижений:

Какие проблемы ты решил?
Как улучшил процессы?
Что сделал сверх ожиданий?


Пример: "За последние 6 месяцев я оптимизировал процесс сборки фронта, ускорив CI/CD в 2 раза. Это сэкономило 15 часов работы команды ежемесячно".

2. Выбери правильный момент
Не в середине дедлайна, когда у всех горит.
Лучше после удачного проекта или квартального ревью.

Если рукль доволен результатом – шансов больше.

3. Покажи ценность, а не потребности
Ошибка новичков: "Мне нужна прибавка, потому что инфляция".
Лучший подход: "Я увеличил ценность компании – логично, если моя зарплата это отражает".

4. Как сказать?
Допустим, твоя цель – +50% к зарплате. Пример диалога:

Ты: "Я хочу обсудить свою роль в компании и пересмотреть уровень компенсации. За последние 6 месяцев я [список достижений]. Считаю, что мой вклад увеличился, и хочу предложить пересмотр зарплаты".

Если слышишь: "Пока нет бюджета", не падай духом. Уточни:

"Когда будет возможность обсудить это снова?"
"Какие результаты вам нужно увидеть, чтобы это произошло?"

5. А если всё-таки "нет"?
Главное – не воспринимать отказ лично. Это не значит, что ты плох. Это значит, что в компании может не быть ресурса или тебе нужно доработать аргументы.

Но если твои заслуги очевидны, а денег всё нет – начинай искать новую работу.

Вывод:
Бояться — нормально. Но если не просишь – точно ничего не изменится. Подготовься, уверенно обсуди – и получишь то, что заслуживаешь.
👍2
Пост знакомства для новеньких

Я Дэн, senior frontend-разработчик с 6 годами опыта и твой будущий ментор. В своем блоге помогаю расти профессионально и в деньгах.

На старте, в 2019 году, моя зарплата была 50 тысяч рублей. Вскоре я вырос как специалист - но не понимал, как повысить доход. Целый год я учился и собирал систему. С тех пор тестировал и улучшал свой подход. Я повторял конкретный набор шагов - и каждый раз делал х2 к зарплате.

В итоге, 2025 моя зарплата стала в 6.5 раз выше, чем на старте.

Я нашел ответы на вопросы:

- Как оформить резюме, чтобы пригласили на собеседование?
- Как вести себя на HR и техническом, чтобы дали оффер?
- Как действовать системно, чтобы повторять рост х2 каждые несколько лет?

А еще подготовил для тебя гайд, как за 5 шагов прокачать свое резюме.

Лови! ⬇️⬇️⬇️
👍4
Как повысить зарплату внутри компании?

Смотри, бывает, что ты хочешь не увольняться, а повысить доход внутри компании.

Для этого нужно укрепить переговорную позицию. Приходить и просить без аргументов и психологической подготовки - бесполезно.

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

Ставь лайк, если посчитал полезным!
👍2
👍4
ИИ наступает: как остаться в IT в 2025?

Привет! Слышал про ИИ-агентов?

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

ИИ-агент сам знает, как подобрать тебе билеты на самолет. Или заказать продукты. Или... создать приложение.

Помнишь, как скептики на Хабре насмехались над LLM? Сейчас зачатки Джарвиса из "Железного Человека" - реальность.

Стоимость одного агента около $200. Раз в 10-20 меньше твоей зарплаты в IT!

С кем же выгоднее работать компании?

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

Овладей ассистентами, такими как Codeium или GitHub Copilot. Держи руку на пульсе новых ИИ-технологий в своей отрасли.
👍5
Моя история, часть 1: от офисного планктона до джуна-фронта

Я решил, что пойду в IT, в 2017 году. Тогда был менеджером на почте в компании Bosch. Зарабатывал 26500 рублей. Мне нравилось: на прошлой работе приходилось стоять по 8-12 часов, а платили столько же.

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

Вспомнил, что в 16 лет писал простейшие юзер-скрипты для браузера. А еще тогда у меня интернет-зависимость была. Сказал: буду зависимостью зарабатывать! Про высокие зарплаты в отрасли тогда не знал.

Тайком на работе начал читать learn.javascript.ru. Накопил немного денег, уволился и начал учиться всерьёз. HTML, CSS, JS...

Когда деньги кончились, устроился в кафе на пол-ставки.

Зашел как-то в телеграм-канал JS Jobs . Листал вечером, и увидел предложение о работе. Админы удалили предложение минут через пять, но я успел откликнуться!

Технический директор маленькой компании, звали его Максим* (имя изменено), дал техническое задание: порефакторить лендинг. Работал всю ночь, но задание выполнил. Отправил Максиму.

На следующий день Максим написал:

"Приезжай в офис, будем оформляться".

И я поехал! Метро "Аэропорт", просторный солнечный опен-спейс.

Меня устроили в CPA-сеть компании. Маленький дружный отдел. Дали два монитора! Поток лендингов, поддержка сайта на WordPress, верстка... Я справлялся, хотя даже не знал, что такое GET-запрос.

Это была первая моя работа в IT. Платили 45 тысяч. Сорок пять! В два раза больше, чем на почте!

Я сообразил, что поставил на правильную лошадь.

Через полгода в компании прошли сокращения. У меня были хорошие отношения с Максимом, поэтому я сохранил место. Зарплату тоже повысили - до 50 тысяч. Но этого было мало. И я открыл резюме на HH.

Это был 2019 год. Я накопил год опыта. Стоило открыть резюме - приглашения посыпались, как из ведра.

Уже через неделю собесов получил оффер от "Лиги Цифровой Экономики". Дали 75 тысяч.

Попрощался с коллегами, подписал заявление...

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

Первым делом "Лига" направила меня на проект в крупнейший банк.

===

Накидаете 10 лайков 👍 - напишу продолжение :)
👍11
4 убеждения против менторинга

Привет! Смотри, я назвал себя фронтенд-ментором не просто так. Сначала я пошел учиться у другого, опытного ментора.

Несколько лет до этого меня сдерживали ограничивающие убеждения - и вот какие:

Я могу сам разобраться!
Есть же куча статей, туториалов, книг и курсов. Я могу обучиться сам, как JS, верстке и так далее.
Только что-то идут месяцы, годы, а я все продолжал набивать закладки статьями...
Каша материалов без понимания, что и в каком порядке учить, приводила к жесткой прокрастинации. Я заставлял себя, но только выгорал.
В итоге ментор дал систему. Где-то подсказал, где-то замотивировал, где-то удержал от прокрастинации и напрасной траты времени.

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

Это дорого!
Ментор попросил 100.000 рублей за 2 месяца обучения.
Это дорого? Давай посчитаем:
В среднем, начинающий ментор зарабатывает от 300.000 до 1.000.000 рублей в год.
Это х3-х10 от вложений в обучение.
И это только деньги! Я также сэкономил годы блужданий, набивания шишек. Получил опыт полноценного бизнеса, которым можно заниматься параллельно с работой.

Что, если я не справлюсь?
Пойду к ментору, но не буду понимать, справляться, потеряю мотивацию...
Оказалось, что все это не про ментора. Все это - про самостоятельное обучение. Ментор терпеливо объяснял, сопровождал, своим примером добавлял мотивацию двигаться вперед: "если смог я, то сможешь и ты!", показывал он.

А какие убеждения ограничивают тебя от того, чтобы идти в наставничество? Делись в комментах :)
👍3
Как меняется жизнь с х2 к доходу

Если бы я знал раньше, как круто меняет жизнь хорошая зарплата!

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

Но я решил расти дальше. Потому что поджимала инфляция, и мы уже построили планы на семью.

И в один день мой доход выстрелил х2.

Мне открылся совершенно новый уровень жизни.

И прежде всего - я стал везде ездить на такси.

Как ленивый интроверт, терпеть не мог стоять в набитом автобусе.

Перейти на такси было потрясающе! Я просто вызывал Комфорт+ прямо к дому, садился в просторный салон,просил водителя поставить мою музыку, доставал планшет и работал. Или смотрел в окно. Автобусы пролетали мимо. На неудобных сиденьях горбились люди.

Раньше я был среди них.

И каждая поездка на такси напоминала мне, как важно зарабатывать хорошие деньги.
👍5