Как стать автором
Обновить
4
0

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

Отправить сообщение

Тест Джоэла как инструмент собеседуемого

Время на прочтение5 мин
Количество просмотров67K
Многие хабровачане наверняка знакомы с тестом Джоэла (перевод). Если в двух словах, Джоэл Спольски предлагает на основе выбранных им критериев оценить любому инженеру, насколько хороша его команда.

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

Допустим, эта часть Вам понравилась и Вы задумались о том, чтобы перейти в этот проект. Потенциально Вам с этими людьми работать следующие несколько лет (ну минимум — месяцев). Поэтому имеет смысл пораспрашивать о проекте поподробнее. А заодно и будущих сокомандников прощупать — что они за перцы? ;)

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

Читать дальше →
Всего голосов 104: ↑86 и ↓18+68
Комментарии82

Трюк с XOR для собеседований и не только

Время на прочтение8 мин
Количество просмотров102K


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

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

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

Разумеется, существует множество прямолинейных способов решения этой задачи, однако есть и довольно неожиданный, в котором применяется XOR.
Читать дальше →
Всего голосов 92: ↑86 и ↓6+80
Комментарии104

Как научиться чему угодно с помощью техники Фейнмана

Время на прочтение9 мин
Количество просмотров197K


Ричард Фейнман был физиком, удостоенным Нобелевской премии, который внёс значительный вклад в такие области, как квантовая механика и физика частиц. Он также стал пионером квантовых вычислений и ввел понятие нанотехнологии. Он был известным лектором, преподавал в Корнелльском университете и Калифорнийском технологическом институте.

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

Нет никаких чудо-людей. Просто случилось так, что они заинтересовались чем-то и выучили все про это. Ричард Фейнман

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

На протяжении всей своей работы и жизни, Фейнман с элегантностью и простотой давал представление о своём процессе рассмотрения сложных концепций в мире физики и изложения знаний/идей. Многие из этих наблюдений о его процессе обучения были собраны в то, что мы сейчас называем «техникой Фейнмана».

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

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

В этой статье будет представлен обзор техники Фейнмана и того, как вы можете применять её для постоянного расширения своих знаний и навыков. Короче говоря, Фейнман научит вас не только тому, как учиться, но и тому, как по-настоящему понимать.
Приятного чтения!
Всего голосов 85: ↑74 и ↓11+63
Комментарии106

Проект Repka Pi — переклеивание этикеток или реальная разработка?

Время на прочтение10 мин
Количество просмотров37K

Проект Repka Pi - переклеивание этикеток или реальная разработка?

Сайт проекта Repka Pi http://repka-pi.ru/

Статья с ответами на волну вопросов после первых анонсов проекта Repka Pi ещё задолго до выхода проекта на рынок и появления многочисленных тестов и обзоров.

Читать далее
Всего голосов 136: ↑123 и ↓13+110
Комментарии141

Самые частые грабли при использовании printf в программах под микроконтроллеры

Время на прочтение8 мин
Количество просмотров22K
Время от времени в моих проектах приходится применять printf в связке с последовательным портом (UART или абстракция над USB, имитирующая последовательный порт). И, как обычно, времени между его применениями проходит много и я успеваю напрочь забыть все нюансы, которые требуется учитывать, чтобы он нормально работал в крупном проекте.

В данной статье я собрал свой собственный топ нюансов, которые возникают при использовании printf в программах под микроконтроллеры, сортированный по очевидности от самых очевидных к полностью неочевидным.
Читать дальше →
Всего голосов 42: ↑38 и ↓4+34
Комментарии26

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

Время на прочтение31 мин
Количество просмотров16K

Сап, котятки.


Я пришёл рассказать о проекте UAVCAN — новом сетевом стандарте для организации взаимодействия узлов и компонентов современных транспортных средств с высоким уровнем автономности/автоматизации. Название является акронимом от Uncomplicated Application-level Vehicular Computing And Networking (несложные бортовые сети и коммуникации уровня приложения).


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



