Картинка для привлечения внимания. Я последние недели разрабатываю курс по REST API. Ух получается огонь, буду постепенно рассказывать про всякие штуки, которые я откопал и настроил в процессе. Про TypeSpec для описания спек с генерацией в openapi, про воронку валидации, про тестирование такого api и многое другое. Когда сделаем его для js/ts, то будем переносить на другие языки. Концепции там не поменяются, только некоторые либы и фреймворки, но общая история идентичная
Ссылки: Телеграм | Youtube | VK
Ссылки: Телеграм | Youtube | VK
🔥175👍33❤18🤩2🥱2👀1
Сегодня чуть с запозданием, но таки вышел выпуск про ATS https://www.youtube.com/watch?v=XDFxYkPty5g
YouTube
Правда про фильтрацию резюме в рекрутинговых системах / Михаил Танский / #11
Искуственный интеллект решает, кто в итоге получит работу? 😱 В этом выпуске с Михаилом Танским, Founder & CEO Хантфлоу, обсуждаем, как работает автоматизированный найм, как HR фильруют резюме, как работают разные АТС и Headhunter и почему компании не отвечают…
👍18❤5🔥3🤮1💩1🖕1
Около 15 лет я работаю (программирую и пишу все тексты) в виме на 13 дюймовом мониторе моего ноутбука. Те кто не видел меня за работой говорят "это же не удобно", те кто видел - "можно медленнее, а то я не успеваю". Давно хотел про это рассказать, тред об эффективности =>
Сразу дисклеймер. Мне действительно бывает неудобно на 13 дюймах, когда я занимаюсь отладкой чего-либо в браузере, но в остальном это вопрос организации пространства. Я много работаю в пути и у меня нет одного места, поэтому изначально все это была вынужденная мера. В какой-то момент удалось придумать систему, которая за годы особо не меняется несмотря на развитие технологий, так как она довольно универсальна. Она базируется на некоторых особенностях, которые далеко не все смогут себе адаптировать, но по крайней мере появится представление
Начнем издалека. Один из базовых навыков это слепая печать. Дело не только в том, что не смотришь на клавиатуру, а в том, что правильная постановка рук очень помогает эффективно нажимать всякие комбинации. Например использовать оба шифта. Подробнее https://guides.hexlet.io/ru/typing/.
Мне как-то повезло, что в 12 лет, когда у меня появился компьютер, я сразу наткнулся на "соло на клавиатуре" и уперся в него по полной. Сначала научился печатать на русском и почти сразу уже сам догнал английский, так как руки знали правильную механику работы. Даже учил дворак
Следующим шагом было понимание, что надо владеть комбо. Это еще началось даже до программирования, когда я рубил в старкрафт. Потом уже во всех редакторах кода я постоянно тратил время на статьи, раскладки и заучивание комбинаций. В то время, кстати, был на коне netbeans
Общая концепция была такая: использование мышки должно быть сведено к минимуму. Фактически я использую мышку, а точнее трекпад только для серфинга в интернете. Переключение программ, вкладок, набор и редактирование кода, все на 100% без мышки и это еще до вима.
Во всех операционках есть примерно один базовый набор комбинаций перемещения и выделения через стрелки + вариации с shift и ctrl. Это минимум который работает везде (в любых полях для ввода, не обязательно код) и который полезно научиться использовать.
Так как ctrl используется в комбо достаточно часто, то его лучше переместить на capslock, туда где он и был изначально. Это спасает от постоянного выламывания рук. Вимерам так вообще обязательно.
Еще одна важная кнопка - command, тут повезло маководам. Она лежит под большим пальцем и снимает опять же нагрузку с мизинца, значительно упрощая нажатие многих комбинаций. Сначала не привычно, потом уже страшно возвращаться обратно. Кстати, в крутых клавах все на больших пальцах
Дальше еще больше специфики маков. Так как у маков все унифицировано, то переключение вкладок во всех программах это: shift + command + []. Все доводится до автоматизма моментально. Дальше нам это пригодиться, когда я буду говорить про терминалы
Переключение самих программ работает по cmd + tab. Причем работает это так, две последние программы меняются между собой если последовательно нажимать cmd + tab и отпускать. Что является важной частью моего способа работы.
В моей работе, в подавляющем большинстве случаев нужно работать с двумя программами: браузером и редактором. Они обе развернуты на весь экран и переключение по ним я делаю быстрым нажатием cmd + tab и обратно тем же самым нажатием. 100% автоматично для мозга и всегда одинаково
Так мы получаем первую ось переключения, я ее называю "в глубину". Очень важно чтобы программы было две, иначе трюк с cmd + tab не пройдет и придется думать о переключении. А вот внутри программ переключение идет "в ширину" по вкладкам и в браузере и в редакторе. Каким образом? Продолжение в первом комменте
Ссылки: Телеграм | Youtube | VK
Сразу дисклеймер. Мне действительно бывает неудобно на 13 дюймах, когда я занимаюсь отладкой чего-либо в браузере, но в остальном это вопрос организации пространства. Я много работаю в пути и у меня нет одного места, поэтому изначально все это была вынужденная мера. В какой-то момент удалось придумать систему, которая за годы особо не меняется несмотря на развитие технологий, так как она довольно универсальна. Она базируется на некоторых особенностях, которые далеко не все смогут себе адаптировать, но по крайней мере появится представление
Начнем издалека. Один из базовых навыков это слепая печать. Дело не только в том, что не смотришь на клавиатуру, а в том, что правильная постановка рук очень помогает эффективно нажимать всякие комбинации. Например использовать оба шифта. Подробнее https://guides.hexlet.io/ru/typing/.
Мне как-то повезло, что в 12 лет, когда у меня появился компьютер, я сразу наткнулся на "соло на клавиатуре" и уперся в него по полной. Сначала научился печатать на русском и почти сразу уже сам догнал английский, так как руки знали правильную механику работы. Даже учил дворак
Следующим шагом было понимание, что надо владеть комбо. Это еще началось даже до программирования, когда я рубил в старкрафт. Потом уже во всех редакторах кода я постоянно тратил время на статьи, раскладки и заучивание комбинаций. В то время, кстати, был на коне netbeans
Общая концепция была такая: использование мышки должно быть сведено к минимуму. Фактически я использую мышку, а точнее трекпад только для серфинга в интернете. Переключение программ, вкладок, набор и редактирование кода, все на 100% без мышки и это еще до вима.
Во всех операционках есть примерно один базовый набор комбинаций перемещения и выделения через стрелки + вариации с shift и ctrl. Это минимум который работает везде (в любых полях для ввода, не обязательно код) и который полезно научиться использовать.
Так как ctrl используется в комбо достаточно часто, то его лучше переместить на capslock, туда где он и был изначально. Это спасает от постоянного выламывания рук. Вимерам так вообще обязательно.
Еще одна важная кнопка - command, тут повезло маководам. Она лежит под большим пальцем и снимает опять же нагрузку с мизинца, значительно упрощая нажатие многих комбинаций. Сначала не привычно, потом уже страшно возвращаться обратно. Кстати, в крутых клавах все на больших пальцах
Дальше еще больше специфики маков. Так как у маков все унифицировано, то переключение вкладок во всех программах это: shift + command + []. Все доводится до автоматизма моментально. Дальше нам это пригодиться, когда я буду говорить про терминалы
Переключение самих программ работает по cmd + tab. Причем работает это так, две последние программы меняются между собой если последовательно нажимать cmd + tab и отпускать. Что является важной частью моего способа работы.
В моей работе, в подавляющем большинстве случаев нужно работать с двумя программами: браузером и редактором. Они обе развернуты на весь экран и переключение по ним я делаю быстрым нажатием cmd + tab и обратно тем же самым нажатием. 100% автоматично для мозга и всегда одинаково
Так мы получаем первую ось переключения, я ее называю "в глубину". Очень важно чтобы программы было две, иначе трюк с cmd + tab не пройдет и придется думать о переключении. А вот внутри программ переключение идет "в ширину" по вкладкам и в браузере и в редакторе. Каким образом? Продолжение в первом комменте
Ссылки: Телеграм | Youtube | VK
Хекслет
Как научиться слепой печати на клавиатуре | Hexlet Guides - Хекслет
1👍99🔥43❤14👀1
Насколько хорошо вы понимаете как работает транзакционность в базе данных? Ниже список из 10 заблуждений относительно работы транзакций:
- Транзакция всегда завершится успешно.
- Транзакция блокирует данные, пока не завершится.
- Транзакции всегда атомарны.
- Если операция завершилась успешно, то все данные были обновлены.
- Атомарность всегда гарантирует отсутствие конфликтов.
- Операции записи в кэши или файловые системы также атомарны.
- Откат (rollback) всегда возможен.
- Атомарные операции всегда производятся быстро.
- Сетевые запросы в рамках транзакции всегда атомарны.
- Все системы одинаково поддерживают атомарные операции.
Давайте в комментариях разберем каждый пункт, почему такое может произойти
Ссылки: Телеграм | Youtube | VK
- Транзакция всегда завершится успешно.
- Транзакция блокирует данные, пока не завершится.
- Транзакции всегда атомарны.
- Если операция завершилась успешно, то все данные были обновлены.
- Атомарность всегда гарантирует отсутствие конфликтов.
- Операции записи в кэши или файловые системы также атомарны.
- Откат (rollback) всегда возможен.
- Атомарные операции всегда производятся быстро.
- Сетевые запросы в рамках транзакции всегда атомарны.
- Все системы одинаково поддерживают атомарные операции.
Давайте в комментариях разберем каждый пункт, почему такое может произойти
Ссылки: Телеграм | Youtube | VK
👀23👍18🔥2😁2🥱1
Вы когда нибудь слышали про A,B и C игроков? Если нет, то попробуйте примерить это на себя или своих подчиненных если они у вас есть
💡 Обычно, оценивая сотрудников, мы используем классификации junior, middle и senior. Но это не всегда работает, как ожидается. Иногда синьор может не давать ожидаемых результатов, а джуниор, наоборот, быстро растёт и показывает высокую эффективность, значительно превышая ожидания.
Вот почему важно не просто смотреть на уровень, а использовать другую классификацию — A, B и C-игроков. Одним из главных преимуществ этой системы является её простота: всего 4 вопроса, которые позволяют быстро и эффективно оценить каждого сотрудника без сложных систем проверки навыков.
* A-игроки — лидеры. Они берут ответственность, быстро учатся новому и всегда решают задачи на 100%.
* B-игроки — добросовестные исполнители, но им иногда нужна поддержка и руководство.
* C-игроки — те, кто тормозит процесс. Им нужно всё объяснять, и даже тогда они не всегда справляются.
🎯 Как понять, кто есть кто? Вот те самые вопросы, которые помогают это определить:
* Что происходит, когда вы делегируете им задачу?
* Как они справляются, когда нужно делать что-то новое?
* Что они делают, когда сталкиваются с преградами?
* Хотели бы вы снова нанять сотрудника с такими качествами?
Теперь разберёмся, как действуют A, B и C-игроки в этих ситуациях:
- A-игроки:
* Делегируешь задачу — уверен, что она будет выполнена лучше, чем если бы делал ее сам.
* Когда нужно сделать что-то новое, они учатся сами.
* Столкнулись с проблемой — сразу просят помощь.
* Нанимая новых сотрудников, хочешь найти таких же, как они.
- B-игроки:
* Делегируешь задачу — они справляются, но им нужна поддержка.
* Нужно новое задание — им потребуется помощь в обучении.
* Столкнулись с проблемой — тратят время, пытаясь разобраться сами.
* При найме стремишься найти кого-то лучше.
- C-игроки:
* Делегируешь задачу — сомневаешься, что она будет выполнена качественно.
* Нужно новое задание — им нужно объяснять всё по шагам, и результат под вопросом.
* Столкнулись с проблемой — молчат и затягивают процесс.
* Нанимая, стараешься найти кого-то совершенно другого.
✅ Самое важное — избавляйтесь от C-игроков. Они замедляют развитие команды.
🔥 А вот B-игроков можно развить в A-игроков с помощью наставничества.
Ссылки: Телеграм | Youtube | VK
Этой теме посвящены целые книги: https://www.amazon.com/Player-Definitive-Playbook-Employees-Leaders/dp/1630479926
💡 Обычно, оценивая сотрудников, мы используем классификации junior, middle и senior. Но это не всегда работает, как ожидается. Иногда синьор может не давать ожидаемых результатов, а джуниор, наоборот, быстро растёт и показывает высокую эффективность, значительно превышая ожидания.
Вот почему важно не просто смотреть на уровень, а использовать другую классификацию — A, B и C-игроков. Одним из главных преимуществ этой системы является её простота: всего 4 вопроса, которые позволяют быстро и эффективно оценить каждого сотрудника без сложных систем проверки навыков.
* A-игроки — лидеры. Они берут ответственность, быстро учатся новому и всегда решают задачи на 100%.
* B-игроки — добросовестные исполнители, но им иногда нужна поддержка и руководство.
* C-игроки — те, кто тормозит процесс. Им нужно всё объяснять, и даже тогда они не всегда справляются.
🎯 Как понять, кто есть кто? Вот те самые вопросы, которые помогают это определить:
* Что происходит, когда вы делегируете им задачу?
* Как они справляются, когда нужно делать что-то новое?
* Что они делают, когда сталкиваются с преградами?
* Хотели бы вы снова нанять сотрудника с такими качествами?
Теперь разберёмся, как действуют A, B и C-игроки в этих ситуациях:
- A-игроки:
* Делегируешь задачу — уверен, что она будет выполнена лучше, чем если бы делал ее сам.
* Когда нужно сделать что-то новое, они учатся сами.
* Столкнулись с проблемой — сразу просят помощь.
* Нанимая новых сотрудников, хочешь найти таких же, как они.
- B-игроки:
* Делегируешь задачу — они справляются, но им нужна поддержка.
* Нужно новое задание — им потребуется помощь в обучении.
* Столкнулись с проблемой — тратят время, пытаясь разобраться сами.
* При найме стремишься найти кого-то лучше.
- C-игроки:
* Делегируешь задачу — сомневаешься, что она будет выполнена качественно.
* Нужно новое задание — им нужно объяснять всё по шагам, и результат под вопросом.
* Столкнулись с проблемой — молчат и затягивают процесс.
* Нанимая, стараешься найти кого-то совершенно другого.
✅ Самое важное — избавляйтесь от C-игроков. Они замедляют развитие команды.
🔥 А вот B-игроков можно развить в A-игроков с помощью наставничества.
Ссылки: Телеграм | Youtube | VK
Этой теме посвящены целые книги: https://www.amazon.com/Player-Definitive-Playbook-Employees-Leaders/dp/1630479926
Telegram
Организованное программирование | Кирилл Мокевнин
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
1👍65🥴24❤12🔥11👎1😁1🤡1👀1
Ребят я провожу опрос на тему карьерного и профессионального роста. Пройдите пожалуйста небольшую анкету, если вы думаете качаться или уже качаетесь. Это сильно повлияет на канал и активности, которые будут проводиться. А они будут, тут в закромах я работаю над запуском клуба, но пока это секрет (хехе). Кликать сюда -> https://forms.gle/x3anpqUnwLGRy4336
Если кто-то из вас готов со мной на часовое интервью (касдев), то отметьте там внутри галочку. Я планирую поговорить с 10 людьми, кому интересен рост и прямо на созвоне проконсультирую, дав по мере возможности рекомендации для вашей ситуации.
Если кто-то из вас готов со мной на часовое интервью (касдев), то отметьте там внутри галочку. Я планирую поговорить с 10 людьми, кому интересен рост и прямо на созвоне проконсультирую, дав по мере возможности рекомендации для вашей ситуации.
Google Docs
Опрос (Организованное программирование)
Опрос для разработчиков, которые планируют расти и хотят это делать эффективнее. Первые 10 человек, которые отметят галочку, что готовы пройти со мной интервью (касдев), получат в подарок личную консультацию на самом интервью :)
👍66❤7👀1
Буквально на днях мы провели опрос о карьере и уже прилетело больше 200 ответов. Я закинул их в chatgpt чтобы собрать какие-то общие выводы. Они мне показались интересными, поэтому я решил поделиться с вами.
Возраст участников и опыт:
• Участники имеют широкий возрастной диапазон: от 18 до 45+ лет. Это свидетельствует о том, что в сфере IT присутствуют как молодые специалисты, только начинающие свою карьеру, так и опытные профессионалы.
• Большинство людей уже работают в IT, с началом карьеры от 2000-х до 2020-х годов, что указывает на участие как новичков, так и тех, кто работает в индустрии уже более 20 лет.
Грейд и текущие роли:
• Преобладают участники уровня middle и senior, что говорит о высоком уровне экспертизы. Однако, есть и джуниоры, и даже стажеры, что подчеркивает разнообразие опыта.
• Ряд участников занимают позиции лидов (team lead, tech lead), а также руководящие роли, что свидетельствует о высоком уровне ответственности и лидерства.
Стек технологий:
• Наиболее часто встречающиеся технологии: JavaScript (включая React, Vue), Python, Go и PHP.
• Многие специалисты работают с бекендом и фуллстеком, что отражает текущие тенденции в IT, где важна гибкость и умение работать на разных уровнях стеков.
Навыки и развитие:
• Значительная часть респондентов указывает на необходимость прокачки Hard Skills (жесткие навыки), что говорит о приоритете технических компетенций для карьерного роста.
• Soft Skills также упоминаются, особенно среди тех, кто уже занимает лидирующие позиции или хочет развиваться в менеджменте.
Карьерные планы:
• Многие специалисты стремятся к повышению грейда, особенно те, кто уже находится на позиции Middle или Senior.
• Около трети участников опроса хотят расти в своей текущей компании.
• Некоторые рассматривают возможность перехода в более крупные компании или компании мечты, такие как FAANG (Facebook, Apple, Amazon, Netflix, Google), или крупные международные компании.
• Некоторые рассматривают собственный бизнес или стартап в качестве долгосрочной цели.
Подход к обучению и развитию:
• Курсы и книги являются основным источником прокачки для большинства участников.
• YouTube и блогеры также широко используются, особенно в качестве источников быстрой информации или для поиска новых знаний.
• Конференции и менторство упоминаются реже, но для некоторых категорий (например, лидеров команд) они играют важную роль.
Препятствия и вызовы:
• Многие указывают на отсутствие четкого плана или необходимость помощи в составлении плана развития.
• Некоторые отмечают, что у них только примерное представление о необходимой прокачке и росте.
Ссылки: Телеграм | Youtube | VK
p.s. У вас совпадает?
Возраст участников и опыт:
• Участники имеют широкий возрастной диапазон: от 18 до 45+ лет. Это свидетельствует о том, что в сфере IT присутствуют как молодые специалисты, только начинающие свою карьеру, так и опытные профессионалы.
• Большинство людей уже работают в IT, с началом карьеры от 2000-х до 2020-х годов, что указывает на участие как новичков, так и тех, кто работает в индустрии уже более 20 лет.
Грейд и текущие роли:
• Преобладают участники уровня middle и senior, что говорит о высоком уровне экспертизы. Однако, есть и джуниоры, и даже стажеры, что подчеркивает разнообразие опыта.
• Ряд участников занимают позиции лидов (team lead, tech lead), а также руководящие роли, что свидетельствует о высоком уровне ответственности и лидерства.
Стек технологий:
• Наиболее часто встречающиеся технологии: JavaScript (включая React, Vue), Python, Go и PHP.
• Многие специалисты работают с бекендом и фуллстеком, что отражает текущие тенденции в IT, где важна гибкость и умение работать на разных уровнях стеков.
Навыки и развитие:
• Значительная часть респондентов указывает на необходимость прокачки Hard Skills (жесткие навыки), что говорит о приоритете технических компетенций для карьерного роста.
• Soft Skills также упоминаются, особенно среди тех, кто уже занимает лидирующие позиции или хочет развиваться в менеджменте.
Карьерные планы:
• Многие специалисты стремятся к повышению грейда, особенно те, кто уже находится на позиции Middle или Senior.
• Около трети участников опроса хотят расти в своей текущей компании.
• Некоторые рассматривают возможность перехода в более крупные компании или компании мечты, такие как FAANG (Facebook, Apple, Amazon, Netflix, Google), или крупные международные компании.
• Некоторые рассматривают собственный бизнес или стартап в качестве долгосрочной цели.
Подход к обучению и развитию:
• Курсы и книги являются основным источником прокачки для большинства участников.
• YouTube и блогеры также широко используются, особенно в качестве источников быстрой информации или для поиска новых знаний.
• Конференции и менторство упоминаются реже, но для некоторых категорий (например, лидеров команд) они играют важную роль.
Препятствия и вызовы:
• Многие указывают на отсутствие четкого плана или необходимость помощи в составлении плана развития.
• Некоторые отмечают, что у них только примерное представление о необходимой прокачке и росте.
Ссылки: Телеграм | Youtube | VK
p.s. У вас совпадает?
Telegram
Организованное программирование | Кирилл Мокевнин
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
👍49💩13🔥10🤔2🌚2😁1👀1
На канале появился новый выпуск: “SOLID принципы в 2024: Полный разбор и прожарка”, который мы записали вместе с S0ER. Этот выпуск особенный, потому что здесь мы разбираем принципы играя в адвоката дьявола. Я объясняю почему они не нужны, а Женя наоборот https://www.youtube.com/watch?v=qHh_B97OjEY
10👍79👎9❤8🔥6💩5🤡2👀1
Рубрика: текстовый собес. Я задаю пять вопросов, вы отвечаете в комментариях :) Поехали =>
1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
2. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
3. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
4. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
5. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
Ссылки: Телеграм | Youtube | VK
1. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
2. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
3. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
4. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
5. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
Ссылки: Телеграм | Youtube | VK
Telegram
Организованное программирование | Кирилл Мокевнин
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
👍37🔥12❤8👎1👀1
Новый выпуск подкаста уже доступен для прослушивания. https://www.youtube.com/watch?v=1XAbFkMaWxw Здесь мы вместе с Валентином Удальцовым, автором канала Пых, обсуждаем PHP. Поговорим про весь путь его развития — от старых подходов до новых тенденций, PHP-комьюнити и контрибьютах в версии PHP.
YouTube
Какое будущее ждет PHP? / Валентин Удальцов / Организованное программирование / #14
В этом выпуске мы вместе с Валентином Удальцовым, автором канала Пых в Telegram, обсуждаем PHP (тот самый язык программирования, про который говорят, что он умирает, а на нём 80% сайтов до сих пор написано). Поговорим про весь путь его развития — от старых…
👍31❤16
Написал пост про управление паролями и доступами в компании. Полезно тем, у кого нет выделенных безопасников. Больше как инструкция для своих, но может быть полезно и другим: https://vc.ru/life/1568530
vc.ru
Как защитить корпоративные данные: 5 правил безопасного управления паролями и доступами — Офис на vc.ru
Kirill Mokevnin Офис 11.10.2024
👍43❤11🔥2👀1
Давно была идея запустить ботов для проектов Хекслета, но не доходили руки. А тут мы двинулись в сторону создания закрытых сообществ и сопровождения процесса обучения в телеге. Поэтому как-то само пришло.
Сначала я долго искал сервис, который умеет не только стандартные вещи типа цепочек, триггеров и разнообразных диалогов, но и управление закрытыми сообществами с подпиской на них. В итоге нашел не очень известных ребят, но с обалденной функциональностью: winwinbot.ru. Мне понадобилось где-то пару дней плотно потыкать ботов, чтобы примерно понять принципы организации диалогов и организацию реакции на разные действия. Дальше уже пошло легко.
Суммарно у нас будет под десяток ботов, про которые я еще расскажу, например, через такой бот мы хотим сделать онбординг сотрудников Хекслета. На текущий момент из них запущены три: Хекслет.Карьера - это наш новый продукт, который мы пока обкатываем на студентах, а потом откроем наружу. Хекслет.Наставники - через этого бота управляем наставниками и закрытой группой для них в телеге (переехали из матермоста). По плану в этом боте будет много всякого, включая курсы обучения наставничеству (можно делать прямо в боте). И бот, который я настраивал последние дни и сегодня запустил https://t.iss.one/HexletLearningBot (@HexletLearningBot).
Сейчас этот бот знакомит с проектами Хекслета и дает удобный доступ (меню) к ним (группы, каналы, сообщества, курсы и т.п.). В будущем он будет сопровождать прямо по обучению на Хекслете. Собственно потыкайте) Как вам?
Ссылки: Телеграм | Youtube | VK
Сначала я долго искал сервис, который умеет не только стандартные вещи типа цепочек, триггеров и разнообразных диалогов, но и управление закрытыми сообществами с подпиской на них. В итоге нашел не очень известных ребят, но с обалденной функциональностью: winwinbot.ru. Мне понадобилось где-то пару дней плотно потыкать ботов, чтобы примерно понять принципы организации диалогов и организацию реакции на разные действия. Дальше уже пошло легко.
Суммарно у нас будет под десяток ботов, про которые я еще расскажу, например, через такой бот мы хотим сделать онбординг сотрудников Хекслета. На текущий момент из них запущены три: Хекслет.Карьера - это наш новый продукт, который мы пока обкатываем на студентах, а потом откроем наружу. Хекслет.Наставники - через этого бота управляем наставниками и закрытой группой для них в телеге (переехали из матермоста). По плану в этом боте будет много всякого, включая курсы обучения наставничеству (можно делать прямо в боте). И бот, который я настраивал последние дни и сегодня запустил https://t.iss.one/HexletLearningBot (@HexletLearningBot).
Сейчас этот бот знакомит с проектами Хекслета и дает удобный доступ (меню) к ним (группы, каналы, сообщества, курсы и т.п.). В будущем он будет сопровождать прямо по обучению на Хекслете. Собственно потыкайте) Как вам?
Ссылки: Телеграм | Youtube | VK
👍46🔥13🥰2❤1👎1🤔1🤡1👀1
Хочу рассказать небольшую, но важную штуку, связанную с поиском работы. Найм в любой области обладает сезонностью. Общая схема такая: В конце января начинается набор, который доходит до пика в марте-апреле, затем резкое снижение (майские) и плато летом. Затем к сентябрю снова начинается рост найма, который доходит до пика в октябре. В ноябре начинается спад, который доходит до самой низкой точке в декабре, когда никто не нанимает, так как праздники и никто не хочет платить новым людям за 10 праздничных дней, когда они еще ничего не сделали. Дальше цикл повторяется.
Ссылки: Телеграм | Youtube | VK
Ссылки: Телеграм | Youtube | VK
Telegram
Организованное программирование | Кирилл Мокевнин
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
3👍138🤔11❤8🤡2⚡1
Хабр жив! В этом выпуске мы вместе с Алексеем [Boomburum] Шевелёвым, одним из первых рейтинговых авторов, а теперь руководителем отдела по работе с пользователями Хабра, погружаемся в историю самого культового в ру-сегменте ИТ-портала и обсуждаем проблемы контента, авторов, карму, минусы в комментариях и многое другое. https://www.youtube.com/watch?v=_lvcEUi1MtE
YouTube
Как работает и куда движется Хабр / Алексей Шевелёв / Организованное программирование / #15
Хабр жив?! В этом выпуске мы вместе с Алексеем [Boomburum] Шевелёвым, одним из первых рейтинговых авторов, а теперь руководителем отдела по работе с пользователями Хабра, погружаемся в историю самого культового в ру-сегменте ИТ-портала и обсуждаем проблемы…
👍39❤7🔥6🥱3👎2
Продолжаю серию постов про организацию процессов в компании. В этот раз написал про принципы организации структуры корп доков и баз знаний. Советы универсальные. Забирайте: https://vc.ru/office/1592491-kak-organizovat-strukturu-hraneniya-korporativnyh-dokumenty-tak-chtoby-ne-stradat
vc.ru
Как организовать структуру хранения корпоративных документов, так чтобы не страдать — Офис на vc.ru
Kirill Mokevnin Офис 18.10.2024
👍26🔥14❤5
Зачем компании делают скидки?
Не технический пост для инженеров, на тему того, как компании проявляются снаружи и что происходит внутри. Пишу его, потому что знаю как многие идеализируют происходящее вокруг: “смотрите, эта компания вкладывается в климат” и многие на это ведутся. И я не хочу сказать, что компании делают какое-то зло, речь идет исключительно про понимание реальных целей, а не вторичных. Ниже кейсы и возможные интерпретации (подчеркну, возможные):
* Компания запускает большой розыгрыш с призами. Кажется, что они хотят поблагодарить клиентов. На самом деле, они пытаются привлечь новую аудиторию и увеличить свою базу подписчиков.
* Компания заявляет о своей заботе о природе, выпуская эко-упаковку. Кажется, что они действительно заботятся об экологии. На самом деле, они пытаются улучшить свой имидж, чтобы получить выгоду от растущего спроса на эко-продукты.
* Компания устраивает массовую распродажу. Кажется, что они хотят поблагодарить покупателей и предложить выгодные условия. На самом деле, у них переизбыток товара, и они просто освобождают склады перед новым сезоном.
* Компания объявляет бесплатную доставку на все заказы. Кажется, что они хотят сделать покупки удобнее для своих клиентов. На самом деле, они делают это, чтобы увеличить средний чек и компенсировать падение продаж.
* Компания организует благотворительную кампанию, перечисляя часть средств с продаж на нужды благотворительности. Кажется, что они искренне хотят помочь нуждающимся. На самом деле, это часть их PR-стратегии, чтобы улучшить репутацию и повысить доверие к бренду.
* Компания заявляет, что продукция производится локально. Кажется, что они поддерживают местное производство и заботятся о развитии региона. На самом деле, только финальная сборка происходит локально, а все основные компоненты закупаются за границей, чтобы снизить издержки.
* Компания делает акцент на "природные ингредиенты" в своём продукте. Кажется, что они заботятся о здоровье своих клиентов. На самом деле, количество этих натуральных ингредиентов минимально, но использование таких слов позволяет повысить цену продукта.
* Компания заявляет, что переходит на углеродно-нейтральное производство. Кажется, что они заботятся о снижении воздействия на климат. На самом деле, они покупают углеродные кредиты, а производство остаётся практически таким же, как и раньше.
* Компания организует крупное пожертвование на благотворительность. Кажется, что они хотят помочь нуждающимся. На самом деле, пожертвование — это часть их PR-кампании, а также способ получить налоговые льготы и привлечь внимание к своему бренду.
Главное в этом всем, что люди которые делают продукт и люди которые отвечают за его коммерческий успех это разные люди. И продукт побеждает не потому, что он лучше, так почти никогда не работает (если вам кажется что так работает, то у этого продукта крутые маркетологи/бренд-менеджеры/пиарщики, которые смогли вас в этом убедить), а потому что там крутая коммерческая команда (и рынок конечно).
Ссылки: Телеграм | Youtube | VK
Не технический пост для инженеров, на тему того, как компании проявляются снаружи и что происходит внутри. Пишу его, потому что знаю как многие идеализируют происходящее вокруг: “смотрите, эта компания вкладывается в климат” и многие на это ведутся. И я не хочу сказать, что компании делают какое-то зло, речь идет исключительно про понимание реальных целей, а не вторичных. Ниже кейсы и возможные интерпретации (подчеркну, возможные):
* Компания запускает большой розыгрыш с призами. Кажется, что они хотят поблагодарить клиентов. На самом деле, они пытаются привлечь новую аудиторию и увеличить свою базу подписчиков.
* Компания заявляет о своей заботе о природе, выпуская эко-упаковку. Кажется, что они действительно заботятся об экологии. На самом деле, они пытаются улучшить свой имидж, чтобы получить выгоду от растущего спроса на эко-продукты.
* Компания устраивает массовую распродажу. Кажется, что они хотят поблагодарить покупателей и предложить выгодные условия. На самом деле, у них переизбыток товара, и они просто освобождают склады перед новым сезоном.
* Компания объявляет бесплатную доставку на все заказы. Кажется, что они хотят сделать покупки удобнее для своих клиентов. На самом деле, они делают это, чтобы увеличить средний чек и компенсировать падение продаж.
* Компания организует благотворительную кампанию, перечисляя часть средств с продаж на нужды благотворительности. Кажется, что они искренне хотят помочь нуждающимся. На самом деле, это часть их PR-стратегии, чтобы улучшить репутацию и повысить доверие к бренду.
* Компания заявляет, что продукция производится локально. Кажется, что они поддерживают местное производство и заботятся о развитии региона. На самом деле, только финальная сборка происходит локально, а все основные компоненты закупаются за границей, чтобы снизить издержки.
* Компания делает акцент на "природные ингредиенты" в своём продукте. Кажется, что они заботятся о здоровье своих клиентов. На самом деле, количество этих натуральных ингредиентов минимально, но использование таких слов позволяет повысить цену продукта.
* Компания заявляет, что переходит на углеродно-нейтральное производство. Кажется, что они заботятся о снижении воздействия на климат. На самом деле, они покупают углеродные кредиты, а производство остаётся практически таким же, как и раньше.
* Компания организует крупное пожертвование на благотворительность. Кажется, что они хотят помочь нуждающимся. На самом деле, пожертвование — это часть их PR-кампании, а также способ получить налоговые льготы и привлечь внимание к своему бренду.
Главное в этом всем, что люди которые делают продукт и люди которые отвечают за его коммерческий успех это разные люди. И продукт побеждает не потому, что он лучше, так почти никогда не работает (если вам кажется что так работает, то у этого продукта крутые маркетологи/бренд-менеджеры/пиарщики, которые смогли вас в этом убедить), а потому что там крутая коммерческая команда (и рынок конечно).
Ссылки: Телеграм | Youtube | VK
Telegram
Организованное программирование | Кирилл Мокевнин
Как из джуниора дойти до мидла, а потом и до синьора
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
Ютуб https://youtube.com/@mokevnin
Связь для предложений: @kirillpublic
👍56❤14💯5👀2
Новый выпуск с core-разработчиком Python (автором async) Юрием Селивановым, в котором, мы говорим о разработке на Python: будет много про Open Source, контрибьют в Python, инструменты и технологии. Рассмотрим, где сейчас активно применяется Python в веб-разработке, Data Science и Machine Learning, а также сравним его с другими языками, такими как Go, Erlang и Rust. https://youtube.com/watch?v=kVCTHuWwCR0
YouTube
Асинхронный python / Python FastAPI / Python uv / Юрий Селиванов / #16
В этом выпуске мы с Юрием Селивановым, CEO и co-founder Edgedb, говорим о разработке на Python: будет много про Open Source, контрибьют в Python, инструменты и технологии. Рассмотрим, где сейчас активно применяется Python в веб-разработке, Data Science и…
👍41🔥22🫡6❤3👀1
Организованное программирование | Кирилл Мокевнин pinned «Новый выпуск с core-разработчиком Python (автором async) Юрием Селивановым, в котором, мы говорим о разработке на Python: будет много про Open Source, контрибьют в Python, инструменты и технологии. Рассмотрим, где сейчас активно применяется Python в веб-разработке…»
Как управлять текстами в проектах и при чем тут i18n
Любой веб-сайт напичкан текстами, это и длинные описания и короткие название, например, имена полей формы, пунктов меню или названий кнопок. Все это так или иначе где-то описано в коде. Существуют несколько способов все это описать и только один из этих способов правильный. Об этом и поговорим
Самый простой и, возможно, самый распространенный вариант добавлять эти тексты в тех местах где они используются, то есть в шаблонах (и на беке и на фронте). Но за его простотой, скрывается полная дубовость этого варианта, которая с ростом проекта начинает мешать. По пунктам:
* 100% дублирование всех названий. Если у нас есть какое-то поле “Имя”, то оно будет повторено в каждом месте. В крупных проектах это может превращаться в десятки, а то и сотни повторений только для одного названия. А таких не уникальных текстов на сайтах большинство.
* Ручная интерполяция. В тех ситуациях, когда текст содержит динамические части, придется все это закодить руками и тут мы приходим к следующей проблеме
* Учет числа (плюрализация). Часто бывает, что надо писать слово в зависимости от количество элементов: 1 сообщение, 2 сообщения и так далее. Если хардкодить тексты, то эта задача становится проблемой и, часто, говнокодом.
Как минимум, часть проблем может уйти, если вместо текстов вставленных прямо по месту использования, создать словари, например, в json или yaml и дальше использовать их, но даже это решение не справляется с плюрализацией и интерполяцией. Лучше предпочесть специализированное решение и оно есть. Причем, в большинстве бекенд фреймворков оно уже встроено в сам фреймворк (laravel, django, rails и т.п.) это I18n.
I18n работает примерно так, мы описываем файлы с ключами (включая вложенные) и значения (тексты, возможно с интерполяцией)
А затем используем в нужном месте программы
Кто-то скажет, погодите, а при чем тут I18n? А вот так. I18n это, на базовом уровне, не инструмент перевода, а инструмент управления текстами. Даже если у вас один язык и другие не планируются, i18n нужно использовать для управления строками. Таким образом полностью решается вопрос дублирования, решается вопрос плюрализация (это базовая фича всех i18n), а еще там есть форматирование:
И это еще не все. В I18n есть механизм фолбека, то есть когда выбирается какой-то дефолтный текст, если нужно ключа нет. Тоже полезная фича даже без разных языков.
И еще. Во многих бекенд фреймворках свой формат и свои тексты. Фронтенд может создавать свои, а может переиспользовать тексты с бекенда, хотя бы частично. Для этого ко многим фреймворкам понаписаны утилиты, которые позволяют взять бекенд тексты и перекинуть их во фронтенд. Например https://github.com/fnando/i18n-js
Ссылки: Телеграм | Youtube | VK
p.s. А как вы работаете с текстами в своих проектах?
Любой веб-сайт напичкан текстами, это и длинные описания и короткие название, например, имена полей формы, пунктов меню или названий кнопок. Все это так или иначе где-то описано в коде. Существуют несколько способов все это описать и только один из этих способов правильный. Об этом и поговорим
Самый простой и, возможно, самый распространенный вариант добавлять эти тексты в тех местах где они используются, то есть в шаблонах (и на беке и на фронте). Но за его простотой, скрывается полная дубовость этого варианта, которая с ростом проекта начинает мешать. По пунктам:
* 100% дублирование всех названий. Если у нас есть какое-то поле “Имя”, то оно будет повторено в каждом месте. В крупных проектах это может превращаться в десятки, а то и сотни повторений только для одного названия. А таких не уникальных текстов на сайтах большинство.
* Ручная интерполяция. В тех ситуациях, когда текст содержит динамические части, придется все это закодить руками и тут мы приходим к следующей проблеме
* Учет числа (плюрализация). Часто бывает, что надо писать слово в зависимости от количество элементов: 1 сообщение, 2 сообщения и так далее. Если хардкодить тексты, то эта задача становится проблемой и, часто, говнокодом.
Как минимум, часть проблем может уйти, если вместо текстов вставленных прямо по месту использования, создать словари, например, в json или yaml и дальше использовать их, но даже это решение не справляется с плюрализацией и интерполяцией. Лучше предпочесть специализированное решение и оно есть. Причем, в большинстве бекенд фреймворков оно уже встроено в сам фреймворк (laravel, django, rails и т.п.) это I18n.
I18n работает примерно так, мы описываем файлы с ключами (включая вложенные) и значения (тексты, возможно с интерполяцией)
{
"key_one": "item",
"key_other": "items",
"keyWithCount_one": "{{count}} item",
"keyWithCount_other": "{{count}} items"
}
А затем используем в нужном месте программы
i18next.t('key', {count: 0}); // -> "items"
i18next.t('key', {count: 1}); // -> "item"
i18next.t('key', {count: 5}); // -> "items"
i18next.t('key', {count: 100}); // -> "items"
i18next.t('keyWithCount', {count: 0}); // -> "0 items"
i18next.t('keyWithCount', {count: 1}); // -> "1 item"
i18next.t('keyWithCount', {count: 5}); // -> "5 items"
i18next.t('keyWithCount', {count: 100}); // -> "100 items"
Кто-то скажет, погодите, а при чем тут I18n? А вот так. I18n это, на базовом уровне, не инструмент перевода, а инструмент управления текстами. Даже если у вас один язык и другие не планируются, i18n нужно использовать для управления строками. Таким образом полностью решается вопрос дублирования, решается вопрос плюрализация (это базовая фича всех i18n), а еще там есть форматирование:
i18next.t('intlNumber', { val: 1000 });
// --> Some 1,000
И это еще не все. В I18n есть механизм фолбека, то есть когда выбирается какой-то дефолтный текст, если нужно ключа нет. Тоже полезная фича даже без разных языков.
И еще. Во многих бекенд фреймворках свой формат и свои тексты. Фронтенд может создавать свои, а может переиспользовать тексты с бекенда, хотя бы частично. Для этого ко многим фреймворкам понаписаны утилиты, которые позволяют взять бекенд тексты и перекинуть их во фронтенд. Например https://github.com/fnando/i18n-js
Ссылки: Телеграм | Youtube | VK
p.s. А как вы работаете с текстами в своих проектах?
GitHub
GitHub - tighten/ziggy: Use your Laravel routes in JavaScript.
Use your Laravel routes in JavaScript. Contribute to tighten/ziggy development by creating an account on GitHub.
👍61🔥21❤7🤔2