7 смертных грехов программирования

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

 

Джон Парселл, создатель CaveOfProgramming.com

  1. Использовать «Пробел» вместо «Tab». Всегда, всегда используйте «Tab», а не «Пробел».
  2. Использовать «Tab» вместо «Пробела». Всегда, всегда используйте «Пробел», а не «Tab».
  3. Не использовать автоформатирование. Забудьте про весь мусор вроде табов и пробелов, используйте автоформатирование в своем коде и людям не придется видеть ваши странные скобки и отступы.
  4. Использовать интегрированную среду разработки (IDE) с ее автоформатированием и цветными клавишами. Все коды должны быть написаны в vi или Emacs, что подтверждает безупречность ваших навыков программирования.
  5. Не использовать IDE. Никто не хочет платить за время, которое вы тратите на набор текста, если это можно сделать в один клик, или за прокручивание вверх-вниз с помощью заумной комбинации клавиш из LISP.
  6. Не учить С и С++. Два этих языка жизненно необходимы любому программисту. Думаете, Java так же хорош? Отлично, создайте мне систему управления гоночными автомобилями в режиме реального времени на Java, и я вам поверю.
  7. Учить С и С++ в то время, которое вы могли бы использовать на что-то более современное, например, на Java. Признайте – все таблицы, написанные на С или С++, изживают себя в течение 5 лет. И в таком случае в программном обеспечении есть серьезные ошибки, которые Java просто не позволил бы вам совершить.

  

Рой Леман, разработчик ПО

  1. Сначала написать, потом подумать. Вы получили требования к товару, пробежались по ним, запустили свою любимую IDE и принялись за работу. Легко, не правда ли?
    Стоп! Вы уверены, что поняли требования до конца? Я не сомневаюсь в вашем умении читать. Но учли ли вы все пограничные случаи? Продумали, как будете тестировать систему? Набросали алгоритм, который собираетесь использовать? Завтра вы этого и не вспомните!
  2. Изобретать колесо. Итак, вам нужно создать шаблон проектирования Producer-Consumer. Вы знаете, как это сделать, еще с университетской скамьи… Легко, не правда ли?
    Стоп! Не важно, с каким языком вы работаете, уже существуют готовые шаблоны, или модули, или открытые исходники. Используйте их. Или по крайней мере изучите их перед тем, как создавать свои.
  3. Бояться прикасаться к коду. Итак, у вас есть задание добавить несколько функций к 20 000-линейному файлу (О, нет! За что?) Вы радостно беретесь за работу и вдруг замечаете огрехи в исходных функциях – нет пограничного случая или проверки на нулевой показатель. Это находится за пределами сферы вашей ответственности. Так? Стоп! Если вы видите небезопасный код – исправьте его. Вы еще хлебнете на этих ошибках, даже если код написан не вами!
  4. Быть безразличным к тому, чем занимается ваша компания. Вы программист, верно? Написание кодов – это здорово, вы не изучали маркетинг или продажи, с чего вам интересоваться тем, что не имеет к вам отношения?
    А следовало бы! Как можно создать продукт, не понимая, чем занимается компания? Как сделать так, чтобы продукт удовлетворял потребности клиента?
    Никак! Изучите дело, будьте в курсе всех вопросов компании, а не только тех, которые касаются непосредственно вас. Это важно! В какой-то момент это даже может повлиять на ваше повышение.

  1. Не следить за новыми трендами. Вы занимаетесь программированием уже 10 лет и подыскиваете работенку.
    Перед этим вы работали старшим разработчиком С++ в крупной корпорации – за многое отвечали и имеете отличные рекомендации. Вы вроде знаете, что такое DevOps, но на практике никогда не сталкивались с этими практиками и с С++14? На вашем предыдущем месте работы в ходу был С++98… Не так уж важно, не так ли?
    Нет, не так!
    Никто не похвалит вас за владение технологиями 15-летней давности!
    Если вы не учитесь в свободное время, чтобы соответствовать запросам работодателя, ваша кандидатура будет отвергнута!
  2. Не обладать коммуникативными навыками. Вы разработчик, к чему вам уметь общаться с людьми! Вам платят за умение общаться с компьютером, а не коллегами. Сиди себе, пиши качественные коды и добьешься успеха, верно?
    Не верно!
    Ваше неумение кратко и четко изложить суть дела вышестоящим – самая большая головная боль для менеджера.
    Очевидно, что это не единственный параметр, по которому вас оценивают, но все же – грамотное предоставление информации в дружественной манере повысит доверие со стороны коллег и вот тогда вы добьетесь успеха.
  3. Не иметь целей. Вам нравится ваша работа, вы прекрасно владеете технологиями Deep Learning. Передовые технологии, прекрасные коллеги… Вы могли бы работать так вечно.
    Но – вы не будете. Все когда-нибудь заканчивается, иногда резко и неожиданно. Если у вас не будет карьерных целей, вы можете оказаться на задворках, выполняя работу и получая зарплату, которые вас не достойны.
    Так что думайте наперед – где бы вы хотели оказаться через 10 лет? В какой роли вы себя видите?
    Научным работником? Разработчиком? Менеджером по продукции? Вице-президентом? Техническим директором? Исполнительным директором?
    Вам решать!

 

