Костя 8Бит | Fullstack AI
1.06K subscribers
91 photos
2 videos
2 files
64 links
Канал для разработчиков Frontend & Backend с полезными материалами по разработке, поиску работы и работе с AI.

Я 8 лет в веб-разработке, сейчас работаю Lead AI Fullstack Engineer и внедряю AI агентов.
@kostya_xxxx

Курс по AI: Kostya-it.pro/ai
Download Telegram
Зарплаты фронтенд разработчиков
(в РФ)

👼 Junior:
30 000 - 120 000
👨‍🏫 Middle:
100 000 - 250 000
👨‍💻 Middle+:
170 000 - 300 000
🥷 Senior: 280 000 - 450 000
🧔‍♂️ Team lead: 350 000 - 700 000
⚡6
Как я поднял оффер с 350 до 420 в 2021 или о важности переговоров

Несколько лет назад я брал менторинг у очень опытного лида. Он мне советовал множество различных книг по карьере и ИТ. Одна из них Договориться можно обо всем! Как добиваться максимума в любых переговорах. Прочитав ее, благополучно забыл на несколько месяцев.

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

Параллельно прошел другой собес в банк (но там я не хотел работать). Получил оффер в 380 (+ премия) ~= 400 и пошел торговаться с компанией А. Мой сообщение было примерно такое:

Мне очень понравился ваш проект и команда, я бы хотел с вами работать, но мне параллельно прислали оффер на 420(!). Очень с вами хочется работать, но по деньгам тоже не хочется проигрывать. Можем обсудить это и приблизиться к этой сумме?


Итого: оффер на 420 + квартальная премия
🔥6👏1
Фронтенд разработка 2016 vs 2024
😭5👨‍💻2
Что выведет console.log('2' * 3) ?
Anonymous Quiz
15%
23
64%
6
6%
8
15%
NaN
Что выведет console.log('22' + 33) ?
Anonymous Quiz
72%
'2233'
19%
55
8%
'55'
0%
NaN
JavaScript: использование методов массивов в реальной жизни и необходимость их изучения.
( ч1. добавление/удаление элементов )

push: push(…items)– добавляет элементы в конец массива
частый кейс
необходимость изучения: 100%

pop: pop() – удаляет элемент из конца массива
нечастый кейс
необходимость изучения: 20%

shift: shift() – извлекает элемент из начала массива
гиперредкий кейс
необходимость изучения 0%

unshift: unshift(...items) – добавляет элементы в начало
гиперредкий кейс
необходимость изучения 0%

splice: splice(start[, deleteCount, elem1, ..., elemN]) – добавляет, удаляет и заменяет элементы
гиперредкий кейс
необходимость изучения 0%

slice: slice([start], [end]) – возвращает новый массив, в который копирует все элементы с индекса start до end, тоже самое что и splice, но в разы проще
частый кейс
необходимость изучения 100%

concat: concat(arg1, arg2...) – создаёт новый массив, в который копирует данные из других массивов и дополнительные значения, на текущий момент можно заменить оператором [...spread]
нечастый кейс
необходимость изучения 20%
👍5❤1💯1
Никогда не проходи тестовое задание (бесплатно)

За свою многолетнюю карьеру делал 15-20 тестовых. Абсолютно неблагодарная работа. Практически никогда не было позитивного фидбека. Ревьювер кода всегда смотрит со своей колокольни и не всегда она будет смотреть в вашу пользу. У каждого свое понимание «чистого» кода.

Тестовое занимает больше часа - в топку! Если компания не готова потратить время на тебя, почему ты должен тратить время на нее? В нормальных компаниях время на устройство вместе с соискателем делится примерно 50/50.

Последний раз делал тестовое пару лет назад на сеньорскую позицию с хорошими деньгами и условиями.
При просмотре тестового с лидом той компании оказалось, что для него норм писать костыли по проекту, писать на реакте классовые и функциональные компоненты одновременно чтобы использовать методы из обоих типов, лезть в instance компонета и менять там значения. На мои возражения соблюдения консистентности и кода без костылей человек сказал:
«по-хорошему надо бы, но мне удобнее так»
после этого меня побрили.
👍6
Тестирование фронтенда

