Здравствуйте, sergii.p, Вы писали:
SP>слышал одну абстрактную мысдь, что если человек не имеет pet проектов, то у него нет страсти к программированию. Мысль полностью не разделяю, но что-то в ней явно есть и некоторые работодатели могут так думать (особенно те, которые просят код).
Да не нужны корпорации люди со страстью к программированию. Человек со страстью не будет годями нудные тикеты иж жиры фиксить.
U>Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне.
U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Область, я полагаю, им без разницы, важно как выглядит код, который ты педалишь.
Есть ли какая-то структура или, как у акына — что вижу, то и пою.
Это такая штука, которую на собеседовании не проверить, а обнаружить потом в своём коде очень не хотелось бы
Вот и подстраховываются. Хотя испытательный срок никто не отменял.
_____________________
С уважением,
Stanislav V. Zudin
>репка (-ки) покажут, насколько человек профессионал, его культуру разработки и как он подходит к своей работе. Ну к примеру: DP>- как он оформляет коммиты DP>- комитит раз в месяц большим куском или нет DP>- насколько уделяет внимание тестам
Всё равно придётся все эти привычки перенастраивать по целеуказаниям тимлида, нереально с улицы угадать в точности все мястечковые хотелки, слишком они диаметрально разные в разных командах. DP>- как он делает МРы DP>- умеет ли релизить/теггировать DP>- как оформляет репозитория и код в целом DP>- ну про сам код молчу DP>- структура проекта DP>- различение на модули/сабмодули DP>- можно увидеть, насколько он шарит в CI/CD
А это вообще навыки релиз-мастера или архитектора. Который 1шт на предприятие, а всем остальным предложат с их личными предпочтениями по этим вопросам пойти подальше, и делать как велено. DP>Ну и в целом: по кометам можно проследить, как человек относится к продукту и как развивает его.
Именно, куда-то в область астрологии всё это.
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, sergey2b, Вы писали:
S>может вы знаете как на этапе собеседования отпределять нанимают писать код или фиксить баги и писать юниттесты
я обычно, просил показать бэклог или рассказать что в текущих задачах — типа — вот я завтра выхожу, какая у вас задача для меня
иногда прокатывало
в ASML меня спросили- а что такое бэклог ... вообще там было кринжово
один старикашка стал меня оскорблять — как потом сказал — проверял стрессоустойчивость
его счастье, что у меня английский так себе, и я решил что неправильно понял %)
Здравствуйте, Skorodum, Вы писали:
Pzz>>Обычно в конторах нонешних модно кодить в стиле, описанным местечковым coding style guide-ом. S>С ним лучше, чем без него. Еще лучше когда он основан на каком-нибудь более-менее популярном стандарте а-ля Qt или boost.
Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
Pzz>>Так что какая разница, как твой текущий код выглядит, все равно заставят писать по-другому. S>Не, coding style guide это в основном про форматирование, а не про то как бизнес-задача выражена в коде.
Она как-то по-твоему будет выражена, если ты в решении этой бизнес-задачи участвуешь на промежутке от ее начала и до какого-то конца. А нонешнее поколение привыкло работать короткими задачами и без личной привязки к какому-то определенному месту в коде (т.е., с весьма поверхностным пониманием кода в целом).
Здравствуйте, undo75, Вы писали:
U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
а что такого? Если есть на github что-то залитое, то можно выслать. Если нет, то говорите, что весь код под NDA.
Кстати, второй вариант предпочтительнее. Потому как когда любой программист видит код другого программиста, он теряет дар речи, переходит исключительно на мат, и говорит, что такого мудака брать точно не стоит. Ну говорю исключительно по себе. Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
Здравствуйте, Pzz, Вы писали:
Pzz>А что, интересно, должен делать человек, который всю жизнь по найму работал? Спроси их, как они отнесутся, если ты какое-то время у них поработаешь, а потом написанный на работе код другим работодателям будешь показывать.
слышал одну абстрактную мысль, что если человек не имеет pet проектов, то у него нет страсти к программированию. Мысль полностью не разделяю, но что-то в ней явно есть и некоторые работодатели могут так думать (особенно те, которые просят код).
Здравствуйте, Stanislav V. Zudin, Вы писали:
Pzz>>Обычно в конторах нонешних модно кодить в стиле, описанным местечковым coding style guide-ом. Так что какая разница, как твой текущий код выглядит, все равно заставят писать по-другому.
SVZ>А я не про код-стайл, а про помойку в коде. Это уже больше про дизайн.
Это если ему позволят в дизайн. А если "вот тебе бага, надо починить за два дня", то какой уж там дизайн?
U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Я такое только поддерживаю. Сам предпочитаю посмотреть на профиль человека на ГитХабе при найме.
Посмотреть на репу (или несколько) человека скажет о нем больше, чем зазубренные ответы на вопросы про люки и надро наученность грокать литкодовские задачи. А именно, репка (-ки) покажут, насколько человек профессионал, его культуру разработки и как он подходит к своей работе. Ну к примеру:
— как он оформляет коммиты
— комитит раз в месяц большим куском или нет
— как он делает МРы
— умеет ли релизить/теггировать
— как оформляет репозитория и код в целом
— ну про сам код молчу
— структура проекта
— различение на модули/сабмодули
— можно увидеть, насколько он шарит в CI/CD
— насколько уделяет внимание тестам
А если поглядеть чуть шире, как он участвует в коммьюнити (вопросы/ответы), то тогда вообще красота! Это не только про самостоятельность, умение излагать свои мысли (на английском в том числе), но и уровень общения с коллегами в целом.
Ну и в целом: по комитам можно проследить, как человек относится к продукту и как развивает его.
S>Нет, после определенного уровня все более-менее стандартно. Но да, этот уровень есть далеко не везде. Хорошо — оно более-менее одинаково хорошо, а вот плохо может быть очень по разному.
S>Хорошо, если для этого есть отдельная клетка, но это далеко не всегда так. Основной посыл тут в том, что человек должен вести проект так, чтобы он легко собирался CI/CD системой, а не только любимой средой разработки на локальном компьютере.
Да, мой посыл выше был о том, что по репам можно понять уровень человека. Ну условно:
— не пользуется системой контроля версий или закоммитил тестовое/что там еще один раз одним куском как было на локальном диске
— коммит раз в месяц с текстом "-" со всеми потрохами личных настроек его ИДЕ
— коммит раз в неделю с текстом "as is"
— обдуманные коммиты с разбиением на атомарные фичи + используется .gitignore
— настроенный CI/CD с пре-коммит хуком, автоматическим прогоном тестов
— все настроено с отвязкой от ИДЕ, можно девелопить продукт под все платформы
— все что выше + заполненный ридми
— все то же самое + выкатка релиза с автоматическими релиз ноутсами, документация
— все выше + поддержка проекта: нетоксичный ответ на вопросы пользователей, прием ПРов, ведение проекта в ГитХабе (задачи, планы по релизам) и прочее
Вот это все — совершенно разные профессиональные уровни и уровни автономности.
А так: порой удивляешься коллегам и их уровню владения не то что ребейзами и МРам, но элементарно владению гитом. И это синьоры-помидоры
Ну и да, коммиты показывают +- что у человека в голове и как он структурирует информацию и как мыслит.
Здравствуйте, Stanislav V. Zudin, Вы писали:
SVZ>Область, я полагаю, им без разницы, важно как выглядит код, который ты педалишь.
Обычно в конторах нонешних модно кодить в стиле, описанным местечковым coding style guide-ом. Так что какая разница, как твой текущий код выглядит, все равно заставят писать по-другому.
Здравствуйте, m2user, Вы писали:
M>У каждой сборки, ушедшей конечным пользователям, есть соотв. тэг в VCS. M>(плюс разные версии билд-серверов, т.к. они тоже меняются) M>Хотя обычно собирать и не нужно, т.к. архив бинарников тоже хранится. M>Что может пойти не так?
Все правильно, но это далеко это не везде есть. Не все разработчики/команды понимают важность того, что ответ на вопрос из каких исходников, как собрана, что нового в какой-то конкрнетной версии должен быть быстрим и легким.
M>Но опять же поддержка этой инфраструктуры — не задача разработчика. M>(инфраструктура на MS TFS/MS Azure Devops.)
Если есть выделенные люди — прекрасно, если нет — занимаются разработчики.
Например, мы маленькая компания и мне приходиться и интерфейсы писать и сборку поддерживать под несколько платформ (как раз на Azure DevOps).
Здравствуйте, SkyDance, Вы писали:
SP>>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
SD>Хм, ну, разноси код вот этого чувака.
Здравствуйте, Osaka, Вы писали:
M>>Ну, на предыдущем месте дали два часа на тестовое задание: написать класс целых чисел произвольной длины с операциями сложения и вычитания. А я им такой: "у меня на гитхабе есть уже класс десятичных чисел произвольной точности, и там еще есть и умножение с делением" O>Опять тщательно отбирают алгоритмистов-олимпиадников-чемпионов, чтобы посадить их конфигурасить xmlи?
Здравствуйте, okon, Вы писали:
O>Нормальный запрос. Залей куда-нибудь свой любой пет проект, на конец — сделай если нету. O>Тут важен не столько размер проекта, сколько просто показать что ты умеешь писать понятный код, умеешь пользоваться каким-то стеком, посмотри в вакансии что используют, сделай под их запрос. O>Уточни это в сопроводительном письме чтобы было однозначно понятно что это не единственное что ты сделал, а просто "демка" для оценки качества кода. O>Если тебе данная работа интересна и важна ты это сделаешь, если нет — то не стоит и брать тебя на работу которая тебе не так важна.
Это куколдство и игра в одни ворота.
Сначала от тебя требуют просто наличие хоть какого-то пет проекта на гитхабе (ну, у меня есть пет проекты, но зачем их куда-то выкладывать? уж точно не ради того, что в аналоге "голодных игр" унижаться перед всяким говорящим через губу биомусором). А потом начнутся придирки, почему это у тебя мало звезд (вон посмотри сколько у Ерохина), почему так редко коммитишь (вон один шизоид пушит каждый день без выходных на протяжении нескольких лет) и т.д.
Настоящий специалист ценит свое время, ничего не делает бесплатно и никогда не прогибается перед наглыми скотами. Не для того я учился 5 лет и забил на личную жизнь, чтобы какие-то выблядки ждали, что я буду ползать перед ними на коленях и плясать гопака им на потеху. Гитхаб тебе, сука, надо? А велосипедной цепью в ебало случайно не надо?
С таким отношением занимайтесь не IT, а открывайте строительный бизнес с джамшутами без документов.
— Нет в мире справедливости, — простонал Билл, когда цепкие пальцы Смертвича впились в его плечо.
— Конечно, нет, — согласился Смертвич. — А ты как думал?
Здравствуйте, Sharov, Вы писали: S>Я так понял, что речь идет о ленивости, но каким образом мы потеряем нужный(проблемный) фрейм? Очень просто.
Ошибка — в функции GetAS(). В стектрейсе её нет:
Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'source')
at X.GetAccumulatingSum(IEnumerable`1 source)+MoveNext()
at Program.Print(IEnumerable`1 s)
at Program.Main()
S>Приведенный фрагмент кода лежит в основе как минимум Linq to objects, поэтому не совсем понятно, что с ним не так...
Нет, не лежит.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Pzz, Вы писали:
Pzz>Это если ему позволят в дизайн. А если "вот тебе бага, надо починить за два дня", то какой уж там дизайн?
Дизайн тоже бывает разного уровня.
Ну, то есть code style, действительно, смотреть большого смысла не имеет — его всё равно можно зафорсить тулчейном. Хотя, скажем, если кандидат показывает такое
, то сразу понятно, что ему будет тяжело работать в команде. Потому, что он явно не дорос даже до понимания того, что такое code style — и для него ошибки из тулчейна будут просто пустым звуком.
Но в рамках того же C# есть по полмллиона способов сделать одно и то же, даже если максимально завинтить "дизайн" готовыми интерфейсами и абстрактными классами, и навязать конкретные правила форматирования.
Можно использовать query comprehension, а можно method chain. Можно пользоваться тернарным оператором, а можно делать if.
Можно использовать null coalescing operator, а можно тернарку.
Можно использовать паттерн матчинг, а можно обходиться без него.
Можно применять switch expression, а можно всё сводить к switch statement.
И таких мелких решений — очень много. И это мы ещё не поднялись даже на один уровень; ведь можно реализовать метод интерфейса в виде одной простынки строк на 1200, а можно порезать его на более мелкие методы. И там уже начинается значительная свобода самовыражения — где-то лямбды, где-то именованные методы, где-то возврат туплов, где-то out параметры и так далее. Да элементарно — понимает ли клиент, в чём проблема такого кода и как ее починить:
public IEnumerable<string> GetAccumulatingSum(this IEnumerable<int> source)
{
var s=0;
foreach(var v in source)
yield return s+=v;
}
По коду кандидата сразу будет видно, пишет ли он на "фортране с решёткой", или на "шарпном хаскеле".
Ну, и диапазон комфортных для него языковых средств тоже будет виден.
И в целом это значительно более конструктивный подход, чем просить писать код прямо на собесе (много ли ты там напишешь) или требовать выполнения тестового задания.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, sergii.p, Вы писали:
SP>Кстати, второй вариант предпочтительнее. Потому как когда любой программист видит код другого программиста, он теряет дар речи, переходит исключительно на мат, и говорит, что такого мудака брать точно не стоит. Ну говорю исключительно по себе.
Не везет вам, так далеко не всегда.
SP>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
У меня как-то раз было наоборот: дали тестовое задание, нашел решение на гитхабе, посмотрел, но сделал свое. На собеседование со стороны работодателя был автор решения с гитхаба и большую часть времени мы обсуждали почему мое решение лучше
Здравствуйте, Pzz, Вы писали:
Pzz>А что, интересно, должен делать человек, который всю жизнь по найму работал?
Потратить час и сделать проект по решению квадратного уровня/судоку/что вам нравится Ничем не хуже тестового задания. Это может сэкономить время обоим сторонам.
Здравствуйте, undo75, Вы писали:
U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Хорошо тем, у кого есть открытый проект на гитхабе.
А что, интересно, должен делать человек, который всю жизнь по найму работал? Спроси их, как они отнесутся, если ты какое-то время у них поработаешь, а потом написанный на работе код другим работодателям будешь показывать.
Здравствуйте, Pzz, Вы писали:
SVZ>>Область, я полагаю, им без разницы, важно как выглядит код, который ты педалишь.
Pzz>Обычно в конторах нонешних модно кодить в стиле, описанным местечковым coding style guide-ом. Так что какая разница, как твой текущий код выглядит, все равно заставят писать по-другому.
А я не про код-стайл, а про помойку в коде. Это уже больше про дизайн.
_____________________
С уважением,
Stanislav V. Zudin
Pzz>>Да не нужны корпорации люди со страстью к программированию. Человек со страстью не будет годями нудные тикеты иж жиры фиксить. S>может вы знаете как на этапе собеседования отпределять нанимают писать код или фиксить баги и писать юниттесты
Спросить при получении оффера.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, Osaka, Вы писали:
O>Всё равно придётся все эти привычки перенастраивать по целеуказаниям тимлида, нереально с улицы угадать в точности все мястечковые хотелки, слишком они диаметрально разные в разных командах.
Нет, после определенного уровня все более-менее стандартно. Но да, этот уровень есть далеко не везде. Хорошо — оно более-менее одинаково хорошо, а вот плохо может быть очень по разному.
O>А это вообще навыки релиз-мастера или архитектора. Который 1шт на предприятие, а всем остальным предложат с их личными предпочтениями по этим вопросам пойти подальше, и делать как велено.
Хорошо, если для этого есть отдельная клетка, но это далеко не всегда так. Основной посыл тут в том, что человек должен вести проект так, чтобы он легко собирался CI/CD системой, а не только любимой средой разработки на локальном компьютере.
U>Спасибо за отклик!
U>Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне.
Нормальный запрос. Залей куда-нибудь свой любой пет проект, на конец — сделай если нету.
Тут важен не столько размер проекта, сколько просто показать что ты умеешь писать понятный код, умеешь пользоваться каким-то стеком, посмотри в вакансии что используют, сделай под их запрос.
Уточни это в сопроводительном письме чтобы было однозначно понятно что это не единственное что ты сделал, а просто "демка" для оценки качества кода.
Если тебе данная работа интересна и важна ты это сделаешь, если нет — то не стоит и брать тебя на работу которая тебе не так важна.
U>подмывает ответить этим
Будешь воспринят как неадекват
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Здравствуйте, DiPaolo, Вы писали:
DP>Да, мой посыл выше был о том, что по репам можно понять уровень человека. Ну условно:
...
Хороший список, но я бы дополнил, что выполнение некоторых пунктов все же зависит от приоритетов, наличия ресурсов и стадии жизни проекта, что-то может быть еще не реализовано по объективным причинам, в то время как причин для плохихи коммитов в условном "мастере" нет никогда.
DP>А так: порой удивляешься коллегам и их уровню владения не то что ребейзами и МРам, но элементарно владению гитом. И это синьоры-помидоры
Это да, все чаще прихожу к выводу, что владение системой контроля версий, понимание почему хорошие коммиты это важно и способносить писать грамотные комментарии к коммитам это совершенно отдельный набор навыков, который с "сеньёрностью" очень часто имеют обратную корреляцию.
DP>Ну и да, коммиты показывают +- что у человека в голове и как он структурирует информацию и как мыслит
И насколько он понимает, что для решения практически любой более-менее сложной задачи надо грамотно коммуницировать с другими людьми. Коммит это ведь как код — послание другим разработчикам, в т.ч. самому себе в будущем.
Здравствуйте, Osaka, Вы писали:
>>репка (-ки) покажут, насколько человек профессионал, его культуру разработки и как он подходит к своей работе. Ну к примеру: DP>>- насколько уделяет внимание тестам O>Всё равно придётся все эти привычки перенастраивать по целеуказаниям тимлида, нереально с улицы угадать в точности все мястечковые хотелки, слишком они диаметрально разные в разных командах.
Не надо ничего угадывать, более менее адекватный тим-лид понимает это не хуже тебя и не будет сравнивать твой код с местным и отсеивать только по той причине что ты используешь другой стиль или делаешь иначе чем принято у них.
А если лид не дорос еще — то тебе же лучше будет если он тебя "отсеет" из-за личных хотелок.
”Жить стало лучше... но противнее. Люди которые ставят точку после слова лучше становятся сторонниками Путина, наши же сторонники делают акцент на слове противнее ( ложь, воровство, лицемерие, вражда )." (с) Борис Немцов
Pzz>А что, интересно, должен делать человек, который всю жизнь по найму работал? Спроси их, как они отнесутся, если ты какое-то время у них поработаешь, а потом написанный на работе код другим работодателям будешь показывать.
ну как вариант:
— потратить время не на зазубривание алгоритмов, а на написание кода
— сделанные до этого тестовые опубликовать на ГитХабе
— код лабораторок с универа привести в удобочитаемый вид
— просто сделать что-то полезное для себя/соседки/друга
— порой пишутся всякие вспомогательные утилиты. ну типа:
* выдернуть по АПИшке какие-то данные для теста
* замокать асинхронный сервер с генерацией туевой тучи запросов; прикрутив потом туда ручку регулировки частоты запросов; а потом прикручиваешь туда рандомизацию, то или иное распределение, потом имитируешь нагрузку юзеров в зависимости от времени суток, прикручиваешь к этому UI/АПИ/CLI, заворачиваешь в докер — и вот это уже вполне солидный продукт, родившийся из мимолетной необходимости потестить очередной эндпоинт своей АПИшки
* сходить залогиниться по РЕСТу и тоже получить какие-то данные, раскрасить их и сделать из них другие нужные тебе данные
* качнуть эксельку по некоему вычисляемому УРЛу с текущей датой и распрасить данные, сложив их в базку
да полно таких примеров и повседневных задач!
ессно это все альтернативы коду на бумажке, онлайн кодингу и заученным задачам на люки и алгоритмы тут уж у всех свои предпочтения с обеих сторон
Здравствуйте, m2user, Вы писали:
M>немножко игрался с https://go.dev/play/. Дико раздражало, что оно строки с импортом "неиспользуемых" пакетов удаляло не спросив. M>Может такое поведение характерно только для этой песочницы, но ведь это своего рода "витрина".
Это в Go вообще ошибка времени компиляции, наличие проимпортивованных, но неиспользованных пакетов
Но зато современные редакторы умеют автоматически нужные импорты вставлять, и почти всегда угадывают. Так что в среднем об этом можно вообще не думать.
Может ты считаешь себя широко инвестным прогером-мегагуру а тебя дяди-дураки просят подтвердить твое уменее педалить код? Видимо они хотят увидеть хоть какой код, чтобы отсеять совсем неподходящих еще на начальном этапе до интервью. Если кода нет или нельзя то просто так напиши: нет такой возможности. Правда они могут пригласить на интервью сначала других, с кодом.
Здравствуйте, sergii.p, Вы писали:
SP>слышал одну абстрактную мысль, что если человек не имеет pet проектов, то у него нет страсти к программированию. некоторые работодатели могут так думать (особенно те, которые просят код).
Эти работодатели готовы оплачивать пет проекты в рабочее время?
U>Спасибо за отклик!
U>Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне.
U>подмывает ответить этим https://www.youtube.com/watch?v=3t5DB0JRcgA U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Нам пользователи часто тест-кейсы с багами на форуме прикрепляют, так вот есть такие тесткейсы — прямо заглядение, от одного вида
private static readonly string resultJsonFileName
кончаешь и понимаешь, что писал-то код жесткий профессионал.
We’ve just hit a design flaw in C#. Iterator blocks in C# simply don’t work nicely when you want to split execution between "immediate" (usually for validation) and "deferred". Instead, we have to split our implementation into two: a normal method for validation, which then calls the iterator method for the deferred processing:
Спасибо за отклик!
Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне.
подмывает ответить этим https://www.youtube.com/watch?v=3t5DB0JRcgA
вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Здравствуйте, Pzz, Вы писали:
SVZ>>А я не про код-стайл, а про помойку в коде. Это уже больше про дизайн.
Pzz>Это если ему позволят в дизайн. А если "вот тебе бага, надо починить за два дня", то какой уж там дизайн?
Ну а если он вносил точечные исправления в _чужой_ код, то тут как-бы и показывать нечего.
_____________________
С уважением,
Stanislav V. Zudin
Здравствуйте, Pzz, Вы писали:
Pzz>Да не нужны корпорации люди со страстью к программированию. Человек со страстью не будет годями нудные тикеты иж жиры фиксить.
может вы знаете как на этапе собеседования отпределять нанимают писать код или фиксить баги и писать юниттесты
SP>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
если ему не стыдно за свой код — мог бы и тебя разнести.
Здравствуйте, sergii.p, Вы писали:
SP>Кстати, второй вариант предпочтительнее. Потому как когда любой программист видит код другого программиста, он теряет дар речи, переходит исключительно на мат, и говорит, что такого мудака брать точно не стоит. Ну говорю исключительно по себе. Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
На текущую работу взяли как раз поглядев мой код на гитхабе. На предыдущую — тоже. Причем оба раза обошлось без нудных собеседований, минут 15 по коду погуляли, обсудили моменты как я то или иное делал, и все
Здравствуйте, sergey2b, Вы писали:
Pzz>>Да не нужны корпорации люди со страстью к программированию. Человек со страстью не будет годями нудные тикеты иж жиры фиксить.
S>может вы знаете как на этапе собеседования отпределять нанимают писать код или фиксить баги и писать юниттесты
Так после того как ты напишешь код, если его не отправили на помойку и кто-то использует твою программу, то надо будет фиксить баги.
А юниттесты надо писать вместе с кодом. Иначе потом любой фикс будет вносить новые регрессии.
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, sergii.p, Вы писали:
SP>>Кстати, второй вариант предпочтительнее. Потому как когда любой программист видит код другого программиста, он теряет дар речи, переходит исключительно на мат, и говорит, что такого мудака брать точно не стоит. Ну говорю исключительно по себе. Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
M>На текущую работу взяли как раз поглядев мой код на гитхабе. На предыдущую — тоже. Причем оба раза обошлось без нудных собеседований, минут 15 по коду погуляли, обсудили моменты как я то или иное делал, и все
Да делом в том, что туда не хочется туда постить банальность, типа пример магазина книг на DDD, а для не банальности нужна идея и время.
U>Спасибо за отклик!
U>Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне.
U>подмывает ответить этим https://www.youtube.com/watch?v=3t5DB0JRcgA U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Просто хотят посмотреть, как ты пишешь.
И убедиться в том, что ты не просто выдаёшь себя за программиста.
Ну я в такой ситуации выслал исходники моего личного видеоредактора.
Прокатило.
SVZ>>Ну а если он вносил точечные исправления в _чужой_ код, то тут как-бы и показывать нечего. S>я видел живого человека которы1 15+ лет в уважаемой компании вносил точечные исправления
Ну и зачем им неудачники(c)?
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
U>Прошу, по возможности, прислать примеры вашего актуального кода на C#, чтобы не тратить не это время при созвоне. U>вот реально что они хотят увидеть? накопипастить годного кода я могу. чего им это даст? конкретизировали бы хотябы какая область интересна
Смогут сказать "этот код неработоспособный", "вот тут у вас куча антипаттернов", и "ваша зарплата составит xx при выполнении kpi"
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, Pzz, Вы писали:
Pzz>Обычно в конторах нонешних модно кодить в стиле, описанным местечковым coding style guide-ом.
С ним лучше, чем без него. Еще лучше когда он основан на каком-нибудь более-менее популярном стандарте а-ля Qt или boost.
Pzz>Так что какая разница, как твой текущий код выглядит, все равно заставят писать по-другому.
Не, coding style guide это в основном про форматирование, а не про то как бизнес-задача выражена в коде.
Здравствуйте, Pzz, Вы писали:
Pzz>Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
Так про это и речь. Для С/С++ это .clang-format в корне проекта и все
Pzz>Она как-то по-твоему будет выражена, если ты в решении этой бизнес-задачи участвуешь на промежутке от ее начала и до какого-то конца. А нонешнее поколение привыкло работать короткими задачами и без личной привязки к какому-то определенному месту в коде (т.е., с весьма поверхностным пониманием кода в целом).
Это все какая-то личная боль. Речь про то, что достатчно примера решения простой задачи, чтобы оценить стиль самовыражения с помощью кода и коммитов.
DP>- все выше + поддержка проекта: нетоксичный ответ на вопросы пользователей, прием ПРов, ведение проекта в ГитХабе (задачи, планы по релизам) и прочее DP>Вот это все — совершенно разные профессиональные уровни и уровни автономности.
Полагаю, что для некоторых областей разработки этот подход уместен. Особенно в случае, если для вакансии требуются именно перечисленные компетенции и навыки.
Но это не универсально. Например там где я работал, релизами и пр. ноутсами и документациями занимались ответственные за это отделы.
Не говоря уже об ответах на вопросы пользователей.
Если речь про pet-проекты, то как уже писали в этой теме? их может и не быть.
Вот у меня никогда не было (по крайней мере вышедших за рамки исследования/PoC).
Потому что свободное время интереснее было потратить на улучшения по основному месту работы (техдолг и пр. всегда есть).
DP>Ну и да, коммиты показывают +- что у человека в голове и как он структурирует информацию и как мыслит.
Определенно, но отмечу, что с другими VCS (не git) я был более продуктивен.
O>>Всё равно придётся все эти привычки перенастраивать по целеуказаниям тимлида, нереально с улицы угадать в точности все мястечковые хотелки, слишком они диаметрально разные в разных командах. S>Нет, после определенного уровня все более-менее стандартно. Но да, этот уровень есть далеко не везде. Хорошо — оно более-менее одинаково хорошо, а вот плохо может быть очень по разному.
В том и проблема, что свои неповторимые хотелки начальнег начинает выдавать за нечто "одинаково общепринятое везде, которое смеют не знать только полные дебилы", а все кто не угадал — у него неадекваты, преступно отказывающиеся предвосхищать его невысказанные желания. А в следующем месте — за "общепринятое везде" начальнег выдаёт совершенно противоположное.
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Pzz>Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
немножко игрался с https://go.dev/play/. Дико раздражало, что оно строки с импортом "неиспользуемых" пакетов удаляло не спросив.
Может такое поведение характерно только для этой песочницы, но ведь это своего рода "витрина".
Здравствуйте, Osaka, Вы писали:
O>В том и проблема, что свои неповторимые хотелки начальнег начинает выдавать за нечто "одинаково общепринятое везде, которое смеют не знать только полные дебилы", а все кто не угадал — у него неадекваты, преступно отказывающиеся предвосхищать его невысказанные желания. А в следующем месте — за "общепринятое везде" начальнег выдаёт совершенно противоположное.
Значит один (или оба) этих начальника вам неподходят и чем раньше это видно — тем лучше.
И это никак не противоречит факту, что объективно хороший стандард в отрасли существует.
Здравствуйте, m2user, Вы писали:
M>Но это не универсально. Например там где я работал, релизами и пр. ноутсами и документациями занимались ответственные за это отделы.
Пользователи обнаружили баг в версии x.y.z, вам надо взять соответсвующую версию исходников собрать и отладить. То, как вы используете CI/CD позволяет это сделать легко?
M>Определенно, но отмечу, что с другими VCS (не git) я был более продуктивен.
Какого функционала не хватает в git?
M>>Но это не универсально. Например там где я работал, релизами и пр. ноутсами и документациями занимались ответственные за это отделы. S>Пользователи обнаружили баг в версии x.y.z, вам надо взять соответсвующую версию исходников собрать и отладить. То, как вы используете CI/CD позволяет это сделать легко?
У каждой сборки, ушедшей конечным пользователям, есть соотв. тэг в VCS.
(плюс разные версии билд-серверов, т.к. они тоже меняются)
Хотя обычно собирать и не нужно, т.к. архив бинарников тоже хранится.
Что может пойти не так?
Но опять же поддержка этой инфраструктуры — не задача разработчика.
(инфраструктура на MS TFS/MS Azure Devops.)
M>>На текущую работу взяли как раз поглядев мой код на гитхабе. На предыдущую — тоже. Причем оба раза обошлось без нудных собеседований, минут 15 по коду погуляли, обсудили моменты как я то или иное делал, и все
Q>Да делом в том, что туда не хочется туда постить банальность, типа пример магазина книг на DDD, а для не банальности нужна идея и время.
Ну, на предыдущем месте дали два часа на тестовое задание: написать класс целых чисел произвольной длины с операциями сложения и вычитания. А я им такой: "у меня на гитхабе есть уже класс десятичных чисел произвольной точности, и там еще есть и умножение с делением"
Здравствуйте, m2user, Вы писали:
M>Мой список претензий заметно пересекается с https://sqlite.org/whynotgit.html M>Если интересно обсудить, то могу создать отдельную тему в разделе tools.
Интересно. Наверное, стоит создать отдельную тему и разбирать по пунктам.
Здравствуйте, Pzz, Вы писали:
Pzz>Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
Никакие тулзы не помогут, если у тебя там методы по 3 экрана и копи-паста. Вот на это я бы и посмотрел, для начала.
M>Ну, на предыдущем месте дали два часа на тестовое задание: написать класс целых чисел произвольной длины с операциями сложения и вычитания. А я им такой: "у меня на гитхабе есть уже класс десятичных чисел произвольной точности, и там еще есть и умножение с делением"
Опять тщательно отбирают алгоритмистов-олимпиадников-чемпионов, чтобы посадить их конфигурасить xmlи?
Данное сообщение является художественным произведением и освещает вымышленные события в вымышленном мире. Все совпадения с реальностью являются случайными. Не является инвестиционной рекомендацией.
Здравствуйте, Codealot, Вы писали:
C>Никакие тулзы не помогут, если у тебя там методы по 3 экрана и копи-паста. Вот на это я бы и посмотрел, для начала.
Здравствуйте, Pzz, Вы писали:
Pzz>Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
Это типа питоновской шляпы? Пипа там какая-то, и что-то там вроде тоже умеет форматировать? Поубивал бы
Когда тулзами енфорсится, это конечно хорошо, но вот даже тот же clang-format довольно убог. Лично я скорее напишу свой нормальный форматтер плюсового кода, чем буду терпеть укладывание меня в прокрустово ложе clang-format'а.
Здравствуйте, SkyDance, Вы писали:
SP>>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
SD>Хм, ну, разноси код вот этого чувака.
Здравствуйте, m2user, Вы писали:
M>Потому что свободное время интереснее было потратить на улучшения по основному месту работы (техдолг и пр. всегда есть).
Здравствуйте, Marty, Вы писали:
Pzz>>Лучше, когда он тулзами енфорсится, как в Go. Тогда во-первых некому предъявлять, что они своим уродским стилем подавляют моё уникальное самовыражение, а во-вторых, когда оно автоматически форматирует, это, блин, удобно.
M>Это типа питоновской шляпы? Пипа там какая-то, и что-то там вроде тоже умеет форматировать? Поубивал бы
Не знаю, что такое питоновская шляпа. И вообще про питон мало чего знаю.
В Go всё очень жестко. Его придумали фашисты. В нём автоформатирование не является добровольным выбором.
M>Когда тулзами енфорсится, это конечно хорошо, но вот даже тот же clang-format довольно убог. Лично я скорее напишу свой нормальный форматтер плюсового кода, чем буду терпеть укладывание меня в прокрустово ложе clang-format'а.
Ну ответишь, а они тебе "До свидания, холоп, нам такие борзые не нужны, и без тебя очередь за забором". В новой реальности айтишники больше не элита.
— Нет в мире справедливости, — простонал Билл, когда цепкие пальцы Смертвича впились в его плечо.
— Конечно, нет, — согласился Смертвич. — А ты как думал?
Здравствуйте, Нomunculus, Вы писали:
Н>Пришли ради прикола код на JavaScript
Напишут, что ТС тупая макака, не осилившая C#. Вот прислать пример кода на F# (завершенного приложения, а не вычисления факториала) было бы лулзово.
Я всегда, когда требовали "тестовые задания" и "примеры кода" на Java, присылал код на Scala, притом работающий как надо.
И всякий раз получал отказ, видимо у местных тимлидов бомбило от осознания своей неполноценности перед залетным кандидатом.
Один раз все же ответили, что взяли человека с большим опытом (ну да, конечно).
Надо, пожалуй, как-нибудь попробовать комбинацию на Scala и библиотеку на Asm, подключаемую с помощью JNI.
— Нет в мире справедливости, — простонал Билл, когда цепкие пальцы Смертвича впились в его плечо.
— Конечно, нет, — согласился Смертвич. — А ты как думал?
Здравствуйте, qqqqq, Вы писали:
Q>Может ты считаешь себя широко инвестным прогером-мегагуру а тебя дяди-дураки просят подтвердить твое уменее педалить код? Видимо они хотят увидеть хоть какой код, чтобы отсеять совсем неподходящих еще на начальном этапе до интервью.
А что там с дефицитом кадром, на который так жаловались кабаны кабанычи? Сейчас уже готовы надувать щеки и отправлять половину откликов в корзину, как в том анекдоте?
Два менеджера по персоналу опытный и стажёр сидят в офисе и обсуждают дела. Молодой достает огромную пачку резюме, штук 300: "Мы должны просмотреть их все, чтобы подобрать кандидатов на эту вакансию".
Опытный хладнокровно берет у него пачку, делит ее пополам, одну часть на стол, вторую в шреддер. У молодого глаза по пятаку: "А как же претенденты?!"
Опытный невозмутимо: "А зачем нам неудачники?"
Код с гитхаба может спионерить кто угодно (либо попросить написать за оплату знакомого студента). Это совершенно ничего не говорит о навыках кандидата. В нулевых, например, просили на листке написать какой-нибудь алгоритм, вроде пузырьковой сортировки или переворачивания списка или дерева. Любой волчара от Антона Назарова здесь сразу же сольется.
— Нет в мире справедливости, — простонал Билл, когда цепкие пальцы Смертвича впились в его плечо.
— Конечно, нет, — согласился Смертвич. — А ты как думал?
Здравствуйте, SkyDance, Вы писали:
SP>>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
SD>Хм, ну, разноси код вот этого чувака.
посмотрел
ничего выдающегося
если убрать от туда erlang
так вообще ни о чем
Здравствуйте, Marty, Вы писали:
M>Здравствуйте, SkyDance, Вы писали:
SP>>>Когда видел в резюме ссылку на гитхаб, точно туда лез и потом разносил чувака уже на собесе по найденным слабым местам.
SD>>Хм, ну, разноси код вот этого чувака.
M>Присоединяюсь. Что разносить-то?
фу марти, не зачет
у меня поиск занял 5 минут
а тебе слабо?
Здравствуйте, Worminator X, Вы писали:
WX>Я всегда, когда требовали "тестовые задания" и "примеры кода" на Java, присылал код на Scala, притом работающий как надо. WX>И всякий раз получал отказ, видимо у местных тимлидов бомбило от осознания своей неполноценности перед залетным кандидатом.
Меня обычно бомбит, когда просишь человека сделать А, а он делает Б.
Здравствуйте, Worminator X, Вы писали:
WX>И всякий раз получал отказ, видимо у местных тимлидов бомбило от осознания своей неполноценности перед залетным кандидатом. WX>Один раз все же ответили, что взяли человека с большим опытом (ну да, конечно).
Здравствуйте, Sinclair, Вы писали:
S>. Да элементарно — понимает ли клиент, в чём проблема такого кода и как ее починить: S>
S>public IEnumerable<string> GetAccumulatingSum(this IEnumerable<int> source)
S>{
S> var s=0;
S> foreach(var v in source)
S> yield return s+=v;
S>}
S>
Что с этим кодом не так, помимо того, что не скомпилируется? Кроме шуток, особых косяков не вижу,
разве что можно стандартными средствами библиотеки пользоваться. А, понял, проблема
тут
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Pzz, Вы писали:
Pzz>>Это если ему позволят в дизайн. А если "вот тебе бага, надо починить за два дня", то какой уж там дизайн? S>Дизайн тоже бывает разного уровня. S>Ну, то есть code style, действительно, смотреть большого смысла не имеет — его всё равно можно зафорсить тулчейном. Хотя, скажем, если кандидат показывает такое
, то сразу понятно, что ему будет тяжело работать в команде. Потому, что он явно не дорос даже до понимания того, что такое code style — и для него ошибки из тулчейна будут просто пустым звуком.
Я знал человека, он писал вот примерно в таком стиле. Но у него был великолепный дар: он умел находить репения проблем на стыке софтвария и железа. Ответ он выдавал в виде примерно вот такого кода, потом мы, программисты, переписывали по-человечески.
Безусловно, это был очень полезный человек в команде, и его там очень ценили.
Здравствуйте, Sharov, Вы писали:
S>Что с этим кодом не так, помимо того, что не скомпилируется? Кроме шуток, особых косяков не вижу,
Упс, написал какую-то фигню. Думал одно, писал другое.
Вот "правильный неправильный" код. Сделаем проблему более очевидной:
public static IEnumerable<int> GetAccumulatingSum(this IEnumerable<int> source)
{
if(source == null)
throw new ArgumentNullException(nameof(source));
var s = 0;
foreach(var v in source)
yield return s += v;
}
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Sharov, Вы писали:
S>>Что с этим кодом не так, помимо того, что не скомпилируется? Кроме шуток, особых косяков не вижу, S>Упс, написал какую-то фигню. Думал одно, писал другое. S>Вот "правильный неправильный" код. Сделаем проблему более очевидной: S>
S> public static IEnumerable<int> GetAccumulatingSum(this IEnumerable<int> source)
S> {
S> if(source == null)
S> throw new ArgumentNullException(nameof(source));
S> var s = 0;
S> foreach(var v in source)
S> yield return s += v;
S> }
S>
Здравствуйте, Sharov, Вы писали: S>Я выше же отписал по возможной проблеме.
Приведённая вами особенность — чисто стилистическая, я бы её не стал относить к проблемам совсем.
А вот то, что валидация аргументов происходит вовсе не в вызове метода — штука принципиальная. У нас потенциально в стектрейсе вообще может не быть того фрейма, в котором в метод передаётся null, потому что итерировать мы начнём где-то в километрах кода от инициализации.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Worminator X, Вы писали: WX>Код с гитхаба может спионерить кто угодно (либо попросить написать за оплату знакомого студента). Это совершенно ничего не говорит о навыках кандидата.
Это настолько идиотская идея, что её нет смысла обсуждать.
Ну вот спионерил кто-то код с гитхаба или у знакомого студента — дальше-то что? Это поможет дойти до собеседования. В первые 15 минут выяснится, что кандидат соврал, а это поставит крест на дальнейшем трудоустройстве.
Потому что с плохим знанием шарпов ещё можно претендовать на позицию, хоть и джунскую, а с готовностью врать работодателю даже уборщиком не возьмут. Всё, убер-план пал под натиском реальности.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Sharov, Вы писали: S>>Я выше же отписал по возможной проблеме. S>Приведённая вами особенность — чисто стилистическая, я бы её не стал относить к проблемам совсем. S>А вот то, что валидация аргументов происходит вовсе не в вызове метода — штука принципиальная. У нас потенциально в стектрейсе вообще может не быть того фрейма, в котором в метод передаётся null, потому что итерировать мы начнём где-то в километрах кода от инициализации.
Я так понял, что речь идет о ленивости, но каким образом мы потеряем нужный(проблемный) фрейм?
Приведенный фрагмент кода лежит в основе как минимум Linq to objects, поэтому не совсем понятно, что с ним не так...
Therefore it is recommended to split the method into two: an outer method handling the validation (no longer lazy) and an inner (lazy) method to handle the iteration.
M>Therefore it is recommended to split the method into two: an outer method handling the validation (no longer lazy) and an inner (lazy) method to handle the iteration.
Ну вот и прекрасно.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.
Здравствуйте, Sinclair, Вы писали:
S>Здравствуйте, Sharov, Вы писали: S>>Я так понял, что речь идет о ленивости, но каким образом мы потеряем нужный(проблемный) фрейм? S>Очень просто. S>Ошибка — в функции GetAS(). В стектрейсе её нет: S>
S>Unhandled exception. System.ArgumentNullException: Value cannot be null. (Parameter 'source')
S> at X.GetAccumulatingSum(IEnumerable`1 source)+MoveNext()
S> at Program.Print(IEnumerable`1 s)
S> at Program.Main()
Ну да, особенности ленивых вычислений.
S>>Приведенный фрагмент кода лежит в основе как минимум Linq to objects, поэтому не совсем понятно, что с ним не так... S>Нет, не лежит.