Получи случайную криптовалюту за регистрацию!

МиКаст

Логотип телеграм канала @mika_cast — МиКаст М
Логотип телеграм канала @mika_cast — МиКаст
Адрес канала: @mika_cast
Категории: Блоги
Язык: Русский
Количество подписчиков: 218
Описание канала:

Ламповый подкаст с разгонами и своим мнением в контексте IT
YouTube – https://youtube.com/@mika_cast
Чат канала – @mika_cast_chat
Автор – @mika_go

Рейтинги и Отзывы

1.67

3 отзыва

Оценить канал mika_cast и оставить отзыв — могут только зарегестрированные пользователи. Все отзывы проходят модерацию.

5 звезд

0

4 звезд

0

3 звезд

0

2 звезд

2

1 звезд

1


Последние сообщения

2022-09-25 10:15:14 Про С++

Изначально я написал пост о том, что надо начинать обучение программированию с C++. Аргументировал свою позицию и статья то получилась неплохая, однако я увидел, что так оно не работает. Поэтому я решил ее не публиковать. Вместо нее я пишу этот пост.

Анализируя свой опыт, я не могу сказать, что моему становлению помог именно С++. Он поспособствовал, безусловно, однако больше повлияли преподаватели, которые нас ограничивали и не давали бежать вперед, направляли на правильный путь изучения и рассказывали интересные тонкости, давали крутой материал. Сильно повлиял мой характер и восприятие, ведь я не люблю что-то не понимать. Да, я умею работать в недостатке информации. Я это делаю осознанно, ведь мне не хватит времени разобраться во всем, особенно в чужом коде. Однако, когда пишу код сам, я стремлюсь к полному пониманию того, что создаю и использую. Возможно поэтому я могу сильно ругать других разработчиков за использование инструментов, устройство которых они даже не представляют.

Мне нравится C++. Возможно, потому, что я с него начинал. Только на нем я ощущаю атмосферу авантюризма и исследования. Он вместе с преподавателями помогал мне не бежать вперед паровоза, что очень важно по началу. Он позволил мне разобраться с фундаментальным устройством языков и программ. Разобраться с алгоритмами, структурами данных, работой с памятью, графикой и много чем еще. На нем очень мало бизнес контекста, ведь C++ толком нигде не используется. Да, я знаю про Яндекс, но это не сравнится с популярностью в бизнесе той же Java или молодого Golang. С++ подкидывал мне неожиданные челенджи. Это было круто.

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

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

Советы тем, кто начинает или думает начать

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

Найдите хорошего тьютора или хотя бы ментора. Самообучение это хорошо, но самого себя не направишь и в узде не удержишь. Для школьников полезно будет постараться поступить в ведущие вузы на ведущие IT кафедры. От себя рекомендую МГТУ им. Н. Э. Баумана и кафедру ИУ5)

Правильно ставьте цели. Об этом есть вот этих постах(тут и тут) на канале.

Не ищите легких путей и никогда не сдавайтесь. Трудности делают нас сильнее)
52 viewsedited  07:15
Открыть/Комментировать
2022-09-23 21:26:55 Web - неквадратные квадраты

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

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

Ситуация не самая приятная, верно?) Что я только не проклял в то злополучное утро, однако в бесконечном цикле правок и проверок мне удалось решить этот баг. Разве что, я не понял как это сделал. Да, баг просто исчез. Код не менялся, все было точно так же, как когда я сел за компьютер. Будучи полностью опустошенным, я просто забил на этот баг и не стал в нем разбираться.

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

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

Самое интересно, что зум на сенсорных экранах работает по другому и не провоцирует этот баг.

Поэтому, если когда-нибудь столкнетесь с такой забавной ошибкой - проверьте зум браузера. Возможно, он не равен 100%)
52 views18:26
Открыть/Комментировать
2022-09-23 10:56:40 Зачем мне ваши беспилотники? Я просто хочу высокую и стабильную зарплату.

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

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

А что необходимо, чтобы иметь возможность развиваться до Middle и Senior? Конечно, что-то большее, чем базовые знания в айтишке. Тут и математика пригодится, и основы проектирования, и основы Computer Science. А еще будет полезно разобраться в развитии продуктов и бизнеса.

Как можно видеть, даже с такой целью можно легко зайти дальше первого трудоустройства, если немного ее проанализировать. И это все еще будет простой путь)

Вывод?

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

Благодарю за внимание! Пишите Ваши цели в комментариях, обсудим, может сможем их переформулировать и найти нечто большее, к чему Вы хотели бы стремиться)
46 views07:56
Открыть/Комментировать
2022-09-23 10:56:33 Откуда берется необходимость фундаментального обучения?

Сразу оговорюсь, что я не имею экспертизы в обучении и развитии людей, поэтому все сказанное далее не является руководством к действию. Это просто напросто мои мысли и субъективное восприятие. Впрочем, как и весь этот канал)

