Size: a a a

2021 January 10
SHIFU
Крайне полезный сегодня пост с ссылочками, записывайте себе в заметки, но сначала присказка:
Товарищ сегодня написал.
Он C++ разработкой уже несколько лет занимается в банке, и, вот встал вопрос - как будучи синьором развиваться дальше? Что именно делать чтобы стать супер-спецом (мастером)?
К сожалению, задавая такие вопросы публично он даже нарвался на типичного мудака, который встретил его вопросы следующим сообщением:
Вроде бы взрослый человек, а задаешь дебильные вопросы. Из тебя не выйдет супер-программиста по одной простой причине: ты - ДУРАК.

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

Теперь по сути:
1. Вам нужен план с конкретными действиями, такие планы часто уже написаны, я вам ссылки приложу на несколько.
2. В твиттере можно подписаться на иностранных разработчиков, и они с удовольствием ответят вам на личное сообщение. Там вообще, желчи в IT-сообществе сильно меньше, как мне кажется, нежели в российском. + они часто как раз эти планы развития и пишут, выкладывая в общий доступ.

И, вот, собственно, ссылки на подобные планы развития, если у вас есть чем еще поделиться, или есть по С++ для моего товарища, постите в чат, это будет крайне полезно:

Путь Reverse-инженера:
https://twitter.com/daeken/status/1025123319824244738

Как стать разработчиком ядра Linux:
https://gist.github.com/vegard/22200a9f91af138a99ae22a9b814a9a4

Путь низкоуровневого программиста:
https://github.com/gurugio/lowlevelprogramming-university/blob/master/README_ru.md
источник
2021 January 11
SHIFU
Офигенный ресурс - построй свой (и тут куча типов приложений на разных языках), прям рекомендую: https://github.com/danistefanovic/build-your-own-x
источник
2021 January 12
SHIFU
Если ктото фаззингом интересуется, нате вам - Corpus minimization: https://www.youtube.com/watch?v=947b0lgyvJs
источник
2021 January 16
SHIFU
На днях мне написала HR одной аутсорс-конторы, сейчас разберем что не так на реальном примере, я специально спросил у нее разрешения дать ей рекомендации, и получив согласие сформировал список недочетов, который, думаю, будет полезен и вам.

Сообщение:
Николай, здравствуйте!
Я рекрутер компании ****. Заинтересовал Ваш опыт работы JavaScript (React) Developer. Сейчас у нас открылись позиции на крупный банковский проект.
Над чем предстоит работать: линейка продуктов Cash Management. Продукт корпоративного блока, предоставляющий функции управления финансовыми потоками для предприятий и корпораций с развитой филиальной сетью.
Что-то из функционала уже существует, что то будет разрабатываться с нуля. Работа по Скраму, используется Confluence, Jira.
В команде 4 дев, 1 аналитик, 1 ПМ.
Формат работы - удаленный. Ниже прикрепляю презентацию для первичного ознакомления с компанией.
Тут ссылка на классическую скучную пдф о компании.
Скажите, пожалуйста, вам может быть интересно наше предложение?

Ответ:
Вот смотрите, вводные:
1. Есть специалист, вы ищете специалистов с опытом на серьезный проект, React - это тема хайповая сейчас и люди, которые в этой технологии разбираются хорошо, уже все при работе.
2. Соответственно, у вас два варианта: долбить кандидатов на «удачу», надеясь что человек еще не выставил свое резюме (хотя подумывает о поиске новой работы), и вы успеете его выловить до того как за него начнется конкурентная борьба, либо переманить его с текущего места работы.

Надеюсь, вы понимаете что вы занимаетесь первым вариантом подбора? С таким сообщением как вы написали, о переманивании речь не идет в принципе.
Если не понимаете - это нужно понимать, чтобы перейти ко второй части:

Теперь, делаете вы это осознанно, или просто потому что так сказали, не суть - процент отклика можно увеличить, подключив вторую стратегию - переманивание кандидата.
Причем эта стратегия в любом случае будет приносить пользу, поднимая ваш процент удачных отзывов, то есть вы ничем не рискуете, и вот пункты на которые стоит обратить внимание:
1. Заинтересовать человека - это именно от слов «вызвать интерес», если вы посмотрите ваше сообщение, то в нем вызвать интерес может лишь пункт про «крупный банковский проект», но этот пункт слабовато описан.
2. Больше в вашем сообщении нет ничего интересного, вообще.
3. Если вы переберете основные причины, по которым человек может сменить работу, вы найдете: интерес, соответствие потребностям (деньги, время, график и тп.).

Соответственно, если вы берете два основных этих постулата, то получается:
1. Нужен интерес. Что вызывает интерес у программиста? Сложность задач (конкретно, какие вызовы будут перед ним стоять), технологии которые предполагается использовать.
2. Потребности:
1. Деньги - вы, как и все остальные, похоже практикуете анонимность в этом вопросе, но поверьте - просто обозначив максимально возможную планку, вы отсеете лишних кандидатов - которые получают больше, и не будете тратить ни свое ни их время зря. Плюс - получаете шанс вызвать интерес, если кандидат по какой то причине слишком дешево себя ценит.
2. Время - Порой деньги это не все, и возможность работать частично, совмещать работу с личными делами - это необходимое условие.
3. Карьера - Кому-то важно то, что он будет расти в тимлида, может быть он о этом думал но не решался. Плюс - дополнительный триггер воздействия.
4. Профессиональный рост - Возможность попробовать что-то новое, свобода выбора - это Плюс, который сложно переоценить.

Резюмируя - у вас в сообщении нет ничего этого. Только то, что какой-то очередной банковский проект. И у вас очередная аутсорс-компания. Все.
источник
2021 January 17
SHIFU
источник
2021 January 19
SHIFU
Вот хорошее видео, где простыми словами рассказано о самомотивации, определении целей и прочем. У Питерсона много видео, а тут получилась хорошая выжимка: https://youtu.be/_y1tPmQNex8
источник
SHIFU
Очень крутой доклад про rust, понятным языком с примерами относительно безопасности, рассказывает об особенностях раста: https://t.co/dLhAFt3XHH
источник
2021 January 20
SHIFU
Я тут читаю статью Дэна Абрамова про компоненты, если кто не знает - это создатель Redux.

И, в этой статье в самом начале он вставил такое дополнение спустя много лет:

Update from 2019: I wrote this article a long time ago and my views have since evolved. In particular, I don’t suggest splitting your components like this anymore. If you find it natural in your codebase, this pattern can be handy. But I’ve seen it enforced without any necessity and with almost dogmatic fervor far too many times. The main reason I found it useful was because it let me separate complex stateful logic from other aspects of the component. Hooks let me do the same thing without an arbitrary division. This text is left intact for historical reasons but don’t take it too seriously.

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

https://medium.com/@dan_abramov/smart-and-dumb-components-7ca2f9a7c7d0
источник
SHIFU
Народ! Делюсь лайфхаком. Не реклама, покупайте где хотите, мне насрать, но не поделиться не могу.
Колесики на офисных креслах - скользят на ламинате, и не едут нихрена на ковровых покрытиях.
Товарищ посоветовал вот такую замену, ЭТО ПРОСТО ОХ*ЕННО!
Нюансы - шпильки M10 для икеевских кресел, остальные обычно идут M11.
Я брал по этой ссылке, потому что у них был нужный диаметр + из России доставка быстрая была.
https://aliexpress.ru/item/32944808613.html?spm=a2g0s.9042311.0.0.5e5133ed2yrqj9&_ga=2.103965120.1767261498.1611143115-1615921054.1609904119
источник
2021 January 21
SHIFU
Я 25 лет работаю с компами, почему я не догадался об этом... гениально https://twitter.com/shanselman/status/1351315661880872962?s=09
источник
SHIFU
Переслано от Андрей Москаленко...
возможно будет кому-то интересно, еще одна подборка полезного
https://github.com/zualex/devmap
источник
SHIFU
Если кто не знал - курс по созданию своей ОС на Rust от Серджио, который он читал в Стенфорде. К сожалению, как я понял, видео не доступны - есть только вот эти лабораторки плюс презентации: https://cs140e.sergio.bz
источник
SHIFU
источник
SHIFU
Наконец то она приехала!
Комментарии Лайонса к Unix 6
Что это за книга: в 1976 году, Джон Лайонс в целях обучения своих студентов программированию, написал книгу, в которой помимо кода операционной системы Unix(на тот момент 6-й версии), написал комментарии с объяснениями что делает КАЖДАЯ строка кода.
И теперь она лежит у меня на столе, готовая к новым проектам.
Немного отличается от того как программистов учат у нас в вузах да?
источник
2021 January 23
SHIFU
Я люблю Legacy

Неприязнь к легаси-коду давно известна.
Многие программисты с ненавистью повторяют эти слова, но…
Я Legacy люблю, потому что это прекрасная возможность внедрить что-то новое и отточить практики рефакторинга.
Да и вообще, испытываю огромное чувство удовлетворения, когда превращаю legacy-код во что-то прекрасное.
Только есть нюанс - нужно огромное количество терпения, потому что придется совмещать работу над новыми фичами или исправлением багов с рефакторингом, а это удлиняет процесс.
Но, у меня есть несколько простых рецептов:
1. Я стараюсь выделять по часу в день на рефакторинг.
2. Когда есть новый таск, в процессе его выполнения, я не нагромождаю костыль на костыль. Я стараюсь без фанатизма провести рефакторинг, необходимый для того чтобы доработка не всталвяла кусок новых проблем, а несла с собой положительные изменения относительно того что было.
3. Когда нужно исправить баг - отлично, значит будет исправлен не только он, но и часть кода вокруг него.

Получается, я рефакторю код перманентно. Чтобы я не делал, изменения идут не только по поставленной задаче, но и улучшают код вокруг нее.
Да, это маленькие шаги, общий процесс идет долго, но чувство удовлетворения от осознания того, что я не просто выполнил задание, но и улучшил кодовую базу, греет душу.
источник
2021 January 25
SHIFU
По мотивам разбора обращения HR'а появился вопрос:
Как обозначив верхнюю планку по итогам собеседования сделать предложение кандидату заметно ниже неё? Я не стесняюсь называть сумму начиная с которой мне было бы интересно разговаривать дальше.
Ответ:
Верхняя планка - не обязывает платить кандидату именно эту сумму, она нужна лишь чтобы сопоставить его нижнюю планку с вашей верхней.
Если максимальный уровень зарплат для него слишком мал, отлично, каждая из сторон не будет тратить свое время и силы.
Ваши HR’ы смогут более плотно работать с теми, чьи зарплатные ожидания совпадают с вашими возможностями.
Кандидаты же не будут тратить энергию и время на прохождение лишних собеседований (этих собеседований у них и так много), и не будут потом раздраженно бухтеть в соцсетях о том что «их время потратили зря».
Если взять самые распространенные кейсы:
1. Кандидат отказался сообщать о своих зарплатных ожиданиях (это больная тема у программистов, они постоянно боятся продешевить). В этом случае называем сколько готовы ему платить, все просто. Тут расхождений с ожиданиями не должно быть.Если кандидат негативно на это реагирует, то тут два варианта:
• Кандидате не понимает, что если он не говорит о своих пожеланиях, это невозможно угадать.
• HR изначально не спросил(а) о его зарплатных ожиданиях, это уже недоработка HR’а.
Если резюмировать - начальная планка нужна для понимания целесообразности траты времени обеими сторонами
2. Кандидат обозначил нижнюю планку (как вы, или я, тут я солидарен). Если по результатам собеседования мы понимаем, что такие деньги за его верифицированные знания и опыт мы платить не готовы, то просто отказ. Если HR грамотно выстраивает формулировки, а кандидат готов подвинуться в своей зп, о чем сам дал понять, то там есть еще одно измерение для диалога.
3. Если кандидат обозначил нижнюю планку, а HR изначально понимает что таких бюджетов у них нет, но все равно пытается затянуть кандидата на собеседование, с целью потом продавить, то это уже моветон. Чаще всего, подобная тактика ни к чему хорошему не приводит.
источник
SHIFU
Важная новость
Я смог высвободить себе время на фултайм, и в связи с этим начинаю неспешно искать новую работу, соответственно, в компанию с которой достаточно долго работали, требуется опытный React разработчик.
О позиции:
Ребята отличные, руководители проекта бывшие программисты. Общение в команде на русском. Но, часть подразделений англоговорящие, поэтому разговорный английский обязателен (понятно, что он может быть не идеален, но донести свою мысль и понять что требуется сделать, то есть вести диалог - нужно).
Стек: React, Redux, Saga, Webpack etc.
Детали: Именно над фронтом придется работать одному, на остальных направлениях есть другие разработчики.
Плюсы - спокойно, никто не будет пинать за косяки в коде. Минусы - спокойно, никто не будет пинать за косяки в коде.
Легаси много, я его начинал исправлять, но это процесс долгий.
О проектах: Тут их две штуки, один как огромная админка для облачного сервиса, второй - визуальный конструктор.
Условия: ДО 3500$ в месяц, фултайм, график гибкий, полностью удаленно (тут это умеют и практикуют годами). Работа как ИП по контракту с американской компанией, это не сложно, как что - покажут и объяснят.
Кого хочется видеть на этой позиции: Нужен опытный, зрелый разработчик, который может само-организоваться, имеет чувство профессиональной гордости и понимание того как выглядит качественный код, который, несмотря на отсутствие коллег по стеку, может расти и привносить лучшее в проект. Но, который, тем не менее понимает нужды бизнеса, и готов в угоду им искать компромисс.
Пока я эту вакансию не выставил на хх, можете просто слать мне на почту свои резюме: talk@shfu.ru
источник
2021 January 26
SHIFU
Я себе давно искал механику с плоскими клавишами, чтобы без проблем перескакивать с мака на клаву, и вот, приехало сие чудо, пока ощущения отличные, мазать стал меньше, но, непривычна отдача у гатеронов. Коричневые гатероны это не черри...https://aliexpress.ru/item/1005001311515028.html?spm=a2g0s.9042311.0.0.226d33edyx4GoU&_ga=2.53345448.1658776148.1611575705-684598665.1611575705
источник
2021 January 27
SHIFU
Написал статью про тактику Аукциона при общении с рекрутерами, я считаю, что это оптимальный вариант, который позволяет убрать из поиска лучших вариантов работы, изматывающую карусель с торгами:

https://github.com/nydevel/programmer/blob/main/Recruiting/7.%20Торги%20с%20рекрутерами.%20Аукцион.md
источник
2021 February 01
SHIFU
источник