Пытаемся в T-Shaped (ex. Frontend) @gototshaped Channel on Telegram

Пытаемся в T-Shaped (ex. Frontend)

@gototshaped


Автор - https://t.me/MPozharskiy

Пытаемся в T-Shaped (ex. Frontend) (Russian)

Новый Telegram канал под названием "Пытаемся в T-Shaped (ex. Frontend)" предлагает своим подписчикам уникальную возможность погрузиться в мир разработки Frontend и стать настоящими профессионалами в этой области. Канал создан для тех, кто стремится к развитию своих навыков и хочет освоить новые технологии в сфере веб-разработки. Автор канала - Михаил Пожарский, опытный разработчик и эксперт в области Frontend. Его знания и опыт помогут вам разобраться во всех тонкостях этой области и освоить основные принципы разработки. Михаил делится своими знаниями, советами и рекомендациями, помогая каждому участнику стать лучше в своем деле. Канал "Пытаемся в T-Shaped (ex. Frontend)" предлагает своим подписчикам интересные материалы, обучающие курсы, полезные ресурсы и многое другое, что поможет вам стать настоящим специалистом в области Frontend. Присоединяйтесь к каналу прямо сейчас и начните свой путь к профессиональному успеху в разработке веб-приложений!

Пытаемся в T-Shaped (ex. Frontend)

08 Oct, 07:00


Хакатон BCI Hack Moscow. Часть 2
Первая часть - тут

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

В воскресенья с самого утра мы были в офисе и продолжали разработку приложения. В это время уже началась запись в очередь на защиту проектов которая начиналась в 15 00 и мы записались третьими. На этот момент от участия в хакатоне отказались ~10 из 36 команд и в офисе стало заметно меньше народу. Видимо не только у меня возникли проблемы со сборкой той библиотеки на С 😅

🔸 Мы начали интегрировать части нашего приложение между собой и здесь начались многочисленные тесты того как работает устройство. И это реально меня впечатлило - по метрикам устройства в реальном времени можно было видеть что когда я внимательно читаю текст или перемножаю двухзначные числа в уме - метрики концентрации вырастают в 3-4 раза, а когда начинаю тупо смотреть в стену и тупить - концентрация тут же падает. Изменения происходили практически сразу же так как эти метрики собирались каждые 0,1 секунды.

🔸Ради интереса решил проверить что происходит с концентрацией во время просмотра шортсов/рилсов - предполагал что она будет расти, так как человек прилипает к телефону и получает быстрый дофамин, часто переключая видео - но оказалось смотреть шортсы это почти то же самое что тупить в стену - концентрации практически нет)

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

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

Самая стрессовая часть на этом кончилась и так как защиты проектов должны были продлится еще часа 4 мы разъехались перекусить и собрались обратно уже на защите.

😿 К сожалению призовых мест мы не заняли 😿

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

Итого какие плюсы от участия я могу выделить:
Впервые встретился со всеми участниками подкаста в живую, ребята приехали из разных городов ради хакатона
Почувствовал ту самую атмосферу хакатона когда вы в супер ограниченные сроки должны из ничего сделать рабочий MVP
Буквально прикоснулся к разработке будущего, особенно по сравнению с разработкой фронта веб-сайтов или очередного CRUD'a на REST/gRPC - то что было на хакатоне это реально вызывает сильный интерес с точки зрения разработки и возможных перспектив
Разрушился миф в моей голове о том что С++ недоступный для меня язык

Минусы:
🚫 Не заняли призовые места (даже сила мемов на футболках не помогла)
🚫 Та самая атмосфера хакатона имеет и обратную сторону - 5-6 часовой сон на выходных остается прикольным только в воображении, на деле же ехать в 8 утра в воскресенье в офис поспав 5 часов - совсем не прикольно)

🏆 Плюсы получились значительные, поэтому я остался доволен

Пытаемся в T-Shaped (ex. Frontend)

07 Oct, 07:00


Хакатон BCI Hack Moscow. Часть 1
Много текста

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

Суть хакатона состояла в том что бы придумать применение для продукта компании Headband Pro - это такой "обруч" которые одевается на голову и в реальном времени считывает электроэнцефалограмму мозга (ЭЭГ), данные акселерометра и гироскопа, пульса и так далее и преобразует это в метрики типа индекса концентрации, индекса стресса, накопленной усталости, азарта игрока и много чего еще.

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

