Pull to refresh
62
-10
Артур Думчев @arturdumchev

Программист

Send message

Я программист, и я тупой

Reading time2 min
Views69K
Я пишу код за деньги уже пятнадцать лет. Пробовал себя и в других ролях – управление продуктом, аналитика, тестирование, – но как-то не пошло. И с течением лет пришел к осознанию, что я не очень умный. К сожалению.

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

Как же я выхожу из положения?
Читать дальше →
Total votes 296: ↑282 and ↓14+323
Comments331

Как разработчику организовать личную базу знаний: систематизация информации из книг, статей, видео и курсов

Level of difficultyEasy
Reading time6 min
Views45K

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

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

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

Читать далее
Total votes 84: ↑82 and ↓2+80
Comments96

Как совмещать основную работу и проекты на стороне

Level of difficultyEasy
Reading time5 min
Views48K

У многих из нас остается достаточно свободного времени в сутках. А почему бы не монетизировать это время, думает начинающий IT левак? Если работать по три часа в день в будние, брать по 2 тысячи за час, то получится 120 тысяч дополнительного дохода в месяц. Звучит отлично!

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

Читать далее
Total votes 111: ↑109 and ↓2+107
Comments48

Надежный обход блокировок в 2024: протоколы, клиенты и настройка сервера от простого к сложному

Level of difficultyMedium
Reading time45 min
Views145K

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

Вы, наверняка, помните отличный цикл статей на Хабре в прошлом году от пользователя MiraclePtr, который рассказывал о разных методах блокировок, о разных методах обхода блокировок, о разных клиентах и серверах для обходов блокировок, и о разных способах их настройки (раз, два, три, четыре, пять, шесть, семь, восемь, десять, десять, и вроде были еще другие), и можете спросить, а зачем еще одна? Есть две основные причины для этого.

Читать далее
Total votes 506: ↑498 and ↓8+490
Comments351

Играем с KAT Walk C2. (часть 1: собственно, играем)

Level of difficultyMedium
Reading time22 min
Views2.3K

У меня есть дурная привычка: я играю в игры. Впрочем, понятие "играю в игры" довольно своеобразное.

Уже несколько лет как я обзавелся VR платформой от KAT VR. Согласно её внутренней статистики, я прошел на ней около 30 километров и сделал 40к шагов. Статистика, конечно, врёт и сильно, было гораздо, гораздо больше. Однако же да, на ней я играл гораздо меньше времени чем с ней.

Впрочем, обо всём по порядку.
Total votes 13: ↑13 and ↓0+13
Comments10

Каково это, создавать язык программирования сегодня?

Level of difficultyMedium
Reading time8 min
Views16K

«Эта книга – классика. Относитесь к ней бережно».

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

Вышла эта книжка в 1986 году. В те времена создание компиляторов было крайне сложной задачей, требовавшей обладания различными навыками в области компьютерных наук в целом и программирования в частности. Теперь, почти четыре десятилетия спустя, этой задачей занимаюсь я. Насколько сложна она сегодня? Приглашаю вместе разобрать процесс создания языка и посмотреть, насколько современные инструменты его упростили.
Читать дальше →
Total votes 62: ↑59 and ↓3+56
Comments5

Программисты всё вымирают и вымирают

Level of difficultyEasy
Reading time18 min
Views125K

Да вымереть не могут.

Откуда это всё пошло? Чем так условные «программисты» не угодили? И почему именно программисты?

Читать далее
Total votes 397: ↑385 and ↓12+373
Comments583

Тебе не нужно классическое ООП в твоём бэкенд микросервисе

Reading time24 min
Views19K

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

Читать далее
Total votes 51: ↑46 and ↓5+41
Comments55

Вертебро-базилярная недостаточность — болезнь программиста с тысячью лиц

Reading time13 min
Views25K


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

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

Однако в то же время все перечисленные симптомы, столь непохожие друг на друга, характерны и для вертебро-базилярной недостаточности (ВБН), а причиной развития данного недуга может оказаться искривление шейного отдела позвоночника, вызванное неправильной осанкой при длительной работе за компьютером. Что же это за болезнь и как не допустить ее развития? Об этом мы и расскажем в сегодняшнем материале.
Читать дальше →
Total votes 52: ↑50 and ↓2+48
Comments24

Теория игр за 15 минут

Level of difficultyEasy
Reading time15 min
Views55K

