Обновить
52
5

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

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

проще свой стартап сорганизовать

Есть основания полагать, что данный коммент попал к нам их параллельной вселенной. Это объясняет и загадочный момент с 200к. Потому что в моей наблюдаемой вселенной фраза "да просто намути стартап" звучит примерно как

  • да просто получи гражданство Японии - сможешь по всему миру ездить

  • проще вертолет свой купить и в пробках не стоять

  • проще свой гугл написать, чем на булшит из топа выдачи смотреть

Просто потому что можем?

Именно. Скорее всего у этого робота колесики с подшипниками стоят дороже, чем эта камера. А софт вообще какой-нибудь опенсорсный. Понапихать камер сверху, сбоку, снизу и еще в где-то в 5м измерении на больших масшатабах производства можно почти бесплатно. Ровно по той же причине существует львиная доля IoT.

В общем раз это теперь тред баек про Яндекс, то добавлю свою. У меня ситуация была с другого угла зрения. Осенью один за другим к нам на собес приходили один джун+ и один сеньор оттуда. Мы тоже даем задачку под конец, она она вообще изи левел. В общем эти двое стандартную задачку раскололи за какие-то секунды и потребовали посложнее. Дали посложнее - тоже влёт. Берём?

Нет, не берём. Реальность такова, что мы занимаемся энтерпрайз-разработкой. Задачки на кодинг - это так, на сладкое. А в первую очередь мы хотим видеть, что для человека нет "магии" в том, что он делает каждый день. Поэтому мы задаем вопросы не "что такое Х", а типа "почему в этой ситуации ты используешь именно Х и есть ли альтернативы". Еще мы проверяем умение читать код и видеть антипаттерны в код-ревью. В итоге поплыли оба. Потому что по гамбургскому счету нам параллельно, что человек пишет 4 вида сортировки по памяти, если он не может объяснить, а за счет чего именно ускоряется поиск в БД с использованием индекса и какие индексы когда стоит применять. Или если не видит явные косямбы конкурентного доступа в предложенном коде. Код-то читать каждый день придется, в отличие от "вращения деревьев".

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

а что, вы хотели бы чтобы человек написавший список вот так как он написан в посте работал над чем-то важным и сложным?

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

Если хранить состояние класса не нужно, обычно лучше использовать интерфейс.

Хороший пример использования абстрактных классов — паттерн "шаблонный метод" (template method). Шаблонный метод манипулирует переменными экземпляра (полями) внутри конкретных методов.

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

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

Знаете, люди во власти и бизнесе во все времена хотели быстро и бесплатно. Однако даже в тоталитарных государствах инженеры позволяли себе быть несогласными с этими хотелками и гнули свою линию - делать так, как следует. Кстати, свободой и жизнью рисковали.

А вот чем рискуют современные погромисты? А ничем. Кого уволили за отказ забить на юнит-тесты? Кто получил по голове арматурой за желание писать строго по солиду? Кто уехал валить лес за то, что выполнил рефакторинг?

Моя позиция такая, что за код отвечает кодер. Если код - кал, это вина кодера, а не бизнеса который что-то там хотел. У кодера есть 100% рычагов влияния на технический уровень. Не пользуешься ими - пеняй на себя.

Все имеющиеся механизмы отсрочки от частичной мобилизации должны быть прописаны на уровне федеральных законов

Ок, будет написано что-то вроде "после начала очередной верденской мясорубки выпускники специальности 123456 поедут туда не сразу, а с отсрочкой в 3 месяца". Это ИТ-отрасли какой именно страны должно помочь? Армении, Грузии или Сербии?

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

У автора кода имеется своё видение. В большинстве случаев автор даже не
знает о том, что именно хотят наиболее уважаемые товарищи

Ну значит имеем косямбу то ли от товарищей, то ли от автора. Написать гайд по основным моментам - невеликий труд. Прочитать его и уточнить неясности - тоже.

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

Договоритесь об SLA на данную процедуру среди своих коллег. Например, МР не может висеть без внимания больше рабочего дня. Закрепите соглашение на общем собрании, а потом карайте нарушителей.

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

Судя по контексту, автор кода свернул не туда, когда решил запихнуть всю задачу в один МР размером с кита. Это решается декомпозицией задачи. У меня была такая проблема в одном стартапе, куда разом запустили трех джунов. После нескольких жестких разборов полетов и одного увольнения все чудом научились делать МРы с более скромными скоупами.

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

Поэтому я готов был попробовать себя как Junior, но меня определили в Senior.

...И вот прошел год,

