Офтоп Daria Khokhlova
14 792

Как повысить эффективность разработки — советы программистам

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

1. Не занимайтесь оптимизацией для оптимизации (Глин Уильямс, ветеран игровой индустрии)

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

2. Используйте простые абстракции (Глин Уильямс)

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

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

3. Не пишите обобщенный код (Глин Уильямс)

Как правило, отмечает Уильямс, написание чересчур обобщенного кода является пустой тратой времени. Его труднее поддерживать и в нём появляется больше ошибок.

Если изначально ваш код должен делать что-то конкретное (например, работать с определенным типом данных) — пишите его только для этого. Об остальном стоит задуматься, только если поступит задача расширить функциональность (внести ещё один тип данных). Тогда велика вероятность, что вам придется делать это еще не один раз — и нужно переработать код таким образом, чтобы он стал более обобщенным.

4. Всегда ведите несколько более мелких проектов «на стороне» (Пунит Лабма, разработчик в Sapient Corporation)

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

5. Постоянно проводите рефакторинг кода (Пунит Ламба)

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

6. Изучайте среду разработки и средства языка (Пунит Ламба)

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

7. Изучайте чужой код (Пунит Ламба)

По мнению Ламбы, это отличный способ узнать что-то новое: полезные методы, классы, алгоритмы.

8. Разбивайте алгоритмы на более мелкие части (Бернард Стокер, разработчик в InVision)

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

9. Следите за новыми технологиями (Бернард Стокер)

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

10. Не гонитесь за собственным хвостом (Джоди Уотсон, разработчик)

Любому программисту стоит научиться хоть иногда переставать думать о работе. «Если сию минуту не получается найти решение задачи — прогуляйтесь, позвольте своему мозгу расслабиться. Рано или поздно ответ придет. Отвлекайтесь от рабочих проблем хотя бы изредка», — говорит Уотсон.

11. Высыпайтесь (Джоди Уотсон)

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

12. Позаботьтесь о том, кто будет поддерживать ваш код. Возможно, этим человеком окажетесь вы сами (Джоди Уотсон)

13. Старайтесь программировать короткими рывками (Джон Робертсон, пользователь Quora)

Разбейте задачу на подзадачи и решайте её постепенно. В каждую сессию нужно кодировать лишь одну её часть — а затем делать перерыв.

14. Научитесь работать в команде (Эрик Рак, пользователь Quora)

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

15. Автоматизируйте всё, что возможно автоматизировать (Питер Шоу, пользователь Quora)

16. Все приведенные выше советы не универсальны — решите самостоятельно, что лучше для вас (Эрик Рак)

#советы #quora #программисты #советы_разработчикам

Статьи по теме
Какие средства предприниматели используют для повышения продуктивности работы — обсуждение на Quora
{ "author_name": "Daria Khokhlova", "author_type": "editor", "tags": ["\u0441\u043e\u0432\u0435\u0442\u044b_\u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u043c","\u0441\u043e\u0432\u0435\u0442\u044b","\u043f\u0440\u043e\u0433\u0440\u0430\u043c\u043c\u0438\u0441\u0442\u044b","quora"], "comments": 30, "likes": 23, "favorites": 1, "is_advertisement": false, "subsite_label": "flood", "id": 6285, "is_wide": true, "is_ugc": false, "date": "Wed, 31 Dec 2014 14:55:32 +0300" }
{ "id": 6285, "author_id": 5723, "diff_limit": 1000, "urls": {"diff":"\/comments\/6285\/get","add":"\/comments\/6285\/add","edit":"\/comments\/edit","remove":"\/admin\/comments\/remove","pin":"\/admin\/comments\/pin","get4edit":"\/comments\/get4edit","complain":"\/comments\/complain","load_more":"\/comments\/loading\/6285"}, "attach_limit": 2, "max_comment_text_length": 5000, "subsite_id": 199791, "possessions": [] }

30 комментариев 30 комм.

Популярные

По порядку

Написать комментарий...
5

