Какие навыки разработки вы приобрели после 7-10 ++ лет опыта в разработке ОО?

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

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

Но некоторые навыки связаны с тем, как вы думаете о коде и как вы подходите к кодированию, иногда с тем, как можно применить особую функцию инструмента. Вращающееся парное программирование и тесное сотрудничество с другими людьми, кажется, лучший способ приобрести эти навыки, хотя, конечно, не единственный метод. (И иногда вы узнаете то, что вы ДОЛЖНЫ выучить 5 лет назад, я спрашиваю не об этом)

Поэтому я хочу соединить программу со всем StackOverflow:

Каковы ваши поздние навыки кодирования?

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

12.12.2008 10:10:36
14 ОТВЕТОВ
РЕШЕНИЕ

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

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

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

Если вы не можете этого сделать, то Гай Кавасаки и Джоэл Спольски написали много хороших статей о создании собственной компании.

5
12.12.2008 11:57:18
Отличный комментарий: «это значит быть лучшим вьючным животным».
MusiGenesis 12.12.2008 13:31:14

Прототипирование и издевательство.

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

Насмешка - опять же, следуя принципам изоляции (Divide & Conquer), это абсолютно основа любого дизайна, который я придумываю сегодня.

3
12.12.2008 10:19:51
Я полагаю, что вместе со слабой связью это действительно знамение времени. Таких вещей не было 5 лет назад. Если бы вы были сегодня вне школы, вы бы узнали это?
krosenvold 12.12.2008 10:22:23
Я не уверен, это точно не упоминалось, когда я пошел в университет 10 лет назад! Думайте, что это просто признак растущей сложности программного обеспечения - очень мало приложений, которыми может управлять один человек в целом.
Duncan 12.12.2008 10:57:36
Что ж, я согласен, мой U научил меня нескольким трюкам, которые делают хорошего разработчика программного обеспечения, или ни одного из них
krosenvold 12.12.2008 12:10:48

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

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

8
12.12.2008 12:43:15
Хорошо развитие карьеры является второстепенным для меня; Я заинтересован в навыках кодирования;) Моя карьера, где я хочу, чтобы это было.
krosenvold 12.12.2008 10:54:07
@krosenvold - извините, если я сошел с дистанции на этом. Я понял, что это не тот вопрос, который вы задали, но, тем не менее, это то, к чему я сильно чувствую. К вам.
Galwegian 12.12.2008 12:00:47

Некоторые из навыков, которых не было, когда я начал программировать:

  • Модульное тестирование,
  • Рефакторинг,
  • Некоторые другие гибкие парадигмы.

Вы должны перестать учиться, только если вы перестанете дышать.

3
12.12.2008 10:28:52
Вы не должны даже перестать учиться тогда. Смерть не оправдывает невежество. :)
MusiGenesis 12.12.2008 13:32:25

Работаю только с логической структурой моего кода и максимально игнорирую физическое расположение файлов.

0
12.12.2008 10:30:01

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

Изменить: кроме того; Я только начинаю понимать ТДД, и мне это нравится!

2
12.12.2008 10:36:50

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

  • Зная, когда писать комментарии, где они действительно необходимы.
  • Зная, когда НЕ нужно писать комментарии, потому что код теперь достаточно самодокументирован.
6
12.12.2008 10:45:35
Я думаю, что это лучшие из них; тонкие.
krosenvold 12.12.2008 10:47:10

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

1
12.12.2008 11:09:07

Прагматизм и навыки людей.

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

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

3
12.12.2008 11:47:21

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

Для меня это, зная, что тестировать.

Некоторое время я был фанатом, который говорил, что все должно быть проверено, методы получения / установки DTO и т. Д. Это нецелесообразно и не нужно. Вы должны проверить (до смерти) сложные и критические вещи, потому что именно там находятся ваши сложные и критические недостатки. Слегка проверить остальное.

3
12.12.2008 11:56:53

Архитектуры программного обеспечения, Программирование в целом. Я понял, что программное обеспечение >> код, и вопрос языков программирования в лучшем случае является третичным.

2
12.12.2008 12:51:32

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

3
12.12.2008 17:47:25
Ну да, но именно в том смысле, что я не чувствую личной атаки / нарушения, когда люди меняют мой код или критикуют мой код. Так что, я думаю, это можно назвать обучением соглашаться с владением общим кодом.
Daniel Auger 12.12.2008 17:38:05
Хорошая точка зрения. Думаю, что я на стороне критики (Узнав, что я не идеален;)) Пока еще не научился быть счастливым передать его в оффшорные ресурсы - если только мне не придется смотреть на это снова .. .
Chris Brooks 15.12.2008 10:16:44
Я думаю, что есть разница в 1000 миль между принятием изменений сверстников и вещами, которые приходят из некоторых оффшорных мест.
krosenvold 17.12.2008 17:07:17

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

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

2
17.12.2008 01:53:53

Я действительно согласен с постом "Навыки для людей", но кроме этого:

Чтобы назвать одно - я действительно понял, что языки на самом деле не являются языками. Это диалекты.

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

/Роберт

1
17.12.2008 02:10:51