В любой работе встречаются свои трудности. Иногда их провоцирует сам работник, нарушая заповеди своей профессии. Но мало кто задумывается об этом. А вот пользователи сайта Quora составили личные списки грехов программирования.
Джон Парселл, создатель CaveOfProgramming.com
- Использовать «Пробел» вместо «Tab». Всегда, всегда используйте «Tab», а не «Пробел».
- Использовать «Tab» вместо «Пробела». Всегда, всегда используйте «Пробел», а не «Tab».
- Не использовать автоформатирование. Забудьте про весь мусор вроде табов и пробелов, используйте автоформатирование в своем коде и людям не придется видеть ваши странные скобки и отступы.
- Использовать интегрированную среду разработки (IDE) с ее автоформатированием и цветными клавишами. Все коды должны быть написаны в vi или Emacs, что подтверждает безупречность ваших навыков программирования.
- Не использовать IDE. Никто не хочет платить за время, которое вы тратите на набор текста, если это можно сделать в один клик, или за прокручивание вверх-вниз с помощью заумной комбинации клавиш из LISP.
- Не учить С и С++. Два этих языка жизненно необходимы любому программисту. Думаете, Java так же хорош? Отлично, создайте мне систему управления гоночными автомобилями в режиме реального времени на Java, и я вам поверю.
- Учить С и С++ в то время, которое вы могли бы использовать на что-то более современное, например, на Java. Признайте – все таблицы, написанные на С или С++, изживают себя в течение 5 лет. И в таком случае в программном обеспечении есть серьезные ошибки, которые Java просто не позволил бы вам совершить.
Рой Леман, разработчик ПО
- Сначала написать, потом подумать. Вы получили требования к товару, пробежались по ним, запустили свою любимую IDE и принялись за работу. Легко, не правда ли?
Стоп! Вы уверены, что поняли требования до конца? Я не сомневаюсь в вашем умении читать. Но учли ли вы все пограничные случаи? Продумали, как будете тестировать систему? Набросали алгоритм, который собираетесь использовать? Завтра вы этого и не вспомните! - Изобретать колесо. Итак, вам нужно создать шаблон проектирования Producer-Consumer. Вы знаете, как это сделать, еще с университетской скамьи… Легко, не правда ли?
Стоп! Не важно, с каким языком вы работаете, уже существуют готовые шаблоны, или модули, или открытые исходники. Используйте их. Или по крайней мере изучите их перед тем, как создавать свои. - Бояться прикасаться к коду. Итак, у вас есть задание добавить несколько функций к 20 000-линейному файлу (О, нет! За что?) Вы радостно беретесь за работу и вдруг замечаете огрехи в исходных функциях – нет пограничного случая или проверки на нулевой показатель. Это находится за пределами сферы вашей ответственности. Так? Стоп! Если вы видите небезопасный код – исправьте его. Вы еще хлебнете на этих ошибках, даже если код написан не вами!
- Быть безразличным к тому, чем занимается ваша компания. Вы программист, верно? Написание кодов – это здорово, вы не изучали маркетинг или продажи, с чего вам интересоваться тем, что не имеет к вам отношения?
А следовало бы! Как можно создать продукт, не понимая, чем занимается компания? Как сделать так, чтобы продукт удовлетворял потребности клиента?
Никак! Изучите дело, будьте в курсе всех вопросов компании, а не только тех, которые касаются непосредственно вас. Это важно! В какой-то момент это даже может повлиять на ваше повышение.
- Не следить за новыми трендами. Вы занимаетесь программированием уже 10 лет и подыскиваете работенку.
Перед этим вы работали старшим разработчиком С++ в крупной корпорации – за многое отвечали и имеете отличные рекомендации. Вы вроде знаете, что такое DevOps, но на практике никогда не сталкивались с этими практиками и с С++14? На вашем предыдущем месте работы в ходу был С++98… Не так уж важно, не так ли?
Нет, не так!
Никто не похвалит вас за владение технологиями 15-летней давности!
Если вы не учитесь в свободное время, чтобы соответствовать запросам работодателя, ваша кандидатура будет отвергнута! - Не обладать коммуникативными навыками. Вы разработчик, к чему вам уметь общаться с людьми! Вам платят за умение общаться с компьютером, а не коллегами. Сиди себе, пиши качественные коды и добьешься успеха, верно?
Не верно!
Ваше неумение кратко и четко изложить суть дела вышестоящим – самая большая головная боль для менеджера.
Очевидно, что это не единственный параметр, по которому вас оценивают, но все же – грамотное предоставление информации в дружественной манере повысит доверие со стороны коллег и вот тогда вы добьетесь успеха. - Не иметь целей. Вам нравится ваша работа, вы прекрасно владеете технологиями Deep Learning. Передовые технологии, прекрасные коллеги… Вы могли бы работать так вечно.
Но – вы не будете. Все когда-нибудь заканчивается, иногда резко и неожиданно. Если у вас не будет карьерных целей, вы можете оказаться на задворках, выполняя работу и получая зарплату, которые вас не достойны.
Так что думайте наперед – где бы вы хотели оказаться через 10 лет? В какой роли вы себя видите?
Научным работником? Разработчиком? Менеджером по продукции? Вице-президентом? Техническим директором? Исполнительным директором?
Вам решать!
Нико Салминен, старший консультант
- Лень: Ну, кажется, код работает нормально. Нет необходимости писать комментарии или проводить автоматизированное тестирование.
- Похоть: Эй, а ведь этот новый срочный проект – отличная возможность опробовать новый крутой фреймворк, о котором все говорят!
- Зависть: Другая команда продвигается быстрее, чем мы. Лучше не помогать, если у них возникнут проблемы при интеграции с нашим кодом.
- Чревоугодие: Мне нужно выполнить итерацию ключей объекта. Мне совершенно необходимо импортировать 1,5-Мбайтную библиотеку для проведения этой операции.
- Гордыня: Прочтение этой книги по шаблонам проектирования сделало меня лучшим разработчиком, нежели коллеги! Я собираюсь использовать каждый шаблон, упомянутый в книге при работе над следующим проектом.
- Гнев: К черту все! Пускаю этот патч hotfix прямиком в производство!
- Алчность: Они что предлагают изменить код в моем репозитории? Отклонить! Это мой проект!
Усман Шаукат, более 8 лет опыта в сфере веб-разработки, PHP, Javascript, Node.Js
Вопрос касается программирования не как процесса разработки ПО в целом, так что мой ответ касается непосредственно фазы программирования:
- Программировать, не планируя. Самый страшный из всех грехов.
- Пытаться изобрести колесо. Если есть возможность, всегда используйте алгоритмы, предложенные в книгах и научных статьях (например, алгоритмы сортировки, поиска и т.д.), а не пишите собственные.
- Писать несистематизированные/некачественные коды и не придерживаться стандартов программирования.
- Считать, что тестирование – это не ваша забота. Я вас очень прошу, пожалуйста, тестируйте свои коды.
- Писать сложный код, когда с тем же успехом можно обойтись простым. Простые коды – это элегантно.
- Слепое копирование-вставка с сайтов вроде stackoverflow.com без ознакомления с пояснениями и комментариями.
- Последнее, и самое важное – совершенствуйтесь сами и осваивайте новый инструментарий. Никогда не бойтесь новшеств. Знакомьтесь с ними раньше всех. Это поможет вам оставаться востребованным.
Комментарии
Страницы
И что? Ну, зажрались... Но ведь верно же... Или зажрались или не могут, в принципе... Нет такого: не нравится, есть, когда невольно задевает, особенно, если кто-то что-то делает. Я уже подметил: местную "толкотню" задевает все: хоть стакан бери (не то взял или, наоборот), хоть задачи решай (это ни на то не влияет/работодателям не нужно) - все недовольны.
+100500.
Недавно перебирал старые бумаги и нашел кучу аналогичных "сертификатов" (ЕМНИП, вот от этой конторы), полученных еще в начале 2000-х. Улыбнулся и положил туда же, где и лежали.
> вот от этой конторы
Да, у меня тоже десяток есть. Тогда много кто заказом халявы увлекался (проспекты/пробники/каталоги/CD). Ну, и у BrainBench пару-тройку первых лет было бесплатное прохождение кучи тестов и потом присылали настоящую бумажку почтой. Потом бумажки стали присылать за деньги, потом тесты платными стали. ;)
Надеюсь, я не обидел никого из отписавшихся выше опытных и достойных людей, достигших гигантских успехов в отрасли тем, что сдаю безобидные тесты, да еще бесплатно. И если им всем опротивело развиваться, то я, надеюсь, ни при чем?
Они ожидали тут увидеть грамоты от 5 класса СШ. Поди. (С)
> местную "толкотню" задевает все: хоть стакан бери (не то взял или, наоборот), хоть задачи решай
> тем, что сдаю безобидные тесты, да еще бесплатно. И если им всем опротивело развиваться, то я, надеюсь, ни при чем?
Для "отписавшихся выше опытных и достойных людей" это выглядит как дешевые понты. Вот и все. Возможно, для тебя это не так. Не возражаю. Но аудитория не та, сам же сказал - "опытных и достойных людей, достигших <..> успехов в отрасли"... "Гигантских" я опустил, достаточно просто "успехов".
> Они ожидали тут увидеть грамоты от 5 класса СШ
И их есть у меня. И медалька. Серебряная, правда, их давали в 90-х. Ибо петь и рисовать не умею. ;) Вот, Петро, видишь как ты провоцируешь понты? ;) Но у меня диплома нету, тут ты явно круче. У меня незаконченное высшее, но 2 раза. ;)
Совсем как Джобс. Поди. (С)
Он...
В порядке оффтопа: их начали давать с 1986.
ЕМНИП, пение и рисование не влияли на получение медалей.
Страницы