Как бороться с «запутанным программированием»? [закрыто]

18

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

Лично мне нравится заново изобретать колесо, когда я учусь, или даже просто для удовольствия, даже если оно оказывается хуже, чем было сделано раньше. Но этот человек, очевидно, не может вообразить воссоздание ЛЮБОЙ утилиты для таких целей или, возможно, попробовать что-то, что не строго следует традиционным методам ООП, и не согласится ни на что, кроме своего чувства совершенства, и, таким образом, естественно, заставит свою критику отмахиваться от моих ушей в полную силу , Чтобы завершить это, они в конечном счете начинают оправдывать свои советы (отсталость), перечисляя все невероятно сложные вещи, которые они написали в одиночку (обычно по принципу «поверь мне, я создал / использовал программу X в течение длительного времени»). , бла бла бла").

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

Есть ли у вас какие-либо советы о том, как бороться с такой словесной поркой?

Петр Григорьевич
источник
10
Мне также нравится заново изобретать колесо. Это отличный способ по-настоящему понять новую технологию. Что, в свою очередь, помогает вам с другими. К тому же, откровенно говоря, часто изобретать колесо так же быстро, как и учить, обслуживать и изменять чей-то плохо закодированный, плохо документированный диск.
GrandmasterB
31
Повторное изобретение колес отлично подходит для обучения и настоятельно рекомендуется. Однако для «реального» кода, который будет выполнять что-то важное, выберите существующее проверенное и протестированное решение!
Питер Боутон
6
Иногда, «изобретая велосипед», вы в конечном итоге «строите лучшую мышиную ловушку».
Расти
2
Вы делаете дерьмовое колесо, понимаете, что оно дрянное, и идете и находите фантастическое, сделанное кем-то, кто знает, как это сделать.
1
@Rusty, проблема в том, что это ловушка для мыши, а не колесо;)
Мэтью Уайтед

Ответы:

36

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

Конрад Фрикс
источник
1
Я могу надеяться. Честно говоря, они, вероятно, лучше программистов, чем я, но мне действительно тяжело учиться или находиться в одной комнате с социальным тупицами, выставляя напоказ его способности, как будто это лицензия на полное дерьмо.
Питер Г.
1
То, что они лучше, чем вы, не означает, что они всегда знают, о чем говорят.
Конрад Фрикс
Я попробую ваш метод тогда, в следующий раз, когда это произойдет. Благодарю.
Питер Г.
2
Прагматичный это ключевое слово.
Ронг
1
@PeterG. как это прошло?
17

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

В те годы я работал с некоторыми невероятными гениями, не с гением актрисы на пьедестале, а с блестящим IQ, Гением с большой гениальностью. Черт, я прочитал Кнут.

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

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

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

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

Как и в большинстве социальных ситуаций, это зависит от контекста.

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

Если этот человек ваш ровесник, вы можете просто проигнорировать это и двигаться дальше. Лучше было бы попросить их объяснить, почему они ценят определенную библиотеку или подход. В ходе обсуждения они могут понять, что ваши ограничения отличаются от ожидаемых (например, вам не нужна «потрясающая супер-быстрая библиотека X», потому что вам не нужна грубая скорость вращения педали до металла, или вы не не хотите использовать «готовый компонент Y», потому что вы стремитесь минимизировать зависимости). Вы также можете получить ценную информацию о том, что они предлагают. Обычно в подобных ситуациях я в конечном итоге иду своим собственным путем, но я также обычно собираю некоторую полезную информацию, по крайней мере, изучая подход / технологию / библиотеку, которую они защищают.

Если этот человек под тобой, скажи ему, чтобы он отвалил :) Хорошо ... может быть, немного более конструктивным (не будь тем человеком, с которым ты пытаешься иметь дело!), И снова попытайся понять, что происходит, и эффективно общаться.

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


источник
Я, вероятно, еще не достаточно хорош, чтобы найти работу, так что это все сокурсники / онлайн люди / и т.д. У меня нет проблем с изучением других методов (я на самом деле ценю это), но когда я говорю кому-то, что хочу попробовать это, а потом они говорят, насколько ужасна идея, я чувствую, что теряю ее. Возможно, избегание - лучший подход.
Питер Г.
2
Для Ника - я бы не проигнорировал обалденного сверстника. У них есть возможность подкрасться аккуратно к вам и взорвать ваши инициативы. Атаки, как правило, также носят политический характер, поэтому лучше никогда не недооценивать их способность наносить ущерб, какими бы глупыми они ни были.
luis.espinal
1
@luis "Удары, как правило, также носят политический характер, поэтому лучше никогда не недооценивать их способность наносить урон" ... Я бы дал вам +100 на это, если бы мог. Был там, разобрался с этим.
Билл
1
@ Петр Г - если ты студент. Проигнорируйте их, прекратите говорить. Они будут двигаться вовремя, и вы тоже. Если вы заняты ... у вас совсем другая куча неприятностей.
quick_now
5

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

  • Он боится, что вы поступите неправильно и напрасно потратите время и деньги компании?
  • Он неуверен и боится быть неуместным?
  • Он пытается быть полезным, предлагая лучшее решение, но терпит неудачу?
  • Он неправильно понимает вашу цель в исследовании пространства решений?
  • Это его способ дружить?
  • Кто-то сказал ему, что вы всегда должны использовать X, поэтому он всегда предлагает X? Почему они сказали ему это?
  • Он продавец для X технологий?

