Pull to refresh
23
0.3
alexei lupan @astenix

Пользователь

Send message

Почему я больше не буду работать наставником на IT-курсах

Level of difficulty Easy
Reading time 4 min
Views 106K

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

Читать далее
Total votes 339: ↑325 and ↓14 +311
Comments 724

Сокровища HTML: 7 тегов, которые упростят вам жизнь

Level of difficulty Easy
Reading time 7 min
Views 21K

Все мы знакомы с широко используемыми HTML тегами, такими как <div>, <p>, <a>, и <img>. Однако, существуют HTML - теги, которые могут упростить жизнь, и вместо написания дополнительного кода, выполнят всю работу :)

Читать далее
Total votes 70: ↑65 and ↓5 +60
Comments 28

Группировка тематики багов через сравнение названий

Level of difficulty Medium
Reading time 4 min
Views 1.3K

Всем привет! Работаю QA аналитиком на достаточно крупном проекте в области WEB и мобильных приложений. Программистом не являюсь, но периодически скрипты для себя пишу, поэтому за качество кода прошу строго не судить. Но сегодня хочется принести немного data science в жизнь тестировщиков и показать, что если не куплены средства автоматического анализа, то кое-что можно написать и самому.

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

С точки зрения команды QA же было интересно узнать больше о нашем процессе регрессионного тестирования. Трудность проекта состоит в большом количестве подключаемых функций и кастомизаций. Количество Feature Flags подключающих те или иные опции стремится к 700. Регресс выполняется еженедельно, успеть протестировать всё возможности нет.

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

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

Трагикомический робопокалипсис

Level of difficulty Easy
Reading time 5 min
Views 2.6K

Как ни странно, создать правдоподобный сценари угрозы от ИИ на современном уровне технологий не получится. У человечества сейчас на порядок больше шансов устроить апокалипсис при помощи атомного оружия, вирусов, и прочих смертельно опасных игрушек в руках сумасшедших. Ну правда, вот получит какой-нибудь фанатик сильный ИИ и что он делать будет? Заспамит социальные сети? Если сравнить с ведёрком культуры эболы, то результат не впечатляет.

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

Проблема именно в людях, точнее в том, как они воспринимают ИИ.
Читать дальше →
Total votes 16: ↑12 and ↓4 +8
Comments 25

Виды баз данных. Большой обзор типов СУБД

Reading time 21 min
Views 65K

Часто, в обзорах видов баз данных упоминают реляционные и “другие”, “NoSQL” и т.д., либо приводят самые основные типы СУБД (базы данных), забывая о редких. В данной статье я постараюсь описать максимально полно виды баз данных и привести примеры конкретных реализаций. Разумеется, статья не претендует на всеохватность и классифицировать базы данных можно по разному, в том числе по типам оптимальной нагрузки и т.д., но надеюсь, она даст базовое представление о видах СУБД и принципах их работы.

В статье мы рассмотрим следующие типы баз данных:

Читать далее
Total votes 42: ↑40 and ↓2 +38
Comments 16

Что для меня значит быть программистом

Reading time 13 min
Views 47K

Как-то мне написали с Хабра и сказали: Саня, хочешь написать статью про программистов?

Разумеется, я отнёсся к этому скептически. Ладно там девопсины или вайтхэты какие - почитать про них было бы интересно, но вот жизнь программиста... Я сразу вспомнил эти мемы как на КДПВ, которые на самом деле не мемы, а правда.

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

Чтобы получать 300кк/c, нужно всего лишь..
Total votes 179: ↑164 and ↓15 +149
Comments 71

Ещё пара революций школьного образования

Level of difficulty Easy
Reading time 11 min
Views 5K
image

Нам понадобилось переизобрести онлайн-образование для дошкольников и школьников.

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

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

Собственно, у нас было два пути:

  • Повышать цены для родителей, чтобы привлекать больше учителей. Но нет, так не выйдет, мы упёрлись в эластичность по цене, в России у людей не настолько много денег.
  • Или менять саму методологию так, чтобы убрать «бутылочное горлышко».

Автоматизировать учителя или убирать человека из обучения — это очень плохая идея.

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

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

В общем, сейчас традиционный учитель делает вовсе не то, в чём он может дать максимальный эффект для прогресса учеников.
Читать дальше →
Total votes 26: ↑25 and ↓1 +24
Comments 13

Что происходит, когда запускаешь «Hello World» в Linux

