Pull to refresh
1
0
Send message

Собеседование как экзамен

Level of difficultyEasy
Reading time9 min
Views21K

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

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

Я угодил в ту же ловушку, что и они.

Далее
Total votes 59: ↑56 and ↓3+63
Comments100

Алгебра int о которой не говорят

Level of difficultyMedium
Reading time10 min
Views24K

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

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

Читать далее
Total votes 35: ↑34 and ↓1+46
Comments42

Как разработать драйвер Linux с нуля

Level of difficultyHard
Reading time11 min
Views18K
image

Недавно я занимался изучением IoT и, так как мне не хватало устройств, при попытках симулировать работу прошивки я часто сталкивался с неимением нужного /dev/xxx. Так что я стал задумываться, а могу ли написать драйвер самостоятельно, чтобы заставить прошивку работать. Независимо от того, насколько сложно это будет, и удастся ли воплотить такое намерение, в любом случае вы не пожалеете, если научитесь разрабатывать драйвер Linux с нуля.
Читать дальше →
Total votes 33: ↑27 and ↓6+35
Comments7

[Студентам] Советы изучающим git

Level of difficultyEasy
Reading time4 min
Views45K

Периодически от студентов приходят вопросы о работе системы контроля версий Git. Частая причина возникновения этих вопросов — непонимание разницы между репозиторием и обычной папкой.

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

Читать далее
Total votes 35: ↑21 and ↓14+15
Comments118

Спик инглиш, парле франсэ, шпрехен зи дойч, 说中文: дайджест для тех, кто идёт до конца

Level of difficultyEasy
Reading time7 min
Views10K

Этот дайджест я планировала выпустить в пятницу. В попытках сделать заголовок чуть интереснее, я забила в переводчик «говорить по-китайски», он мне выдал 说中文. По привычке проверила перевод в обе стороны, вроде всё адекватно. «А вдруг не так и китаисты с Хабра меня поправят?», — подумала я и полезла за фактчекингом, в ходе которого выяснила, что есть 汉语 — китайский устный и 中文 — китайский письменный, но 汉语 мало используется в повседневной речи и больше в академической среде, а ещё есть ультрапросторечной 中国话. И вообще версия 中文 выжила другие, потому что в официальных документах и буклетах китайский язык обозначается именно так. Далее я погрузилась в чтение статей про иероглифы, символику баланса и центра мира, многонациональный Китай… Короче, глубокая ночь воскресенья, я доделываю дайджест и думаю, что нужно почитать про остальные иероглифы. 

Иногда поражаешься, какие триггеры срабатывают и превращают зубрёжку неправильных глаголов в удовольствие! Когда-то именно чтение книги о французских колониях (государствах Магриба) дало мне наибольший толчок в изучении французского языка: почему-то загадочный мир Северной Африки в звучании парижской речи показался мне даже более привлекательным, чем традиционно манкие Лувр, Версаль, Канны, порт Бордо и Марсель. А ведь на тот момент мне казалось, что я ненавижу все эти глаголы, грависы и проч. 

А вообще, меня давно тревожит мысль: а знаю ли я язык достаточно хорошо? А насколько хорошо знают остальные? А почему один знакомый говорит как native speaker, а второй из его же группы — «иняз финишд»? Делитесь историями и достижениями, а я расскажу, что меня вдохновило в 37 лет сесть за учебники и начать качать французский с твёрдой целью дойти до устойчивого финиша.

Читать далее
Total votes 18: ↑17 and ↓1+26
Comments43

C++23 — финал, C++26 — начало

Reading time8 min
Views36K

С момента моей прошлой публикации состоялось уже две встречи международного комитета по стандартизации C++.

Комитет занимался полировкой C++23:
  • static operator[];
  • static constexpr в constexpr-функциях;
  • безопасный range-based for;
  • взаимодействие std::print с другими консольными выводами;
  • монадический интерфейс для std::expected;
  • static_assert(false) и прочее.

И прорабатывал новые фичи C++26:
  • std::get и std::tuple_size для агрегатов;
  • #embed;
  • получение std::stacktrace из исключений;
  • stackful-корутины.

Подробности
Total votes 44: ↑43 and ↓1+52
Comments34

From Zero to Hero: LeetCode

Level of difficultyMedium
Reading time8 min
Views23K

This is a translation of my article in Russian

In this article, I want to write about my experience of interacting with the LeetCode platform, and describe my preparation for an interview in FAANG similar companies by breaking it down into levels.

The whole article is written based on my experience, the numbers are very rough, I do not pretend to be objective, perhaps there are best practices on how to solve LeetCode problems, it would be cool if you share your experience in the comments.

Read more
Total votes 3: ↑3 and ↓0+3
Comments0

Настройка Yubikey для ssh в Windows и WSL

Reading time5 min
Views5.1K

Когда я стал счастливым обладателем устройства Yubikey 5 nfc и узнал, что при помощи него можно авторизовываться по ssh, я столкнулся с множеством статей про настройку подобной связки на unix-системах… И с полнейшим отсутствием адекватного материала про Windows.
Разобравшись в теме, собрав информацию из многих источников и проверив работоспособность связки на личном опыте, я пишу эту статью для тех, кто решит повторить мой путь.

Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments5

Учим английский с умом: шкала CEFR, тесты IELTS и что всё это значит

Reading time16 min
Views25K

Привет, Хабр. Екатерина. Очень приятно.