Мы придумали проект - Unshaven - сервис для обнаружения и предотвращения импульсивных торгов и склонности к лудомании. Эмоции - самая распространенная причина убытков в трейдинге. Мы решили интегрировать устройство в процесс торгов таким образом, что бы если трейдер испытывает эмоционально нестабильное состояние, волнуется, не сконцентрирован, либо очень устал - блокировать возможность делать необдуманные и импульсивные сделки пока человек не будет в состоянии трезвого ума и спокойствия. Так же полезным было бы собирать данные о сделках трейдера для анализа в каком эмоциональном состоянии какие сделки были совершены и к какому профиту или убытку это привело. Вообщем проект который не позволит побрить трейдера как очередного хомяка 😁

Из всего что имелось первоначально - это само устройство Headband Pro (на фото) и документация к библиотеке на С для взаимодействия с устройством. Изначально наш план был такой - так как мы гошники, пишем обёртку на СGO (Go позволяет прямо в гошный код импортировать С и заголовки С-библиотек), собираем метрики и на основе метрик по вебсокету отправляем браузерному расширению информацию о том блокируем ли возможность торговать на Binance или нет.

Мы прибыли в офис утром пятницы, получили устройство и разделили обязанности. Мне выпало писать ту самую обёртку на CGO или хотя бы просто поднять эту библиотеку, что бы она запустилась. Сразу скажу - это было очень сложно, на С я не писал и как собирать библиотеки не знал.

Итого 5 часов попыток собрать это на винде - безуспешно.


После этого разочарования я получаю предложение от сокомандника - давай писать на С++. Мол, там можно нативно работать с библиотекой на С. Я какое-то время отказываюсь от этого варианта, даже не хочу рассматривать его всерьез ибо образ С++ у меня в голове до сих пор как что-то сложное для тех самых настоящих программистов. В итоге он меня убеждает и я вооружившись LLM моделями начинаю с нуля пытаться сделать всё то же самое на плюсах.

Я был очень удивлен когда у меня на С++ за 2 часа получилось сделать то, чего я не смог сделать за 5 часов на Go. Самым сложным оказалось не писать код на С++ и не читать его - а собрать библиотеку нужным сборщиком и нужным компилятором. Я из-за спешки и нескольких ошибок в итоге скачал 15гб сборок разных компиляторов в Visual Studio пока не нашелся нужный с которым всё заработало. По самому синтаксису вполне читабельно, те же функции, те же аргументы, те же условия и циклы, просто синтаксис немного отличается.

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

Продолжение завтра.

Пытаемся в T-Shaped (ex. Frontend)

29 Sep, 10:05


Материалы для изучения Golang
Обещал написать список ресурсов которые использовал во время своего изучения языка Golang, делюсь:

Курсы на Stepik
Степик это основной источник по которому я изучал базовый синтаксис, прошел на 100% два курса, один совсем легкий, другой уже гораздо лучше. Основная теория подана хорошо, но до момента где начинается многопоточность, там совсем мало материала для этой темы. Из плюсов - сразу практикуешь пройденное, из минусов - бывают глуповатые задачки и в целом платформа степика не идеальна. Ну и самое главное - курсы бесплатные.
https://stepik.org/course/100208/
https://stepik.org/course/54403/
Их вполне хватило что бы перейти к следующему этапу.

Codewars
Для закрепления базового синтаксиса использовал решение задачек 8-7kyu на кодварсе. Задачки такого легкого уровня потому что цель на этом этапе не заниматься раздумыванием над тем как решить задачу и следить за алгоритмической сложностью, а просто закрепить синтаксис. Решал до уровня когда я перестаю задумываться над тем как там пишутся циклы, как объявляются слайсы, как инициализируются мапы и так далее. Суммарно нарешал около 60-70 задач. Так как задачи легкие, их за час можно несколько штук нарешать.
https://www.codewars.com/

Leetcode
После этого я решил что лучше будет тренироваться на алгоритмических задачах, тем более решать 8-7kyu стало скучно. Я решил 10 задач easy уровня, но после этого понял что сейчас я занимаюсь тренировкой и изучением алгоритмов, а не изучаю Golang. Это конечно тоже имеет смысл изучать, но ближе к поиску работы. Еще ловил себя на мысли что занимаюсь решением задач на литкоде потому что это уже понятно как делать, так как я делал это уже, в отличие от прикладной разработки на Go. Поэтому я бы рекомендовал пропустить этот этап и сразу после закрепления синтаксиса идти писать что-то прикладное.
https://leetcode.com/

