Хасан – Дорога в Айти – Telegram
Хасан – Дорога в Айти
113 subscribers
179 photos
36 videos
72 links
Путь в IT через frontend 🌐👨‍💻

Frontend-разработчик в начале карьеры.
Имею коммерческий опыт в стартапе.
Делюсь процессом развития, ошибками и практическими выводами.

Иногда стримы работы и учёбы: https://www.twitch.tv/codeforfreedom_
Download Telegram
Больше чем недельный отчет #100DaysOfStudy

Дни № 80-90

За последний месяц произошло несколько крупных событий.

🪪 МОК СОБЕС
У SiberiaCanCode с ai инструментами (ютуб)

🛠 ПЕРВАЯ ПОДРАБОТКА (через нетворк)
На стартапе на пол рабочей недели. Много нового и интересного. Была одна задача с кодом, а в остальном онбординг. Жаль одно - что там нету опытных фронтов.

🌿СТАЖИРОВКА
По стажировке доделывали небольшие задачи по проекту. Но сейчас упала интересная задача с аутентификацией и хоть я ушел на подработку, я хочу сам реализовать аутентификацию. Таким образом у меня будет двойной опыт с аутентификацией: на стажировки и на стартапе.

ВРЕМЯ
48 часов
Неделя (Пн-Сб) вышла продуктивной.

ИНТЕРЕСНОЕ
Как писал вышел продолжаю читать 2 книги “Мастерство” и “Программист Прагматик”. И человека в начале своего профессионального пути это наверное 2 лучшие книги. Я тащусь. Хотя в жизни оч мало читал в целом.

А привычку читать я себе прививаю тем, что 1 помодоро таймер в день читаю.

Всем Успехов ⚡️
🔥8
Нехорошие новости для джунов.

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

Ключевая причина — AI-агенты выполняют джуновские задачи и требуют ревью от мидла или сеньора. А если есть джун, то он добавляет лишнюю ступень в этой цепи:
AI → Джун → Мидл/Сеньор.

💡 Таким образом, ключевая вещь, к которой нам, джунам, нужно стремиться — это уметь делать ревью и отличать плохой код от хорошего.


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

Такие выводы я сделал после просмотра видео «Как AI меняет разработку?».

Я трогал программирование еще 12 лет назал в универе и оно мне нравилось, но тогда у меня не было долгосрочных планов, и я просто перестал уделять внимание учебе.

🌿 Сейчас я выбрал это направление, чтобы построить новую жизнь. Но до этого момента я не понимал чего это будет мне стоить.

Это будет стоить тебе всего. Это будет стоить тебе твоей старой личности, и ты возродишься как новая личность.


В коментах приклеплю видео с цитатой

2🗿2👍1
#100DaysOfStudy
День 91

Документация React по useEffect

Я и не знал на сколько плохо я понимал работу хука useEffect.
Эта документация обязательна для прочтения.

Ключевые моменты, которые узанал
➢ Суть в том, что useEffect создан для реализации сайд-эффектов.
➢ Cleanup ф-ия в useEffect вызывается на размонтирование компонента и перед повторным запуском (если есть dependencies).

Также узнал что через Ref можно использовать методы от HTML тегов. Например для <dialog> можно использовать ref.current.showModal()

Теперь интересно посмотреть след раздел
You Might Not Need an Effect

Приятно когда понимаешь инструменты с которыми работаешь 🔧⚙️
🔥10
Прошло уже почти 2 мес с момента как я записал второе видео про свой путь в айти, но так до сих пор его и не смонтировал…

Сегодня заглянул в материал и поугарал)

На этих выходных обязательно его нарежу и выложу.

А за последние 2 мес уже произошло еще много нового, так что пора записывать еще одно видео.

А вот самое первое которому уже пол года
Почему я изучаю Фронтенд разработку?


Клипы из предстоящего видео:
🔥421
Плюс мораль от сообщества 🚀

Мой вход в айти в самом разгаре. Путь это не легкий и на нем необходима поддержка. Полгода назад я наткнулся на сообщество IT-Хозяева. В нем я нашел как возможности для общения и развития в техническом направлении, так и круг людей по интересам: спорт и английский.

