Pull to refresh
26
0
Яков @Zifix

Qt/QML Developer & UX Designer

Send message

Потратили $50'000 на создание интерактивного QA-учебника, перевели на русский и выложили бесплатно

Level of difficultyEasy
Reading time8 min
Views11K

В январе пять международных QA-менторов с суммарным опытом 100+ лет опубликовали первую часть бесплатного интерактивного QA-учебника на английском языке, состоящего из 500+ страниц, 42 модулей, 42+ наборов тестов с 150+ вопросами. Про этот релиз 0.0.5 мы писали в Хабр-статье "Зачем появился бесплатный интерактивный «100-years QA-textbook» на 500+ страниц для обучающихся тестированию".

С тех пор вышел полный англоязычный релиз 0.0.9 всего учебника и выяснилось, что в результате его объем - 700 страниц (без учета изображений и тестов).

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

Читать далее
Total votes 17: ↑13 and ↓4+12
Comments9

Дорожная карта навыков разработчика на C++

Level of difficultyMedium
Reading time16 min
Views66K

Джеймс Гослинг как-то сказал, что Java — это C++, из которого убрали все пистолеты, ножи и дубинки, однако практика показывает, что «ножи и дубинки» становятся классным инструментом в руках опытных разработчиков. В общем, немалая часть проклятий в адрес C++ объясняется элементарным «вы просто не умеете его готовить». Мы в «Лаборатории Касперского» умеем готовить «плюсы» и поэтому любим их. C++ — низкоуровневый язык, который позволяет работать с железом и писать быстрый код и при этом содержит массу возможностей. В экосистеме «плюсов» куча проработанных паттернов, best practices и готовых библиотек под разные задачи. Язык динамично развивается — но сохраняет обратную совместимость. 

В этом посте мы с помощью карты покажем, какие навыки и знания нужны разработчику на C++. Естественно, разбирать путь развития «плюсистов» будем на собственном примере — тем более что у нас в «Лаборатории Касперского» много очень разных проектов с отличающимися задачами. Однако наша карта по большей части универсальна и будет полезна всем, кто хочет развиваться в С++-разработке.

Отправляемся
Total votes 34: ↑26 and ↓8+30
Comments94

Обзор 27-дюймового IPS монитора Digma DM-MONB2705: доступная по стоимости модель с неплохими характеристиками

