T/T Lead
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    Странная бинарная логика

    вы предлагаете запостить все известные прилагательные состояния?

    вы в курсе — что такое упрощение с помощью сведения к двум крайностям?

    Но гораздо чаще в украинских реалиях, под «токсичным» понимается «знает себе цену»

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

    От чьего лица тут стоит глагол «наймите»?

    от лица того кто нанимаЕТ ессно.

    Пока оплата идет не из личных денег, то нанимаете не вы

    я — второе звено в отсеве. первое — эйчары.
    третье — те кто будет принимать окончательное решение — брать или не брать за ту сумму на которой сошлись.
    а принимает это решение — с моей «докладной запиской», моим частным и субъективным мнением. но у меня другого и быть не может.
    как у любого субъекта — только субъективное и может быть.

    нанимает бизнес

    бизнес не может никого нанять физически. потому что это не субъект, а понятие. в некоторых случаях да, используется в качестве субъекта
    но нанимает не бизнес
    особенно если до него не дошел кандидат, потому что ему было отказано на этапе 1 или 2

    бизнес не может нанять того, кого к нему не подпустили

    Это как когда я «нанимаю» автомеханика, загоняя машину на ТО, мне абслютно наплевать

    все правильно.
    только пример неправильный.
    вы — автомеханик, и вам нужен еще, и вот — пришел к вам автомеханик. и вы решаете — брать, не брать.

    соискатель — не машина которую загоняют в СТО.
    он — потенциально будущий автомеханик в этом СТО

    и второе — вы действительно НЕ нанимаете автомеханика.
    вы заказываете работу внешнему для вас контрагенту.
    это не наем — это — контракт.

    и упомянутый Коуз тем и занимался — исследовал стоимость контрактов, соглашений, договоренностей.
    и первая работа которая его прославила называлась
    «Почему существуют фирмы?»
    в ней он показал что существуют они как раз потому что трансакционные издержки на контракте с внешним агентом ощутимо выше чем с внутренним.

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

    Другой пример выгод смышленного сотрудника:
    Почему людям платят по-разному
    fit4brain.com/9495

    это все о том же, почему вовлеченный и проактивный работник выгоднее бизнесу, чем просто работник

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    конечно убойный.

    весь менеджмент такой — стоит не на графиках KPI а на работе с людьми. творческой работе с людьми, а не «вот тут цифирка у нас такая». это ху-ый менеджер, если он за цифрами людей не видит

    а то что «среднестатический человек» уныл, ну да.
    и в фаангах за этим вполне следят — и увольняют.

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

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

    но что точно
    ни один диспут, ни одна книжка не сделает — «просветленным».

    а «непросветленные» пусть да, стенают что это все ложь
    это как постоянно несчастной в любви женщине пояснять что не все мужики козлы и только об одном и думают

    это — ее ж выбор :)

    более глобально это «Иметь или быть?» у Фромма описано, например.

    так и с программированием и программистами.

    И если это надо объяснять, то вообще-то правило известно:
    Тогда ничего не надо объяснять

    Поддержали: Roman Pavlyuk, Oleksandr Manenko
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    Управление (равно как и «отсутствие необходимости управлять») начинается с возможности измерить

    стоимость транзакционных издержек — вполне измеряется. За них Коузу вообще нобелевку дали, по экономике.

    а как вы это определите интервьюируя потенциального соискателя?

    проще некуда. когда ты сам такой.

    А дальше да, решаешь, давать добро на общение с руководством о деньгах. и приписываешь — достоинства соискателя, и его недостатки. чтобы в торге о деньгах у руководства было понимание

    или — «мы вам перезвоним», потому что понятно что проблем от него будет больше чем пользы.

    По горящим глазам? Так может они от голода того?

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

    штука достаточно эфемерная.

    вполне конкретная.
    штука ж с той же категории «токсичная атмосфера» — тоже вполне конкретная, не? все нюхом через пару месяцев учуют, не?

    и как ее плотность, атмосферы этой измерять?
    что там на ё-ойти пишут об этом?

    Из «хобби программирование» никак не следует того, что человек будет лучше или хуже делать работу.

    никак.
    как и из профессионализма — тоже этого не следует.

    зачастую «ортогональны»

    о! так о том и речь, что это вещи — из разных категорий.

    но боевой дух плюс выучка — лучше чем просто выучка, без боевого духа.

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

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    Ну и как этим управлять, если оно «или есть, или нет»?

    а зачем этим — «управлять»?
    эти качества как раз снижают издержки на управление. те, которые трансакционные по Коузу.

    Большая часть любой работы — это рутина

    ну да. мыть посуду приходится независимо от того кто ты.
    давайте без банальностей, а?

    Так что имхо профессиональный подход когда человек на должном уровне делает

    ок, давайте продолжим сравнение красного и соленого:
    чел супер профи. токсичный.
    какая сумма получится с профи + токсичный?

    наемные сотрудники расстаются с не возобновляемым ресурсом — временем.

    а закончим все — могилой. Какая разница тогда вообще?

    еще раз, предлагаю избавлять свое мнение от банальностей.

    Конечно же он будет — в свободное от работы время

    ну это личный выбор — заниматься «мытьем посуды» на работе, а после работы — писать картины, симфонии, и т.д.

    для меня например программирование — хобби. всю жизнь. ну да, еще и платят. и посуду мыть нужно. но ее всегда мыть нужно, и когда ты в свободное от работы время. но, и за это мытье платят.
    поэтому я не понимаю зачем разделять работу и хобби :)

    Среднестатистический человек к определенному возрасту имеет определенные обязательства

    ессно имеет.

    только одни почему стонут а другие радуются. НА работе. За выполнение которой — деньги платят.

    кто что выбрал — стонать или радоваться.
    и этот выбор — нельзя купить за деньги

    ну вот берем доклад Выкидываем ReactJS / Александр Соловьев
    он бесплатно все это делал, о чем рассказывает?
    а что, есть сомнения что ему делать в кайф было?
    и что, есть сомнения что и ему «посуду мыть» приходилось и приходится?

    наймите чела без этого кайфа , заплатите ему 10К — кайф у него появится? от того — чем он занимается НА работе — появится?

    вот там к докладу в комментах
    «Очень мотивирует. Временами мне кажется что Web жуткая скукатень. В рассказах Соловьёва это прям приключения без конца.»

    а вот его там ответ на типичную критику «среднестатического человека»
    «Ну зашибись теперь, давай жить в унынии»

    Поддержали: Roman Pavlyuk, Юлія
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    по моему все ж понятно было написано

    вовлеченность и проактивность — нельзя купить. если они есть у чела — то они есть и за мизерную зарплату. он по другому просто не может. если нет — то сколько не плати — их не появится, если чел даже смысла этих слов не знает, не видит разницы между проактивными и реактивными например.
    это ж не раз поднимаемый диспут о product mindset, о full-stack craftsmen

    а уже второй вопрос, что чел вряд ли долго будет работать за мизерную зарплату, и пойдет искать себе другую работу где платят получше, где нет «90% вероятности постоянных непоплачиваемых овертаймов», и прочей гадости.

    но, вот это, как пробегала статья недавно, от программиста в Apple:
    «Даже если из IT уйдут деньги — я все равно буду программировать»
    купить в человеке не получится — если в нем этого нет.

    и я подозреваю что

    сразу в голове начинает блымать красная лампочка

    у тех у которых нет этих, обсуждаемых качеств работника.

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    из периода хайпа по ней помнится вот это
    Особенности языка:
    — Обеспечивает богатый набор неизменяемых, сохраняемых структур данных
    — Параллельное программирование с поддержкой транзакционной памяти, агентной системы и системы динамических переменных

    Конечно, чтобы понять что дает продуктивности, а что наоборот — надо самому пописать

    как я говорю — аналитически преимущества (они же недостатки) ЯП не выводятся

    например
    и js и php supports first-class functions

    но в js это реализовано так естественно, что как-то по другому и не используешь. само просится использовать эту фичу
    в php — нет. используется, но — более тяжеловестно. в недавно вышедшем php 8.1 улучшили синтаксис, но все равно не то.

    в итоге, в теории поддержка first-class functions есть, а на практике — в js она дает куда больше преимуществ чем в php

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

    Поддержал: Roman Pavlyuk
  • NODE.JS |OR| NO JS — IT-дуель між Тимуром Шемсединовим та Володимиром Кириченко

    В одном из видео для fwdays Тимур обьяснил. Какая то жуткая руганка была на форумах между нодщиками и джавистами, что уже и слово хейтинг мягко сказано. И, решили удалить видео, так будоражащее «рациональных технарей». Забота о психическим здоровье вобщем айти комьюнити

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    бизнесу все равно на чем сделано

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

    и если бизнес прислушался — то вот и апрувнул.
    значит — были аргументы, про «почему не мейнстрим»

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

    Поддержал: Юлія
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    так вот на том же stackoverflow аж целых 500 вопросов по Clojure, против 2 миллионов вопросов по python:) что как бы наглядно демонстрирует интерес людей к тому или иному языку.

    каких именно людей — не задумывались?
    подсказка — в большинстве школ мира на уроках «информатики» дают python, и в большинстве колледжей мира, профильных и не — его тоже дают.

    что ессно никак не говорит о том чем python плох/хорош, чем Clojure плоха/хороша

    просто всегда когда слышите про «интерес людей» о чем угодно, уточняйте для себя — каких людей?

    если бы вы переписали бек

    кто оплатит такой эксперемент?
    вот и нет их, эксперементов этих.
    а есть только — еслибыковщина, которая выдается и трактуется в зависимости от опыта с интуицией еслибыкающего

    вот и холивары в инетах
    студент осиливший python уверенно в своем «если бы»
    опытный — тоже уверен, что это «если бы» не помогло «бы». особенно — в его конкретном проекте, о котором он знает ну очень много подробностей.
    в отличие от советующего

    и оба они получаются — на равных — один голословный пост против другого голословного поста.

    а если учесть ответ на первый вопрос(какие люди) — и бОльшую активность молодых в интернетах, получим, в зависимости от форумной тусовки перевес голосов — в пользу какого из двух «бы»?

    студенты студентам еще и лайков наставят — потому что такие же, и одобряют такое же как свое мнение :)

    Поддержал: Юлія
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    это ж «вечная молодость».

    я тоже помню возмущался примерам на С
    printf("Hello world!")

    это 14 Кб obj файл будет!
    а если
    puts("Hello world!")

    то около 4Кб.

    Поддержал: Alex Fogol
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    А мне первая важнее, если честно

    именно! сам ушел из джавы на дин ЯП — потому что по себе знаю эту разницу
    а жизнь коротка, хочется сделать побольше и в обычной работе, а не бодаться с типами.
    которые да, может джунов и спасают от ошибок. или проекты, которые перекидуются то индийцам, то нам, то бразильско-португальской команде, и за 10 лет в них покопалось 5 команд, каждая с своими «великими архитекторами» и своим национальным колоритом программерской школы.

    но мне надоело в какой-то момент это обвешанность спасательными кругами. когда тесты — ну все равно ж нужно писать! ну так от чего защита то?

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

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    когда-то мне один эйчар сказал что они выбрали Scala — чтобы отсеивать кандидатов. сразу.
    и что так, из-за этого жирного плюса Scala, поступили не только они, а еще одна известная ему компания, где его знакомый эйчар работает. :)

    так что если рассматривать доступность персонала на рынке труда — то вопрос — а зачем вам эти орды унылых, выгоревших программистов на джавах и пыхах, или пришедших за деньгами?

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

  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    Clojure

    работает на JVM
    так что считайте что на джаве

    а реакт — не ангуляр. оверинжинирить по энтерпрайзному не требует.

    хотя, если вот прям не хочется из топовой троицы брать, но jQuery тоже не хочется
    то riot.js (проверено в боевых условиях) — замечательный малыш

    Поддержал: Serhii Harnyk
  • «Когда был разработчиком, программировал до трех часов в день». Александр Соловьев, СТО в Kasta — почему перешел c Python на Clojure, не пишет код по вечерам и критикует свитчеров

    И это разделение якобы на тру-айтишников и «вайтишников» — дедовщина чистой воды.

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

    но все равно — чувствуется. как акцент на чужом языке :)

    9 месяцев с 0 до оффера.

    а это вот — круто. вы очень серьезно учились, даже если бы не написали об этом.

    я считаю что при правильном менторе можно и за 6 месяцев. но точно с 0 — не меньше.
    но это удача, найти такого ментора.
    так что 9 месяцев с 0 в Java — очень хороший результат.

  • Рефакторинг, который мы заслужили

    та я бы вообще на уровне ООН устроил компанию по приведению формата даты единому YYYY-MM-DD

    еще бы конечно все эти футы/мили-фунты-галоны прибрать. но дефолт стране метрическая система не указ

    Поддержал: Vasiliy Sobol
  • Читабельність коду. Способи, кращі практики та помилки

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

    Это не беда.
    Это норма.
    Недавно встретил очень популярно изложение причин:
    Почему мышление — боль? [Veritasium на русском]
    youtu.be/_zM8m4pRdt4

    Разница только в том — у кого какие наборы догматов, предубеждений, какого уровня абстракции(группировки, обобщения феноменов), и количестве правил работы с этими догматами.

    А другие, посмотрев на первых, решают, что вся парадигма — туфта.

    И обычно — чем меньше этот набор правил, и чем более примитивные догматы — тем фанатичней, ортодоксальней такое мышление.

    «23летний синьор, 25летний архитектор» — это 3.14ец какие фанатики.
    а это и есть — основная категория программерских форумов :)

    (например такие мнения — dou.ua/...​rums/topic/35472/#2280998 вызывают у них бурю праведного негодования)

    Комментарии должны описывать

    Код на ЯП — это набор инструкций транслятору для построения системы по переработке информации.

    Чтобы вносить изменения или дописывать такие инструкции — нужно прочесть, т.е. понять контекст, в котором задумывалась эта система или ее часть.
    Поэтому уже высказался в
    dou.ua/...​rums/topic/35450/#2280696

    Могу еще добавить что вот те пресловутые митинги, что «всех достали» — призваны делать тоже самое — передавать контекст членам команды, который отсутствует в программном коде. а часто и сложно отыскивается в остальной документации проекта.

    комментирование неочевидных, сложных мест в коде — это всего лишь одна из ролей для коментов.

    Уменьшение боли мышления — вот основная их задача.
    Если они ее не выполняют — то удалять их, запрещать такие коменты.

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

    оверинжиниринг — обычно никакого отношения к инженерии не имеет. Он следствие попытки не думать, а свести решение к механически повторяемым действиям: «если повесить подкову над дверью», «если помолиться святым мартину и фаулеру», ..

    А легаси код — это не непродуманная архитектура, а следствие развитие продукта под воздействием никак(почти) не прогнозируемых изменений что потребовались.

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

    и комментарии — это средство добавить читабельности к нечитабельному коду.
    на всяк случай продублирую:
    1. а становится он нечитабельным потому что требуются определенные эксплуатационные характеристики, а не удовольствие от чтения
    2. развитие проекта идет по никем и никак не прогнозируемому пути, потому что на старте этот путь никто в проекте и не мог знать, с такой детализацией, какая и описывается кодом на ЯП.

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

    да!
    нужно делать правильно! а неправильно — не нужно делать!

  • Читабельність коду. Способи, кращі практики та помилки

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

    обычно всё начинается с простого — с неочевидных имен, пропущенного рефакторинга, непродуманной архитектуры.

    небо голубое, трава зеленая.

    любого спроси — он порасскажет как правильно.
    особенно с важным видом о «непродуманной архитектуре» будет вещать.
    великих вещателей об архитектурах у нас в айти — через одного.
    с таким уровнем коллективной экспертизы — непонятно почему столько воя «а-а-а, код на проекте у нас говно! архитектура непродумана!!», ...,

    совершенно ничего не понимает в коде

    вот коменты и призваны добавить этого понимания.

    Обо всем этом когда-то тоже говорил Роберт

    расшибания лбов перед иконой мартина да, популярное занятие.

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

    Нигде, ни в какой другой индустрии, нельзя представить себе того же Мартина Фаулера или Роберта Мартина. В той же науке — им бы на второй день провели бы коллективным *уем по губам. Но в IT-шке книга «Patterns of enterprise software» — набор заклинаний, типа «используйте ООП, но я вам не расскажу как», от которых даже сам Фаулер сто лет как переобулся — стабильно в топе книг
    (конец цитаты)

    Роберт Мартин — педагог, а не практикующий программист. как по мне — неплохой педагог.
    И его советы часто именно педагогические, как нашумевшая школьная двойка, когда ребенок написал решение задачи:
    5 * 2 = 10
    а надо 2 * 5 = 10

  • Читабельність коду. Способи, кращі практики та помилки

    const в js стал стандартом вместо let а тем более, фу-фу, var

  • Читабельність коду. Способи, кращі практики та помилки

    В приводимом примере это название метода, просто содержащее глагол «обновить» ... метод update() у модели ORM. Из того, что существует команда SQL

    а я под КАК я подразумеваю именно детали реализации.
    один из патчей в известном фреймворке у меня для метода populateXXX
    внутри данные записываются в хэшмапу, но если не было такого ключа для rawRows.
    а в проекте логичнее чтобы при сортировке в конечном SQL — в итоговой коллекции были самые последние строки. всегда, не придумалось случая когда нужно чтобы первые.
    populateXXX же этот — protected метод в глубинах, и чтобы снаружи добиться нужного поведения — надо будет писать неочевидный код, да еще неоптимальный с точки зрения БД.

    и вот, пишем такой неочевидиный и неоптимальный код, а комментариии опускаем. все будет понятно?
    ну, или — правим в этих глубинах, и снаружи да, простенький код, не требующий комментария.

  • Читабельність коду. Способи, кращі практики та помилки

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

    перфекционизм инженеров — известное зло.
    конечно, в программерской тусовке он нередко объявляется великим достоинством :)

← Сtrl 123456...172 Ctrl →