Многие из вас, я уверен, слышали о теории игр в какой-то момент своей жизни. Если вы хотите выглядеть умным и произвести впечатление на свою девушку — просто упомяните «игру с нулевой суммой» или «эволюционную стратегию», и ваши шансы отвести её домой сегодня вечером только что подскочили на 50%. Или вы можете использовать теорию игр, чтобы принимать решения в инвестировании своих денег (чтобы их полностью потерять и разориться) или, например решая, на какой девушке жениться (что также очень вероятно вас разорит). Как видите, это очень полезная теория.

Чтобы казаться умным - достаточно выучить эти пару выражений, но чтобы на самом деле что-то понимать - придется разобраться. Оказывается, это не так уж сложно и довольно интересно. Давайте посмотрим.

Читать далее
Total votes 109: ↑106 and ↓3+103
Comments30

Одно и то же лекарство можно купить и дешево и дорого. Что-то и вовсе не лекарство. И что за лекарство — вода с солью

Level of difficultyEasy
Reading time9 min
Views33K

Заходя в аптеку мы удивляемся тому, как подорожали за последние годы таблетки. И капли. Конечно на нас наживаются. Расскажу о довольно частых примерах. Вот к примеру обычный насморк. Что не так с лечением насморка?

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

Читать далее
Total votes 196: ↑187 and ↓9+178
Comments237

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views173K

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

Читать далее
Total votes 159: ↑157 and ↓2+155
Comments49

Почему я не доверяю врачам

Level of difficultyEasy
Reading time8 min
Views74K

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

Я просто опишу несколько случаев, и станет ясно, «почему».

Случай 1. В детстве у меня был обширный ожог на груди от кипящей воды. Мать хотела улучшить мою внешность — уменьшить размер шрамов. Мы пошли с ней к доктору (мне было 6 лет), он вырезал мне большой кусок кожи, от правого плеча до локтя левой руки, а оставшуюся кожу стянул и сшил. Всю жизнь я ходил с этим шрамом от скальпеля, который был ужасно жестким. Для рассасывания шрама мне кололи лидазу, но это не помогло. В результате вместо мягкого шрама от ожога я получил очень жесткий шрам от скальпеля, сейчас он имеет длину в полметра, стянул мои плечи и перекосил положение грудных сосков. В 45 лет этот шрам превратился во что‑то типа кости. Эта «кость» прорвала кожу, вылезла наружу и мне пришлось делать операцию по удалению «кости» с помощью лазера. Та часть шрама от ожога, которая не была тронута скальпелем, осталась мягкой и никогда мне не мешала. Я не знаю, но думаю, моя мать много заплатила хирургу, чтобы он сделал лучше. Это было в 1960 году, прошло только 15 лет после войны, было ведь много раненых и обожженных. Неужели хирург не знал, что получится в результате?

Что я могу думать о врачах после этого? Они лечат или калечат?

Случай 2. В 19 лет у меня появились боли в области сердца, несколько лет не мог спать на левом боку. Пошел к терапевту, сняли ЭКГ — ничего не нашли. При описании жалобы я говорил: «странно, но у меня эти боли проходят после того, как позанимаюсь с гирей». Терапевт и кардиолог, снимавший ЭКГ, посмеялись и отпустили меня ни с чем.

Читать далее
Total votes 303: ↑259 and ↓44+215
Comments587

Шаблон Visitor устарел для Kotlin, но знать его стоит

Reading time6 min
Views3.7K

Рассмотрим шаблон проектирования Visitor и покажем, что использовать его при программировании на Kotlin не стоит. Будет теория, минималистичная реализация, реализация замены и доводы в пользу замены, подкрепленные практическими изысканиями. Не будет диаграмм классов. Все попробовать можно онлайн в play.kotlinlang.org


Читать дальше →
Total votes 6: ↑3 and ↓3+3
Comments17

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

Reading time23 min
Views228K

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

Одна из простых задач звучит так: «При переводе картинки из цветового пространства RGB в YUV мы выполняем прореживание, то есть выкидываем каждый четный столбец и каждую четную строку в компонентах U и V (все компоненты пикселя по 1 байту). Вопрос: во сколько раз меньше данных у нас стало?» Эта операция называется chroma subsampling и широко используется при сжатии видео, например.

Забавно, что когда-то давно, когда винчестеры были меньше, а дискеты больше, студенты реально отвечали на этот вопрос быстро. А в последние годы регулярно народ в ступор впадает. Приходится разбирать по частям: «Если выкинуть каждую четную строку и каждый четный столбец, во сколько раз меньше данных будет у компоненты?» Почти хором: «В четыре». Начинаю подкалывать: «Отлично! У нас было 3 яблока, первое осталось как есть, а от второго и третьего осталось по четвертинке. Во сколько раз меньше яблок у нас стало?» Народ ржет, но, наконец-то, дает правильный ответ (заметим, не все). 

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

