2019 Ч. Фаулер Программист


Часть III . Исполнение  НЕУДАЧИ И КОПИРОВАНИЕ



Download 4,51 Mb.
Pdf ko'rish
bet85/125
Sana17.07.2022
Hajmi4,51 Mb.
#815348
1   ...   81   82   83   84   85   86   87   88   ...   125
Bog'liq
Программист-фанатик ( PDFDrive )

138
Часть III . Исполнение 
НЕУДАЧИ И КОПИРОВАНИЕ
Патрик Коллисон, студент Массачусетского технологического института
Ларри Уолл писал, что типичными чертами великих программистов являются 
лень, нетерпение и гордыня . Я не знаю, врожденные это особенности или они 
приобретаются прилежной работой над собой . В любом случае, непонятно, как 
воспользоваться этой информацией, чтобы стать более квалифицированным 
программистом . Поэтому будем смотреть не на характеристики, а на показатели, 
которые помогут нам самосовершенствоваться .
Если бы мне нужно было выбрать только два показателя, я бы остановился на 
неудачах и копировании .
Знаю, что ошибаюсь чаще других программистов . Большинство моих проектов 
заканчиваются провалом . В папке ~/Projects можно найти целый ворох забытых 
попыток сделать нечто интересное . Шансы на успех у каждой из них были при-
мерно такими же, как шансы лобстера уплыть из кастрюли в океан . Кое-чем они 
привлекают внимание . Успешные проекты, как и счастливые семьи, похожи друг 
на друга, а вот неудачные проекты завершаются по-разному .
Хотя утверждение, что если человек был владельцем обанкротившейся фирмы, 
то это указывает на его большой опыт, уже набило оскомину, я не слышал, чтобы 
подобные идеи распространялись на программирование .
(Если что, у меня есть опыт в обеих сферах . Мои попытки заниматься бизнесом 
проваливались так же часто, как программные проекты .)
Коммерческие провалы обычно дают тебе вполне конкретный опыт . Ты понима-
ешь важность экономии или становишься более решительным . Но в программи-
ровании ценен не столько опыт неудач, сколько знания, полученные во время 
работы над проектом, который, скорее всего, провалится .
Когда я начинал программировать, много времени тратилось на бесплодные 
попытки написания самых разных замечательных вещей: операционных си-
стем, файловых систем, виртуальных машин, дополнительных реализаций 
сетевых протоколов, интерпретаторов, JIT-компиляторов . Большинство моих 
творений так и не заработало, а то, что заработало, справлялось со своими за-
дачами крайне посредственно . Даже если игнорировать технические аспекты, 
большинство моих попыток с самого начала было обречено на неудачу . Я не 
знаю, насколько велика вероятность написать новую операционную систему, 
но она крайне мала .


139
Совет 32 . Скажи это, сделай это, покажи это 
Однако для меня эти проекты являются самыми интересными в программиро-
вании . Это фундаментальные задачи, касающиеся разработки программного 
обеспечения, причем очищенные от всего постороннего . Все они связаны с по-
иском компромисса между пространством, быстродействием, надежностью 
и сложностью, без сглаживания углов или некорректного API .
Это теоретические задачи, в решение которых можно погружаться месяцами, так 
и не получив реального результата, — именно это я регулярно демонстрировал .
Точно не знаю, по каким причинам, но люди, в настоящее время изучающие про-
граммирование, обычно не занимаются подобными вещами .
Возможно, это связано с увеличением количества сетевых приложений . Не-
сколько дней назад на сайте Hacker News кто-то поинтересовался, нужны ли 
в настоящее время хоть кому-нибудь программы на стороне клиента . Это не-
которое преувеличение, но оно недалеко от истины . Да-да, я тоже считаю, что 
веб-приложения — это очень круто .
Но с точки зрения программирования такая тенденция имеет свой минус . При 
написании веб-приложений практически никогда не приходится сталкиваться 
с серьезными техническими проблемами, пока дело не доходит до реально 
больших масштабов (мы не берем в расчет совместимость с Internet Explorer 6) .
Другими словами, барьер, за которым программиста подстерегают неудачи, стал 
выше . И на первых порах человек работает вполне успешно .
И вот из-за этой направленности на программы, ориентированные на работу 
в Сети, я считаю, что нужно специально искать проекты с высокой вероятностью 
неудачи .
А что с копированием? Любой вам скажет, что для превращения в хорошего про-
граммиста нужно читать по-настоящему хороший код . Допускаю, что никто не 
подразумевает чтения в буквальном смысле (это слишком скучное занятие), но 
все равно такой подход остается, по сути, неверным: ведь он пассивен . Вместо 
него я предлагаю активно, широко и беззастенчиво заниматься копированием .
Разумеется, это относится ко многим вещам . Хантер С . Томпсон не просто читал 
хорошие книги; он перепечатывал Хемингуэя и Фитцджеральда . А старейшие 
из известных рукописей Баха являются переложениями произведений других 
органистов . Возможно, более известным является тот факт, что Гейтс в Гарварде 
доставал чужие программы из мусорной корзины .

Download 4,51 Mb.

Do'stlaringiz bilan baham:
1   ...   81   82   83   84   85   86   87   88   ...   125




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish