Как стать автором
Обновить
9
0
Родион Мостовой @rodion-m

Ментор, разработчик, преподаватель

Отправить сообщение

Почему я больше не буду учить программированию

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров80K

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

Читать далее
Всего голосов 183: ↑117 и ↓66+80
Комментарии335

Telegram удалил нашего ChatGPT-бота на 27,000 пользователей без объяснения причин

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров42K

Несколько недель назад мы с коллегой сделали ChatGPT-proxy бота в Telegram, который помогал в наших рабочих чатах и просто развлекал нас. Он написан на TypeScript и потрясающем фреймворке Grammy, использует Open AI API, а именно модель gpt3.5-turbo, которая используется в оригинальном ChatGPT.

Читать далее
Всего голосов 65: ↑48 и ↓17+39
Комментарии116

GPT-4: Чему научилась новая нейросеть, и почему это немного жутковато

Уровень сложностиПростой
Время на прочтение23 мин
Количество просмотров260K

В этой статье мы разберем новые удивительные способности последней языковой модели из семейства GPT (от понимания мемов до программирования), немного покопаемся у нее под капотом, а также попробуем понять – насколько близко искусственный интеллект подошел к черте его безопасного применения?

Поехали →
Всего голосов 164: ↑156 и ↓8+192
Комментарии338

Как устроен «Русский медвежонок» — оплот психодела и здравого смысла в образовании

Время на прочтение14 мин
Количество просмотров69K


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

Сначала я вообще считал, что «Русский медвежонок» — это отдельное произведение искусства, созданное, чтобы с иррациональным юмором показать расширенные возможности языка. А потом allex познакомил меня с создателями сего шедевра, и выяснилось, что это вообще-то ужасно серьёзное дело, которым заняты математики и лингвисты. Предельно адекватные, насколько это вообще возможно для математиков и лингвистов.

Значит, сейчас «Медвежонок» — это самый массовый конкурс по русскому языку, подозрительно напоминающий олимпиаду всем, кроме формы. Формально он — игра. Предприятие это сугубо коммерческое, участие стоит 85 рублей (до 100 рублей на Дальнем Востоке). Участие добровольное, в качестве приза предполагается нечто символическое — это тоже осознанно, чтобы не было тех, кто играет на мамону. Все вопросы предполагают на входе некоторый общий уровень развития человека, рождённого на Земле в России. То есть это нечто из базовой школьной программы, общечеловеческие бытовые знания и базовый же кругозор. Задач на чистое академическое знание нет. Задач на зубрёжку нет. Даже если вам кажется, что есть. Задачи довольно хорошо тестируются на живых людях до раскатки на конечных пользователей.

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

Первое, что меня без меры порадовало — что в методологии «пять вариантов ответов» сразу подразумевается, что все эти варианты создаются так, чтобы максимально запутать отвечающего и, фактически, внести новый уровень сложности в задачу. Сейчас покажу пару примеров.
Читать дальше →
Всего голосов 136: ↑126 и ↓10+153
Комментарии525

Получаем реальное покрытие тестами для приложений на Flutter

Время на прочтение2 мин
Количество просмотров4K

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

Во Flutter есть несколько видов написания тестов. Они: Unit-тесты, Widget-тесты и Integration-тесты. Как порядочный разработчик, Flutter приложения вы будете писать вместе с тестами.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии0

Повышаем качество кода с Dart Code Metrics

Время на прочтение8 мин
Количество просмотров7.5K

Dart Code Metrics — это инструмент статического анализа кода, который позволяет собирать метрики по коду и предоставляет дополнительные правила для анализатора. Основная задача — помогать разработчикам следить за качеством кода и улучшать его. В этой статье мы хотим поделиться возможностями инструмента с сообществом. Он помог нам в Wrike решить часть проблем на фронтенде, и, надеемся, поможет и вам.

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии2

Книга по Dart 2.12

Время на прочтение1 мин
Количество просмотров19K

Всем добрый день!

Вот и добрались руки до первого поста на Хабре спустя довольно продолжительное количество времени. Согласно высказыванию - мужчина должен построить дом, вырастить сына и посадить дерево, а что же должен преподаватель? Да черт его знает! Но более чем уверен, что там будет пунктик про написание книги. А если эта книга еще и в свободном доступе...

Читать далее
Всего голосов 11: ↑11 и ↓0+11
Комментарии19

Следует ли мне бросить видеоигры?

Время на прочтение11 мин
Количество просмотров124K

Игры могут быть более опасными, чем мы когда-либо думали.

Читать далее
Всего голосов 52: ↑41 и ↓11+43
Комментарии580

Структура и модель выполнения .NET Core приложений

Время на прочтение15 мин
Количество просмотров53K
В этой статье я рассмотрю компоненты платформы .NET Core 2.0, необходимые для загрузки и выполнения .NET Core-приложений, а также артефакты для двух возможных типов развертывания.

Текст объемный и рассчитан на:

  • начинающих разработчиков, которые только знакомятся с платформой .NET Core;
  • опытных разработчиков, выполняющих роль DevOps-инженеров в produсtion-окружении.