Level of difficulty Medium
Reading time 15 min
Views 27K

Сегодня я задумалась о том, что происходит, когда запускаешь в Linux простую программу «Hello World» на Python.

print("hello world")

Вот как это выглядит в командной строке:

$ python3 hello.py
hello world

Но внутри происходит гораздо больше. Я объясню, что там творится, и, что гораздо важнее, расскажу об инструментах, при помощи которых вы сами сможете исследовать происходящее. Мы воспользуемся readelf, strace, ldd, debugfs, /proc, ltrace, dd и stat. Я не буду рассматривать относящиеся к Python части, только объясню, что происходит при выполнении динамически компонуемых исполняемых файлов.
Читать дальше →
Total votes 98: ↑98 and ↓0 +98
Comments 10

Учиться, учиться и еще раз учиться преподавать. Почему надо изменить подход к обучению?

Level of difficulty Medium
Reading time 9 min
Views 8.4K

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

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

Почему нужно менять преподавание?

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

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

Как было раньше?

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

Почему нужно менять преподавание?
Total votes 20: ↑17 and ↓3 +14
Comments 92

Диск — это просто куча битов

Level of difficulty Medium
Reading time 11 min
Views 14K

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

Оказывается нет, в нём находятся биты, закодированные в электрических компонентах.

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

Далее я покажу вам, что всё это определённо возможно! Ради вашего развлечения я засуну руку в свой ПК, вытащу оттуда кучку битов, и мы их с вами изучим.
Читать дальше →
Total votes 57: ↑56 and ↓1 +55
Comments 38

Почему вам не нужно в IT

Level of difficulty Easy
Reading time 4 min
Views 86K

Хочешь войти в айти? А насколько оно надо?

История вайтишника, взятая не с отзыва на обучающем сайте.

Краткое резюме о заблуждениях, которые были развеяны в процессе настоящей работы.

Читать далее
Total votes 154: ↑134 and ↓20 +114
Comments 378

Postman: Основы тестирования API и первые шаги с инструментом

Level of difficulty Medium
Reading time 14 min
Views 65K

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

И вот на сцену выходит Postman - мощный и интуитивно понятный инструмент, предназначенный специально для тестирования и разработки API. В этой статье рассказывается о самых базовых вещах, с которых следует начать свое знакомство с Postman.

Отправка HTTP-запросов, создание тестов, организация запросов в коллекции, работа с переменными - все это лишь часть функциональности Postman, которая облегчает процесс тестирования и повышает его эффективность. Если вы только начинаете свой путь в изучении этого инструмента, не волнуйтесь! Этот гайд поможет вам разобраться с базовыми принципами работы с Postman и покажет, как сделать ваш процесс тестирования API гораздо более эффективным и приятным.

Готовы начать? Давайте вместе погрузимся в увлекательный мир тестирования API с Postman!

Читать далее
Total votes 15: ↑14 and ↓1 +13
Comments 13

Быть тупым тестировщиком

Reading time 6 min
Views 31K

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

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

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

Читать далее
Total votes 29: ↑28 and ↓1 +27
Comments 45

Я бы пересмотрел вообще всё

Reading time 4 min
Views 76K

В программировании нет вообще никаких непреложных истин. Даже самые очевидные правила могут иметь контекст, в которых их применять нельзя. К сожалению в 99% организаций есть прям заповеди, обязательные к исполнению. И есть правила, которые считаются правилами хорошего тона (как не сморкаться в занавеску). Однако всегда бывают ситуации, когда лучше все-таки сморкаться.


Вот примеры.


1) Например, DRY — don’t repeat yourself. Хорошее полезное правило, но его можно довести до маразма. Из того что я встречал на практике: есть два разных по бизнес-смыслу раздела, которые начинались с простого CRUD, и многие части (и фронта и бека) выглядели во многом абсолютно одинаково. Если их объединить с помощью общей высосанной из пальца абстракции и тем самым избавиться от небольшого дублирования кода, то потом (очень скоро) можно будет сойти с ума, потому что эти две вещи скоро разъедутся, обрастая кастомными фичами, и абстракция будет только вредить. Нельзя абстрагировать неабстрагуемое, даже если DRY нарушен.


«[Немного] дублирования обходится гораздо дешевле, чем неправильная абстракция» — Сэнди Мец

Т.е. DRY — хороший принцип, но бывают исключения.

Читать дальше →
Total votes 261: ↑219 and ↓42 +177
Comments 346

