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


17

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

Я не злой, не стеснительный, не другой, мне просто нравится работать по-своему и со своими мнениями, уважая мнение других, у меня большое любопытство и жажда знаний, но мне не хватает практики, и я думаю, что люди не хотят работать со мной, потому что они могут бояться, что я буду говорить какой-то моральный дух. (Например, я начал изучать программирование с использованием Linux вместо Windows, даже если я часто использую Windows. И у меня есть Mac).

Что происходит с программистами, которым не хватает командной работы? Где начинаются проблемы? Быть хорошим программистом хоть немного компенсирует? Нормально ли для программиста иметь представление о своей работе, а не просто делать то, что ему говорят?


17
В современном мире нет профессии, в которой навыки общения и командной работы не ценятся.
Fanatic23

2
Возможность признать, что у вас есть проблема, является первым шагом к ее решению, и это хорошая проблема, чтобы понять, что у вас есть проблема, пока не стало слишком поздно!
Крис

Ответы:


16

Ваше поведение довольно распространено в вашем возрасте. Я был как ты.

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

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

Самый распространенный стиль управления во Франции основан на страхе и наказании. Это не очень хорошая новость для вас, поскольку она будет стимулировать ваш индивидуализм. Так что это будет стимулировать ваше поведение.

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


1
Я решил не использовать жирный шрифт в этом ответе, потому что мне нравится Стивен.

15

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

Кроме того, наличие команды действительно помогает время от времени напоминать вам, что вы пишете дерьмовый код. :

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

Это означает, что наличие команды облегчит изучение вещей быстрее! Одиночество сделает тебя отшельником;)


2
+1 Отлично, чтобы напомнить. Единственные разработчики застревают в колее и забывают, что они на самом деле не фантастические.
Orbling

15

Что происходит с программистами, которым не хватает командной работы?

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

Где начинаются проблемы?

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

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

Быть хорошим программистом хоть немного компенсирует?

Нет. Большинство программистов, которые являются плохими командными игроками, очень высоко оценивают свои навыки, и это называется эффектом Даннинга-Крюгера . PDF из бумаги.

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

В разработке программного обеспечения для бизнеса, компания будет вокруг после вашего ухода. Программы, скорее всего, были написаны до того, как вы начали, и будут поддерживаться еще долго после вашего ухода. Если вы пишете такие особенные и удивительные вещи, что никто другой не может их понять, то вы попадаете в ситуацию, в которой находится Naughty Dog - их ведущий разработчик уходит, никто больше не понимает проприетарный язык программирования, который написал (и написал) вещи в), поэтому им теперь приходится все переключать на C ++.

Нормально ли для программиста иметь представление о своей работе, а не просто делать то, что ему говорят?

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


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

Немного сурово назвать обзоры кода пустой тратой времени.
Jfs

5

Это обучаемый навык. Вы можете учиться сейчас (просто пытаясь работать с другими) или учиться трудным путем, на работе. (Я бы предложил первый.)

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


3

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

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

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

Как правило, общение с другими людьми сводится к игнорированию того, кто прав, а кто нет (кто верит в это или нет, не имеет значения в 80% ситуаций) и сосредоточен на том, чтобы продвигать проект вперед.


3

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

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


3

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

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

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


2

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

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


2

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

Тем не менее, как уже отмечали другие, это обучаемый навык (в некоторой степени), и если вы приложите усилия к нему. Как правило, есть некоторые курсы, которые вы можете пройти здесь, в Соединенных Штатах, в более крупных городах, чтобы развить навыки лидерства; однако, часть хорошего лидера также является хорошим последователем, поэтому эти навыки также развиваются. Аналогичным образом, умение эффективно общаться на публике иногда является навыком, с которым людям нужно практиковаться, и оно связано с умением работать в команде, но иногда его приукрашивают - кого-то, кто не способен эффективно общаться, можно назвать не командным игроком, даже если просто нужно немного поработать над своими коммуникативными навыками.

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

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


2

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

  • Все разные, и все они ценны.

Есть времена для независимости, и есть времена для сближения. Они оба важны.

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

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

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


+1 Под конец это очень высоко, так как ваш «ребенок» становится «рожденным». - На моем последнем проекте я чувствовал себя именно так :-).
Оливер Вейлер

@ Хелпер: Да. Чего я не сказал, так это того, что он снова возвращается к низкому уровню, когда вы начинаете следующую фазу :)
Майк Данлавей

Но именно эти драгоценные моменты являются причиной того, что мы программисты, верно :-)?
Оливер Вейлер

2

Я могу подумать о нескольких превосходных программистах, с которыми (по мнению многих) «довольно сложно работать»:

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

В какой-то момент вашей жизни вы поймете одну из двух вещей:

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

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

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

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

Если вы еще этого не видели, примите участие в просмотре фильма « Настоящий гений ». Обратите особое внимание на Лазло Холлифельда . Вступай в команду с открытым разумом и не стесняйся одалживать мою пижаму.


2

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

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

Иметь видение - это хорошо. Но это действительно имеет значение, только если вы можете убедить других людей поделиться своим видением. Всем Гейтсу, Джобсу и Торвальдсу удалось воплотить свои замыслы в жизнь, создав продукты, которые помогли многим людям, и заставив их купить их видения. Работать чисто по-своему более чисто и сытно, но это обходится дорого. Вы можете, как сказал Вольтер, позволить идеалу быть врагом добра («Le mieux est l'ennemi du bien»).


1

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


1

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


1

Поскольку вы только готовитесь к работе, я укажу еще кое-что.

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

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

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


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

Один пример: однажды я прочитал статью под названием «темная сторона C ++» и решил вставить сетевой диск на случай, если некоторые любопытные люди решат его прочитать. Наш учитель по программированию прокомментировал эту статью и посчитал, что это хорошее чтение. Неважно, что я более ценен, чем другие программисты, но это показывает, что я могу быть хорошим источником для обучения других, у которых может не быть такого же любопытства, как у меня.
Jokoon

0

Вы закончите работать в одиночку.
Преимущества работы в команде:
1- Интерактивная помощь: вы не будете застревать в проблеме часами / днями.
2- Вы узнаете вещи, которые вы не найдете в книгах / онлайн-учебниках, форумах.
3- Конкуренция: будет стимулировать вашу мотивацию побеждать товарищей
4- Обсуждения: что лучше, чем часы чтения книг и блогов.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.