И хорошо видно, как эта способность в широких массах студентов заметно плавно падает. Причем не только в нашей стране. Придуман даже специальный термин: «цифровое слабоумие» ("digital dementia") — снижение когнитивных способностей, достаточно серьезное, чтобы повлиять на повседневную деятельность человека. 

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

Читать далее
Total votes 411: ↑395 and ↓16+379
Comments795

Керниган и Пайк были правы: делай что-то одно и делай это хорошо

Level of difficultyEasy
Reading time11 min
Views26K
Роб Пайк и Брайан Керниган

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

Легенды computer science Брайан Керниган и Роб Пайк сформулировали в Program Design in the UNIX Environment паттерн архитектуры ПО, за сохранение которого оба боролись долгие годы.

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

Старые программы покрываются коркой сомнительных фич.

Суть статьи часто сводят к аббревиатуре DOTADIW, или «Do One Thing And Do It Well» («Делайте что-то одно и делайте это хорошо»). В Unix и его потомках есть множество программ, в которых воплощена эта мантра: ls просто создаёт список файлов, cat просто выводит содержимое файлов, grep просто фильтрует данные, wc просто подсчитывает слова и так далее. У каждой программы есть несколько опций, меняющих её поведение, но не слишком сильно. Например: wc можно сконфигурировать для подсчёта строк или слов, но не для подсчёта количества абзацев или вхождений какой-то фразы.

Мощь Unix, защищаемая Керниганом и Пайком, заключалась в возможности соединения этих простых программ в цепочку для создания сложных поведений. Зачем добавлять сопоставление регулярных выражений в wc, если с этим уже способна справиться grep?
Читать дальше →
Total votes 65: ↑61 and ↓4+57
Comments45

Вы точно хотите пойти программистом в gamedev?

Level of difficultyEasy
Reading time17 min
Views73K

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

Если увольняется арт-директор, который несет "видение" проекта, то проекту становится очень плохо, в большинстве случаев визуально он изменится до неузнаваемости, хотя ассеты могут быть те же самые. Программисты делают всё, кроме самой игры: рендер, звук, физику, сеть, AI, инверсную кинематику, поиск пути и т.д. Можем подискутировать в комментариях.

O, тепленькая пошла!
Total votes 267: ↑263 and ↓4+259
Comments229

Учимся разрабатывать REST API на Go на примере сокращателя ссылок

Level of difficultyMedium
Reading time30 min
Views43K

В этой статье мы напишем полноценный REST API сервис — URL Shortener — и задеплоим его на виртуальный сервер с помощью GitHub Actions.

Говоря «полноценный», я имею в виду, что это будет не игрушечный проект, а готовый к использованию:

  • мы выберем для него актуальный http-роутер,
  • позаботимся о логах,
  • напишем тесты: unit-тесты, тесты хэндлеров и функциональные,
  • настроим автоматический деплой через GitHub Actions и др.

Но важно понимать, что «готовый к продакшену» != «энтерпрайз».

Кратко обо мне: меня зовут Николай Тузов, я много лет занимаюсь разработкой на Go, очень люблю этот язык. Также веду свой YouTube-канал, на котором есть видеоверсия текущего гайда, с более подробными объяснениями.
Читать дальше →
Total votes 57: ↑56 and ↓1+55
Comments40

Создаем свой VPN с защищенным от блокировок протоколом AmneziaWG, или WireGuard на максималках

Reading time4 min
Views150K


Всем привет! Возможно уже совсем скоро разные новостные и  IT-ресурсы будут подчищать информацию о способах обхода блокировок. А пока этого не случилось, запасаемся полезными гайдами и разворачиваем свои собственные VPN с защищенными от блокировок протоколами. Расскажу как это сделать, как изменилась Amnezia и как мы защитили WireGuard от блокировок.

Читать далее
Total votes 115: ↑113 and ↓2+111
Comments123

Взрывающие мозг истории из книги «Атомные привычки»

Reading time23 min
Views48K
Дочитала на днях книгу Джеймса Клира «Атомные привычки». Книгу третий год обсуждают англоязычные IT-шники, я решила разобраться, что в ней такого. По сути, «Atomic habbits» — это сборник публикаций Клира на тему привычек из его блога, но в красивой обложке и на русском.



Самым клевым в книге оказались истории из жизни. Фишки из этих историй уже безо всякой теории на 150 страниц можно брать и применять на себе / детях / сотрудниках.

Под катом 15 полезных историй из книги «Атомные привычки».
Читать дальше →
Total votes 43: ↑40 and ↓3+37
Comments28
1
23 ...

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity