?

Log in

No account? Create an account
  Journal   Friends   Calendar   User Info   Memories
 

Электронный миссионер

1st June, 2018. 3:04 pm. Трактат о душе

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


Лично меня подобные вопросы волновали с раннего детства. И есть бесконечное количество шарлатанов, которые пытаются дать ответы на данные вопросы. Имена этих шарлатанов на слуху, написаныы в истории и различных, им поклоняются миллиарды людей. И каждый день количество книг и шарлатанов только множится. Когда я вижу очередного “духовного учителя”, я точно знаю, что он мне врёт. И даже если он искренен, и даже говорил с богом, то он всё равно врёт. Любое духовное учение - лживо.
“А почему это ложь?” - спросите вы. Здесь есть простой и банальный ответ. Он будет наиболее близок любителям компьютерных игр и программистов. Но так же понятен будет и обычным людям.

Read more...Collapse )

Read 36 Notes -Make Notes

1st June, 2018. 10:24 pm. Программисты - ходите на собеседования!

Обязательно ходите на собеседования, даже если вы влюблены в свою работу. Никто не заставляет вас её менять. При чём, если вы получаете 50 000 рублей - идите на собеседование на 100 000, а если 100 000, то на 150 000 и т.д. Только повышайте планку. Ходить не реже раз в три месяца! В крайнем случае - пол года. Иначе вы покроетесь плесенью, и не будете знать где у вас провалы.

Самые ценные собеседования - это провальные, те, после которых вы чувствуете себя ничтожеством, которое ничего не смыслит в программировании - это то, что поможет вам расти дальше!

Сегодня было самое провальное собеседование в моей жизни. Провальное от слова совсем, я обосрался везде. Какие были вопросы:
- Как устроен системные вызовы linux на языке ассемблера на ARM-процессоре (специфический вопрос, не спорю).
На х86 я более-менее помню, на арме не знаю - провал. Хотя логику работы системных вызовов смог объяснить. Меня умыли, что я чмо и не знаю арм-ассемблера.
- Какие средства синхронизации бывают? Какие средства синхронизации можно использовать внутри контекста прерывания, какие нет и почему?
Рассказал про мьютексы, семафоры. Мне напомнили про спин-блокировки. Про синхронизацию в контексте прерывания я слышал, и даже рассказывал на своих лекциях, но забыл.
- Чем отличается шина i2c от spi. (тут я обосрался конкретно, и ответил что количеством проводов). Сразу был задан вопрос, зачем в i2c стоят терминаторы и какой их номинал. Тут я тоже облажался, и сказал что для согласования линии. А мне напомнили, что там тупо открытый коллектор...
- Может ли интерфейс RS-232 работает ТОЛЬКО по двум проводам: RX и TX? Ну-ка, скажите мне? Эй di_halt ? Оказывается, что плохенько, на 9600, но МОЖЕТ!!! А почему?
- Как лучше располагать сигнальные линии и питание в многослойных платах и почему? Питание внутри слоёв, или сигнальные линии внутри слоёв. Тут вообще вопрос спорный, и я готов выслушать варианты ответов. Но я сказал, что питание следует располагать внутри слоёв (на четырёхслойке внутри бутера), а сигнальные линии на топе и ботоме, чтобы меньше были наводки. Снова промах.
- Для его у дифференциальных линий дорожки идут везде вместе? Тут было полное попадание, т.к. активно сейчас с ними работаю - для эквивалентности наводки.
- Шина RS-485. Обычно на такой линии есть терминаторы. Но у нас схема звезда, с переменным количеством подключаемых модулей. Какие средства избежания коллизий и помех есть? Не знал - изменение фронта сигнала.
- Что такое красное и бинарное дерево? - не знаю.
- Как работать с cmake. Работал крайне мало, не знаю.
- yocto linux - не использовал, не знаю.
Был ещё ряд вопросов, на которые я не смог найти ответы.

После такого обтекания, мне предложили решить ряд задач, на которых я окончательно запоролся.
Задачи:

1. Написать функцию, которая инвертирует в uint32_t все биты.
Суть задачи ясна, как решать - более-менее понятно. Но я не помню бинарные операторы, плюс от волнения налажал - провал.
2.
int32_t a = -200;
uint32_t b = 200;
return *(uint32_t * (&a)) > b


Что вернёт данная функция? Задача - блестящая. Я провалился процентов на 30.
3. Функция расчёта среднего арифметического двух чисел int32_t.
4. Способы вывода в программе, в т.ч. в поток ошибок. После стольких провалов я и тут облажался, хотя ответ знал.

Вопросов по электронике, линуксу, ассемблеру и программированию было очень много. Собеседование было достаточно грубым, и где-то даже унизительным. Мне намекнули, что я гожусь только чтобы подметать помещение. Я чуть там стол не опрокинул и хотел уйти хлопнув дверью. Формат беседы был построен, на самом деле чтобы меня унизить. Но, господа, я им так благодарен! Эти люди показали явный уровень моих навыков: куча дилетанских разрозненных знаний, имение представление о различных областях, но нигде не глубоко. Кроме разве что пространства пользователя и разработки в нём. Это очень ценно!

Read 57 Notes -Make Notes

Back A Day - Forward A Day