Pull to refresh
77
0.1
Роман @RomeoGolf

инженер-программист

Send message

Как системному аналитику выделиться на собеседовании в 2024?

Level of difficultyEasy
Reading time8 min
Views416

Всем доброго времени суток!
 На написание данной статьи меня натолкнул процесс найма Системного аналитика к нам в команду, который завершился месяц назад.

Процесс у нас состоял из 3 этапов: скрининг с рекрутером, техническое интервью и интервью с менеджером. Я же хочу рассказать о технической части, которую сам проводил.
Начнем с того, что рассамтривали мы кандидатов, проживающих в Западной и Восточной Европе, Балканах, Грузии, Армении и искали мы крепкого синьора. Условия у нас хорошие: и в плане заработной платы и в плане задач и нагрузки, при этом компания не стартап, есть действующие продукты, которые генерируют прибыль, финансовая неустойчивость отсутствует. Всего мы получили чуть больше 100 откликов на вакансию по разным каналам, из этих 100 откликов релевантных резюме было около 20.

Читать далее
Total votes 6: ↑4 and ↓2+2
Comments0

Rust без прикрас: где мы ошибаемся

Level of difficultyEasy
Reading time6 min
Views9K

Привет, исследователи Rust! Сегодня хочу поделиться своим опытом (не всегда радужным) работы с Rust. Да, язык классный, безопасный, быстрый — все мы это знаем. Но, как и в любом инструменте, здесь есть свои подводные камни, на которые я благополучно наступал.

Читать далее
Total votes 33: ↑28 and ↓5+35
Comments35

Асинхронный Rust в трех частях. Введение

Level of difficultyEasy
Reading time5 min
Views3.9K

Async/await, или «асинхронный ввод‑вывод», — это относительно новая функция языка, которая позволяет программам выполнять несколько задач одновременно. Это своего рода альтернатива многопоточности, хотя программы на Rust часто используют и то и другое. Асинхронный ввод‑вывод особенно популярен в веб‑сервисах и сетевых приложениях, работающих с большим числом подключений одновременно.

Эта серия статей представляет собой введение в "futures", задачи и асинхронный ввод‑вывод в Rust. Наша цель — понять основные механизмы, чтобы асинхронный код не казался магией. Мы начнем с преобразования (так называемой «рассахаризации») асинхронных примеров в обычный Rust и постепенно создадим собственную асинхронную «среду выполнения». На данном этапе под «средой выполнения» мы понимаем библиотеку или фреймворк, которые используются для написания асинхронных программ.

Создание собственных фьючерсов, задач и механизма ввода‑вывода позволит понять, что именно делает для нас среда выполнения. Предполагается, что вы уже немного писали на Rust и читали The Rust Programming Language \или аналогичный источник.

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

Читать далее
Total votes 16: ↑16 and ↓0+20
Comments7

Практика создания и внедрения единого стайлгайда для команды разработчиков

Level of difficultyEasy
Reading time8 min
Views2.2K

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

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

Читать далее
Total votes 10: ↑9 and ↓1+12
Comments5

Полное руководство по обработке ошибок в Python

Reading time15 min
Views8.6K

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

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

Вы готовы узнать секреты обработки ошибок в Python? Тогда поехали!
Читать дальше →
Total votes 19: ↑18 and ↓1+26
Comments5

Sentinel C++20. Пишем свой Sentinel

Reading time5 min
Views4.7K

О понятии Sentinel говорят мало, особенно в русскоязычном пространстве. Вместе с Юрием Вашинко, опытным тимлидом и спикером нашего курса «С++ разработчик» сегодня рассмотрим, что такое Sentinel и как его использовать:

Читать далее
Total votes 8: ↑6 and ↓2+6
Comments28

Асинхронный Rust в трех частях. Часть первая: Futures

Reading time14 min
Views3.5K

В введении мы посмотрели на пример асинхронного Rust без какого‑либо объяснения, как он работает. Это дало нам несколько вопросов для размышления: Что такое асинхронные функции и возвращаемые ими «future»? Что делает join_all? Чем отличается tokio::time::sleep от std::thread::sleep?

Чтобы ответить на эти вопросы нам потребуется преобразовать каждую из частей в обычный не асинхронный код Rust. Вскоре мы обнаружим, что воспроизвести foo и join_all достаточно просто, а вот со sleep ситуация чуть сложнее. Начнем же.

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

Системный аналитик 100 lvl — дорожная карта развития

Level of difficultyMedium
Reading time12 min
Views24K

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

Привет, Хабр! Меня зовут Любовь Кулева, я руководитель отдела разработки и методологии Учебного центра IBS. Каждый год в нашем центре сотни сотрудников проходят сертификацию навыков. Собрав статистику по итогам 2023 года, мы выяснили, что сертификацию успешно сдает лишь каждый третий системный аналитик. Да-да, вы не ослышались: это значит, что две трети специалистов в первый раз заваливают экзамен. Очевидно, что многие просто не замечают пробелов в собственных знаниях или не знают, какие именно компетенции следует подтянуть в первую очередь. Эта статья — дорожная карта для любого системного аналитика, желающего расти в профессии.

Читать далее
Total votes 19: ↑16 and ↓3+15
Comments15

Сгенерированный ИИ код сделает вас плохим программистом

Level of difficultyEasy
Reading time7 min
Views13K

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

Для начала уточню, что под использованием сгенерированного ИИ кода я подразумеваю ситуацию, когда ИИ пишет код за вас, а не когда вы используете ИИ как инструмент обучения, чтобы лучше познать тонкости языков программирования и библиотек (по этому поводу у меня тоже есть своё мнение). Но если вы когда-нибудь применяли эти инструменты для того, чтобы ИИ писал код на основании имён методов или комментариев с нечётко описанной функциональностью, или вы используете ИИ для изучения и понимания собственной кодовой базы, чтобы не делать этого самостоятельно, то эта статья — про для вас.
Читать дальше →
Total votes 59: ↑56 and ↓3+70
Comments170