Чтобы повысить эффективность разработки- надо следовать советам не с Quora, а со Stackoverflow.

Ответить
–1

Первый закон продуктивности для программиста - не заходит в интернет.

Ответить
7

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

Ответить
–3

В "Магните" программисты сидят без интернета и ничего - живы.

Ответить
0

Таак, а теперь можно поподробнее про уровень этих крутых программистов из "Магнита"? Программисты в какой они области?
Учтите, что 1с-ники - это не программисты.

Ответить
0

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

Ответить
0

Угу. А страусы - не птицы

Ответить
0

Так и знал, что до этой фразы кто-то докопается. Что насчёт остального?

Ответить
0

Насчёт чего? Вашей персоны? Нафига она мне?

Ответить
0

Ээээ... Я о другом вообще-то, чувак.
Ладно, проходи мимо, ты мне неинтересен. Можешь даже не отвечать

Ответить
4

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

Ответить
0

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

Сейчас можно запросто организовать то же самое. Гит легко запускается локально, документацию тоже можно периодически обновлять (без постоянного подключения к инету), а вместо stackoverflow — свои мозги, опыт и та же документация. В общем, жить по современным меркам сложно, но можно.

Ответить
0

Андрей, конечно можно так жить. Но зачем всё усложнять?
Я знаю одну производственную компанию типа того же Магнита, где запрещён всем выход в интернет, все ходят по строгому дресс-коду и за опоздания на 1 минуту штрафуют на 10% от зарплаты. Можно жить? Конечно можно. Но у них текучка такая, что мама не горюй. Поэтому новому сотруднику о драконовских правилах не говорят до самого момента выхода на работу, чтобы не спугнуть. Отработал испытательный срок - и человек уходит, сам уходит.

Ответить
0

Николай, а ты веришь, что есть программисты, которые знают ассемблер или работающие в блокноте?)

Ответить
0

Я не только верю, сам таких лично видел. Правда, они были в прошлом программисты и сейчас занимают места директоров крупных компаний. По привычке что-то пишут. А новые технологии и всякие модные фреймворки отдают своим программистам, которым сами же платят за это деньги. Блокнот и ассемблер для них - скорее развлечение нежели работа.
Честно, если бы я нанимал программиста, работающего в блокноте, то я бы настороженно к такому отнёсся, погоняв его по полной. Поскольку нежелание развиваться для программиста - смерти подобно.Я же считаю, что без интернета у программиста развития нет.
Поэтому, Илья, я не исключаю узконаправленных самородков, которые знают только одну-две технологии и не признающие ничего нового. Но это исключение из правил.
Вы же пытаетесь запрет большой компании на интернет списать на то, что у вас в Магните как раз и работают такие программисты, которым и интернет не нужен. Это как с пармезаном и хамоном. Ну, подумаешь, запретили - мы особо-то его не хотели и не ели, нам-то что с того?
И я ни за что не поверю, что у вас там работают уникальные самородки, это маловероятно. Они просто не пойдут к вам работать. Вы просто пытаетесь оправдать вашего работодателя.

Ответить
0

Уважаемый, про магнит писал не я)

Ответить
0

И ещё про интернет для программиста просто из практики.
У меня в компании работает хороший андроид-разработчик. Ему была поставлена задача сделать приложение. Он сказал, ок. Не знаю некоторых вещей (что нормально, кстати), но разберусь. В итоге с помощью гугла, stackoverflow и онлайн-документации он нам выкатил прототип приложения за три дня! Приложение, которое для iOS у нас делали полгода, он сделал за три дня. И он не уникален, это просто нормальная работа человека.
Я не знаю, как бы он работал без интернета. Если Вы, Илья, знаете, как можно добиться такого результата без интернета, то я прошу Вас поделиться опытом. Нам это сэкономит траффик и потенциальные проблемы с безопасностью, чем пытаются оправдать эти санкции к отношении программистов.

Ответить
0

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

Ответить
3

Какая продцктивность все бегом закупаться!

Ответить

2

С Новым Годом, ёпт!

Ответить
1

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