Пет проект
Один мой товарищ с которым я теперь записываю подкасты советовал начать делать какой-нибудь пет-проект. Первое, что мне пришло в голову - писать какой-нибудь сервер с тудулистом. Но так как на Go часто пишут что-то связанное с мониторингом - мне посоветовали сразу писать что-то подобное, в итоге это вылилось в разработку прокси-сервера с prometehus и grafana. По моему это был хороший выбор, после этого я показывал проект по запросу собеседующих и проходил дальше. Единственное, что я бы поменял сейчас - я бы все таки добавил в этот проект какую нибудь базу данных так же для практики работы с БД. Важно тут получать ревью от действующих Go разработчиков, например в профильных чатах.
https://github.com/MaksimPozharskiy/proxy-go

Подготовка к собеседованиям
После этого начал готовится к собеседованиям, кроме дефолтного способа подготовки (смотреть интервью/решать задачки/учить теорию) отметил бы что чем больше почитаете про планировщик Go - тем лучше, это хорошая тема где можно козырнуть глубиной знаний, при этом потратив пару дополнительных дней на изучение. Проблема в том что одной статьи где описано всё сразу - мне найти не удалось, поэтому набирал по кускам из нескольких источников и записывал в конспект:
https://habr.com/ru/articles/478168/
https://habr.com/ru/articles/489862/
https://habr.com/ru/articles/743266/
https://medium.com/@sanilkhurana7/understanding-the-go-scheduler-and-looking-at-how-it-works-e431a6daacf
https://medium.com/@hatronix/inside-the-go-scheduler-a-step-by-step-look-at-goroutine-management-1a8cbe9d5dbd

Почему в списке нет A Tour of Go?
Я знаю что большинство гошников когда спросят с чего начать назовут этот ресурс, это интерактивный учебник в котором вроде как можно быстро пролистать основные темы и в короткий срок освоить язык. Честно говоря, мне он не понравился. Я приучен к обучению в формате как было в Яндекс.Практикуме - проходим кусок темы, делаем несколько задач на эту тему. По моему опыту конкретно на мне работает именно такой формат, просто почитать про синтаксис и идти пилить сервера для меня не очень работает. Но так как авторитетные Go разработчики советуют его - думаю стоит его отметить, может вам он понравится больше.
https://go.dev/tour/welcome/1

Пытаемся в T-Shaped (ex. Frontend)

17 Sep, 11:36


Канал переименован и в этом контексте стоит объяснить что это за T-Shaped.

T-Shaped - это специалист, который является профессионалом в одной области, но при этом разбирается в других смежных областях, может поддерживать коммуникацию со специалистами из смежных областей. Часто этот термин противопоставляют I-Shaped - т.е. эксперту в одной области, который не погружен в смежные или Дженералисту - человеку который ни погружен ни в одну область глубоко, но по вершкам имеет знания из нескольких сфер.

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

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

Может возникнуть вопрос - почему канал не называется "Пытаемся в Backend"? Было бы логично, учитывая что я сменил сферу с фронта на бэк. Но у меня есть полная уверенность что бэкенд на Golang - это не конечная точка в карьере, есть стойкое убеждение что в современном мире мне придется еще не раз и не два переучиваться на какую то новую сферу в ближайшие 5-10-15 лет, особенно учитывая развитие нейросетей. Похоже, что мир где мы выбираем одну область знаний на всю жизнь начинает заканчиваться.

Специально для этого поста мы записали новый выпуск подкаста где обсудили разницу между T-Shaped, I-Shaped и фуллстеками. Выпуск получился с активными спорами ибо по некоторым моментам мы с ребятами были не согласны.

Ссылка на выпуск про T-Shaped - YBC 13. Зачем быть T-Shaped

Пытаемся в T-Shaped (ex. Frontend)

17 Sep, 11:34


Channel name was changed to «Пытаемся в T-Shaped (ex. Frontend)»

Пытаемся в T-Shaped (ex. Frontend)

20 Jul, 08:36


"Окончательно убедился для себя что ни в коем случае не буду заниматься бэкендом по своей воле. Это явно не то что мне нравится"

Именно эту фразу я написал в моём канале 3,5 года назад, вот в этом посте. На тот момент я даже говорил что ручное тестирование для меня было бы более интересно чем разработка бэкенда 😂
Что ж, нужно признать что некоторые вещи в жизни меняются совсем неожиданным образом.

🔥Можно меня поздравить - я прошел испытательный срок и успешно перекатился в бэкенд разработку, теперь я Golang разработчик 🔥