Я обучаю английскому языку 17 лет, в основном как частный преподаватель, но были и несколько лет в СУНЦ МГУ, и групповые занятия в языковом центре. Диапазон обучающихся — дети от 8 лет до ЕГЭ, студенты и «молодые специалисты», топ-менеджеры и научные сотрудники. И у всех, конечно, разные цели и разные мотивации — включая уникальный случай just for fun, в котором взрослая ученица за восемь месяцев прошла от «забытого школьного» до сдачи FCE (Cambridge B2 First Exam) с присвоением уровня C1 в устной речи, и всё просто потому, что ей нравился процесс.

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

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

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

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

Читать далее
Total votes 40: ↑38 and ↓2+46
Comments38

Подводные камни компараторов в С++

Reading time9 min
Views8.8K
При использовании компаратора в алгоритмах boost::sort и std::sort важно учитывать некоторые особенности работы этих алгоритмов, игнорирование которых может привести к неожиданным последствиям, в том числе к segmentation fault.

image

Чаще всего при сортировке объектов пользовательских типов написание кода сравнения элементов коллекции не вызывает вопросов. Компаратор должен возвращать true, если первый аргумент меньше второго, то есть в отсортированном массиве первый аргумент должен идти перед вторым. Алгоритмы сначала вызывают компаратор для пары элементов x и y. Если компаратор вернул true, значит, элемент x меньше y и он должен идти в коллекции перед элементом y, если false, то компаратор вызывается повторно для пары y и x. Если компаратор опять вернул false, значит, элементы равны, иначе порядок определен.

Меня зовут Олег Игнатов, я — Development Team Lead в команде KICS (Kaspersky Industrial CyberSecurity) «Лаборатории Касперского». Мы защищаем промышленные инфраструктуры и сети от специализированных киберугроз. В этой статье расскажу о некоторых особенностях использования компараторов в С++, знание которых позволит не наступить на различные грабли и сэкономить время при разборе багов.
Читать дальше →
Total votes 23: ↑22 and ↓1+28
Comments14

Неполная, неточная и наполовину выдуманная история исключений

Reading time9 min
Views7.8K

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

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

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

Читать далее
Total votes 20: ↑19 and ↓1+24
Comments121

Английский, которому меня не учили

Reading time14 min
Views74K

Или максимы Английского языка, которые бы я хотел знать 20 лет назад.

Чем отличается хороший геймер от плохого? Хороший геймер сидит и изучает игру. Он знает каждый закуток. Он может без запинки назвать все характеристики всех юнитов в Star Craft. А самый крутой игрок знает все пропускные способности желтых, красных и синих конвейеров. А плохой игрок использует чит-коды или assistant apps. 

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

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

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

Okay, let's go...
Total votes 104: ↑102 and ↓2+131
Comments174

Есть ли польза от решения алгоритмических задач на LeetCode?

Reading time8 min
Views84K

Пожалуй каждый программист, который сталкивался с вопросом: "А как устроиться на работу в FAANG?" - получал ответ, что ему нужно разобраться с алгоритмами, со структурами данных и прорешать порядка 300-400 задач на leetcode по алгоритмам.

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

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

Читать далее
Total votes 51: ↑43 and ↓8+50
Comments182

Создаем свой загрузочный диск Linux

Reading time13 min
Views38K

В статье описывается способ, как создать собственный загрузочный диск Linux (оптический диск или флешку), добавить в него только нужные программы и убрать все лишнее. Полученный образ в экспериментах занял менее 25 Мб. Он позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.

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

Точка, точка… запятая?

Reading time4 min
Views9.2K

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


Вот, например, у меня на компьютере сегодняшняя дата пишется так — 06.01.2023, а на одном из моих серверов в уголке экрана светится 01/06/23. Это американский формат, и я каждый раз мучительно вспоминаю, 01/06 это первое июня или всё таки шестое января.


Ещё одно национальное отличие — символ отделения целой и дробной части в числах. В России по традиции и в соответствии со стандартами надо отделять дробную часть запятой (Пи = 3,14), а американцы (и вслед за ними программисты) используют десятичную точку (Pi = 3.14). Из-за этого различия иногда случаются разные казусы.

Читать дальше →
Total votes 20: ↑19 and ↓1+21
Comments51

Что почитать Linux-инженеру: книги для новичков и профессионалов

Reading time4 min
Views26K

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

Читать далее
Total votes 13: ↑7 and ↓6+6
Comments16

Как мы навели порядок в C++/Qt проекте с помощью Conan

Reading time12 min
Views13K

О себе

Привет, Хабр! Я Тимлид/Архитектор в компании Монитор Софт. В прошлом C++ разработчик, сейчас все еще удается иногда выходить в поля)). Хочу поделиться нашим опытом использования Conan. С момента описываемых ниже событий прошло года 4, и в целом наше решение уже прошло проверку временем.

Читать далее
Total votes 17: ↑16 and ↓1+21
Comments16

Оболочка и терминал Unix — это одно и то же?

Reading time18 min
Views20K

Сегодня любой уважающий себя разработчик не только программирует, но и так или иначе эксплуатирует свой код. А значит, с вероятностью 99,99% сталкивается с такой штукой, как «терминал». Хотя чаще это называют «консолью» или «командной строкой». 

А как же правильно? И почему эта штука местами такая странная? Без исследования древних машин, принципов общения с ними и легаси ПО тут никак не разобраться.

Осторожно: very long read!
Total votes 59: ↑58 and ↓1+74
Comments20

Чего ждать от NeoVim: особенности редактора

Reading time9 min
Views40K

Привет! Я Антон Губарев, инженер команды Platform as a Service (PaaS) в Авито. Долгое время я пользовался IDE от JetBrains, затем пересел на VS Code. Последние несколько лет работаю с кодом только в NeoVim — адаптировал его под себя и перестал использовать другие IDE.

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

Information

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