Заметки отпетого разработчика. / c++ :: языки программирования :: программирование :: личное :: читерство :: люди :: программист :: много букв :: geek (Прикольные гаджеты. Научный, инженерный и айтишный юмор)

много букв c++ языки программирования программирование geek программист люди читерство личное 

Заметки отпетого разработчика.

Конечно, есть силы молчать, однако в этот четверг мне в стакан "любви" к людям в очередной раз долили через край.

Коротко о себе:

Программист - в настоящий момент Ведуший или Lead*(см. сноска 1). Более 20 лет опыта - С и С++ любимые языки общения с персоналками.

   За последние 3 года из 500 назначенных интервью я провел почти 300 - Я интервьюирую людей для компании-работодателя.

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

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

Начнем с теоремы:

    В IT компаниях, при найме, стараются оценивать профессиональные навыки и избегать субъективности.

Доказательство от противного (от меня):

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

Перефразирую: положим - Я вас найму, и Вы, чисто случайно, попадете в мою команду

>>>   я вас (с Вашей поперек-пиздой) трахать буду минут, в лучшем случае 30 (в день, и далеко не ежедневно) - с возрастом как известно дойти к финишу все труднее*(см. сноска 2).

А вот меня за сгоревшие сроки и проебанный продакшн (приложение, вебсайт) будут трахать всем колхозом месяца 2/3, это если мне дадут notice period*(см. сноска 3).

А ведь могут и не дать, а кое-что похуже сделать - если прям захотят. Контракт что дышло - как повернешь... *(см. сноска 1 - последнюю часть)

Так что, если вы придете ко мне на интервью, будьте уверены, я попрошу Вас написать код.

- Хоть какой-нибудь!

- Хоть одну строчку.

- Ну хоть что-то.

Так вот дорогие мои читатели этого опуса - вы не поверите! Но в этот четверг... Это таки случилось! В очередной раз!

И нет бы это был какой-нибудь новоиспеченный борец за зарплату IT специалиста, который пришел на собеседование без подготовки, курсов и прочитанных книг. Но с чатом GPT или другом за спиной.

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

а не другому интервьюверу уровня Senior*(см. сноска 4)

В его резюме было образование по специальности и даже несколько компаний в которых он числился как специалист и потом Lead*(см. сноска 1 снова). Весь фарш!

 А вот то, что получилось: Человек говорил предельно гладко, говорил хорошо! Возможно он читал https://cppreference.com/ и программировал, подумал я, но все-равно дал ему задание.

Ведь для меня важно чтобы человек писал код. Чтобы по крайней мере его уважали люди уровня Senior*(можно еще раз глянуть на сноску 4)

Только вот в критический момент написания пары строчек кода кандидатом, я словил себя на мысли, что пациент нихуя не программист даже уровня Junior*(смотри сноску 5).

 -> Если вы хоть немного шарите в программировании (не только С++, но любой язык)

 -> и знаете что такое палиндром. (погуглите если не знаете)

То Вы 100% сможете написать функцию для проверки - является ли строка палиндромом или нет.

После того что я увидел на этот раз, хотелось сказать только одно:

Однако - мне было жалко этого человека. Было видно, что он САМ все понял прямо сейчас. В процессе написания - У него в глазах стояли слезы.

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

А Ведь кроме как "пинать хуи" - Ваш Lead* должен уметь писать и код. Этот человек это перестал делать уже года 3 как.

А жаль мне было, что за последние 2 месяца он был единственным человеком с большой буквы.

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

Я дал ему еще кое-что на "написать" и "просмотреть" для проверки. Но это было напрасно.

  Так что основная моя мысль в этом послании - "Пишите код". Даже если ваша задача на проекте править баги. Пишите код!

Даже если вы считаете, что не знаете что бы такое написать - найдите что - и напишите код. Хотя бы потому что чтобы вырасти из специалиста уровня Junior* в специалиста уровня Middle*(см. сноска 6) и выше надо писать код.

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

И еще - даже не пытайтесь читить с другом или использовать чат GPT. Вы просто получите черную метку в той компании куда хотите попасть.

Напишите ка лучше код. А пинать хуи оставьте тем, кто хочет получить черную метку.

Возьмите задачи например тут https://leetcode.com/

В конце концов - мне в личку черканите.