Конъюнктура


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


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

Ну и что?
Всего голосов 21: ↑21 и ↓0+21
Комментарии17

Разработчики встраиваемых систем не умеют программировать

Время на прочтение9 мин
Количество просмотров57K

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

Редко когда речь заходит об обратной проблеме, имеющей место в куда более узких кругах разработчиков встраиваемых систем, включая системы повышенной отказоустойчивости. Есть основания полагать, что ранний опыт использования MCS51/AVR/PIC оказывается настолько психически травмирующим, что многие страдальцы затем продолжают считать байты на протяжении всей карьеры, даже когда объективных причин для этого не осталось. Это, конечно, не относится к случаям, где жёсткие ценовые ограничения задают потолок ресурсов вычислительной платформы (микроконтроллера). Но это справедливо в случаях, где цена вычислительной платформы в серии незначительна по сравнению со стоимостью изделия в целом и стоимостью разработки и верификации его нетривиального ПО, как это бывает на транспорте и сложной промышленной автоматизации. Именно о последней категории систем этот пост.

Читать далее
Всего голосов 130: ↑111 и ↓19+92
Комментарии239

Немного полезностей недавно отбывшим от искушенного кочевника

Время на прочтение3 мин
Количество просмотров20K

Если вы недавно поспешно уехали за границу (или собираетесь в будущем), то вот несколько неочевидных лайфхаков на основе моего 10+ летнего опыта постоянных переездов (a.k.a. жизнь "диджитал номада").

Я работаю удаленно всю жизнь, сейчас являюсь сооснователем b2b YC-стартапа. Пожил в десятках мест по всему миру, от коротких зимовок на островах Юго-Восточной Азии до жизни по два года в 🇬🇧 Лондоне и 🇮🇱 Тель Авиве. Сейчас в 🇪🇸 Барселоне.

Читать далее
Всего голосов 60: ↑41 и ↓19+22
Комментарии7

Микроэлектроника в России до и после 24.02.2022

Время на прочтение14 мин
Количество просмотров325K

В свете последних событий (для потомков: гуглим Россия, Украина, 24 февраля 2022), приведших к введению санкций против России в сфере высоких технологий и, в частности, микроэлектроники, я часто слышу вопрос: а что дальше? В каком сейчас состоянии российское микроэлектронное производство? Россия сможет создать полностью локальное производство чипов?

Так сможет или нет?
Всего голосов 441: ↑435 и ↓6+429
Комментарии658

Подборка о релокейте: страны, в которых хорошо

Время на прочтение5 мин
Количество просмотров107K


Мы уже несколько лет выпускаем на Хабре истории о переезде. Некоторые успешные, некоторые не очень (примерно 30% экспатов со временем возвращались).


Сейчас тема стала особенно актуальной. И, может быть парадоксально, но количество вакансий из других стран (тег «Релокейт») у нас в боте тоже выросло в полтора раза. Никакой русофобии и близко не наблюдается, компании понимают, что сейчас уникальный шанс получить мозги, выезжающие из страны.


Если кто-то задумался о том, что делать, — вот личные истории из тех стран, в которые сейчас реально переехать, и в которых относительно просто построить новую жизнь.

Читать дальше →
Всего голосов 80: ↑63 и ↓17+46
Комментарии317

Операционные системы с нуля; уровень 3 (младшая половина)

Время на прочтение22 мин
Количество просмотров21K

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


оригинал


Нулевая лаба


Первая лаба: младшая половина и старшая половина


Вторая лаба: младшая половина и старшая половина

Читать дальше →
Всего голосов 28: ↑28 и ↓0+28
Комментарии3

Начинаем изучать Cortex-M на примере STM32, часть 2