Зачем мы учимся?

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

Так, если человека к учебе мотивируют родители, то достаточно показывать родителям зачетку с хорошими оценками и цель будет выполнена. Однако, получить 4/5 по предмету и реально в нем разобраться - это абсолютно разные вещи. Банально, можно списать или выслужиться перед преподавателем и получить автомат.

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

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

Хорошо, а как тогда надо?

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

Возьмем типичную ситуацию, человек хочет стать программистом. Какая его цель? “Стать программистом”. С такой целью перспективы человека можно успешно хоронить, ведь из этой цели следует бесполезный критерий ее достижения - получить в трудовой книжке надпись “программист/разработчик”. И вон она ситуация - цель достигнута, а что делать дальше не понятно.

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

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

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

Оговорюсь здесь, что искать простейший путь достижения цели свойственно любому человеку. Поставив правильную цель, простейший путь ее достижения будет сравним со сложнейшим путем достижения какой-то другой, более простой и несостоятельной, цели.
43 views07:56
Открыть/Комментировать
2022-09-21 19:13:42 Полезные инструменты и сервисы

• ngrok - удобный инструмент, который позволяет пробросить в открытый интернет порт с локальной машины. Удобно, если нужно кому-то что-то быстро показать, дав доступ через интернет. На самом деле, инструмент гораздо серьезнее, но за более сложные сценарии придется заплатить деньги.

• docker, docker-compose и bitnami - этот набор инструментов и ресурсов позволит поднять все необходимое для локальной разработки. Docker - удобный инструмент виртуализации, работающий на основе образов (рекомендую не пользоваться скриптом get.docker.com, потом устанете удалять или обновлять докер. На MacOS лучше использовать Docker Desktop). Образ можно как собрать самому, так и взять готовый. Однако, для удобства работы с поднимаемыми контейнерами стоит использовать docker compose (рекомендую v2). Он позволит декларативно описать необходимую конфигурацию контейнеров и управлять ими централизовано. В bitnami - есть куча готовых и удобных для конфигурирования образов как баз данных, так и различных сервисов. Обычно, есть готовые конфиги для docker-compose.

• Selectel, VK Cloud, Yandex Cloud и другие - облачные платформы это крайне удобно и выгодно. Если вам нужно поднять недорогой сервер (от 1к рублей в месяц), лучше всего это сделать в облаке. Я лично использовал VK Cloud в продакшине, а на текущем проекте используем Selectel. Так же использую Selectel в своих целях. Оба инструмента просты и удобны. По цене дороже всего выходит Yandex Cloud, да и документация там не очень дружелюбная, однако на вкус и цвет. Все наши облака имеют соответствующую сертификацию безопасности, так что они соответствуют 152 ФЗ о персональных данных, а VK Cloud недавно получил высший класс безопасности и теперь там можно хранить биометрию. Типичный сценарий - покупаешь в аренду виртуальный сервер, ставишь туда nginx и docker, получаешь удовольствие. Для особо требовательных - так же просто поднимается kubernetes кластер, а для дата сатанистов есть усиленные машины для обучения моделей. Так же полезной фишкой будут объектные хранилища, где удобно хранить объемные медиа данные.

• Cloudflare - удобный и быстрый DNS сервис. Предоставляет кучу бесплатных фишек, так что отлично подходит для небольших проектов и стартапов. Из коробки - бесплатные сертификаты, кеширование, DDOS защита, проксированное подключение к серверам (реальные сервера скрыты за серверами cloudflare) и много чего еще. Домен купить можно на reg.ru и спокойно перенести управление над ним на cloudflare.

Послесловие

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

И все же, никогда не переставайте искать сами. Подборки дело полезное, но они не научат вас самостоятельно искать, выбирать и оценивать инструменты, которыми вы хотите пользоваться - это важный навык)
48 viewsedited  16:13
Открыть/Комментировать
2022-09-21 19:13:25 Полезности

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

Терминал

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

• iTerm2 - прекрасный и удобный терминал для пользователей MacOS. Имеет много фишек, в которых стоит разобраться и совместим с инструментами, используемыми далее. Можно обойтись и нативным, однако я предпочитаю этот)

• Zsh - современная и удобная командная оболочка. Является отличной заменой bash, поскольку совместима с ее скриптами. Так что, все скрипты, которые вы найдете в интернете для bash заработают и для zsh. Основной фишкой является расширенные возможности скриптинга, что используется в написании различных полезных плагинов.

• oh-my-zsh - фреймворк для zsh, который позволяет удобно работать с многообразием плагинов и тем, а так же их конфигурированием.

• p10k - крутая и удобная тема для zsh. Пробовал многие, но последние пару лет сижу на этой и искать нового даже не хочется)

Менеджеры пакетов и менеджеры окружения

Обычно, многие впервые сталкиваются с менеджерами пакетов в лице apt (Ubuntu) и npm (Node.js). Многие на этом свое знакомство и останавливают, однако вот несколько полезных инструментов:

• brew - основной менеджер пакетов для MacOS (однако работает и на linux). Содержит в своих репозиториях как консольные утилиты и приложения, так и desktop приложения. Работа с ним проста и удобна, все необходимые переменные среды проставляются автоматически, а если этого не происходит - всегда вылезает инструкция, как это сделать.

• nvm - менеджер окружения для node.js. Позволяет легко устанавливать любые версии node.js и удобно между ними переключаться. Зачастую, установить node.js в систему намного проще именно через него.

• sdkman - kit-менеджер для JVM окружения. Позволяет устанавливать как различные JDK, так и полезные SDK (вроде maven, gradle, scala, kotlin).

• conan - пакетный менеджер для C++. На пару с cmake позволит забыть об аде подключения библиотек на плюсах и изолировать окружение проекта. Не скажу, что это используется в продакшине (банально не знаю), но сам я частенько его использую, когда приходится писать на C++.
43 views16:13
Открыть/Комментировать
2022-09-20 19:53:06 И все же, может съездить в офис?

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

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

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

От ежедневных поездок Вас скорее всего начнет тошнить так же, как и меня. Каждый день общаться будет сложно, а ведь надо еще и работать. На все это накладывается банальная бытовуха. И, как следствие, такой важный “+” офиса, как люди, теряется во всем этом многообразии минусов и переживаний.

Однако, редкий приезд в офис станет как для Вас, так и для коллег, событием. Вы пообщаетесь, обсудите дела на работе, уделите время тому, что было незначительно в быстрых созвонах по задачам, поговорите про планы и просто посмеетесь над чем-нибудь. И, надеюсь, это поднимет Вам настроение и зарядит энергией)
41 viewsedited  16:53
Открыть/Комментировать
2022-09-19 19:53:11 Удаленка - рай или ад?

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

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

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

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

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

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

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

• Удаленные процессы сложнее офисных. Возможно, тут я и не прав, у меня нет 20 летнего опыта управления. Но все же, выстроить грамотный процесс разработки в офисе проще, чем на удаленке. Это определенный высший пилотаж для руководства. Почему? Наверное, поговорим об этом в другой статье.

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

А как к удаленке относитесь Вы? Пишите Ваши истории)
42 viewsedited  16:53
Открыть/Комментировать
2022-09-18 16:16:18 Что мне не нравится во Frontend?

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

Конечно, понятно откуда тут ноги растут. Сейчас Frontend - самое лакомое место для всех вайтишников. Работа тут, так сказать, наглядная. Это очень помогает тем, кто еще не научился мыслить как программист и видеть результат в обычных логах, схемах и данных. При этом, клиент - это важный инструмент взаимодействия пользователя и бизнеса. Отсюда тонна местами глупых для разработчика, но важных для бизнеса, задач по перекрашиванию и перетаскиванию элементов, что очень сильно грузит Frontend разрабов, но при этом не требует от них каких-то выдающихся фундаметальных знаний и навыков.

Да, правильнее отдавать такую работу верстальщикам, но, как правило, такие мало где есть и все это падает на плечи Frontend’еров. Поэтому лакомые задачки по проектированию системы достаются Backend’ерам и это печально)
41 viewsedited  13:16
Открыть/Комментировать
2022-09-17 16:56:44 Почему я выбрал Frontend?

Если отвечать коротко, то просто так сложилось. А подробнее - ниже)

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

На том проекте сложилась такая ситуация, что разработка Backend’а требовала хорошего понимания нашей доменной области (квадрокоптеры), чего у меня, понятное дело, не было. Зато у моего руководителя, как не странно, это понимание как раз было на очень хорошем уровне) А вот во Frontend он разбирался плохо, да и разбираться в нашем домене там можно было постепенно, поэтому мы приняли решение, что я заберу на себя полностью Frontend, а на Backend буду помогать с ревью и выстраиванием архитектуры.

Время шло, я все больше осваивал Frontend, начал понимать, что Frontend не ограничивается только версткой и прочим визуалом и мне это понравилось. Как Frontend’ер я все равно мог участвовать в проектировании всей системы, ее контрактов, сценариев и тд. Фактически, я не чувствовал себя ограниченным, а в плане верстки на меня никто не напирал.

Знания, полученные при создании Frontend приложений очень помогали в освоении Backend, чем я и занимался в свободное время. Позже, уже в стартапе, я плотно посидел еще раз на Frontend части проекта, а позже отвечал за Backend и руководил Frontend. Параллельно прокачивался в DevOps.

Сейчас я все еще продолжаю идти по пути Frontend и занимаю позицию Lead Frontend Developer. Но, если честно, уже наскучило) Хотелось бы уйти либо в архитекторы, либо поработать в Backend, но и дауншифтиться до Middle как-то не хочется, это тоже будет скучно)
46 viewsedited  13:56
Открыть/Комментировать