Ebool isPalindromeJuniorCconst std::strings str)
{
int length = str.lengthO;
E -for (int i = 0; i < length / 2; ++i)
I f- {
E;	if (str[i] != str[length - 1 - i])
{
| • • • I • • •»• return false;
}
V >
;• return true;
}
Ebool isPalindromeLeadCconst std::string_view£ str)
{
auto right


сноска 1:

Lead* - Ведуший программист - специалист высшей категории (дайте эпичных задач и эпичных людей - и мы все сделаем).

 Бытует мнение, что такой человек - Мастер пинать хуи, и хуеплетов. А имено - многие считают, что Lead ни хрена не работает, а всю работу передает (по научному - делегирует) хуеплетам которых и пинает, чтобы они и делали работу.

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

сноска 2:

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

сноска 3:

  Описанный в статье случай носит научное название "Пиздец на проде". Или "Ебанный в рот менеджер проекта", который по доброте душевной распространяет новые морально-насильственные практики навязанные заказчиком во вверенном ему продуктовом подразделении.

сноска 4:

Senior* - программист - специалист высшей категории (дайте задачу - я ее заебеню!)

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

 Обыкновенно код написанный такими людьми попадает в продакшн после 2 или максимум трех дополнительных правок. И если продукт после этого ломается, то недолго и в строго отведенных, мало изученных тестировщиками местах. Не верят безоговорочно своему Lead* (см. сноска 1). Если не уважают своего Lead* - то не верят ему вообще - И тогда команда разваливается. А продукту в такое время - мало не кажется.

сноска 5:

Junior* - программист - специалист категории (дайте задачу - я ее ... буду думать!)

  Бытует мнение, что такие люди нихрена не умеют программировать, Но это пиздешь.

Эти люди должны знать как написать цикл, какие есть вообще операции и всякие функции в нашем базовом API (Интерфейс для написания приложений).

 Не прямо "все все" в этом API, но десяток другой функций уже сойдет. И еще они знакомы с синтаксисом языка программирования.

И безоговорочно верят своему Lead* (см. сноска 1)

сноска 6:

Middle* - программист - специалист категории (дайте задачу - я ее в итоге добью!)

  Бытует мнение, что такие люди все-таки умеют программировать. Но это не точно.

Эти люди видели и писали кой-какой код в этой жизни (или в той/или не код). И поэтому любую задачу они будут делать так же как и предыдущую задачу. Вне зависиомости от того похожа предыдущая задача на текущую или нет - они задачу будут делать так же как и задачу до этого. Это беда!

Как следствие продукт ломается от просмотра кода внимательным взглядом Lead* (см. сноска 1). или под воздействием поверхностых проверок тестировщиков. Так что код написанный такими людьми попадает в продакшн после 2 или максимум трех недель ежедневных правок.

 Они безоговорочно должны верить своему Lead* (см. сноска 1) И уже должны знать большинство терминов из явления под названием "документация", но еще не совсем понимают эти самые термины - за что их и пинают как хуи.

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

сноска 7:
В предложенном решении задачи использован С++ 17 стандарт. Автор не претендует на идеальность предложенной логики, прежде всего потому, что он Lead* и посему четко знает, что мир С++ (да и любого другого языка) намного сложнее, чем может постигнуть любой программист.

Подробнее
Ebool isPalindromeJuniorCconst std::strings str) { int length = str.lengthO; E -for (int i = 0; i < length / 2; ++i) I f- { E; if (str[i] != str[length - 1 - i]) { | • • • I • • •»• return false; } V > ;• return true; } Ebool isPalindromeLeadCconst std::string_view£ str) { auto right = str.lengthO; // size_t type assumed decltype(right) left = 0; if (right > 0) —right; // index of last character, not '/0' E E E bool result = true; while (result && left < right) { if (std::isalnum(str[left])) // check for case sensitivity { // case insensitive comparison result = std::tolower(str[left]) == std::tolower(str[right]); } ; else { // all other characters result = str[left] == str[right]; } ++left; —right; } return result;
Будь осторожен фродо, Ух блять
много букв,c++,языки программирования,программирование,geek,Прикольные гаджеты. Научный, инженерный и айтишный юмор,программист,люди,читерство,личное
Еще на тему
Развернуть
Можно совет? С чего начать изучение плюсов в нынешние времена?
Не за 21 день и прочие экспресс курсы молодого бойца, а так чтобы планомерно за полгода-пару лет по 2-4 часа ежедневно, но самостоятельно до уровня Junior+/Middle (пользуясь, но не утопая в документации).
Есть навыки в Шарпе, Питоне, Котлине, русском, английском и т.п. ибо QA, но не сильно сложнее написания скриптов/автотестов.
Цель - написание игр в UnrealEngine (ранее делал в Unity но единолично и без ревью, поэтому говнокод).
Полагаю, что лучше всего на полставки/бесплатно устроиться джуном куда-нибудь, но есть вероятность, что какое-то время будет нечего кушать. Ментора на горизонте не вижу, хоть и очень хочется, так что так :(
Вот это то
https://www.amazon.com/Professional-C-Marc-Gregoire/dp/1119695406
что я сейчас изучаю, чтобы следить за развитием языка. (Это кроме cppreference)
Задачи тут есть - они очень простые. И возможно - не мотивируют.

Так что, Чтобы поднять планку - читай сделать практическую часть понятной. Предлагаю написать консольное предложение на подобие тула из Винды: fc.
Чтобы понять что нужно сделать - открываем консоль в виноус и пишем "fc /?"
Только не нужно следовать всем параметрам сразу. Начать нужно с текстового сравнения - и вывода аутентичных результатов. А потом имплементировать то же самое для бинарного режима /b флаг
Ну и уже потом по желанию.
Как развитие темы - консольных приложений в любой операционной системе: много.
Благодарствую
ебать тебя профессионально деформировало
И в личку не черкается, ибо заблокирована.
Личку разблокировал
Какие разные у нас к лидам отношения. ИМХО, лид долежн уметь код читать, понимать и ревьюить. Его жопа будет гореть если он говна в прод сольет. А вот писать - имхо, могут и синьоры и все кому не лень. Если конечно команда не 1.5 землекопа - там все и швец и жнец и на дуде дудец.
Сильно горит от таких интервьюеров, которые на собесе тебя просят на бумажке писать когда так, чтоб он компилился (привет яндекс). Вы ребят половумные какие-то. Вам нужен человек который в свободное время синтаксис и сигнатуры методов наизусть заучивает? Или который думать умеет и алгоритмы/структуры данных применять может к месту? Если бумажка - только псевдокод - ну или идите джунов собесьте, отсеивая тех у кого память хорошая от тех у кого нет.
Аж горит, нахуй.
Ах да, время жечь пердаки еще и окружающих. Комментарии в коде - 100% признак говнокода, пруф ми ронг, как говорится. Если код без них не читается (оптимизированный в усрань алгоритм) - пишите доки.
Delioz Delioz 17.08.202306:49 ответить ссылка 3.7
Извиняюсь, зарание, что даю ответ к вашему посту.
Я, ни в коем случае, не сомневаюсь в Вашем праве на личное мнение или в том, что Вы достойный внимания человек.
И я пишу тут, потому как Ваш пост содержал вопрос.
Моим единственным желанием является дать ответ и несколько коментариев. Но отнюдь не затевать срач или священную войну.

Вы описали как неприемлемое то, что некоторые люди заставляют писать код на бумажке. Я так же как и Вы против такого подхода. Сразу скажу - для проведения интервью, в сети можно найти онлайн компиляторы с возможностью совместного редактирования. Чем я всегда с удовольствуем пользуюсь.

А теперь по существу Вашего вопроса - какой человек НАМ нужен?
Думаю, Вы понимаете, почему я написал "НАМ" - я имею ввиду компанию работодателя и всех тех кто на него работает вместе со мной.
А теперь предствьте себе примитивную ситуацию - ту которую вы описали - Вы умеете думать и алгоритмы/структуры данных применять к месту.
Только делаете это вы на JavaScript. А синтаксис С++ вы не знаете. Не заучили. Методов - ни одного не помните.
Мне кажется Вы уже сделали вывод о том какое решение - приму даже не я, но Человек который отвечает за найм.
Поймите меня правильно, мне не нужен человек который знает наизусть все стандартное пространство имен в C++. (таких людей нет в природе)
Но человек который не знает синтаксис, проигрывает в сравнении с человеком, который синтаксис знает и если у второго нашлось время все это не только заучить, но главное применять.
- Менеджер наймет второго.
С моей же стороны к кандидатам, есть одно но очень простое требование "Пиши код" - думаю что из моего оригинального поста, это Вы уже поняли.
Менеджер ждет от меня решения - это Миддл, Сеньор или Джуниор.
К сожалению - есть еще и градация "даже не джуниор".
Это как если бы вы пришли сдавать китайский язык, людям которым нужны переводчики китайского, ни разу не открыв даже словарь. Или открыв разок но словарь португальского.

Это мое персональное видение процесса. И я надеюсь, что ничем Вас не задел.

И последнее - позвольте так же поинтересоваться Вашим мнением на вопрос который занимает меня уже некоторое время.
В своем коментарии Вы высказали мысль, цитирую "Комментарии в коде - 100% признак говнокода".
Я глубоко убежден, что мое персональное мнение не играет в масшатабах этой планеты особо весомой роли.
Тем не менее я хочу попросить Вас Высказаться на счет причин по которым существует сайт
https://www.doxygen.nl/index.html
Как вы считаете, на свете много людей которые готовы целенаправленно лазить в интернете чтобы донатить и поддерживать именно этот проект?
Как вы думаете почему этот сайт до сих пор существует?
Я понимаю, что поднимаю для Вас странный вопрос маркетингово подхода. Но все же:
Вы уверены что коментарии в коде вообще никому не нужны?
Уф. Вот это пассивная агрессия. Ну да ладно, по конкретике:

> онлайн компиляторы с возможностью совместного редактирования
Если там есть адекватный LSP - то может быть, но все же для меня важны навыки кандидата программировании, а не синтаксисе. Из текста в посте был вывод о том, что его нет. А это от бумажки отличается - ну почти ничем.

>Только делаете это вы на JavaScript. А синтаксис С++ вы не знаете.
Честно не знаю вашу компанию, но попросите у руководства HR-ов, которые не только больничные оформлять умеют. Это задача HR фильтровать таких на первом этапе. Время синьоров/лидов стоит раза в 4 минимум дороже времени HR, и они не должны этим заниматься.

>причин по которым существует сайт https://www.doxygen.nl/index.html
Документация кода это не то же самое, что комменты на каждой строчке с объяснением, что это строка делает. А уж как ее из сорцов выдерать - это личное дело каждого.

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

Лучше без воды и яда, я только за обсудить важные вещи.
Delioz Delioz 17.08.202316:41 ответить ссылка 0.0
Спасибо за пояснения.
вода - чтобы подвести к мысли и показать рассуждения. Яд - не предполагался. извините.

Рекрутер (Вы назвали его HR) - не знает С++. Писать резюме - это намного легче чем код. Резюме можно даже украсть и свое имя подставить - так что фильтр не всегда работает.

В коде который я привел как образец для лида, есть несколько коментариев, скажите пожалуста, приведенный код стал говнокодом от этого?
Вы так же недавно написали про заучивание методов наизусть "Вам нужен человек который в свободное время синтаксис и сигнатуры методов наизусть заучивает?".
А как тогда человек без заучивания поймет что написано в коде?
И еще -
В коде стандартного заголовочного C++ файла откоментирован каждый метод. Например:
_NODISCARD _CONSTEXPR17 iterator end() noexcept
{ // return iterator for end of mutable sequence
return (iterator(_Elems, _Size));
}
Этот метод из одной строчки - читаем? Этот метод тоже говнокод?
Знаете меня не столько удивляет факт, что у Вас есть строго выраженное мнение. Сколько не желание увидеть альтернативное и попробовать понять.
Возможно следующий абзац Вам будет интересен:

Насчет уверенности в коментариях, я хочу Вас заверить, что те люди за которых я отвечаю как Lead не смогут ничего закоммитить в код если не поменяют еще и коментарии.
И это далеко не моя прихоть.
Коментарии у меня в проекте есть ЕЩЕ И потому, что требование писать коментарии к коду напрямую прописано в контракте между моей компанией и компанией заказчика.
Там прописан формат, объемы, и особенно как прописывать ссылки на соответствующую архитектурную документацию. И как Связь с системой публикаций обновлений.
А в самом контракте финасовая ответственность в случае если эти требования мы будем игнорировать.
А по сути - Я хочу сказать, что считаю говнокодом любой заголовочный C++ без описания того, что тут есть?
Вопросы из лички

- Чем отличаются Lead от Архитектора?
Lead
>> Знает терминологию и язык - умеет поговорить с теми кто ее только учит.
>> Лид Пишет код (но бывает мало - в зависимости от размера команды);
>> управляет людьми - чтобы не срались a главное чтобы общались друг с другом; Один в поле не воин - даже лид.
>> следит за тем, чтобы хотя бы ОН во всей команде понимал что написано в юзер сторях. Во всех; (Это один из критериев по которым видно лида)
>> проверяет код у других;
>> читает мануал который есть и который будет; по всем юзерсторям - потому как результат - его ответственность.
>> следит чтобы все писали документацию - без фанатизма но и БЕЗ похуизма;
>> Строго следит чтобы все писали тесты - С Фанатизмом! Потому как проект на полтора миллиона (и больше) строк кода.
>> Ищет чтобы еще сделать для команды и следит чтобы: 1) "CI/CD" 2) девопсы не филонили.
>> Делегирует; А именно - делает так, чтобы люди были рады получить задачу и разъяснения. Особенно Разъяснения!
>> отвечает за эстимацию всего что в разработке;
>> Общается с представителями менеджмента и с заказчиками - чтобы донести эстимацию понятиями, которые эти люди понимают. А не так как сказал мидл, которого я всегда умножаю на (подставь персональный коэффициент) или сеньор, которого лид тоже знает как умножать.
>> А еще он учит людей - по образу и подобию своему, но все таки учит. (помогает джунам и мидлам и сеньорам)
>> учится сам - бывает даже у джунов! ;)