Сразу отвечу на самые популярные вопросы:
✔️ Заняло это чуть больше 1 календарного года, из них активного обучения без перерывов около 6-7 месяцев
✔️ Пройдены собеседования в 11 компаний
✔️ Сделано 1 тестовое задание
✔️ Получено 3 оффера
✔️ Поиск работы занял 1 месяц и 1 неделю
✔️ Заработная плата не снизилась

Раньше я сравнивал предыдущий этап поиска работы и новый, но так как с 2022 года настолько всё изменилось, да и я поменял стек что думаю сравнивать не особо корректно. Про прошлый поиск работы можете взглянуть на цифры сами в этом посте.

Из интересного что хочу отметить:
Всюду говорят что язык Go простой и легкий и освоить его если умеешь программировать это несколько недель почитать документацию/пройти Go Tour. Вероятно я не самый смекалистый разработчик, ибо у меня только на сам язык ушло несколько месяцев после работы. Да, многие моменты вроде циклов, переменных, массивов и тд я быстро прошел, но многопоточность, структуры, утиная типизация и так далее мне дались не просто.

Знания самого языка не достаточно.

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

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

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

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

Пытаемся в T-Shaped (ex. Frontend)

26 May, 09:40


Как я сходил на МТС True Tech Day

МТС True Tech Day это конференция как понятно по названию от компании МТС по нескольким направлениям - разработка, искусственный интеллект и машинное обучение, облачная инфраструктура и немножко науки.

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

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

1) Инцидент-менеджмент в Ozon: культура, подход, практики - оказалось довольно абстрактно, практик мало, много про то какие Озон молодцы и не ищут виноватых, а делают так что бы инцидент не повторился (одобряю)
2) Стресс на работе можно взять под контроль...играми? - честно скажу что забайтился из-за названия, думал что "О щас про игры расскажут", оказалось что под играми имеются ввиду всякие когнитивные игры типа где надо смотреть на геометрические фигуры и запоминать их 🤨 (разочаровался, скукотища)
3) ML в онлайн-кинотеатрах: как повысить время смотрения и понять, что только ML — мало - очень интересная тема про кинотеатр KION, но подача докладчика была монотонная без эмоций, слушать было тяжеловато. А еще в KION используют понятие "Полка" для области с фильмами на экране. У меня одного это плохо ассоциируется с фильмами?) Как будто полка это место где какие-то старые запылившиеся фильмы лежат, которые никто не смотрит (доклад хороший, но подача слабая).
4) Prompt Engineering — как найти общий язык с LLM - отличный доклад девчонок из MTS AI, превзошел ожидания, оказалось очень интересно. Доклад о будущем Промпт-инжиниринга и о том как МТС пишет свой аналог AI чата, как использовать чат в повседневной жизни и работе (про это у нас был подкаст). Кстати в слайде все сравнения производительности и эффективности были только с российскими аналогами от других компаний (типа Яндекса, Сбера и тд), но не было сравнения с ChatGPT от OpenAI. Честно говоря, выглядит как будто это специально не стали делать что бы не показывать плохие результаты) (доклад супер)

Хотел задать несколько вопросов по последнему докладу, но не уложились в тайминг, поэтому я пошел вылавливать докладчиц в толпе, что бы задать интересующие вопросы. Мы хорошо пообщались, поделился своими размышлениями про применение нейросетей в НЕ айтишных работах, какой буст это может сейчас дать пока вне IT про ChatGPT знают мало, про злоупотребление применения чата и подобное.

После докладов была party часть с едой и пивом, я познакомился еще с одной компанией ребят, но быстро началась шоу программа с какими то музыкантами и разговаривать стало тяжело. Пиво как и еда закончились супер быстро 😢, даже не хватило всем, стало тухловато, так что понял что ловить особо нечего и поехал домой)

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

Пытаемся в T-Shaped (ex. Frontend)

05 May, 12:02


О том как я пытался попасть на Route256 от Ozon

Некоторые большие компании из-за нехватки Go-разработчиков на рынке запускают бесплатные школы/курсы по обучению либо переобучению опытных разработчиков из других языков. Route256 - это один из них.

📔 В Route 256 было два трека - для junior и middle разработчиков. Так как я уже имею опыт разработки то решил участвовать в middle треке. Что бы попасть на курс нужно было пройти контест с алгоритмическими задачами, как это обычно бывает в бигтехе.

Изначально как понял подразумевалось что контест пройдён в один день и займет 6 часов. Но когда я зашел на него - оказалось что на стороне Ozon были какие-то проблемы с серверами, из-за чего запустить контест в нужный срок не удалось. Ozon приняли решение продлить контест на все выходные. Честно скажу - если бы не это продление - я бы решил меньше задач.