Нико Салминен, старший консультант

  1. Лень: Ну, кажется, код работает нормально. Нет необходимости писать комментарии или проводить автоматизированное тестирование.
  2. Похоть: Эй, а ведь этот новый срочный проект – отличная возможность опробовать новый крутой фреймворк, о котором все говорят!
  3. Зависть: Другая команда продвигается быстрее, чем мы. Лучше не помогать, если у них возникнут проблемы при интеграции с нашим кодом.
  4. Чревоугодие: Мне нужно выполнить итерацию ключей объекта. Мне совершенно необходимо импортировать 1,5-Мбайтную библиотеку для проведения этой операции.
  5. Гордыня: Прочтение этой книги по шаблонам проектирования сделало меня лучшим разработчиком, нежели коллеги! Я собираюсь использовать каждый шаблон, упомянутый в книге при работе над следующим проектом.
  6. Гнев: К черту все! Пускаю этот патч hotfix прямиком в производство!
  7. Алчность: Они что предлагают изменить код в моем репозитории? Отклонить! Это мой проект!

 

Усман Шаукат, более 8 лет опыта в сфере веб-разработки, PHP, Javascript, Node.Js

Вопрос касается программирования не как процесса разработки ПО в целом, так что мой ответ касается непосредственно фазы программирования:

  1. Программировать, не планируя. Самый страшный из всех грехов.
  2. Пытаться изобрести колесо. Если есть возможность, всегда используйте алгоритмы, предложенные в книгах и научных статьях (например, алгоритмы сортировки, поиска и т.д.), а не пишите собственные.
  3. Писать несистематизированные/некачественные коды и не придерживаться стандартов программирования.
  4. Считать, что тестирование – это не ваша забота. Я вас очень прошу, пожалуйста, тестируйте свои коды.
  5. Писать сложный код, когда с тем же успехом можно обойтись простым. Простые коды – это элегантно.
  6. Слепое копирование-вставка с сайтов вроде stackoverflow.com без ознакомления с пояснениями и комментариями.
  7. Последнее, и самое важное – совершенствуйтесь сами и осваивайте новый инструментарий. Никогда не бойтесь новшеств. Знакомьтесь с ними раньше всех. Это поможет вам оставаться востребованным.
Версия для печатиВерсия для печати

Рубрики: 

  • 1
  • 2
  • 3
  • 4
  • 5
Всего голосов: 0
Заметили ошибку? Выделите ее мышкой и нажмите Ctrl+Enter!

Комментарии

Страницы

Аватар пользователя Petro42

mike пишет:

Угу. Выглядит как: "Смотрите, и я могу! А вы, высокооплачиваемые, зажрались!" И т.д.

И что? Ну, зажрались... Но ведь верно же... Или зажрались или не могут, в принципе... Нет такого: не нравится, есть, когда невольно задевает, особенно, если кто-то что-то делает. Я уже подметил: местную "толкотню" задевает все: хоть стакан бери (не то взял или, наоборот), хоть задачи решай (это ни на то не влияет/работодателям не нужно) - все недовольны.

 

-4
Аватар пользователя Piton

mike пишет:

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

+100500.

Недавно перебирал старые бумаги и нашел кучу аналогичных "сертификатов" (ЕМНИП, вот от этой конторы), полученных еще в начале 2000-х. Улыбнулся и положил туда же, где и лежали.

+2
Аватар пользователя savely

> вот от этой конторы

Да, у меня тоже десяток есть. Тогда много кто заказом халявы увлекался (проспекты/пробники/каталоги/CD). Ну, и у BrainBench пару-тройку первых лет было бесплатное прохождение кучи тестов и потом присылали настоящую бумажку почтой. Потом бумажки стали присылать за деньги, потом тесты платными стали. ;)

+1
Аватар пользователя Petro42

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

 

 

-3

Petro42 пишет:

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

 

 


Они ожидали тут увидеть грамоты от 5 класса СШ. Поди. (С)

+1
Аватар пользователя savely

> местную "толкотню" задевает все: хоть стакан бери (не то взял или, наоборот), хоть задачи решай

> тем,  что сдаю безобидные тесты, да еще бесплатно. И если им всем опротивело развиваться,  то я,  надеюсь,  ни при чем? 

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

+2
Аватар пользователя savely

> Они ожидали тут увидеть грамоты от 5 класса СШ

И их есть у меня. И медалька. Серебряная, правда, их давали в 90-х. Ибо петь и рисовать не умею. ;) Вот, Петро, видишь как ты провоцируешь понты? ;) Но у меня диплома нету, тут ты явно круче. У меня незаконченное высшее, но 2 раза. ;)

+1

savely пишет:

Но у меня диплома нету, тут ты явно круче. У меня незаконченное высшее, но 2 раза. ;)


Совсем как Джобс. Поди. (С)

-1
Аватар пользователя Petro42

Logicby twitter.com logicby пишет:

savely пишет:

Но у меня диплома нету, тут ты явно круче. У меня незаконченное высшее, но 2 раза. ;)


Совсем как Джобс. Поди. (С)

Он... 

Аватар пользователя Piton

savely пишет:

И медалька. Серебряная, правда, их давали в 90-х.

В порядке оффтопа: их начали давать с 1986.

Ибо петь и рисовать не умею.

ЕМНИП, пение и рисование не влияли на получение медалей.

Страницы