Reading time6 min
Views6K
Чем должна обладать «рабочая лошадка» — современный офисный монитор? В первую очередь, это необходимые интерфейсы (DP, HDMI), широкий экран (27") с приличной матрицей (Ultra HD 2K 2560 х 1440, IPS). А самое главное — низкая и доступная стоимость.


Читать дальше →
Total votes 4: ↑3 and ↓1+2
Comments16

Как багатон снизил нам количество багов с 900 до 950

Reading time7 min
Views8.1K

Количество заведённых багов к количеству исправленных: расскажу про день, когда мы переломили тренд

У нас некоторое время назад сменился CTO и некоторые детали в политике качества. В какой-то момент это привело к тому, что мы решили наводить порядок в багах.

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

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

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

Как вы уже можете догадаться по заголовку, кое-что пошло не так.
Читать дальше →
Total votes 37: ↑37 and ↓0+37
Comments15

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

Reading time23 min
Views234K

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

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

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

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

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

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

Читать далее
Total votes 324: ↑308 and ↓16+373
Comments795

Не просто запуск контейнеров: Kubernetes для управления жизненным циклом приложения и инфраструктурой

Reading time5 min
Views3.4K

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

Мы пообщались с Павлом Селивановым, архитектором Yandex Cloud, и написали эту короткую статью. Расскажем, какие возможности есть у K8s, как увидеть в нём что-то большее, чем простую «запускалку контейнеров» и как это пригождается на практике. Статья будет полезна тем, кто глубоко не разбирается в Kubernetes, но хочет узнать больше о его возможностях.

Читать дальше
Total votes 10: ↑8 and ↓2+7
Comments0

Kubernetes (не) для всех

Reading time9 min
Views6.2K

Когда мы собрались писать статью про Kubernetes, у нас была куча идей для мемов, картинок и интересных историй из жизни. Стоило только заварить эфиопских зёрен, достать пару куросанчиков (пасхалка из курса). Всё перевернулось с ног на голову. И знаете почему?

Какими бы интересными ни были истории из жизни, статья про Kubernetes всё равно превращается в «очередную статью про Kubernetes». Вот вам история Kubernetes, вот его архитектура, а вот манифесты и пример приложения. И так каждый день: приложения, манифесты, релизы. Снова релизы, откаты релизов.

Даже работая YAML-программистом и выкатывая по 10 раз на дню в Kubernetes очередной релиз, задумываешься об однообразии процессов. Не хочется растягивать резину и петь дифирамбы kubectl, а хочется, чтобы за твоим приложением в Kubernetes следила автоматика: выкатывала новые версии, восстанавливала после сбоя и перезапускала, если закончилась память. Поэтому рано или поздно на свет должны были появиться операторы Kubernetes!

Читать далее
Total votes 7: ↑7 and ↓0+7
Comments3

Как оставаться программистом, если у тебя память как у дрозофилы

Reading time15 min
Views62K

Мой мадригал тем инструментам разработки, которые изменили мою жизнь

Программирование стало гораздо более многогранным ремеслом с тех пор, как в середине 1990-х я впервые попробовал AmigaBASIC. В те времена еще можно было купить один большой том о компьютере, на котором вы программируете – и там бы нашлось 99% всей нужной информации. Эта книга, где на множестве страниц уголки загнуты в качестве закладок, обклеенная стикерами, лежала бы у вас под рукой, пока вы вбивали бы команды в монохромный текстовый редактор.

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

Сегодня никто бы больше и не подумал покупать документацию по разработке – и Microsoft, и Apple свободно выкладывают свою документацию в Интернете для всех желающих. А что говорить о проектах с открытым исходным кодом!

Во времена npmPyPI и GitHub сложно объяснить, насколько неоднозначным решением (которое требовалось всесторонне обдумывать) раньше считалось потребовать хоть какие-нибудь возможности, которые выходили бы за рамки функционала операционной системы. Часто вместе с продуктом приходилось сдавать и все его зависимости.

Читать далее
Total votes 39: ↑35 and ↓4+43
Comments40

Inkscape с 0 до Pro за 5 дней

Reading time17 min
Views49K

Создал мини курс по программе для векторной графики Inkscape в 2022.

Разработал методические материалы для изучения темы «Кодирование и обработка графической и мультимедийной информации» в школьном курсе информатики.

«Векторные графические редакторы позволяют пользователю создавать и редактировать векторные изображения непосредственно на экране компьютера, а также сохранять их в различных векторных форматах, например, CDR, AI, EPS, WMF или SVG». «Inkscape - редактор векторной графики, аналогичный по своим возможностям таким программам, как Adobe Illustrator, Corel Draw и другим».

Читать далее
Total votes 65: ↑64 and ↓1+76
Comments43

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

Reading time9 min
Views88K

За последние 10 лет я поменял 3 работы, прособеседовался с 10+ компаний на позицию разработчика (software engineer) и вел переписку с HR/рекрутерами из нескольких десятков фирм. По ходу дела заметил, что вопросы, которые я задаю на собеседовании с менеджером/командой или с HR, повторяются, и решил их структурировать. Некоторые из них являются общими, и их может задать кандидат на почти любую вакансию; другие касаются только вакансий для программистов. В этой статье поделюсь с вами наиболее типичными и важными вопросами, которые, на мой взгляд, может задать соискатель потенциальному работодателю.

Читать далее
Total votes 72: ↑66 and ↓6+78
Comments70

Тезисы, сформулированные во время распития чая, о процессе интервью, с позиции интервьирующего

Reading time5 min
Views10K

В моей жизни было четыре периода, когда я активно принимал участие в интервьировании людей на работу. В 1998 для своего стартапа в области программ для проектирования микросхем, в 2010-11 для MIPS Technologies (компания среднего размера но престижная в свое время в узком кругу процессоростроителей), в 2019 для Wave Computing (хайповый стартап в хардверном AI) и сейчас для Samsung (на позиции дизайнеров графических процессоров телефонов). Я не собирался писать длинный текст, но пока я пью чай, набросаю несколько тезисов, первое, что приходит в голову:

Читать далее
Total votes 25: ↑19 and ↓6+18
Comments52

Почему не работают оценки времени в проектах?

Reading time4 min
Views15K

Главный вопрос, который нас интересует при постановке задачи - как быстро она будет сделана. Но не всегда мы этот вопрос задаём. А зря. Даже если заказчик не требует сроков, это значит лишь одно из двух:

Читать далее
Total votes 20: ↑14 and ↓6+12
Comments34

Ересь

Reading time8 min
Views57K
image

Одна из самых удивительных вещей, свидетелем которых я был в своей жизни, — это возрождение концепции “ереси”.

В своей превосходной биографии Ньютона Ричард Уэстфолл пишет о моменте, когда Ньютона избрали членом Тринити-колледжа:

«Получив поддержку, Ньютон мог полностью посвятить себя тому, что он выбрал. Чтобы остаться, ему нужно было только избежать трех непростительных грехов: преступлений, ереси и брака.»


В первый раз, когда я прочитал это в 1990-х годах, это звучало забавно средневеково. “Не вляпаться в ересь”. Но когда я перечитал этот текст 20 лет спустя, фраза прозвучала как описание современной ситуации на рабочих местах.

Количество мнений, за которые вас могут уволить, постоянно растет. Те, кто увольняет, не используют слово «ересь» как обоснование, но структурно они эквивалентны. В структурном отношении ересь имеет две отличительные особенности: (1) она имеет приоритет над вопросом об истинности или ложности и (2) она перевешивает все остальное, что сделал говорящий.

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

Если вы обнаружите, что разговариваете с кем-то, кто часто использует эти ярлыки, возможно, стоит прямо спросить его, верят ли они, что детей выплескивают вместе с водой. Может ли утверждение быть %%%-истским для какого-либо значения %%%, а также истинным? Если ответ да, то они признаются в запрете правды. Это достаточно очевидно, и я думаю, что большинство ответит «нет». Но если они ответят «нет», легко показать, что они ошибаются и что на практике такие ярлыки применяются к утверждениям независимо от их истинности или ложности.
Читать дальше →
Total votes 171: ↑151 and ↓20+166
Comments325

Собираем «Тревожный чемоданчик». Мнение спортивного туриста

Reading time18 min
Views210K
Когда началась война, все произошло так быстро, что я не могла ни понять, что происходит, ни подумать о том, что хотела бы взять с собой, когда мы убегали. (из интервью сирийской беженки)

Мне почему-то не хочется делать вид, что ничего не происходит. Потому что нынешняя военная эскалация напоминает затишье перед бурей, похожие ощущения были в январе 2020, когда «коронавирус же не у нас, он в Китае». В итоге жизнь подтвердила несостоятельность подобного «психологического» трюка. Поэтому, думая про худшее и надеясь на лучшее, я написал недавно эмоциональную заметку про «тревожный чемоданчик». Написана она с учетом моего опыта спортивного туризма (инструктор гор/пеш), поэтому профессиональные военным (выживальщикам?) просьба отнестись с пониманием. Писалось с акцентом на беларускую аудиторию, и вот искренне надеюсь, что (НЕ) пригодится всем. Просьба не политизировать данную статью, а воспринимать as is. Те кто затевает войны — Хабр не читают. Мы все в одной лодке, надеюсь написанное под катом хоть немного поможет этой «лодке» быть на плаву…


Собираем тревожный чемоданчик вместе
Total votes 225: ↑198 and ↓27+223
Comments391

Как вырастить тупого ребёнка (научно обоснованные вредные советы)

Reading time7 min
Views267K

Brain of someone described as an «idiot»

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

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

Что мы подразумеваем под умственным развитием


Интеллект (ум) – это способность учиться, делать выводы и решать проблемы. Эти способности закладываются генетически, но развиваются благодаря внешним факторам с момента зачатия до конца жизни.

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

Итак, начнём растить не очень умного ребёнка, пользуясь достижениями современной науки.
Читать дальше →
Total votes 166: ↑143 and ↓23+155
Comments480

Как оценить Soft Skills на собеседовании и помочь разработчику их развить

Reading time13 min
Views37K

Довольно очевидно, что junior-разработчику и тимлиду требуется сильно различающийся набор навыков. И если в случае hard skills всё уже миллион раз проанализировано и посчитано, то о необходимом наборе soft skills в зависимости от должности мы можем только понимать на уровне ощущений и здравого смысла. 

Более того, в нашей индустрии не принято говорить после собеседования, что кандидату отказано из-за его уровня soft skills, хотя мы даже не пытаемся конкретизировать, что конкретно в нём нас не устраивает. Вы наверняка слышали или сами употребляли фразы вроде «просто человек странный», «почему-то не нравится» или «чувствуем, что он не вольется в команду». Но почему? Что на самом деле с ним не так?

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

Читать далее
Total votes 21: ↑18 and ↓3+24
Comments18

Более 10 лет ставлю цели на год: рассказываю, как это делать эффективно

Reading time12 min
Views198K

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

Я полностью прошёл все стадии грехопадения: в студенческие годы искал сакральные ответы в стопках self-help макулатуры; затем разочаровался и решил, что весь этот «успешный успех» – это разводилово для дурачков (до сих пор уверен, что Наполеон Хилл – шизофреник); позже переосмыслил всё ещё раз и пришёл к своему пониманию того, как может выглядеть саморазвитие с адекватным лицом.

Читать далее
Total votes 78: ↑67 and ↓11+81
Comments223

Состояние Flutter на изолятах

Reading time17 min
Views9.4K

Во Flutter существует множество способов управления состоянием, но большинство из них строятся таким образом, что вся логика исполняется в главном изоляте вашего приложения. Исполнения сетевых запросов, работа с WebSocket, потенциально тяжелые синхронные операции (вроде локального поиска) все это, обычно, реализуют именно в главном изоляте. Эта статья покажет и другие двери.

Читать далее
Total votes 8: ↑7 and ↓1+11
Comments3

Как живется в США «неайтишникам». Другая сторона

Reading time10 min
Views241K
image

На Хабре есть не только айтишники. Тут и электрики, и схемотехники, и химики, и маркетологи и кого только нет. И возможность переезда в другую страну в качестве специалиста широкого профиля интересна и им тоже. В довесок к истории Дудя и аналогичным статьям я хочу рассказать свою историю про переезд в США, на противоположный от Калифорнии берег с противоположной от IT профессии. Про жизнь, траты, поиск и смены работы и перспективы. Мне 36, я по образованию биотехнолог, семья — два человека, английский язык — так себе. Живу в Северной Каролине почти два года.

Поскольку написанного вышло много, вот короткая версия. При переезде практически гарантировано снижение социального статуса. Прожить можно на $1500. Средняя зарплата «неайтишника» $30к-50к в год. Средняя стоимость дома $200к. Получить медицинскую страховку бесплатно можно. Много плюшек от государства. Поиск нормальной работы очень нетривиален. Язык сам не учится, но есть бесплатные курсы. Жить комфортно. Наше образование никому не нужно. Очень многие мечтают о карьере в IT.

Важно! Все что я тут пишу это исключительно мой опыт и мое мнение. Я не претендую на истину в последней инстанции, а просто рассказываю как это было у меня, тем более что у всех неайтишных мигрантов весь путь довольно похожий.
Читать дальше →
Total votes 251: ↑248 and ↓3+329
Comments562
1
23 ...

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Registered
Activity

Specialization

Software Developer, Project Manager
Lead
From 9,001 $
Qt
Software development
C++
UI/UX design
Project management
Software testing
Teaching in IT
Linux