В статье не упоминается процесс создания приложений при помощи SDK (dotnet CLI), однако эта информация будет полезной для понимания, как работает SDK, а именно её основной компонент (ядро) — «драйвер» dotnet.dll, поскольку эта библиотека является управляемой сборкой и выполняется на .NET Core.

Примеры процессов выполнения описаны для ОС Windows, но работают по тому же принципу и на других ОС (с учетом различных расширений исполняемых файлов и нативных библиотек).
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии10

AI, практический курс. Музыкальная трансформация на основе эмоций

Время на прочтение11 мин
Количество просмотров4.1K


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

Целью данного проекта является:

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

Читать дальше →
Всего голосов 11: ↑9 и ↓2+7
Комментарии7

Модели памяти C++ и CLR

Время на прочтение16 мин
Количество просмотров39K

Это расшифровка-перевод доклада Саши Гольдштейна, признанного лучшим на конференции DotNext 2016 Piter. С годами этот доклад стал лишь актуальнее прежнего: появление Mac на ARM-процессорах — еще один пример, почему разработчикам сегодня нужно думать не только о x86-архитектуре.



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


То, что подходит процессорам Intel на архитектурах x86 и x86-64, может не подойти другой архитектуре. Как только вы перенесете свой код на другой процессор, например, на ARM для iPhone и Android, есть вероятность, что он перестанет работать как надо. Проблемы могут быть как очевидными (воспроизводиться с первого-второго раза), так и не очень (возникать только раз в миллион итераций). Вполне вероятно, что такие баги могут добраться до продакшна. Сегодня .NET и, конечно, C++ можно использовать не только на Windows и Intel, но и на других платформах, так что доклад будет полезен многим разработчикам.


Дисклеймер: статья предназначена для продвинутых читателей. Смотрите на свой страх и риск. За частое упоминание барьеров памяти и изменения порядка исполнения инструкций она получила возрастное ограничение 18+.
Читать дальше →
Всего голосов 53: ↑52 и ↓1+70
Комментарии4

От внедрения зависимостей к отказу от зависимостей

Время на прочтение27 мин
Количество просмотров19K

У функционального программирования есть одна большая проблема — о нем очень непросто рассказывать. Попытки донести людям что-то с использованием терминов типа «зигохистоморфный препроморфизм» легко сводят неподготовленного слушателя с ума.



Марк Симан — автор популярной книги Dependency Injection in .NET, автор бесчисленных блог-постов. На DotNext 2017 Moscow Марк рассмотрел применение dependency injection в классическом объектно-ориентированном дизайне и объяснил, почему его необязательно (даже нежелательно) использовать в функциональном программировании. Следом за этим он наглядно показал, как использование приемов функционального программирования устраняет необходимость в использовании моков и стабов в модульном тестировании и позволяет полностью выбросить мусор из прямого перечисления зависимостей.


Под катом — перевод доклада и видео. Далее повествование будет от лица Марка.

Всего голосов 35: ↑35 и ↓0+35
Комментарии11

Книга «Roblox: играй, программируй и создавай свои миры»

Время на прочтение3 мин
Количество просмотров17K
image Привет, Хаброжители! Мы издали книгу для мальчиков и девочек. Что такое Roblox? Это красочная компьютерная платформа для создания и публикации своих игр. Мир Roblox изо дня в день становится все популярней, и ты можешь стать его частью!

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

  • Не требуется предварительных знаний — ты можешь начать делать игру сразу!
  • Мир Roblox интуитивно понятен и очень нравится детям и взрослым.
  • В книге даны очень подробные пошаговые инструкции по установке и работе с Roblox.
  • Есть введение в программирование и язык Lua.
  • Наглядные инструкции по созданию игровых объектов (каждое действие иллюстрируется скриншотом).
  • Интересные задания для самостоятельной работы.

«Roblox: играй, программируй и создавай свои миры» станет верным другом, поможет в кратчайшие сроки освоить игровую среду, удивлять друзей и родителей крутыми играми и даже заработать!
Читать дальше →
Всего голосов 8: ↑8 и ↓0+8
Комментарии11

Преподавателям на заметку: PVS-Studio для знакомства студентов с инструментами анализа кода

Время на прочтение4 мин
Количество просмотров4.7K

PVS-Studio и обучение

По общению в поддержке и некоторым другим косвенным признакам мы заметили, что среди наших бесплатных пользователей стало много студентов. Причина: анализатор PVS-Studio начал использоваться некоторыми преподавателями в рамках дисциплин, связанных с разработкой программного обеспечения. Нам это очень приятно, и мы решили написать эту небольшую заметку, чтобы привлечь внимание и других преподавателей. Мы рады, что студенты знакомятся с методологией статического анализа кода в целом и инструментом PVS-Studio в частности. Наша команда постарается внести вклад в развитие этой тенденции.
Читать дальше →
Всего голосов 45: ↑41 и ↓4+37
Комментарии4

Шпаргалка для технического собеседования