Все они имеют разные ответы.

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

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

Алекс Фейнман
источник
+1 за то, что считал, что не может понять, какой эффект он имеет. Большинство людей, которые нас раздражают, понятия не имеют, что они делают, и часто мы заканчиваем тем, что интерпретируем то, что кто-то говорит, основываясь на нашем опыте, который отличается от их, и поэтому мы придаем значение поведению и устанавливаем «правила» что никто не знает о нас, кроме нас.
Тим Класон
2

Переключитесь в режим функционального программирования. Большинство хардов знают Java и больше ничего. Таким образом, в тот момент, когда вы ударите их чем-нибудь странным, как, скажем, Haskell, Lisp или даже Ruby, они умрут.

Захари К
источник
1

Я бы сказал им, чтобы вы взяли (Вы могли бы использовать больше дипломатических слов, если хотите.) Или просто игнорировать их. Существует не так много вариантов, кроме того, что я сказал. (Убийство может сработать, но законность зависит от региона.)

ChaosPandion
источник
4
Я не думаю, что это лучший способ справиться с ситуацией ...
TheLQ 9.09.10
1
Я попробовал менее чем дипломатический подход, но мне не нравится это делать. От криков мне становится только хуже. Много раз мне хотелось пробить их сквозь стену, но они обычно намного больше меня (шаму приходит на ум). И на моем кукурузном стебле 6 '130 фунтов, это было бы похоже на попытку напасть на шар для боулинга с помощью очистителя для труб.
Питер Г.
@Peter - я рассматриваю удаление этого, поскольку это не совсем серьезный ответ с моей стороны.
ChaosPandion
1
Все хорошо. В любом случае, жизнь нуждается в большем количестве комедии / сарказма.
Питер Г.
Я не думаю, что меня когда-либо давили так далеко на рабочем месте, но это, вероятно, ваш единственный выбор с огромным ударом.
JeffO
1

Почему тебя волнует, что говорит этот человек? Они твой босс? Какая разница? У каждой работы есть парень, надеюсь, не вы, которого они избегают, или они слышат, как он идет по коридору, и уклоняются. Они просто не любят его. Они могут даже не знать почему. Но таков мир. Будьте сердечны и заботитесь. Звучит так, будто ты хочешь свой фунт плоти и слегка его шлепать.

Джонни
источник
Сложно, если ты работаешь на кого-то вроде этого.
quick_now
0

На моем последнем рабочем месте был такой парень. У него было не только мнение по каждой отдельной задаче, над которой все остальные работали, но он также собирался и спрашивал: «Что ты делаешь - мне просто интересно!» именно тогда, когда вы начинали заниматься, а не занимались своей работой, на которую он был назначен. Одно дело иметь мнение о чем-то время от времени - у каждого из нас есть свои взгляды, и продуктивные команды всегда должны быть открыты для достоверного вклада своих коллег - но это совсем другая перспектива, когда человек неоднократно отстраняет других разработчиков от своей работы, прося их прекрати то, что они делают, и объясни им это, в надежде, что они могут развитьсяво время разговора мнение, которое они предлагают вместо того, чтобы позволить своим коллегам продолжить свою работу.

Когда этот конкретный парень попробовал вышеупомянутое на мне, его первой строкой было «Что ты делаешь?», На которую я дал краткий вежливый обзорный обзор задачи, над которой я только начинал, на тот случай, если он на самом деле просто спросил скорее чем его долгое и не очень поучительное обсуждение этого вопроса, как я подозревал из болезненного предыдущего опыта, было его намерением. Когда в ответ на мое общее объяснение он продолжил говорить «Я не понимаю? ...» тоном, который подсказывал, что ничто не сделает меня счастливее, чем остановить то, что я делал, чтобы объяснить ему свои намерения более подробно, Я просто сказал: «Зачем вам нужно понимать?», И это остановило его.

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


источник
Я не уверен, что мне нравится такой подход, все в команде должны знать, что все остальные замышляют, и все, иначе, если они по какой-то причине отключены, никто не может их забрать. Также, где это возможно, вся команда должна вносить свой вклад в отношении техники, чтобы обеспечить наилучший подход.
Orbling
Я не согласен - мы команды разработчиков, а не Борг. Проектирование комитетом не работает, равно как и прерывание и изменение заданий, как если бы разработчики были просто взаимозаменяемыми частями. Я, конечно, открыт для других людей, с уважением делящихся взглядами и мнениями в моей работе, но, как отмечалось выше, я делаю различие между существующим мнением и простым отстранением от работы других людей, прося их прекратить то, что они делают, и сжечь время объясняю свои идеи вам. Некоторым людям просто нравится слышать их собственный голос, и этот конкретный разработчик был в этой категории.
@ Орблинг, звучит как причина для запланированной встречи для меня!
@ Thorbjørn Ravn Andersen: В современном мире вы часто распределяете команды по континентам. Запланированное собрание может быть очень трудным для достижения, чего следует избегать, где это возможно при любой скорости.
Orbling
@ Orbling, ответ ясно говорил о том, что разработчики находятся в одном физическом месте. Тем не менее, даже для распределенных команд вам нужна координация, чтобы не допустить постоянного срыва людей.
-2

Ударьте их строкой «Вы никогда не должны использовать то, что не понимаете».

Maxpm
источник