💻 Решение контеста у меня заняло суммарно 10,5 часов. За это время я решил 4 из 9 задач, при этом попытку решить предпринял в каждой задаче. Задачи оказались сложные для меня, тем более я не готовился и давно не решал литкод. Были только алгоритмические задачи, ничего связанного непосредственно с Go не было (вроде горутин, мьютексов, каналов и тому подобного).

💡 Мне достаточно понравилось, узнал несколько новых вещей. Была одна интересная задача которую я решил правильно, но не проходил её по времени. Если упростить - задача состояла в том что бы сравнивать новые логины юзеров с уже имеющимися. Проблемы начинались на данных где нужно было сравнивать 1000 старых логинов и 1000 новых логинов, при этом в каждом логине по 500 символов. Тут то я и не укладывался по времени. В итоге спустя 1,5 часа рефакторинга обнаружил что если представлять данные не слайсом рун, а слайсом байт - можно использовать в 4 раза меньше памяти. После этого простого изменения в одну строчку решение было засчитано.

🥇 В итоге я занял ~150 место в общем зачете. Как потом выяснялось на курс попадают около 30 человек в топе зачета. При этом решить все 9 задач было бы недостаточно, все задачи решили больше 60 человек, выходит что кто-то даже решив всё - на курс всё равно не попадет.

❗️Контест конечно интересный - но только утвердил моё мнение что на саму работу попасть проще чем на эти курсы на которых тебя только учить будут. Впервые я с этим сталкивался еще когда пытался попасть в ШРИ Яндекса. В ШРИ я не прошел, на стажировку не прошел, зато нашел работу.

Пытаемся в T-Shaped (ex. Frontend)

24 Apr, 09:08


Моё обучение разработке началось почти 4 года назад, 17 мая 2020 я создал канал и стал рассказывать о том как учусь.

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

👩‍💻 Так как из-за моего перекатывания в бэкенд в канале начали появляться люди, которые интересуются серверной разработкой - думаю им будет интересно прочитать о таком же пути как был у меня - но сразу начиная с бэкенда. Все таки одно дело когда ты уже умея программировать (имея надсмотренность) перекатываешься из фронтенда и уже знаешь как решать частые проблемы в обучении, а совсем другое когда ты изучаешь бэкенд с нуля.

💡 Для тех кому это актуально - обратите внимание на канал Вадима о том как он вкатывается в JavaScript разработку. Из того что лично мне показалось интересным - это формат. Каждый день выходит отчет с информацией об изученном за прошедший день, мне это сразу напомнило рабочий дейлик 😁 Чуть-чуть завидую что не придумал это сам когда только начинал свой дневник обучения.

🥇 Помимо этого меня привлекает поставленная цель - стать разработчиком за 10 месяцев. На мой взгляд это довольно амбициозно, у меня это заняло 13 месяцев, но сейчас я понимаю что я мог бы сделать это быстрее)

Уже прошло 5 месяцев, интересно что будет через оставшуюся половину пути)


Ознакомится можно по ссылке - Путь к Java Junior

Пытаемся в T-Shaped (ex. Frontend)

30 Mar, 12:22


​Наступила весна, все бюджеты на найм на этот год согласованы, новогодние премии выплачены, а это значит рынок оживает и можно начинать искать новую работу 😉

💻 Я как раз сам нахожусь в этом процессе, активно собеседуюсь уже на позицию Golang Developer, пришло время выкатываться из фронтенда😁. По этой причине видимо через какое-то время канал поменяет своё название на другое.

🔥Во время того как я активно подготавливался к собеседованиям - в одном из чатов увидел ссылку на проект Easyoffer. Судя по тому как часто я стал видеть его упоминания в чатах - многие из вас скорее всего уже знакомы с ним.

🌏 На этом сайте находятся результаты исследования вопросов которые задают на собеседованиях по разным стекам и самое прикольное - процент показывающий насколько часто этот вопрос попадается на собеседованиях.

Так как меня больше интересовали вопросы по Golang - я в основном пользовался этой информацией и после 10+ собеседований могу подтвердить данные проекта - самые популярные вопросы действительно почти всегда попадаются.

🎞 Еще там есть сборник видеозаписей собеседований, но их я особо не просматриваю, так как больше люблю формат конспектов/шпаргалок/статей при подготовке к собеседованиям.

Думаю тем кто так же как я сейчас ищет работу - очень пригодится.

