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

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

Аудитория: 1 540 подписчиков
Категория: Блоги
Автор - https://t.me/MPozharskiy

Статистика канала

1 540 подписчиков

Последние посты

Пытаемся в T-Shaped (ex. Frontend)
​Хакатон 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 сервером на котором будет сама бизнес логика приложения.Продолжение завтра.
2 300
Пытаемся в T-Shaped (ex. Frontend)
Материалы для изучения 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-e431a6daacfhttps://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
3 120
Пытаемся в T-Shaped (ex. Frontend)
​Канал переименован и в этом контексте стоит объяснить что это за T-Shaped.T-Shaped - это специалист, который является профессионалом в одной области, но при этом разбирается в других смежных областях, может поддерживать коммуникацию со специалистами из смежных областей. Часто этот термин противопоставляют I-Shaped - т.е. эксперту в одной области, который не погружен в смежные или Дженералисту - человеку который ни погружен ни в одну область глубоко, но по вершкам имеет знания из нескольких сфер.Так же с самого начала карьеры у меня сформировался образ фуллстека - как человека, который знает всего по чуть-чуть, не имеет глубоких знаний в одной области и нужен, что бы компания могла сэкономить деньги на найме отдельных специалистов.Из-за этого образа я понимаю что мне не хотелось бы быть фуллстеком, хотя сейчас я могу писать и бэкенд и фронтенд и при необходимости могу закрывать обе эти потребности бизнеса.В моем понимании быть T-Shaped специалистом это более эффективный путь и больше похоже на то к чему бы я хотел стремиться.Может возникнуть вопрос - почему канал не называется "Пытаемся в Backend"? Было бы логично, учитывая что я сменил сферу с фронта на бэк. Но у меня есть полная уверенность что бэкенд на Golang - это не конечная точка в карьере, есть стойкое убеждение что в современном мире мне придется еще не раз и не два переучиваться на какую то новую сферу в ближайшие 5-10-15 лет, особенно учитывая развитие нейросетей. Похоже, что мир где мы выбираем одну область знаний на всю жизнь начинает заканчиваться.Специально для этого поста мы записали новый выпуск подкаста где обсудили разницу между T-Shaped, I-Shaped и фуллстеками. Выпуск получился с активными спорами ибо по некоторым моментам мы с ребятами были не согласны.Ссылка на выпуск про T-Shaped - YBC 13. Зачем быть T-Shaped
2 570
Пытаемся в T-Shaped (ex. Frontend)
Channel name was changed to «Пытаемся в T-Shaped (ex. Frontend)»
0
Пытаемся в T-Shaped (ex. Frontend)
​"Окончательно убедился для себя что ни в коем случае не буду заниматься бэкендом по своей воле. Это явно не то что мне нравится"Именно эту фразу я написал в моём канале 3,5 года назад, вот в этом посте. На тот момент я даже говорил что ручное тестирование для меня было бы более интересно чем разработка бэкенда 😂Что ж, нужно признать что некоторые вещи в жизни меняются совсем неожиданным образом.🔥Можно меня поздравить - я прошел испытательный срок и успешно перекатился в бэкенд разработку, теперь я Golang разработчик 🔥Сразу отвечу на самые популярные вопросы:✔️ Заняло это чуть больше 1 календарного года, из них активного обучения без перерывов около 6-7 месяцев✔️ Пройдены собеседования в 11 компаний✔️ Сделано 1 тестовое задание✔️ Получено 3 оффера✔️ Поиск работы занял 1 месяц и 1 неделю✔️ Заработная плата не снизиласьРаньше я сравнивал предыдущий этап поиска работы и новый, но так как с 2022 года настолько всё изменилось, да и я поменял стек что думаю сравнивать не особо корректно. Про прошлый поиск работы можете взглянуть на цифры сами в этом посте.Из интересного что хочу отметить:Всюду говорят что язык Go простой и легкий и освоить его если умеешь программировать это несколько недель почитать документацию/пройти Go Tour. Вероятно я не самый смекалистый разработчик, ибо у меня только на сам язык ушло несколько месяцев после работы. Да, многие моменты вроде циклов, переменных, массивов и тд я быстро прошел, но многопоточность, структуры, утиная типизация и так далее мне дались не просто.Знания самого языка не достаточно.Пришлось изучать много всего не связанного с самим языком, например процессы, потоки, базы данных, брокеры сообщений, кэширование, микросервисы, транзакции и так далее.Зато вообще не надо было изучать всякие фреймворки, они особо не пользуются такой же популярностью как фреймворки в JS.Пока что моё самое слабое место в перечисленном - это базы данных. От недостатка знаний SQL кажется тяжеловатым, я пытался проходить курс на Stepik по SQL, но не хватило дисциплины и интереса пройти его до конца. Думаю попробую в ближайшем времени что-то другое.По поводу будущего канала - фронтенд из моей жизни не уходит, так как я пока еще занимаюсь менторством по фронту. Так же когда буду снова участвовать в хакатонах с ребятами из подкаста (кстати про хакатоны рассказывали тут) - наверняка именно я буду писать фронтенд. Ну и через какое-то время переименую название канала, что бы оно больше подходил под контент.
3 710

Оставить комментарий/отзыв

Рекомендации

Стикеры с ХАЗЯЕВАМИ

Стикеры с ХАЗЯЕВАМИ

@XAZAEEVA1
1.5K подписчиков

—> ЕЩЁ СТИКЕРЫ ТУТ : https://t.me/XAZAEEV1

МИР UTOPIA

МИР UTOPIA

@utopiahookah
1.5K подписчиков

Описание не обязательно, но мы написали

На пассивный доход за 2 года 💵

На пассивный доход за 2 года 💵

@napassivnyidohodzadvagoda
1.9K подписчиков

Выращиваю дерево пассивного дохода . Мои шаги для выхода в ближайшее 2 г. на пассивный доход. Немного обо всем...

Mazelwi

Mazelwi

@mazelwiart
1.5K подписчиков

По необходимости обращайтесь в ЛС канала🌸

Sisters

Sisters

@super_mamocka
1.5K подписчиков

Всем привет! Меня зовут Кристина. Мама сына с красивыми глазами и необычным именем, организатор различных меро...

NEFORKA️️️

NEFORKA️️️

@neforka
1.5K подписчиков

💋я саша&нефорка, тут лайфстайл, честность и цели ;) тгк с прайсом/отзывами- @neforkatarot задать анонимный в...

Пехота 20й Армии

Пехота 20й Армии

@Tezka252MSP
1.7K подписчиков

Города берет не кто-то... Города Берет Пехота 🪖

ВИшнёвый jam

ВИшнёвый jam

@vilenasokolova
1.5K подписчиков

Канал Вилены Соколовой и ее вишнят

NEONONLY

NEONONLY

@neononly
1.7K подписчиков

жду тебя тут: https://twitch.tv/neononly общаемся тут: https://t.me/+_v8FtvoW82Y2ZmE6 правила тг чата: https...

MARKISA

MARKISA

@xxxmarkisa
1.5K подписчиков

Канал для кошек, случайно родившихся в теле женщины 🖤 Не несу ответственность за восприятие постов и ничего н...