Пирамида тестирования на фронте выглядит так:
e2e
integration
unit


E2E тестирование: Сквозное (end-to-end) тестирование, позволяет тестировать функционал приложения. Прокликивать отдельные фичи, запускать процессы и тд. Обычно для их написания использует Cypress или Selenium. Для тестирования добавляет отдельные атрибуты для элементов. Пример: <input data-test-id="search-input" />


Integration тестирование: Интеграционное тестирование, позволяет тестировать работу всего приложения через взаимодействие с UI, совместимость с другими модулями(если например приложение разбито на микрофронты или использует общение с другими приложениями). Обычно для их написания используют тот же Cypress или самописные решения.

Unit тестирование: Юнит тестирование, самое популярный вид тестов тестирование. Позволяет тестировать модули или определенные блоки. Конкретно на фронте тестирование классов, утилилок или компонентов. Чаще всего для юнит тестирования используют jest, react-testing-library.

Полезные статьи по тестированию:

Тестирование фронтенда: большой гайд

Трофей тестирования фронтенда

Какие инструменты и подходы использовать для тестирования фронтенда — рассказывают эксперты

7 основных тенденций в тестировании Web Front-End


#javascript #react #jest #cypress #selenium #unittest #e2e
🤨3
JavaScript: использование методов массивов в реальной жизни и необходимость их изучения.
( ч2. перебор, поиск, трансформация элементов )

forEach: forEach((item, index, array) => )– позволяет запускать функцию для каждого элемента массива
нечастый кейс
необходимость изучения: 30%

includes: includes(item, from) – ищет item начиная с индекса from и возвращает true, если поиск успешен
частый кейс
необходимость изучения: 100%

indexOf: indexOf(item, from) – ищет item начиная с индекса from и возвращает номер индекса, на котором был найден искомый элемент, в противном случае -1
частый кейс
необходимость изучения 50%

find: find((item, index, array) =>) – если true - возвращается текущий элемент и перебор прерывается, если все итерации оказались ложными, возвращается undefined
частый кейс
необходимость изучения 100%

filter: filter((item, index, array) =>) – проходит циклом по массиву и выдает результат из элементов соответствующих условию
частый кейс
необходимость изучения 100%

map: map((item, index, array) => ) – вызывает функцию для каждого элемента массива и возвращает массив результатов выполнения этой функции
частый кейс
необходимость изучения 100%

