войти зарегистрироваться

Учись Работать whois

индекс
233,03

3 простых правила, которые сделают из вас Суперзвезданутого Программиста

Я верен, что вы уже читали пост Джоэля о том, что 1% разработчиков в 10 раз продуктивней всех остальных; про разработчиков-суперзвезд; тех, только которых и стоит нанимать. Вы знаете, что вы умеете программировать, что вы умный и талантливый, но – этого недостаточно. Вы хотите быть в 10 раз продуктивней, чем все остальные в вашей компании? Вы хотите быть гуру, к которому приходят все, когда у них возникает проблема; гуру, которому достаточно лишь мельком взглянуть на проблему и лишь взмахнуть пальцем, чтобы решить ее?

И вы можете! Следуйте следующим 3-м простым правилам, и в течение 12 месяцев все это и многое другое будет вашим.


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

Правило 2: Пишите код быстро. Затроньте наибольшее количество файлов, и не забудьте включить каждый из них в ChangeLog. Не беспокойтесь о случайном создании трудно находимых ошибок; они помогут вам в будущем, потому что их, на самом деле, трудно найти. Избегайте создания тривиальных ошибок.

Правило 3: Не тратьте время для документирование кода, или добавления небольших комментариев, объясняющих потенциальные ловушки, связанные с изменением нечетких участков кода. Вам это не нужно – вы пишете код.

Усердно следуйте этим трем правилам – и вы станете суперзвездой вашей команды в течение 12 месяцев. Выпишете их и приклейте на видном месте. Только не в офисе! А где-нибудь в скрытом от посторонних глаз месте. И повторяйте их каждый день, перед началом работы. Они могут показаться вам спорными, но поверьте мне, все это имеет очень глубокий смысл.

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

Система 3-х Великих Правил Программирования основана на Двух Фундаментальных Принципах: техническом и социальном.

Технический принцип: Вы работаете в 10 раз продуктивней над вашим кодом, по сравнению с тем кодом, который писали не вы.

Каждый понимает свой собственный код лучше. Это часть вашей памяти, часть ваших соглашений — весть этот код соответствует вашим убеждениям. Вы знаете, как работает функция, которая называется X и знаете все тонкости ее работы. Вы смотрите в класс Y, чтобы найти вашу функциональность и, конечно же, она там есть. Даже если вы находитесь в нижней части файла, вы прекрасно знаете какой код находиться сверху. Все эти мелкие детали понятны вам. Теперь вам не нужно так беспокоиться о случайных побочных эффектах, когда вы что-то изменили, потому что вы помните о тех местах, которые были немного рискованными и интуитивно знаете, где вы можете писать код небрежно, а где – нет.

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

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

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

Система 3-х правил – это безупречная стратегия для достижения этой цели.

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

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

Кроме того, есть и социальные выгоды работы подобным образом:

Выгода 1: все увидят, как быстро вы пишите огромные куски кода и начнут уважать вас – особенно ваш босс, который не имеет другого критерия, чем оценивать вас по частоте и объему вносимых изменений.

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

Относитесь к этому процессу, как будто это игра в стратегию реального времени. Карта мира – это код вашего проекта. Участки кода, которыми владеете вы – это ваши ресурсы, а чужой код – производит ресурсы другим. Но, главный ваш ресурс – это ваша десятикратная эффективность, так как вы в 10 раз продуктивней при работе, как с вашим собственным кодом, так и с чужим. Ваша десятикратная продуктивность улучшает вашу репутацию, которая является валютой в Игре.

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

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

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

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

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

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

Когда вы закончите – то обнаружите, что ваша репутация возросла. И вот теперь вы сможете переписать чуть менее отвратительные участки кода, без занудных вопросов о том, действительно ли это необходимо было сделать. В конечном итоге ваша репутация вырастит и станет настолько огромной, что вы сможете переписать любую часть основной функциональности приложений по своему усмотрению. К тому времени, вы будете знать гораздо больше об остальных частях системы, чем кто-либо другой, и будете допускать на удивление мало ошибок. Это обеспечит ваш статус Гуру.
Теперь вы – суперзвезда команды. Это завершение вашей игры.
Вы выиграли!

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