Я стал активной частью сообщества и начал проводить созвоны English Club и недавно начал запускать небольшие челленджи в нашем спортивном чатике.

Основатель сообщества Саня (@jointimer) сделал мне мега подгон:
Фирменная футболка IT-Хозяев
Книга: Чистый Код
И еще ништячки

Я благодарен ему за поддержку и то, что он создал такое классное сообщество.

Двигаться в одиночку было бы гораздо сложнее. Так что всем рекомендую сообщество IT-Хозяева

Всем успехов в развитии ⚡️
🐳7❤‍🔥6🔥31👍1
Спустя месяц работы над задачей 🙈

▻ изменено 133 файла
▻ добавлено 2300 строк
▻ удалено 1400

Этот MR на стартапе, где я работаю никто не будет проверять. Я его проверял сам с нейронкой и просил найти критические и важные ошибки.

По итогу нашлись ошибки именований, типов и надо было обновить тесты.

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

Я бы очень хотел чтобы мой код ревьюили опытные разрабы, думаю это сильно помогало бы расти как специалист. Но это уже совсем другая история
👍6💅3👀1
Начал проходить курс по TypeScript

Я до сих пор не проходил системно структурированные материалы по TypeScript. И в мои руки попал свежий курс по TypeScript.
(Спасибо другу за это 🤝)

В первом ролике на тему “Иерархии типов” узнал про важную особенность объектных типов (object types).

Оказывается в TypeScript при описани подобного типа:

type User =
{ name: string; }

это правильно читать следующим образом: “поле name обязательно в объекте и должно иметь тип string”. Но это не означает что объект типа User должен иметь только одно поле name.

Eсли в переменную типа User напрямую присваивать объект с лишними полями

{ name: 'Bob', age: 33 }

то будет ошибка проверки лишних свойств (“Excess Property Checks”). А если присвоить через промежуточную переменную или получить объект из сетевого запроса — ошибок нет.

Excess Property Checks срабатывает, если объект сразу присваивается переменной.

А вы знали про эту особенность?

#100DaysOfStudy День 92
🔥7🗿3
This media is not supported in your browser
VIEW IN TELEGRAM
Нашел способ как облегчить чтение статей 🗿

И можно выбирать скорость чтения.
🗿5
Задачка на понимание TypeScript

Вопрос: Почему нету подсветки ошибки в коде, но падает Run?
Ссылка на Код

——
Ключевые моменты:

1) Надо учитывать особенность что в TS объектные типы являются открытыми. И они не запрещают иметь больше полей чем мы указали.

2) Указывать явно типы не всегда есть хорошо. А еще есть такая вещь как “satisfies” которая не указывает тип, а проверяет его на совместимость.

3) Опциональный тип “:?” в объекте может вызывать проблемы при типизации параметров функции.

В этом примере он позволил принимать объект без поля verificationDate, что позволило принять тип User. От этого можно было бы защититься если в типе VerifiedUser типизировать поле вот так


verificationDate : Date | undefined


Разбор в открытом доступе - Ютуб

#100DaysOfStudy День 93
🤔4
Вчера у меня случилась странно-забавная история с LLM-агентом.

Я настраивал локализацию i18n в проекте, и в тестовой-среде (jest) локализация просто не поднималась. Подключил агента Claude (через Cursor), чтобы разобраться. В итоге мы провели около часа, вращаясь вокруг одной и той же проблемы: он несколько раз уверял, что нашёл решение, пробовал разные подходы, но результат оставался прежним. Чувствовалось, что агент заблудился в трёх соснах.

В конце концов я решил начать всё с нуля, но перед этим попробовать кое-что. Я написал ему резкое сообщение, что это его последний шанс. И неожиданно, после этого, расставляя логи по всей цепочке, он буквально за пять минут нашёл корневую причину и полностью решил задачу. Почти точно такая же ситуация у меня уже была полгода назад с gemini-cli.


И вот возникает вопрос: действительно ли давление на нейронки повышают шанс решения задачи? 🤔

Кто-нибудь ещё «угрожал» агентам и насколько это помогало? Дайте знать.

П.С.
По промту ясно что у меня знатно подгорело 💥
🤣6👀2