Время на прочтение21 мин
Количество просмотров163K
Данная статья является продолжением цикла по программированию микроконтроллеров на базе ядра Cortex-M.
Первую статью можно прочитать здесь:
Начинаем изучать Cortex-M на примере STM32
Задачей статей является подробное описание особенностей, возникающих при программировании МК. Материал не предназначен для желающих за 10 минут запустить пример мигания светодиодом. Я постараюсь подробно описать то, что часто скрывают от новичков, чтобы их не напугать.

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

Основной акцент сделан на изучение документации на ядро Cortex-M и документации на конкретный контроллер.
На этот раз речь пойдет про прерывания, а так же будут затронуты некоторые вопросы архитектуры памяти и структуры прошивки МК.
Продолжение под катом
Всего голосов 29: ↑28 и ↓1+27
Комментарии33

«Программист-прагматик. Путь от подмастерья к мастеру»: коротко о главном (часть первая)

Время на прочтение22 мин
Количество просмотров72K
О книге «Программист-прагматик. Путь от подмастерья к мастеру» Эндрю Ханта и Дэвида Томаса знают, наверное, все, кто занимается программированием, причем многие — в основном из упоминаний в подборках и цитат в более современных статьях. Учитывая, что этот сборник практических советов для разработчиков скоро отметит двадцатилетний юбилей, тот факт, что его до сих пор приводят как источник ценной информации, вызывает уважение. Секрет прост: авторы, хоть и делали акцент на практической применимости своих подсказок, говорили по большей части о фундаментальных принципах построения рабочего процесса. Многие технические моменты, которые упоминаются в тексте, действительно давно устарели, но базовые подходы к разработке, тестированию, взаимодействию внутри команды и с аудиторией остаются актуальными.


Ниже вы найдете конспект первых четырех глав; речь в них идет об авторской концепции самообразования, основах прагматического подхода в программировании и правилах подбора инструментов. Книга очень удобна для «точечного» чтения: материал представляется в виде отдельных параграфов-подсказок, снабженных перекрестными ссылками. За рамками этого конспекта остались примеры из конкретных языков, разбор кейсов из авторской практики, те самые ссылки, упражнения на закрепление и некоторые забавные аналогии, оживляющие текст — так что рекомендую ознакомиться с оригиналом, если какие-то из тезисов вас заинтересуют. Приятного чтения!
Читать дальше →
Всего голосов 20: ↑19 и ↓1+18
Комментарии5

ROS: стань контрибьютором самого большого Open Source проекта в робототехнике

Время на прочтение9 мин
Количество просмотров8.5K

ROS - самая популярная открытая робототехническая платформа в настоящий момент. Я и мои коллеги в Samsung Research - основные контрибьюторы Navigation2 Stack, важнейшего компонента ROS, который отвечает за движение роботов.

В этой статье я расскажу в целом о ROS, о разрабатываемом нами стеке и о том, как организована коллективная работа над проектом. В заключение - о нашем треке в школе разработчика COMMoN, которую мы со Стивом Масенски из Samsung Research America, лидером проекта ROS2 Navigation Stack, проведем в августе-сентябре этого года в рамках конференции Samsung Open Source Conference Russia. Участники школы получат шанс внести вклад в репозиторий стека и сделать свой коммит в известный проект.

Читать далее
Всего голосов 11: ↑10 и ↓1+9
Комментарии3

Российская судебная система – настоящий киберпанк?

Время на прочтение4 мин
Количество просмотров12K

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

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии52

Восхождение на Эльбрус — Разведка боем. Техническая Часть 2. Прерывания, исключения, системный таймер

Время на прочтение8 мин
Количество просмотров7K
Продолжаем исследовать Эльбрус путем портирования на него Embox.

Данная статья является второй частью технической статьи об архитектуре Эльбрус. В первой части речь шла о стеках, регистрах и так далее. Перед прочтением этой части рекомендуем изучить первую, поскольку в ней рассказывается о базовых вещах архитектуры Эльбрус. В этой части речь пойдет о таймерах, прерываниях и исключениях. Это, опять же, не официальная документация. За ней следует обращаться к разработчикам Эльбруса в МЦСТ.
Читать дальше →
Всего голосов 36: ↑34 и ↓2+32
Комментарии4

Безопасность встраиваемых систем Linux

Время на прочтение24 мин
Количество просмотров15K
Embedded Linux security

Весь наш мир построен на противоположностях. Если вы создаете свое устройство и продаете его, то всегда найдется тот, кто захочет его взломать. Цели у злоумышленника буду самыми разными, от попыток сделать клон устройства (привет Китаю) до шантажа конечных потребителей, что весьма ухудшит вашу репутацию с точки зрения изготовления надежных устройств. И чем популярнее система на основе которой построено устройство, тем интереснее она злоумышленнику. В последнее время активно развивается сегмент одноплатных компьютеров, таких как Raspberry Pi, и множества других. Linux системы по распространенности использования во встраиваемых систем, вышли на первые места. Большая функциональность устройств, например наличие разных беспроводных интерфейсов коммуникаций, в совокупности с большими возможностями ОС Linux, привела к серьезной необходимости организации защиты устройства. Некоторые думают, что достаточно отключить учетную запись root и установить надежный пароль, но на самом деле это только малая часть того, что следует сделать. Какие технологии и концепции используются для снижения рисков и реализации более безопасного устройства работающего на Linux узнаете под катом.
Читать дальше →
Всего голосов 42: ↑41 и ↓1+40
Комментарии19

Изучаем RISC-V с нуля, часть 2: прерывания и стыковка с Си

Время на прочтение17 мин
Количество просмотров10K


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

Читать дальше →
Всего голосов 16: ↑16 и ↓0+16
Комментарии12

Откровения трезвого инженера

Время на прочтение3 мин
Количество просмотров69K
image

Ответ на: Откровения пьяного старшего инженера

… Я выскажу свое мнение и значительно короче, наверное.

  1. Работа в нашей отрасли полностью построена на порочных стимулах.
  2. Лучший способ продвинуться по карьерной лестнице — это смена компании. Компании, в которых вы работаете, будут вознаграждать хорошую работу большей работой и ответственностью, а не большим количеством времени и/или денег. Компании, в которые вы переходите, вознаградят вашу предыдущую хорошую работу в других компаниях большими деньгами. На самом деле это не имеет смысла… См. Пункт №1.
  3. Каждый раз, когда я меняю работу, я сокращаю свои обязанности на 50% и увеличиваю зарплату на 50%. На моей первой работе я был очень раздражен, когда новые сотрудники, которые были на моем уровне квалификации, зарабатывали больше, чем я. Теперь другие старожилы в моей компании с таким же уровнем квалификации раздражаются, когда я зарабатываю намного больше, чем они (обратите внимание, что количество смен работы >= 3). На самом деле это не имеет смысла… См. Пункт №1.
Читать дальше →
Всего голосов 154: ↑139 и ↓15+124
Комментарии148

Как авторы в Практикуме пишут образовательные курсы

Время на прочтение9 мин
Количество просмотров11K
За каждым из курсов в Яндекс.Практикуме стоит большая команда: разработчики, иллюстраторы, дизайнеры, методисты, наставники, код-ревьюеры и, конечно, авторы и редакторы, которые пишут материал курса.

Если коротко, программа курса создается так:



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

В этом посте мы расскажем, как процесс написания курсов устроен со стороны авторов. Под катом — главные правила создания полезных курсов, концепция смерти автора, топ-5 вещей, которые не надо делать, если вы хотите написать хороший курс, и немного личных историй. Пост пригодится специалистам, которые участвуют в процессе передачи знаний: тимлидам, техноблогерам и создателям обучающего контента.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии3

Информация

В рейтинге
Не участвует
Откуда
Москва, Москва и Московская обл., Россия
Зарегистрирован
Активность