psilogic: (Default)
[personal profile] psilogic
На эту тему писал недавно [livejournal.com profile] eugenebo: что вел он собеседование с программерами в штатах и ребята показали, что задачки решать совершенно не умеют, но знают много.

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

Для любой программы возникают обычные ножницы между сделать самому какой-то кусок, либо откопать-освоить чужое. Почему то всегда забывают, что откопать-освоить тоже занимает рабочее время и немалое. По идее, для каждого кусочка нужно решать вопрос об имплементации индивидуально. Но. Среди программистов становится все больше дебилов, для которых просто нет выбора. САМИ они написать ничего не могут в принципе. Я таких видел не раз: если вдруг они не могут найти в Сети подходящую библиотеку, то они начинают рыскать по форумам с воплями о помощи. Самим подумать нечем. Получив какие-то указания, начинают программировать - но не дай бог, если задачка в чем-то нестандартная. Тогда они начинают просить начальство объяснить им, КАК они должны программировать (т.е. фактически сделать за них часть работы). Если приходится все-таки делать самому, то в результате получается монстр, который ухитряется поставить раком все приложение (обычно в плане ресурсов и быстродействия). Попытка заставить такого дебила что-то написать самому в результате часто выливается в повышение технических требований ко всему приложению.

Я хочу сказать, что для некоторых программистов просто НЕТ ВАРИАНТОВ: написать самому или слизать у кого-то. И таких становится все больше, и они начинают подводить под свою деятельность идеологию, обсирая тех, кто умеет думать своей головой. Обычные отмазки: "не надо изобретать велосипед", "стандартный продукт легче освоить" и т.п. Между тем, эти отмазки работают только до поры. Изобретение велосипеда подчас дешевле (в смысле рабочего времени) и эффективнее (в смысле полученного результата) - но только если вы способны на это. А использование стандартных библиотек ведет к тому, что вместе с библиотекой вы получаете все ее возможности - но так же и сопутствующие требования к харду и софту, сопутствующие принципиальные ограничения и баги. Причем, пропатчить чужой код (исправить баг) - это задачка на порядок сложнее, чем исправить баг в своем коде. То есть, отмазка о том, что "стандартные библиотеки содержат меньше багов" тоже не катит. Да, багов там меньше, но каждый баг требует гораздо больше времени на исправление. Так что в сумме может получиться и так, и эдак.

Ну-ну

Date: 2005-11-08 11:34 am (UTC)
From: (Anonymous)
Критиковать, конечно, хорошо. Только вот до прямой ереси опускаться тоже нельзя - можно негативно подействовать на неокрепшие умы. Нельзя изобретать велосипед только потому, что Вы _можете_ это сделать. И работа с чужим кодом - тоже навык, притом полезный. Если Вы им не владеете - что ж, изобретайте самокаты дальше.

Re: Ну-ну

Date: 2005-11-08 03:40 pm (UTC)
From: [identity profile] psilogic.livejournal.com
Впредь лучше писать не анонимно. Не загрызу :)

[ Нельзя изобретать велосипед только потому, что Вы _можете_ это сделать. ]

Аналогично: нельзя запрещать самостоятельно делать что-то только потому, что Вы _можете_ это НЕ делать.
Если не можете, тогда понятно.

[ И работа с чужим кодом - тоже навык, притом полезный. ]

Разумеется. Но насколько бы ни был развит этот навык, а со своим кодом человек работать все равно будет быстрее.

Date: 2005-11-08 11:51 am (UTC)
From: [identity profile] solomon2.livejournal.com
Да уж. Главный принцип программирования, мне кажется, "все хорошо в меру". Опытный программер как раз знает, где имеет смысл использовать готовую библиотеку, а где - изобрести велосипед. Как говорил Страуструп, замены уму и вкусу все равно нету.
В общем и целом, использование стандартных библиотек часто предпочтительнее - они и документированы и вылизаны насчет багов, их обычно кто-то поддерживает, совершенствует без доп. затрат программиста-пользователя.
И еще, если челу не нравится готовая библиотека, и он садиться писать customized solution, это терпимо. Но вот если вдруг садятся переписывать саму библиотеку - это уже подозрительно, скорее всего получится еще хуже :-)

Date: 2005-11-08 01:40 pm (UTC)
From: [identity profile] vadim-kataev.livejournal.com
совершенно верно

Date: 2005-11-08 03:41 pm (UTC)
From: [identity profile] psilogic.livejournal.com
согласен :)
ну разве что человек садится переписывать библиотеку в качестве тренировки (курсовик такой и т.п.)

Date: 2005-11-08 11:57 am (UTC)
From: [identity profile] http://users.livejournal.com/-sting-/
Как говорил наш препод по матану: "программированию сложно научиться, в вот кодировать можно научить даже обезьяну". И положение вещей сейчас таково, что обезьян чересчур много.

Date: 2005-11-08 03:42 pm (UTC)
From: [identity profile] psilogic.livejournal.com
еще бы понять из этого, что ваш препод по матану имел в виду, и при чем тут матан :)

Date: 2005-11-08 12:01 pm (UTC)
From: [identity profile] metaclass.livejournal.com
Дал ссылку на пост знакомым линуксоидам. Подняли хай в стиле "велосипед изобретать нельзя", "просто нельзя". Попытка объяснить, что любые правила имеют границы применимости к успеху не привела.

Date: 2005-11-08 03:44 pm (UTC)
From: [identity profile] psilogic.livejournal.com
*мерзко хихикает*

Ваше наблюдение навело меня на мысль, как подколоть в следующей записи :)

Date: 2005-11-08 03:39 pm (UTC)
From: [identity profile] deadkittten.livejournal.com
Главная сложность ИМХО в том, чтобы заранее определить\угадать что дешевле обойдётся -- написать самому или найти и освоить готовое. И тут уж как повезёт...

Date: 2005-11-08 03:48 pm (UTC)
From: [identity profile] psilogic.livejournal.com
Полностью с вами согласен: заранее угадать очень тяжело. Бывает так, что начнешь писать сам а тут вдруг раз - и выплывает какая-то малоизвестная библиотека, которая все это реализует. И куча написанного кода псу под хвост. А бывает наоборот: берется библиотека, на ее основе пишется куча кода, а потом вдруг выясняется, что в этой библиотеке баги, которые фирма не собирается фиксить или нет существенных фич, которые если и будут реализованы, то в неопределенном будущем.

Date: 2005-11-09 02:46 am (UTC)
From: [identity profile] eugenebo.livejournal.com
Занятно, что я сначала прочёл предыдущий пост и высказался там -- но, по сути, в ту же тему, что и здесь: http://www.livejournal.com/users/psilogic/31228.html?thread=361724#t361724

Вкратце -- соглашусь: у понимающего человека должен быть выбор. А нешарящему не помогут ни библиотеки, ни самописание.
Page generated Aug. 16th, 2025 11:24 pm
Powered by Dreamwidth Studios