Продвинутая работа с логами в Linux

Level of difficulty Medium
Reading time 6 min
Views 21K

Журнал событий, это компонент systemd, который захватывает сообщения Syslog, логи ядра, все события при инициализации системы (RAM, диск, boot, STDOUT/STDERR для всех сервисов), индексирует их и затем предоставляет удобной пользовательский интерфейс для поиска и фильтрации логов. Журнал (systemd journal) можно использовать вместе или вместо syslog или syslog-ng.

Утилита командной строки journalctl, если сравнивать ее с традиционным инструментами для работы с логами в UNIX (tail, grep, sed, awk) более широкие возможности.

Давайте рассмотрим основные возможности которые предоставляет журнал systemd и способы их применения.

Читать далее
Total votes 27: ↑26 and ↓1 +25
Comments 12

Что делает ChatGPT… и почему это работает?

Level of difficulty Medium
Reading time 75 min
Views 144K

То, что ChatGPT может автоматически генерировать что-то, что хотя бы на первый взгляд похоже на написанный человеком текст, удивительно и неожиданно. Но как он это делает? И почему это работает? Цель этой статьи - дать приблизительное описание того, что происходит внутри ChatGPT, а затем исследовать, почему он может так хорошо справляться с созданием более-менее осмысленного текста. С самого начала я должен сказать, что собираюсь сосредоточиться на общей картине происходящего, и хотя я упомяну некоторые инженерные детали, но не буду глубоко в них вникать. (Примеры в статье применимы как к другим современным "большим языковым моделям" (LLM), так и к ChatGPT).

Читать далее
Total votes 248: ↑248 and ↓0 +248
Comments 121

Пять примечательных функций Postman, которые мы используем в тестировании банковских систем

Reading time 10 min
Views 20K

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

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

Читать далее
Total votes 17: ↑16 and ↓1 +15
Comments 12

Как понять, что на проекте все гуд? Щедрый чек-лист от щедрого QA-лида

Reading time 5 min
Views 17K

“I`ll be back”, -  сказал себе я, начиная вторую статью и…наконец, сделал ее спустя два месяца. Но лучше поздно, чем никогда ( главное - не берите себе это за правило, если вы QA-лид, потому что в этом случае вовремя - всегда лучше, чем поздно). Но что-то я отвлекся от главного. В комментах к прошлой статье просили сделать продолжение. Я подумал-подумал и решил, а почему бы и нет. Ну в общем, что долго тянуть.
Для всех новоприбывших - меня зовут Ваня и QA-лид в международном агентстве аутсорс-тестирования “Кавычки”. В прошлый раз я рассказывал о болях QA - лида и, собственно, что же с ними делать-то. Сегодня поговорим о том, что делать после того, как вы приложили подорожник к ранкам и теперь пора определить, сработало или нет. 

Намбер уан. Выстроенный релизный цикл

Вот давайте только глаза не закатывать тут, ладно? Видел я, как на очень многих проектах, когда приходишь, тебе говорят - “у нас все-все работает”. Даже старый дедушкин приемник. Но стоит чуть забросить удочки и уже можно подсекать - клев на ошибки удался. Релизы выходят, когда захотят (например, в третьи лунные сутки), команда ждет знака свыше, в общем, почти пир во время чумы. Вот так не надо. 

Надо вот так.

Читать далее
Total votes 10: ↑7 and ↓3 +4
Comments 4

Разбираемся с Docker: как создаются образы

Reading time 13 min
Views 44K

От любого инструмента, который внедряем в проект, мы ждём стабильной работы. Docker не исключение. Чтобы иметь возможность оперативно выявлять потенциальные проблемы и избегать сбоев, необходимо понимать внутренние особенности технологии. Эта статья — сборник заметок, которые помогут разобраться, как создаются образы контейнеров. 

Читать далее
Total votes 35: ↑34 and ↓1 +33
Comments 3

Разбор ошибок в игровом движке Stride

Reading time 8 min
Views 3.2K

Stride – это мощный, бесплатный и активно развивающийся игровой движок, реализованный на C#. Он вполне может стать альтернативой Unity, но насколько качественный исходный код Stride? Узнаем это с помощью статического анализатора PVS-Studio.

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

Information

Rating
1,891-st
Location
Кишинев, Молдова, Молдова
Date of birth
Registered
Activity

Specialization

Quality Assurance Analyst, Тренер
Lead
Linux