Асинхронный Rust в трех частях. Часть вторая: Tasks

Level of difficultyEasy
Reading time12 min
Views1.9K

Во введении мы сказали, что async/await это про futures и задачи. В первой части мы рассмотрели futures и теперь пришло время задач. Благо, мы с ними уже встречались, хоть мы их так и не называли.

Читать далее
Total votes 11: ↑11 and ↓0+14
Comments73

Уменьшать срок или платёж, что выгоднее: наглядное сравнение способов досрочного погашения кредита

Level of difficultyEasy
Reading time12 min
Views105K

Большинство из нас так или иначе сталкивается с кредитами, а потом и с досрочными платежами по ним. Эта статья в блоге ЛАНИТ на Хабре посвящена подробному сравнению двух способов внесения частичных досрочных платежей по кредиту: с уменьшением срока и с уменьшением платежа.

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

Читать далее
Total votes 110: ↑100 and ↓10+115
Comments327

Zettelkasten и Obsidian: ваш помощник в структурировании знаний

Level of difficultyEasy
Reading time4 min
Views17K

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

Наращивать нейроны
Total votes 3: ↑2 and ↓1+1
Comments31

Использование статических анализаторов кода при разработке безопасного ПО

Level of difficultyMedium
Reading time9 min
Views1.9K

Как часто анализировать проект? Сколько анализаторов использовать? Как размечать полученные предупреждения? Отвечаем на эти и другие вопросы, разбираясь в подробностях свежего ГОСТ Р 71207–2024, посвящённого статическому анализу.

Читать далее
Total votes 8: ↑8 and ↓0+15
Comments0

Что такое 50% cpu?

Level of difficultyEasy
Reading time3 min
Views43K

Если у вас на машине стрелочка показывает, что у вас осталась половина бака, то у вас точно осталась половина бака? На самом деле больше, так как современные машины врут и топлива еще немного есть, даже когда стрелка на нуле - забота об альтернативно одаренных водителях. А если сервер показывает 50% cpu, то сколько ресурсов у нас осталось?

Для многих ответ ясен, и это не 50%. Поэтому извините, если многие вещи будут вам очевидны. А вот для менеджеров, например, которые планируют ресурсы, это может быть открытием.

Читать далее
Total votes 102: ↑99 and ↓3+123
Comments66

В какой момент профессия программиста свернула не туда?

Level of difficultyEasy
Reading time3 min
Views23K

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

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

Читать далее
Total votes 132: ↑106 and ↓26+108
Comments337

Полезные фичи С++ на примере организации пайплайна

Reading time20 min
Views7.7K

В рамках микросервисной архитектуры достаточно легко делать «реактивные» сервисы: к вам приходит событие или вызов HTTP-метода, и в ответ на это происходит какое-то действие. Однако бывают более сложные сценарии, когда надо собрать некоторое количество информации или событий прежде, чем что-то делать. В таком случае нужен пайплайн — механизм организации сложных правил обработки событий. 

Недавно нам пришлось организовать пайплайн с использованием интересных С++-трюков. О них я и расскажу в статье. 

— Как хранить в одном контейнере разные типы и использовать тип в качестве ключа контейнера 

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

— Как сделать универсальный запускатель функций, который будет запускать любую функцию и сам искать, откуда «добыть» эти аргументы 

— И главное, как сделать интерфейс для написания пайплайна обработки события — удобный и полностью изолированный от инфраструктуры

Читать далее
Total votes 36: ↑36 and ↓0+46
Comments15

Светодиодная лента COXO FCOB RA90 480 LED, 10 Вт/м

Level of difficultyEasy
Reading time2 min
Views7K
Мне удалось найти на AliExpress недорогую светодиодную ленту с действительно высоким индексом цветопередачи и параметрами, соответствующими заявленным.

Заказал, изучил, протестировал.



Читать дальше →
Total votes 21: ↑21 and ↓0+26
Comments11

Действительно ли ИИ-помощники экономят время разработчиков?

Level of difficultyEasy
Reading time6 min
Views4.3K

Команда Spring АйО перевела статью об исследовании Uplevel, которое показало, что использование GitHub Copilot не улучшает производительность разработчиков, а наоборот — увеличивает количество ошибок в коде. 

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

Читать далее
Total votes 18: ↑16 and ↓2+16
Comments16

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

Reading time12 min
Views27K

Привет, Хабр! Меня зовут Светлана Болсуновская, я стратегический коуч-консультант в YADRO. Многие компании перешли на гибридный формат работы, где команды нуждаются в особом подходе для поддержания самоорганизации — процесса, при котором люди выполняют задачи без постоянного контроля руководителя. Я поделюсь своими наблюдениями, почему в современных условиях самоорганизация не происходит «магически» и что должен (и не должен) делать тимлид, чтобы помочь команде достичь этой цели.

Читать далее
Total votes 39: ↑33 and ↓6+34
Comments47

Jujutsu — новая система контроля версий

Level of difficultyEasy
Reading time2 min
Views23K

Кому нужная новая VCS, когда уже есть Git, Mercurial, SVN, Perforce, Darcs и прочие? Автор проекта Jujutsu считает, что ещё есть куда рости. Знакомтесь — Martin von Zweigbergk из Google работает над проектом Jujutsu, или для краткости jj.

Чем он лучше чем ваша система контроля версия?

Читать далее
Total votes 33: ↑31 and ↓2+41
Comments43
1
23 ...

Information

Rating
3,981-st
Location
Свердловская обл., Россия
Date of birth
Registered
Activity