Архитектор
>> Знает терминологию для разговоров с другими архитекторами.
>> приходит к заказчику на поговорить - когда разработчиков на проекте еще нет. (Не нужно делать умное лицо и считать что заказчик сам в курсе чего он хочет)
>> узнает что нужно заказчику и в каких объемах. - собирает функциональные и нефункциональные требования.
На понятном примере: Вы пишете веб - ответьте на вопрос, сколько человек в день/минуту/год будет на вашем сайте и описывает результат своих наблюдений. И главное в виде измеримых критериев
введите в гугле MTTR - и узрите что это такое. А так же сделайте вывод, что у архитекторов тоже есть свой словарь. Свои подходы к работе и они тоже умеют говорить странные непонятные слова и аббревиатуры.
И у них тоже есть свои библии и мануалы.
>> тут должно быть еще многа Букав и пунктов - но я не архитектор
>> В результате работы архитектора заказчик будет знать, как померять и принять в работу то, что потом напишут лиды с командами, и сколько денег будет стоить поддержка этого всего этого добра в клауде или где-то еще.
>> В процессе разработки следит чтобы команды сторого следовали архиважным решениям принятым в процессе сбора требований.
>> многое другое, + следит, чтобы если требования уточнились, поменялись - мы не проспали.

- Есть ли принципиальная разница в найме фронта/бека?
Ответ - нет. Но вопрос - не корректен.
Разница между фронтом и беком отсутствует. С++ это про скорость.
UI - это фреймворк. Любой проект от 100000 строк кода это уже свои утилиты и своя доменная специфика. И Это Все - нужно изучать.
Так что для начала знать базу и синтаксис - обязательно!
Очень Иногда есть принципиальная разница в том, знаешь ли ты специфический фреймворк. Если заказчику нужны только те, кто знает QT то скорее всего, без его знания тебя не возьмут на данный проект.
Однако будь уверен, если ты знаешь QT, но не увидишь в 10 строчках кода утечку ресурса - то на проект ты не попадешь. Ни на какой.

- Кто вообще собеседует девопсов?
- Я Lead C++ разработчик. могу собеседовать в С++ всех до этого уровня в иерархии компании.
В компании где я работаю - у девопсов тоже есть свои гуру и своя иерархия.
Там тоже найдут специалиста на побеседовать.
Они тоже попросят написать что-то на шел скрипте. Я хорошо помню те времена, когда был сам вынужден давать своему девопсу азы скрипт писания и чтения логов.
После нескольких раундов общения сейчас людей проверяют на написательство тоже.
zproksi zproksi 17.08.202311:30 ответить ссылка 1.2
Только зарегистрированные и активированные пользователи могут добавлять комментарии.
Похожие темы

Похожие посты
Почему? Почему?! ^>о->Ьаг() — Почему? — А, вот почему... д 1 ^ /î £ Г ^C++ ft. Python (prod by Java) (Official Music Video)A programmer What people think I do What my parents think I do What I think I do What I really do Google | How to use dates in Javascript" T II