Добрый совет всем "сеньорам" с опытом в целый 1 год. Когда начинает казаться, что поймали Б-га за бороду, то просто сходите на собес. Только не в ИТ-гигант, где вас литкодом помучают, а в продуктовую или аутсорсинговую контору средней руки. Туда, где людям не наплевать, кого брать в штат. Там будут задавать вопросы на понимание. На многие вещи по-другому сразу посмотрите.

Потому что так не бывает, что один годик подергал апишки и поперекладывал grpc - и хоба ты спец.

В одной компании мы разрабатывали свой фреймворк на базе React. И решили мы как-то сделать простое приложение для ведения заметок для проверки его в деле. Заняло у нас это несколько дней ...

Неудовлетворённый таким положением дел, я взял свой любимый конструктор $mol и сделал аналогичное приложение за 2 часа (я засекал).

Аргументы уровня "защиты Чубакки". А если кто-то выполнит ту же задачу на реакте за 2 часа, то что? Я тоже могу сказать, что напишу парсер JSON на Kotlin за 2 часа, а на Erlang за неделю. Это вообще хоть что-то говорит об этих двух языках?

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

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

Не сосем понятна выгода от гоп-стопа в наше время. Что предполагается
отжать? Мелочь в кошельке? Телефон? Одежду? Сколько на этом можно будет
заработать? Хотя бы Ладу получиться с этого купить?

Если бы мелкие преступники умели в планирование и стратегию, то они бы не были преступниками. Ну или хотя бы не мелкими.
Мне кажется, суды полны делами типа "грабанул бабулю, забрал 5000 рублей, уехал на 5 лет".

снять опасения и страхи тех, кто уехал

Господин Мишустин, смотрите, какие у меня опасения.

  • Я гуглю рост преступности в РФ в 2022 году. Особенно с использованием оружия.

  • Я прикидываю экстраполяцию этого явления лет на 5 вперед

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

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

  • И тут мне почему-то кажется, что скоро быть айтишником будет небезопасно в самом прямом житейском смысле слова. Как было небезопасно где-нибудь в провинции в 90х ребенку выходить во двор в новенькой олимпийке и белых сияющих кроссовках.

Ваши предложения, господин Мишустин.

Не я убежал от ответа, а вы видимо убежали от чтения моего первого коммента, где я свою позицию пояснил. Да, старший учит младшего. Это очевидно. Но обучение ремеслу разработки это чуть сложнее, чем просто накинуть на сеньора пачку буратин и надеяться, что он это как-то разгребет. А именно это и произошло в нашей занимательной задачке:

Ни у Коли, ни у Васи особого опыта работы с подчинёнными не было.
Советовать им, разумеется, никто не брался – слишком уважаемые были
личности. Пришлось нашим героям самостоятельно решать, куда и как
двигаться.

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

Почему я так думаю? Потому что я видел всю дичь с наймом толпы джунов в компанию к единственному сеньору на 2х предыдущих работах. Ничего кроме "Коли" там в принципе получиться не может. И, наоборот, я вижу как легко джун вливается в мой текущий коллектив, преимущественно сеньорский.

Авантюра (фр. aventure) — рискованное и сомнительное дело, предпринятое в надежде на случайный успех

Берем сеньора, даем N джунов. Через Х месяцев получаем сеньора + N мидлов.

Как по вашему, это детерминированный исход событий? Или таки авантюра "авось проканает"?

Сначала берется из воздуха тезис, что хороший кодер автоматически обладает навыками педагогики и менеджмента. Потом этим тезисом лупят "Колю" по сутулой спине. Удобно. А главное, ни слова про ЛПР, которые всю кашу заварили.

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

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

Например для меня таким местом стало изучение спринга после изучения джавы. Я в упор не понимал, зачем весь этот замут с фреймворком, XML, аннотациями и т.д. Я же буквально только что без проблем создавал объекты сам через new - а сейчас вы мне говорите, что это плохо. Почему?

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

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

Мне ситуация с этими книгами немного напоминает ситуацию с простонародным восприятием религии. Вот у нас куча полезных книг, которые точно хуже не сделают И почти все знают, что есть какой-то там SOLID, какой-то там GRASP и какие-то там паттерны. Но на деле выполнять это всё как бы не обязательно. Большинство все равно предпочитает накручивать в своем коде такие спагетти, как будто завтра не наступит и разбираться не придется. А если ты такой умный решишь побыть евангелистом и внедрить в команде хорошие практики, то рискуешь встретить спектр реакций от простого игнора до агрессии.

Да, но я потому и написал про культуру. Культура это когда договоренности выполняются. А когда все дружно вертят любые договоренности, то код тоже будет выглядеть, как будто его вертели.

Информация

В рейтинге
892-й
Зарегистрирован
Активность

Специализация

Бэкенд разработчик
Старший
Java
Kotlin