Ответить
3

Вообще это общеизвестный принцип. Если изначально расширения не предполагается, есть шанс, что его и не последует)

Ответить
1

Думаю, что продуктивность в первую очередь зависит от мотивации.

Ответить
0

В той обстановке, что на фотке ни о какой продуктивности и речи быть не может.

Ответить
0

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

Ответить
0

так 11 пункт разрешает, он чётко следует инструкции))

11. Высыпайтесь (Джоди Уотсон)

Ответить
0

7. Изучайте чужой код (Пунит Ламба)

мне кажется, что порой проще застрелиться, чем понять как пишут другие)

Ответить
0

Вы ничего не понимаете в мотивации программистов! Дедлайн+Бонусы+Возможность роста должны работать

Ответить

0

На счет 4 пункта несовсем согласен. Всегда может получится так, что проект на стороне станет интереснее работы.

Ответить
0

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

Ответить
0
{ "page_type": "article" }

Прямой эфир

[ { "id": 1, "label": "100%×150_Branding_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox_method": "createAdaptive", "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfl" } } }, { "id": 2, "label": "1200х400", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfn" } } }, { "id": 3, "label": "240х200 _ТГБ_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fizc" } } }, { "id": 4, "label": "240х200_mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "flbq" } } }, { "id": 5, "label": "300x500_desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "ezfk" } } }, { "id": 6, "label": "1180х250_Interpool_баннер над комментариями_Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "ffyh" } } }, { "id": 7, "label": "Article Footer 100%_desktop_mobile", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjxb" } } }, { "id": 8, "label": "Fullscreen Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjoh" } } }, { "id": 9, "label": "Fullscreen Mobile", "provider": "adfox", "adaptive": [ "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fjog" } } }, { "id": 10, "disable": true, "label": "Native Partner Desktop", "provider": "adfox", "adaptive": [ "desktop", "tablet" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyb" } } }, { "id": 11, "disable": true, "label": "Native Partner Mobile", "provider": "adfox", "adaptive": [ "phone" ], "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "clmf", "p2": "fmyc" } } }, { "id": 12, "label": "Кнопка в шапке", "provider": "adfox", "adaptive": [ "desktop" ], "adfox": { "ownerId": 228129, "params": { "p1": "bscsh", "p2": "fdhx" } } }, { "id": 13, "label": "DM InPage Video PartnerCode", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox_method": "createAdaptive", "adfox": { "ownerId": 228129, "params": { "pp": "h", "ps": "bugf", "p2": "flvn" } } }, { "id": 14, "label": "Yandex context video banner", "provider": "yandex", "yandex": { "block_id": "VI-223676-0", "render_to": "inpage_VI-223676-0-1104503429", "adfox_url": "//ads.adfox.ru/228129/getCode?pp=h&ps=bugf&p2=fpjw&puid1=&puid2=&puid3=&puid4=&puid8=&puid9=&puid10=&puid21=&puid22=&puid31=&puid32=&puid33=&fmt=1&dl={REFERER}&pr=" } }, { "id": 15, "label": "Плашка на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byudx", "p2": "ftjf" } } }, { "id": 16, "label": "Кнопка в шапке мобайл", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "adfox": { "ownerId": 228129, "params": { "p1": "byzqf", "p2": "ftwx" } } }, { "id": 17, "label": "Stratum Desktop", "provider": "adfox", "adaptive": [ "desktop" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvb" } } }, { "id": 18, "label": "Stratum Mobile", "provider": "adfox", "adaptive": [ "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "pp": "g", "ps": "bugf", "p2": "fzvc" } } }, { "id": 19, "label": "Тизер на главной", "provider": "adfox", "adaptive": [ "desktop", "tablet", "phone" ], "auto_reload": true, "adfox": { "ownerId": 228129, "params": { "p1": "cbltd", "p2": "gazs" } } } ]
Нейронная сеть научилась читать стихи
голосом Пастернака и смотреть в окно на осень
Подписаться на push-уведомления
{ "page_type": "default" }