Ссылка - https://easyoffer.ru/

Пытаемся в T-Shaped (ex. Frontend)

03 Feb, 13:02


❗️Что бы работать фронтендером нужна математика! ❗️

🕐 Я уже довольно давно не писал ничего про фронтенд. Частично это связано с тем что последнее время я погружаюсь в другую область, а частично с тем что типовые проектные задачи на фронте уже приелись.

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

📏 Задача интересная так как я учитывал что количество изображений может быть разным, как и их размер, т.е. просто расставить каждое изображение используя абсолютное позиционирование в пикселях не выйдет.

📚Думаю моя школьная учительница математики ликовала 😁 - так как для решения этой задачи мне понадобилось поизучать несколько математических формул, а точнее из раздела тригонометрии. Повспоминал/поизучал про косинусы, синусы, длину и радиус окружности, формулы поиска радиуса и вершины конуса, число Pi. Кстати узнал что конусом называют именно трехмерную фигуру, а так как изображения в моей задачи двухмерные (имеют только ширину и высоту) - корректней называть их круговым сектором.

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

💡По итогу задачка оказалось не такой уж сложной как мне казалось с первого взгляда, но я действительно увлекся во время её выполнения, было интересно.

😎Так что теперь с уверенностью могу рассказывать что математика фронтендерам всё таки нужна для работы, правда понадобилось мне это только через 3 года опыта разработки

Пытаемся в T-Shaped (ex. Frontend)

12 Dec, 14:29


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

📕 Для меня последние года 4 стало очень трудным читать хоть какие-то книги, не важно технические они или художественные. Художественные книги в качестве развлечения заменили компьютерные игры, ютуб и короткие видео (рилсы, шорты, тик-токи). Технические книги для обучения IT заменили статьи, гайды, документация и практика, практика, практика. Похоже мне легче пройти какой-то курс или поразбираться в технологии, чем читать книжку.

📙 Трудность заключается в том что мне сложно долго концентрировать внимание на потребление информации из книги, я слишком привык к быстрому получению информации, книга в этом плане кажется чем то жутко медленным. Я на 100% уверен, что эта проблема вызвана развитым клиповым мышлением и ничего хорошего я в этом не вижу. При этом индустрия четко диктует что ты должен читать технические книги.

📗 С другой стороны я (не дочитавший ни одной технической книги до конца) продолжаю развиваться в профессиональном плане, успешно решаю проблемы бизнеса и получаю повышения. Так же я понимаю что возможно в какой-то момент я упрусь в потолок из-за того что не читал какую то базированную книгу о базовых концепциях той самой "базы" которую якобы должен знать каждый.

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

Вы можете послушать выпуск на популярных площадках
📝 Слушать на популярных платформах

А еще можно подписаться на канал что бы не пропускать другие выпуски:
https://t.me/ybc_production

Пытаемся в T-Shaped (ex. Frontend)

11 Nov, 12:49


Частенько вижу в чатах как люди спрашивают какую компанию выбрать для того что бы задеплоить пет-проект с бэкендом что бы показать его работодателю или куда выложить MVP проекта что бы проверить какую то гипотезу.

👍 Когда я учился на курсах по JS, у нас была маленькая 2-месячная часть бэкенда, где нам предоставляли купон на аренду удаленной машины, куда можно было задеплоить наши проекты.

🔠 Недавно я увидел что компания Selectel проводит онлайн соревнование в формате IT-кроссворда, в котором отвечая на вопросы про IT, можно будет выиграть промокод 10 000 рублей на аренду серверов, а так же эксклюзивный мерч от Selectel. Думаю это отличный вариант что бы попробовать попользоваться их продуктами.

👕 Лично мне больше всего интересен именно мерч, браслетик Selectel (который я выиграл в квизе на IT-Пикнике) я ношу на руке до сих пор. Не против выиграть еще мерча 😄

🧑🏻‍💻 Поучаствовать можно в разных направлениях, я думаю выбрать Разработку/тестирование и Soft Skills.

Там есть и другие направления, можно ознакомится по ссылке - https://promo.selectel.ru/itcross

Соревнование стартует 14 ноября и продлится до 17 ноября

Пытаемся в T-Shaped (ex. Frontend)

27 Oct, 16:08


Несколько новостей по поводу подкаста который мы недавно запустили:

⚡️ Вышло два новых выпуска:
1) Мотивация VS Дисциплина - тут мы рассказываем что такое мотивация и дисциплина, чем отличается друг от друга, на что больше ориентироваться при обучении и как можно на них влиять.
2) Английский для айтишника // зачем и как учить - здесь я рассказал сколько денег я потратил на изучение английского за 3 года и что из этого вышло. А так же обсудили зачем вообще нужен английский, можно ли стартовать без него и как его изучать.

⚡️ По просьбе нескольких подписчиков добавили подкаст на Spotify, а так же сделали общую ссылку на все доступные для прослушивания платформы, вот она:
your-bunny-code.mave.digital

⚡️ Так как подкаст это отдельный проект, решили сделать отдельный телеграмм канал для анонсов выпусков подкаст, все анонсы выпусков теперь будут там. О некоторых выпусках которые на мой взгляд заслуживают особого внимания я так же буду писать тут. Поэтому если не хотите пропускать выпуски, подписывайтесь)
Ссылка на новый канал:
https://t.me/ybc_production

❤️ В общем-то то это всё, хочу сказать вам спасибо за фидбек в комментариях и личке, очень круто что подписчики накидали нам несколько тем для обсуждения и отозвались для возможного участия в подкасте, это было неожиданно и приятно 🔥🔥🔥

Пытаемся в T-Shaped (ex. Frontend)

23 Oct, 14:05


Сегодня стартовал открытый чемпионат по программированию от Яндекса Yandex Cup 2023.

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

Когда я только-только начал изучать JavaScript (прошел массивы, циклы, начал работать с DOM) я решил принять участие в Yandex Cup 2020 по направлению Frontend. Программировать я тогда не особо умел и я понимал что скорее всего мало что смогу решить. Практически так всё и случилось, я смог решить за пару часов первую задачу на верстку, а в заданиях на JS я даже не понял что от меня требовалось 😁😁

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

После этого я добавил что я участвовал в этом чемпионате в резюме и рассказывал об этом на собеседованиях, в целом интерес у собеседующих к этому был. Поэтому я считаю что это один из способов как то выделится среди сотен/тысяч других джунов. Даже если ты ничего не сможешь решить, будет что рассказать)

После этого через какое-то время мне даже пришло приглашение на стажировку в Яндекс, собеседование в который я благополучно завалил на последнем техническом этапе 🥲

Ссылка на чемпионат - https://yandex.ru/cup

Там есть несколько направлений, в том числе бэк и фронт. Зарегистрироваться и принять участие можно до 29 октября.

Пытаемся в T-Shaped (ex. Frontend)

15 Oct, 09:01


Многие из вас знают, что я часто помогаю новичкам в телеграмм чатах по программированию, делаю ревью (в основном по вёрстке), даю советы по резюме и тому как разобраться что нужно изучать. Делаю я это потому что когда я сам только изучал программирование - другие люди так же помогали мне и продолжают помогать пока я изучаю Golang.

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

То что я особенно вижу ценным - нас трое и пути становления у нас отличаются, я человек после IT-курсов, а ребята шли по более классическому пути который включает в себя обучение в университете. Из-за это видение на некоторые темы у нас отличается.

Первые пару выпусков уже залиты на платформы и доступны для прослушивания:
⚡️ Яндекс.Музыка - https://music.yandex.ru/album/27496578
🍏 Apple Podcasts - https://podcasts.apple.com/us/podcast/your-bunny-code/id1708790229

Буду благодарен за обратную связь и за лайки!

Пытаемся в T-Shaped (ex. Frontend)

27 Sep, 15:00


​Закончил первую полноценную итерацию своего пет проекта на Golang. 🎉🎉🎉

В итоге получились такие метрики:
✔️ общее количество HTTP запросов
✔️ количество и типы кодов HTTP ответов (200, 400, 404 и тд)
✔️ среднее время ответа запроса в миллисекундах
✔️ средняя пропускная способность (узнал новое слово throughput)
✔️ загрузка CPU в процентах, с разбивкой по ядрам (на скрине у меня их 8, можно видеть нагрузку по каждому)
✔️ количество используемой памяти

Последние две сначала стал делать так же как и прошлые - собираю и считая вручную через runtime пакет, кучу раз споткнулся и застревал. В итоге посоветовали использовать node-exporter для Prometheus который сам подготовит эти метрики, мне осталось только запросы к ним в Grafana написать.

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

Так же как и хотел, добавил retrying запросов, теперь если запрос по какой то причине не выполнился, то сервер будет пытаться еще раз сделать такой запрос с постоянно увеличивающимся временным интервалом (1, 3 и 10 секунд), до тех пор пока попытки не кончатся.