sort: sort((a,b) – возвращает отсортированный массив, но обычно возвращаемое значение игнорируется, так как изменяется сам
частый кейс
необходимость изучения 100%
👍7
JavaScript. Как создать дополнительный поток?
Anonymous Quiz
3%
setTimeout
70%
Worker
9%
Mutation Observer
18%
Promise
👍3
На 95% собеседований вас спросят о нем. Event Loop.

Event Loop (событийный цикл) - главнейший механизм в JS.
JS - однопоточный язык и некоторыми операциями можно заблокировать интерфейс пользователя. Соотвественно чтобы писать user-friendly приложение нужно делать его без блокеров IO (ввода вывода). Т.к. есть операции, которые мы не можем выполнить прямо сейчас, а когда-то потом. Для этого существует Event Loop и асинхронные инструменты Promise, async await и тд.

Что блокирует интерфейс?
- циклы while, for
- тяжелые вычисления
- cинхронные операции без механизмов ассинхроности (setTimeout, requestAnimationFrame и тд)


Полезные статьи:
Эволюция асинхронного JavaScript
What is non-blocking IO?
Асинхронное программирование в однопоточных средах JavaScript
👍5
📈Как программисту получить качественное денежное повышение на работе? Никак.

🤷‍♂️В 90% случаев качественного повышение в зп в рамках одной компании не случится. Может добавят 5-10% раз в полгода-год в лучшем случае.

👩‍💻Лет 5 назад забирал документы у эйчаров с одной из работ. Параллельно слушал о чем они говорили: "Вася хочет повышение до 200, а у него 160. Надо посчитать сколько будет переплата за год и будет ли это больше какого-то коэффицента. Если больше, то не поднимаем зп".


Самый верный способ качественно увеличить зп на 💵15-30-50-70-100% всего лишь надо получить оффер с нужной суммой. Потом можно прийти к своей компании и деликатно обсудить вопрос о повышении (но не надо наглеть). С оффером в руках переговоры становятся проще и быстрее. Если не захотят повышать, можно перейти в другую компанию на бОльшие деньги.
Please open Telegram to view this post
VIEW IN TELEGRAM
💯5
🍁Осень - лучшее время для поиска работы

На моей памяти самые крутые интересные денежные вакансии приходились на последний квартал года.

❓ Почему так? Проекты горят, нужно выполнить KPI до конца, менеджерам показать что-то чтобы выбить бюджет или получить бонус. Бюджет на расширение штата закладывают как раз в сентябре.

🌿 В прошлом году искал работу весной: зп небольшие предлагают до 300, вакансий мало. Также в прошлом году: куча вакансий, зп предлагают по 400-450 / 5-6k$

❗️Так что советую присматриваться к новым вакансиям в это время года.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7
Моему ученику прислали оффер на 275к. Топ результат за год ⬆️
🔥12👍1👻1
🚀 С нуля до оффера на 185 за 3 недели!

Мой ученик получил оффер на позицию Middle Frontend Developer с первого собеседования. Зарплата 185к₽.

Что было:
• Полгода самостоятельного обучения
• Пробелы в JS
• Страх собеседований

Что сделали за 3 недели:
✅ Закрыли пробелы в JavaScript
✅ Обсудили легенду и доработали
✅ Провели 4 моков собеседований
Результат: оффер в продуктовую компанию с первой попытки! Не без удачи конечно 🍀
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10❤2🤩2👻1🙉1
🔥 3 собеседования на $7K: что реально важно на высоких позициях

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

На что РЕАЛЬНО смотрят:

1. Софт скиллы 👥
- Коммуникация с бизнесом
- Умение отстаивать технические решения
- Взаимодействие с другими командами

2. Проектирование 📋
- Декомпозиция больших задач
- Оценка рисков
- Планирование ресурсов
- Выбор технологий

3. System Design 🏗
- Масштабируемость решений
- Производительность
- Безопасность
- Интеграции

4. Архитектура 🎯
- Паттерны проектирования
- Чистый код
- Поддерживаемость решений

❌ Что НЕ спрашивали:
- Работу хуков React
- Bind/call/apply
- Алгоритмические задачки
- Задачи типо "Рекурсивный обход деревьев"

💡 Вывод: на высоких позициях важнее умение проектировать и принимать архитектурные решения, чем знание синтаксиса.

#собеседование #frontend #архитектура
🔥9👻3
⏰ Заканчивай собеседование в нужный момент!

За 120+ собеседований в моей карьере я понял важное — не нужно терпеть некомфортные ситуации из вежливости. Это пустая трата времени для всех.

Два случая из моего опыта:

1️⃣ Инвестиционная компания
Интервьюер постоянно перебивал и душнил.
Через 10 минут я вежливо прервал собеседование и сообщил HR о причинах
🤖Результат: этого интервьюера отстранили от проведения собеседований

2️⃣ Стартап
- На код-ревью любят спорить часами
- 30 минут обсуждают название кнопки
Я сразу понял: это не мой формат и честно сказал об этом.

💡 Главные правила:
- Оставаться вежливым
- Четко объяснить причину
- Поблагодарить за время
- Дать конструктивную обратную связь HR

Помните: ваше время и комфорт так же важны, как и время компании.
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡10❤3🔥3👻1