Время на прочтение8 мин
Количество просмотров214K


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

Читать дальше →
Всего голосов 81: ↑68 и ↓13+55
Комментарии85

Букварь по F# для любопытствующих C#-разработчиков

Время на прочтение13 мин
Количество просмотров10K

Предисловие


Мой переход на F# в качестве излюбленного языка был слегка усеян препятствиями. Примерно через десять лет почти постоянного использования C# у меня пробудилось любопытство, когда я услышал об этом другом #-языке. Моя первая реакция была той, которую с тех пор видел у других C#-разработчиков — отрицание, — C# является хорошим языком, и мне с ним комфортно, так зачем тратить силы на изучение другого? Но любопытство осталось — и, по крайней мере, несколько раз выделил вечер, чтобы прочитать базовый вводный пост и попытаться написать каких-нибудь ката на F#. Это не прижилось, потому что я просто чувствовал себя потерянным и не мог воплотить свой опыт использования C# в ощущение даже отдаленного комфорта с F#. Достаточно легко опустить фигурные скобки, немного замяться, чтобы не забыть let вместо var — но как сделать то, что я хотел?


Тогда я этого не осознавал, но, на мой взгляд, наблюдал потенциальный недостаток в том, как F#-разработчики говорят, описывают и представляют свой язык внешнему миру. Существует обширная база материалов обо всех возможностях и функциональности F#: Algebraic Data Types, Exhaustive Matching, Type Inference и т.д. Есть много статей, посвященных тому, как решать широкий спектр задач с помощью F#. Но, как мне кажется, не хватает чего-то вроде следующего: некоторых указаний о том, как взять то, что вам уже удобно в C#, и перевести их на F#. Так что мне интересно, можем ли мы как-то закрыть этот недостаток.

Читать дальше →
Всего голосов 24: ↑23 и ↓1+31
Комментарии13

Принципы SOLID в картинках

Время на прочтение4 мин
Количество просмотров473K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

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

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

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

Ну, приступим.
Читать дальше →
Всего голосов 57: ↑52 и ↓5+54
Комментарии26

Принцип открытости-закрытости

Время на прочтение14 мин
Количество просмотров52K

Привет, Хабр! Перед вами перевод статьи Роберта Мартина Open-Closed Principle, которую он опубликовал в январе 1996 года. Статья, мягко говоря, не самая свежая. Но в рунете статьи дяди Боба про SOLID пересказывают только в урезанном виде, поэтому я подумал, что полный перевод лишним не будет.



Я решил начать с буквы O, так как принцип открытости-закрытости, по сути, является центральным. Среди прочего тут есть много важных тонкостей, на которые стоит обратить внимание:


  • Ни одну программу нельзя «закрыть» на 100%.
  • Объектно-ориентированное программирование (ООП) оперирует не физическими объектами реального мира, а понятиями — например, понятием «упорядочивание».
Читать дальше →
Всего голосов 58: ↑56 и ↓2+54
Комментарии20

Собеседование в Яндекс: театр абсурда :/

Время на прочтение14 мин
Количество просмотров544K

Привет, Хабр!

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

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

Как вы думаете, что делают рекрутеры, когда видят "Alexandr, NOT OPEN FOR WORK"? Правильно, пишут "Алексей, рассматриваете вариант работать в X?" Я обычно игнорирую это, но тут мне предложили попытать счастья с Яндекс.Лавкой, и я не смог пройти мимо - интересно было, смогу ли я устроиться куда-нибудь, когда введут великий российский файерволл. К тому же за последние 3 года я проходил только два интервью, и мне показалось, что я не в теме, что нынче требуется индустрии. Блин, я оказался и вправду не в теме. И вы, скорей всего, тоже - об этом и статья.

Читать далее
Всего голосов 531: ↑504 и ↓27+610
Комментарии1270

Могут ли дети в селах стать программистами, если рядом учат только на железнодорожников. Разговор с «Кружком»

Время на прочтение14 мин
Количество просмотров26K


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

Оказалось, такие истории еще случаются. В 2017 году несколько молодых преподавателей программирования из Московских школ дополнительного образования собрались в команду, назвали ее «Кружок» и поехали по городам России рассказывать детям о технологиях. Они посетили Воткинск, Калугу, Вязьму. Затем в селе Глазок под руководством ребят дети создали сайт, и тут же попали в телевизор и заголовки крупнейших СМИ.

Сейчас «Кружок» едет с туром по 10 городам, а в конце августа планирует провести фестиваль в селе Сардаял.

Преподаватели «Кружка» Саша Братчиков и Александр Патлух рассказали нам с fillpackart каково это — учить детей программированию и заниматься таким вот «технологическим миссионерством».
Всего голосов 62: ↑59 и ↓3+56
Комментарии122
1

Информация

В рейтинге
Не участвует
Откуда
Сайгон, Dong Nam Bo, Вьетнам
Дата рождения
Зарегистрирован
Активность

Специализация

Backend Developer
Lead
C#
.NET
ASP.Net
Entity Framework
DDD
.NET Core