Постскриптум для руководителей проектов: Если ваша обстановка соответствует Двум Фундаментальным Принципам, то ваши программисты будут играть в Игру, и ваш проект будет страдать. Меняйте правила. Убедитесь в том, что программисты признают и хорошо играют кодом друг с друга, для успешной работы небольших групп, которые решают большие проблемы. Переписывание кода, из-за появления ошибок приводят к появлению новых ошибок, из-за которых код будет опять переписан. И я не знаю хорошего способа избавиться от этого. И если вы знаете, то, пожалуйста, ради всех проектов во всем мире, оставьте комментарий!

комментарии (128)

  • Я думаю, без понимания того, что ты пишешь никакие правила вас суперзвезданутым программистом не сделают
    • «Чего мы не понимаем, тем мы не владеем» :)
    • Выгода 1: все увидят, как быстро вы пишите огромные куски кода и начнут уважать вас – особенно ваш босс, который не имеет другого критерия, чем оценивать вас по частоте и объему вносимых изменений. — так и есть. К сожалению о совести, но хорошо к зп.
  • Самое главное — это удержаться до конца статьи и не побежать пробовать на себе, такие же радужные перспективы нарисовали :)
    • «Затрудняйте другим людям работать с вашим кодом или исправить в нем ошибки.»

      одному мне эта статья показалось правилом писания быдло-кода, не?
      • вы видимо не дочитали до конца
  • Постскриптум надо выделить, то получите минусы от тех, людей что не дочитывают до конца.
    • Спасибо, выделил фразу про «зло»
    • Да ладно, не переживайте о минусах сегодня… вы их получили бы через 12 месяцев ;-)
    • не дочитал до конца, но прочел Ваш комментарий.
  • полезно тратить процентов 10-15 рабочего времени программиста на ревью кода, написанного коллегой из его же команды.
    1) мотивирует людей писать понятный код
    2) можно выявить бока на ранней стадии (еще даже до тестирования)
    3) происходит дополнительный обмен видением продукта/реализации
    • не 10-15 а все 50 надо на это тратить.
      • Да все 100% надо тратить :) а код пусть коллега пишет :)
        • раскрыть комментарий
          • я хоть и пэхэпешник вас поддерживаю.
            хабр жесток к тому, что не понимает. пэтому лучше ссылаться на МакКоннелла и адептов магии, которые подсчитали, что ревью кода помогает выявлять едвали ли не больше ошибок, чем тестирование. да ещё плюс то, что все будут понимать, как работает код.
            к сожалению, три правила из топика, многие поддерживают и исполняют даже не осознанно.
      • В парном программировании это происходит автоматом в процессе создания кода. Один пишет, другой ревьюит, время от времени меняясь местами. Вот 50% и получается :-)
        • так и делаем — проект перемалывает финансовые данные в риалтайме — 24*7*365. каждый час оутейджа — потеря в 1 000 000 евро минимум.
          • Биллинг? )
            • это не телекомуникации и не биллинг
              • форекс? фонд. биржи или их аналитика?
        • ролевые игры прям какие то
          • парное программирование — это классика XP
      • используйте «Стандарты по оформлению кода» и у Вашей команды не будет проблем с пониманием кода.

        писать нужно в едином стиле.
        • Александр, вы хоть понимаете отличие «читабельности» кода и его пригодности и что именно проверяется при review? И был ли хоть один случай вашего участия в review? Мне кажется если бы был, не писали бы вы такую ерунду.
          • не всем удается поработать по профессии, скорее это уже перерастает в хобби.

            понятия не имею что есть review и какое это имеет отношение к данной статье!
  • Блин, я с первых строк уже повелся) Сомнения подкрались только на совете «не комментируйте код» — это уж просто наигрубейшее нарушение эстетики программирования.

    В конце правильно что расписали суть, а иначе было б совсем грустно.
    • я пишу мало комментов, только для объяснения сложных читов.
      в основном всё понятно из длинных, говорящих за себя названий переменных, методов и форматирования.
      мне нравится, когда код — сам себе комментарий.
      • И это правильный подход) Я на такое насмотрелся в обучалках Zend и Adobe Flex, поэтому тоже юзаю, оч. удобно.

        Тем не менее это не исключает необходимость документирования функций (JavaDoc, ASDoc).
        • каюсь, ленюсь JavaDoc'и писать, только на методах фасадов пишу.
        • JavaDOC и тд полезно делать для функций, которыми будут пользоваться сторонние разработчики, в общем это хорошо для библиотек, для всяких sdk, ну а документировать внутренности, у которых интерфейс нестабилен, это дело неблагодарное, не все выдерживают
      • абсолютно правильно делаете, на сколько я помню это один из советов из книги «совершенный код»
      • Как говорят — хороший код в комментах не нуждается.
    • Не соглашусь с вами насчет «наигрубейшего нарушения».
      По мне так лучше написать:
      public User getUserByLogin(String login)
      чем
      public User a(String s) //этот метод принимает параметром логин пользователя и возвращает найденного пользователя с таким логим
      • Мы чуть ниже в обсуждении пришли к единому мнению, вам понравится, всё хорошо)
      • Первое название функции избыточно. :) Вы бы еще написали getUserByLoginOfTypeString().
        Гораздо короче и понятнее:
        /**
        * jdoc
        */
        public User getUser(String login) {… }
        • Согласен с Вами, что в моем примере название избыточно, но учтите контекст, я как бы ставил название функции в противовес комментарию, чтобы даже не программист понял суть. И ваш кусок кода смотрелся бы не так выразительно как мой, именно здесь, именно в это время :)
    • сомнения подкрались еще на переписывании чужого кода не глядя )
    • НЛО прилетело и опубликовало эту надпись здесь.
      • Спорно
        Когда пишешь оптимизированный код или хитрожопый алгоритм,
        отсутствие комментов в блоке кода недопустимо

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

        Я пишу полотна кода на SIMD интринсиках.
        Потому что он работает в 10-20 раз быстрее
        чем это сделает компилятор.
        Выглядит как марсианская язык, конечно
        но задача — обеспечить требуемое (максимальное) быстродействие.
        С другой стороны никто туда не лезет.
        • НЛО прилетело и опубликовало эту надпись здесь.
          • 1) У меня фиксированное железо со временем жизни 10 лет
            2) Какой смысл в более мощном оборудовании,
            если не используешь возможности существующего
            хотя бы процентов на 20.
            3) Это не мучение, а недетский такой фан, и
            я им готов и бесплатно заниматься.

    • Дочитал до середины, понял что бред — бросил… перешел к коментариям.
      И только тут понял, что нужно было дочитать до конца :)
  • В средине поста я почти поверил )))
  • так убедительно написано)
  • Напишите так же, что в качестве награды за победу в «игре» вы получите люлей от ваших колег и, возможно, руководителя проекта.
  • Может быть стоит перенести в юмор?
    • Тогда пропадет вся интрига :)
      • да, в этом вся фишка))) я тож повелся, думал узнаю что-то полезное, а тут такой стеб :)
  • Мне кажется тут всё просто: нужно оценить мотивацию программистов и в случае необходимости менять её. Если человек пишет проект не для себя, не для своей компании (при этом ассоциируя себя с ней), значит, он просто работает за деньги и только — качество полученного продукта для него не важно, ему важно получить деньги и забыть. И не важно, что там будет делать руководитель — конечному работнику важны деньги, а не результат и хороший результат будет только за хорошие деньги (впрочем, это не отрицает существование людей, которым за любые деньги будет лень работать просто потому что работать им всегда лень).

    Если человек пишет для себя — думаю, он будет делать всё качественно.

    Исходя из этого надо или хорошо платить программистам (при этом увольняя «вечных лентяев») либо (а лучше не «либо», а «вместе с этим») мотивировать сотрудников их важностью в проекте, их долей в проекте и так далее. В идеале — раздать всем ключевым сотрудникам небольшой процент акций компании, тогда они будут чувствовать себя не нанятыми сотрудниками (которых можно всегда уволить в 1 день), а совладельцами (пусть и с очень небольшой долей, но всё же).
    • Правильные мысли, полностью поддерживаю)
  • Хоть бы табличку повесили: «сарказм».
    • Шелдон, это сарказм… Кстати, статья с тегом «вредные советы».

      А вообще я к середине статьи тоже был в шоке, но все же добрался до P.S.
  • «Интеллект — это способность избегать выполнения работы, но так, чтобы она при этом была сделана»
    Линус Торвальдс

    а эти три правила для рабочих лошадок,

    посему они и не сделают из вас гения кода
    • Ну вот, значит дело говорю! :) А со мной еще и не соглашаются :)
    • А копипаст кода тогда что? Признак высшего разума?
      • хм,
        копипаст бывает тупой, а бывает вдумчивый.

        без копипаста все бы ездили на персонально хэндмэйдовских велосипедах,

        долго, зато своё

        • Бывает и тупой. Работал в проекте с одним любителем копиаста. Он скопипастил код и вставил его ДВАЖДЫ. Не заметил, должно быть. Так мы это заметили только через полгода после его увольнения и по причине вкравшейся в копипаст ошибке, которую беглым взглядом не заметить было невозможно. А вставленный ДВАЖДЫ код очень хорошо вписался в контекст и не порождал ошибок, за исключением некоторых тормозов.
    • Линус сказал, а Билли так всю жизнь делает :)
      • вспомнил «Пираты силиконовой долины»)) «Билл, а я ведь тебе верил… Как ты мог?»
        Ведь именно HP придумали то самое начало, которое породило компании Apple и Microsoft))
  • С первого правила хотел предложить перенести этот топик в «Юмор на Хабре», но глянув комментарии решил прочитать до конца, не разочарован. Отличный перевод отличной статьи.
    • Несколько хороших правил, чтобы вас возненавидели
  • «Постскриптум для наивных: Этот пост – легкая сатира на программирование в составе команды. Эти три правила – зло, хотя, несомненно, очень эффективны. Они принесут вред общему прогрессу проекта ради вашей собственной выгоды. Они не сделают вас лучшим программистом по сути, только по сравнению с остальной частью вашей команды. Вы, как я и многие другие, могли невинно делать нечто подобно этому в вашем прошлом, когда вы не знали, как делать это лучше. Теперь вы знаете.»

    Предлагаю вынести это в самое начало статьи, чтобы не сбивать с мысли программистов-новичков)
    Читал с умилением) Спасибо, автор!
  • Вообще говоря, правило 1 весьма разумное, если есть ощутимая разница в уровне того, кто писал код, и того, кто его переписывает. Порой от такой процедуры скорость вырастает на порядок, объем уменьшается втрое, а названия и комментарии делают код прозрачным.
    А вот если большой разницы в уровне нет — то лучше отпинать того, кто сделал ошибку, пусть сам ищет — это будет в 10 раз эффективнее :)
  • Не сомневаюсь что эти правила работают!
    А вот представьте себе, что все программеры софтварных компаний сегодня прочитают эту заметку и последуют ей одновременно =)
    Будет огромное количество изменений, нового кода. Будут убраны старые баги и добавлены новые. Менеджеры проектов которые не прочтут эти правила, глядя на всё это, будут поначалу в шоке, а затем поймут, что стабильный код никто из программеров не заинтересован поддерживать, так как это не приносит славы, денег, власти (выбрать одно из трёх).
  • Фух. дочитал до конца… поэтому плюсую)
  • > Вы хотите быть гуру, к которому приходят все, когда у них возникает проблема

    Ко мне приходят. Знаете, как надоедает порой? Поработать спокойно не дают! Осторожней с желаниями — они могут исполниться =)
  • статья похожа на зазыв в сетевой маркетинг:)
    на самом деле из-за таких людей, очень тяжело работать в команде. хорошо что таких всего 1%
  • Таких работничков очень трудно уволить, но если это сделать, то очень скоро всем становится легче дышать.
  • Опасно такое публиковать, даже как сатиру. Кто-нибудь обязательно возьмет за постулат…
  • > Переписывание кода, из-за появления ошибок приводят к появлению
    > новых ошибок, из-за которых код будет опять переписан.
    > И я не знаю хорошего способа избавиться от этого.

    А тестирование уже отменили?

    Кардинально переписывать некоторые куски кода иногда оправданно. Важно понять, какое ты после этого получишь преимущество. К примеру, если у вас корявый менеджер плагинов, а переписывание его снизит трудозатраты на создание нового плагина в среднем на два человеко-дня, и вы планируете создать несколько десятков плагинов, то, возможно, стоит переписать его и перевести на новый интерфейс все существующие плагины. Главное не переписывать ради переписывания, должно быть экономическое обоснование. И переписываемый код должен быть хорошо покрыт тестами.
  • Не дочитал пост, хотел уже написать гневный отзыв, да при прокрутке обратил внимание на «Постскриптум для наивных» (да, я наивен!). Предупреждайте о сатире в первом абзаце :)))
  • это в блог юмора.
  • лучше бы написали реальную статью как стать дельным программистом
    • Сделать так, чтобы вставал от работы).
  • Лично со мной такой фокус не пройдёт. Большие коммиты вызывают у меня желание рассмотреть их поподробнее. Соответственно, если попробуете следовать хотя бы правилам 1 и 2 будет «разбор полётов» с нанесением тяжких телесных.
    • где-то уже была заметка, где упоминались частые коммиты, как залог успеха. только вот не упомню, где я видел это.

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

    плюсануть не могу (карма закончилась :)), потому хотя бы на словах примите признание :)
  • Кто бы написал «10 правил для тех, кому не помогают правила».
  • Получил удовольствие от прочтения. :)
    Респект!

  • раскрыть комментарий
    • А даром. Хоть постскриптум прочтите…
      • Весь ужас ситуации в том, что от хабра вполне можно ожидать подобной статьи без всякой сатиры. Уже не раз видел здесь «гуру успеха». Но таки да, я зря полез комментировать, не дочитав.
    • и не проскролили для интересу?
      • Проскролил, конечно же. как бы он иначе комент написал? :)
  • Уверен, что кто-нибудь беспременно скажет себе: я не наивный, поэтому я проигнорирую постскриптум и стану использовать эти правила всерьёз, как оружие.
    • Грозное оружие против ПиЭм'ов и тим мемберов
      • Против себя. Особенно если через месяцев эдак 6 ваш код к вам вернется. И тут только 2 мысли возникает:
        а) Что за х*йло это писало?..
        или, когда код документирован, форматирован, понятные названия единиц
        б) Ай да я! Ай да маладец!
        • Если следовать 1-му принципу, то вариант А следует заменить на «Не глядим, а переписываем» :)
        • Мой опыт мне подсказывает что, когда через 6 месяцев к вам вернется ваш код, то с очень большой степенью вероятности он будет уже изуродован до неузнаваемости этим самым х*йлом
      • А ведь и правда этим можно угрожать и тем и другим :) Особенно если часто отвлекают с просьбами найти простые ошибки, которые могли бы найти сами, и впредь уже не совершать.
    • Конечно же, такие люди будут. Ведь выгладить лучше, на фоне других – полностью соответствует природе обычного человека. Но, когда человека уже не удовлетворяют относительные показатели, по типу: «Я лучше всех в моей команде», тогда то и начинается личностный рост: «Я стремлюсь быть профессионалом мирового класса».

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

      Многие люди пройдут этот этап и без прочтения топика. Лучшие – пойдут дальше.
  • Не уверен, что студенческая партия хабра меня не оценит, но весь пост прочел под гимном: «Люби себя и плюй на всех, и в жизни ждет тебя успех», местами вспоминая мультфильм.

    P.S. Хорошо еще увидеть статью о балансе сил зла и добра, с последующими экономическими (с точки зрения работы в коллективе) выкладками.

    P.P.S Сколько накипевшего-кипятка (сорри за тавтологию) вылилось в статью и перевод. )))))))))
  • раскрыть комментарий
    • Мнда, похоже поскриптум действительно стоит в начало перенести… :)
      • :) это баг в статье

        Я зашёл и ни намёка не увидел, что это несерьёзно.

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

        Поэтому такое лучше как-то явно сходу обозначать.
        • почему несерьезно? Эти правила работают
        • «Я зашёл и ни намёка не увидел, что это несерьёзно.»

          Завидую :) Я, видимо, стала настолько недоверчива, что с первых строк почувствовала иронию.
          Ну какой программист после нескольких лет работы в команде поверит в то, что не комментировать код полезно? ;)
      • prescriptum)
    • первое правило — научитесь читать.
      второе правило — читать до конца.
      третье правило — читать комментарии.
      • раскрыть комментарий
        • КАК НАМ ВСЕМ НАУЧИТЬСЯ ЧИТАТЬ, ЧТО НАПИСАНО?
          • www.useit.com/papers/webwriting/writing.html

            Concise, SCANNABLE, and Objective: How to Write for the Web

            Автор — доктор американских наук по юзабилити.

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

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

            Так что если я вижу УГ, то я говорю, что это УГ, а не трачу своё время на полное его поглощение и не спрашиваю трусливо три раза у соседей: «А правда это УГ?»

            Пипец, из-за УГ рамс…
        • сразу спрашиваю чужое мнение, везде готовят одно и тоже блюдо по разному, поэтому лучше брать то, что у повара лучше получается.
          если ничего не посоветовали, полностью знакомлюсь с меню, обычно дважды, первый — ознакомительный, чтобы знать что есть, второй раз уже выбирая.
          наверное из-за внимательности мне говно ни разу и не накладывали.
          да ладно, вам, вы немножко обложались не дочитав. нехорошо получилось, что пока я ждал стандартных пять минут, вам напомнили об этом до меня.
  • В каждой шутке есть доля шутки. На самом же деле, лично меня этот пост просто зарядил энергией. В командной разработке это конечно вредительство, а вот в личном проекте, вполне может и сыграть свою положительную роль. Что-то почувствовал в этом от экстремального программирования. У меня есть код который уже работает более десяти лет, но сколько бывает багов о которых ты знаешь, но просто боишься затронуть код, чтоб не дай бог, не потекло в другом месте и такие баго-фичи могут жить годами. Когда я учился в художественной школе наш преподаватель часто повторял — не бойтесь рисовать — рисуйте смелее, не дрожжите над каждым мазком, во всяком случае, вы всегда сможете все перерисовать. Мне эта статья чем-то напомнило именно это, т.е. перефразируя — не бойтесь программировать, не дрожжите над каждой строчкой кода, в крайнем случае вы всегда сможете его переписать.
  • Правило 3 — это защита. Затрудняйте другим людям работать с вашим кодом или исправить в нем ошибки. За каждый час, который они тратят на исправление ошибок вы инвестируете час на создание свежего кода или переписывания существующего чужого, тем самым расширяя границы вашего влияния.

    С этого ржал в голос.

    Статья, действительно, — зло! Но, по сути, все ведь так и есть.
  • Хотите быть суперхабрачеловеком? Следуйте трем правилам:
    1. Пишите много постов. Не обязательно IT тематики, главное чтобы было многа букаф и картинок.
    2. Комментируйте всё, что видите.
    3. Следите за своим рейтингом. Принимайте всегда сторону большинства.

    P.S. Простите, вырвалось :)
  • Пока не дочитал до постскриптума, подумалось, что читаю «Вредные советы» Остера в редакции для программистов.
    • Вот, спасибо. У меня тоже текст ассоциировался с чем-то подобным, но сразу не осенило. Именно «Вредные советы» :)
  • Джоэл как всегда в своем репертуаре:)
  • Сколько людей — столько и мнений. Я смотрю на код своих подчиненных и часто ужасаюсь. Я бы написал все намного элегантнее, лучше и логичнее. А вот есть люди, у которых мой код вызывает тошноту. Так что все от опыта зависит :) Чужой код читать — тоже полезно!
    • Да многие первым делом хотят переписать чужой код. Важно сдерживаться. Иначе начинается внедрение своих библиотек, классов, функций, а куски старого кода все равно прут из всех мест — получается еще большая каша.
      Когда чужой код ужасен по мнению всей команды, то нужно всем коллективом (а не в одно лицо) сесть и переписать с корнями (если начальство конечно санкционирует и будет свободное/лишнее время на рефакторинг).
  • Приходилось работать с одним программистом, такое ощущение, что он именно этими тремя правилами руководствовался при разработке, вот только славу «гуру» не сыскал :) Я думаю всем приходилось таких встречать.
  • После третьего правила начал сомневаться в адекватности, уважаемого J. Spolsky. Но это только вызвало желание прочитать до конца, чтобы окончательно поставить диагноз пациенту.
    А дальше по ходу текста становилось понятно, что это замечательное саркастическое чтиво ;)
    Прочтение «постскриптума», вызвало облегчение и улыбку.

    Если у программиста, чтение данного материала вызывало лишь негодование, сомнение или даже шок, а не мысли о замечательном и тонком чувстве юмора у автора, то ему следует задуматься :D (имхо, конечно)
  • Ну как так можно? Все секреты и разом? (((
    Теперь хоть увольняйся, я вскрыт.
  • Я таких знаю!
  • Какой антиопенсорсный суперзвезданутый программист получится, от него ни один человек патч не примет)
    А вообще хоть и с юмором, но о правде, себя в тексте увидел, да….
  • мне не нравится написанный вами пост, поэтому я напишу свой =)
    комменты тоже будут мои, да и вообще хабр — это для 99% обычных, так что я сделаю свой хабр с блэкджеком и шлюхами =)
  • Ну на самом деле немного рац зерна в ней есть. Чем больше ты пишешь кода, тем большая есть вероятность, что набьешь достаточно шишек, да и просто опыта наберёшься, поэтому в каком то из этапов становления думаю будет полезно просто не особо задумываясь об архитектуре настрочить кучу километров кода, чтобы разобраться в деталях. Так у нас примерно qutIM 0.2 рождался, и в конечном итоге в результате хоть и родился монстрик, но это дало хорошее понимание того, что стоит делать, а что нет.
  • Вы будете смеяться, но у меня в комманде есть человек, который следует всем трем правилам, и ни смотря ни на что, он — супер звезда. И мне кажется, именно 2 первых правила его сделали таким, потому что он очень трудолюбивый и код фигачит с утра до ночи, практически без остановки. Комментарии в последнее время его писать немного научили конечно, но вцелом, благодаря ему, проект был зарелизен в сроки, в которые трудно было поверить.
    В каждой шутке есть доля правды.
  • Хоть вы и вносите множество новых ошибок, все равно пройдут еще несколько месяцев, перед тем как они вылезут, а к тому времени вы уже приобретете репутацию программиста-эксперта.

    Затрудняйте другим людям работать с вашим кодом или исправить в нем ошибки.

    пишите говнокод господа, а потом когда вас признают увольтесь нафиг ;)
  • Пост оказался отличным детектором глупости — половина коментов от людей не дочитавших и сделавших свои выводы раньше, чем следовало. Моё почтение, dzhariypuenta удалась!
  • ИМХО, эта статья очень смахивает на рекламу какого-нить «Боди шейпера» на канале TopShop TV.
    Уж слишком красочно всё разрисованно. Я считаю, что у каждого человека должен быть свой подход к делу. И пользоватся вещами «Следуй трём Великим правилам и будешь крутым» для достижения успеха совсем недостаточно.

    И мне интересна одна ситуация) вот предствате два таких великих 10x Coding Speed программиста работают в одной команде и каждый из них «звезда», и у каждого свой стиль программирования и соглашения, и оба они сидят и фигачат дофига кода в своём стиле, а потом берут и переписывают код друг друга сначала кусками(рефакторят), что из этого получится?)

  • Какой циничный подход! Ладно, добавлю еще один совет. Когда команда садится за багфиксинг, исправляйте в первую очередь те ошибки, которые очень легко исправить. Через некоторое время окажется, что вы один пофиксили столько же багов, сколько остальные члены команды вместе взятые. Не забудьте обратить внимание ПМ-а на этот факт. %)
  • напомнило вредные советы остера
Только авторизованные пользователи могут оставлять комментарии. Авторизуйтесь, пожалуйста.