Уже отправил нескольким ребятам Pull Request с ревью, получил обратную связь, следующий шаг - исправить замечания. Интересно сравнить насколько ревью от сообщества будет отличаться от ревью на курсах или работе. Часто советую джунам просить ревью в чатах программистов, но сам получаю такое ревью первый раз, обычно меня ревьюили на курсах либо на работе.

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

К сожалению все графики на скрин не помещаются, покажу те которые мне больше всего нравятся :)

Пытаемся в T-Shaped (ex. Frontend)

04 Sep, 17:37


​На днях посетил фестиваль IT-Пикник который организовала компания Тинькофф в Коломенском парке, хочу поделиться как это прошло.

🚝 Последний раз на подобном фестивале я был в 2019 в Питере на TechTrain, тогда я еще не работал разработчиком, поэтому практически не понимал о чем люди говорят на стендах компаний.

В этот раз на стендах IT-компаний было гораздо больше знакомого, без дискомфорта общался и знакомился с ребятами, но столкнулся с другой проблемой организационного характера.
Этой проблемой стали огромные очереди к активностям, для того что бы забрать приз после квиза или поучаствовать в квесте или соревновании - нужно было стоять в очереди 20-40 минут. Очередей было так много что в чатах участников этот фестиваль быстро стал фестивалем очередей.

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

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

🍗 Еще меня впечатлили цены на фудкорте, кафе на нём явно ждали айтишников и как следует накрутили цены, покушали вкусный шашлык на 4 тысячи рублей стоя под дождем используя бочку как стол))

🔄 Удивительным для меня стало то что наиболее понравившийся мне стенд на IT-фестивале оказался не связанным с IT. Это был стенд сообщества "Собиратор" которые занимаются развитием экокультуры. На стенде было много интересных вещей которые можно было потрогать руками, разные предметы сделанные из переработанного мусора.

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

Появилось желание посещать подобные мероприятия почаще :)

Пытаемся в T-Shaped (ex. Frontend)

25 Jul, 06:00


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

📱Читал много историй и смотрел много видео об успешной релокации когда из страны X в страну Y работодатель перевозит программиста за свой счёт, помогает с документами, арендой квартиры и тд.

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

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

❇️ На некоторое время из моего поля зрения эта тема ушла, но недавно вернулась когда наткнулся на блог Димы. Он рассказывал про свой путь релокации, изучении английского (что особенно мне актуально), о том как проходил собеседования, жил в Сингапуре, Кипре, а сейчас живет в Австралии.

💡Меня это впечатлило, так как большую часть историй о IT-эммиграции я слышал про Германию, Канаду, Англию и США. Мне очень нравится подача, несколько форматов постов (есть посты с красивыми фото) поэтому хочу и с вами поделится:

Ссылка на блог - @australia_reporting

🔥Возможно кто-то так же как я взбодрится и получит заряд мотивации 🔥

Пытаемся в T-Shaped (ex. Frontend)

18 Jul, 15:33


​Для дальнейшего изучения Go всё-таки решил послушать совета и выбрать путь разработки проектов, вместо практики на leetcode.

💡Как первый проект подкинули идею создать прокси сервер на Go, с собиранием метрик через Prometheus и последующим отображением на дашборде в Grafana. Решил начать с него и потому что проект не подразумевает наличие какой-то отдельной БД (с реляционными БД я пока слабо знаком).


🧐 Что стало для меня сюрпризом - непосредственно самого программирования на Golang оказалось ~30% от того что я сделал, остальное время я разбирался как разворачивать Prometheus так, что бы он собирал с нужного порта метрики, как настроить источники данных в Grafana, как создать дашборд там же и так далее.

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

Так же я только с третьего раза разобрался что именно мне нужно для реализации, сначала подумал что мне нужен exporter для Prometheus, но в итоге решил отправлять метрики прямо в коде прокси сервера.
Когда я первый раз всё-таки успешно всё интегрировал - у меня была полная каша в плане разворачивания приложений - мой прокси на Go разворачивался на моей локальной машине, а Prometheus и Grafana изолировано в Docker из-за чего пришлось пробрасывать порты и делать лишние шаги.

🐳 В итоге изучал несколько дней Docker, завернул прокси, Grafana и Prometheus в docker-compose, теперь всё это поднимается одной командой, очень удобно.

⚡️Еще из интересного впервые в жизни так совпало что на работе неожиданно дали задачу и что бы развернуть локально проект нужно было поковыряться в Docker, повторив по сути то что я буквально день назад изучал для пет-проекта.

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