Що е програмист?
Описанието на това същество ще направим на няколко части, тъй като е доста голямо по обем. Ще се опитаме да дадем точни определения и да бъдем достатъчно ясни.
В своята основа, десетте основни характеристики по които ще го разпознаете се базират на Трите Добродетеля:Мързел®, Нетърпеливост®, Високомерие®Броят на характеристиките са десет. Все пак е препоръчително да прочетете по-обемните обяснения, за да не останете с погрешни впечатления:
- Той е луд
- Той е мързелив
- Той е любопитен
- Той е нагъл
- Той е маниак
- Той е дребнав
- Той е инат
- Той пие бира
- Той ви влиза под кожата, като предвидливо ви изкарва от нея
- Голяма част от жените веднага се влюбват в него
Забележки:
- Навсякъде по-долу под "нормален програмист" се разбира "средно статистическото същество отговарящо на стандартните за професията белези с базовите професионални изкривявания, или същество отговарящо на поне шест от десетте характерни особености", освен ако изрично не е посочено друго.
- По-горе дадените десет особености на програмиста не са задължителни за всеки екземпляр... (извинете) индивид, и всяко едно от тах може да не се отнася за вашата версия програмист.
- Всеки програмист запазва правото си да не изпълнява едно, повече от едно, или което и да е от характерните за нормалния програмист свойства.
- За явни отклонения от истината, може да се обърнете към арменския поп с конкретни забележки.
1. Той е луд (за връзване)
Общата представа за лудост представлява съвкупност от аномалии в поведението на определения индивид, които преминават определени граници. Тези граници се определят от съответното общество, и са различни за различните култури, като не е невъзможно средностатистически индивид от една култура, да бъде обявен за пълна откачалка в друга (представете си ескимос в Сахара, и ще схванете какво искам да кажа).
Това определение за лудост обаче съвсем не означава, че човекът е ощетен. Дори напротив, неговата различност може да е голямо предимство - спомнете си приказката, че всеки гений е малко луд (аз бих пояснил: "Абе не е чак толкоз малко...").
От съжденията направени до тук нормалният програмист веднага извежда, проповядва и защитава до последно, че е луд. Човек който владее писмено десетина езика, определено надхвърля нормалната граница на полиглотство. Това колко човешки езика владее, е нещо доста по-несъществено пред факта, че той може да се разбере с една машина само чрез докосване (бтв, това е една от причините за характерна особеност номер 10, но там не става дума за клавиатура).
Разбира се, самопризнанието не е достатъчно за да бъде нормалният програмист обявен за луд. Поради това, нека направим няколко пътешествия из дебрите на програмисткото съзнание. Всъщност, идеите може да послужат като материал за написването на няколко учебника по психиатрия, но трябва да се направи предварителна уговорка за заплащане. Затова са дадени и цените които трябва да се преведат по халбен път в общия пул на #programisti, при използване на идея. Цените са в литри наливна бира|кока-кола (вж. Той пие бира)
Обща лудост (20|60)
- Нормалният програмист има над 53 различни понятия за памет. С тяхното комбиниране той може в няколко думи да укаже физическото, логическото и програмното значение на определена част от паметта на компютъра. Например "52 байта ROM-код" означават "памет с големина 52 байта в която е записан програмен модул от производителя на BIOSа", а "Половин К игнорнат L1 кеш" за системния програмист указват не само количеството и местоположението, а и състоянието на тази памет. Това разбира се спада към професионалните изкривявания.
- Придаване на голямо значение на смисъла на отделните думи в речта. Това е породено от факта, че компилаторът дава грешка и заради погрешно сложена запетая. Това е една от чертите които нормалният програмист може да овладее, но недай Боже ако реши да се заяжда с вас...
- Изразяване с по-сложни от необходимото изречения. Причината не е рекурсивна, както изглежда на пръв поглед, а се дължи на вербални подблокови включвания, сливащи се в една голяма каша за нетренираното ухо. В писмена форма е по-лесно - търсете запетайки и ги четете като "{" и "}".
- Разбъркан словоред. Най-вече зависи от езика на който предпочита да пише съответният индивид.
- Сензитивност и безпогрешност към условията И-ИЛИ и двойното отрицание. Например на зададения от приятелката на програмиста въпрос: "Искаш ли бира И пържени картофки ИЛИ да НЕ остана НЕ-съблечена И да те чакам в леглото докато си доиграеш нивото?" нормалният програмист ще отговори "Да" когато иска поне едно от предложенията да се изпълни, без да уточнява кое, тъй като се търси отговор на въпроса "искаш ли <условие>?". Поради същата причина, програмистът няма да дочака да чуе условието до края, а ще отговори положително веднага след като чуе "ИЛИ", ако иска бира (вж. документацията на С++). Трябва да се отбележи, че поради липсата на вербални скоби приоритетът на условията се отчита по интонацията или отляво надясно
Въпросът може да се постави чрез ИЗКЛЮЧВАЩО_ИЛИ, ако на въпросната приятелка й е дотегнало да я прекъсват: "Искаш ли бира И пържени картофки ИЛИ да НЕ ходя до магазина И да НЕ остана НЕ-съблечена И да те чакам в леглото докато си доиграеш нивото?", което ще го накара да чуе и двете условия, да преразгледа приоритетите си, и чак когато се разбере със себе си да каже "Да".
За уточнение кое от двете желае, ще трябва допълнителен въпрос което е загуба на производителност, затова направо задавайте комплексните въпроси във вида "Може да: 1) ... 2) ... n) ...". Ако нещастното същество от женски пол желае бърз и категоричен отговор, може накрая да добави вълшебното "Отговор до 10 секунди, по default се изнасям оттук." което ще даде немаскируемо прекъсване и ще й бъде обърнато цялото внимание на което е способен въпросният програмист. С това обаче не бива да се прекалява, тъй като внася сериозен шок на преразпределяне на процеси в главата на програмиста, и той може след време да полудее още повече.
Лудост на системния програмист (100|300)
- Отличен кеш. Не става дума за платежната способност, а за мозъчния вариант на кеш паметта. Без да се налага опресняване, системния програмист може да помни стотина реда асемблерен код, както и трасировка на програма с десетина променливи, дълбочина на викане 4-5 и до степен-на-две на брой рекурсии.
Тук трябва да направя две много важни уточнения:
- Отличната кеш памет съвсем не означава, че ако го изпратите до близкия магазин, програмистът ще се върне точно с това което сте му поръчали да купи.
- Докато се изпълнява на ум гореспоменатата примерна трасировка, всякакви прекъсвания от рода на "Миличко, дай ми солетките..." могат да доведат до спад в броя на семейните двойки на страната.
- Шестнайсетична бройна система. Рано или късно, всеки програмист се запознава с двоичната бройна система. Това е нещо хубаво, полезно и като му свикнеш, даже е съвсем логично. Шестнайсетичната бройна система е нещо с което не е задължително да се срещнеш. За системния програмист обаче, това е неизбежно. Всъщност, общо взето външни прояви няма - никакви израстъци по главата, няма съмнителни кафяви петна около носа, никаква бяла пяна на устата, дори и шести пръст на ръцете. Абе изобщо - никакви физически мутации. В съзнанието обаче се построява още една стаичка с "вградени" калкулатори които позволяват адски бързо смятане по степен на две. Системните програмисти спокойно превръщат числа от десетична в двоична система, а между шестнайсетична и двоична изобщо не правят разлика. Ако имате съмнение, че някой ваш познат е системен програмист, попитайте го колко прави 16384 разделено на 256. Ако ви отговори за по-малко от 5 секунди, значи наистина е системен програмист. (Ако ви отговори за по-малко от секунда, все пак огледайте ъгълчетата на устата му за бяла пяна.)
Лудост на приложния програмист (60|180)
- Честа употреба на формата "ако <условие> ... иначе", и предпочитание към изказвания "вариантите са: 1) ... 2) ... n) ..." без плавния преход на филолозите между различните варианти.
- Трайкане. Това е изкривяване от обектно оринтираното програмиране (ООП). Изразява се в съкровено пазене на информацията до последна възможност. Произлиза от една от концепциите на ООП - тази за енкапсулация на модулите. Според тази концепция, директен достъп до информация не се дава, и всяка заявка се проверява, прошнурова, пронумерова и подпечатва от Божията ръка.
Всъщност, трайкането не е нещо смъртноопасно, но се създават аварийни ситуации в които нормален човек може да изкрейзи.
Пример:
- Абе, ти, що не ми каза, че братовчед ми, с който не съм се чувала от три години, се е обадил вчера от Барселона и след 25 минути ще кацне тук?
Поглед, пълен с пресметливо подбрана информация, и леко вдигане на рамене:
- Ми ти не ме попита.
Лудост на 3D програмиста (90|270)
- Отвейване на главата. Накратко - лети малко повече в облаците отколкото останалите видове програмисти. Извинете го, все пак се опитва да мисли в четири измерения.
- Префокусиране на погледа и силна сетивност към подробности. Някак, може да възприема по-бързо от околните какво става покрай него.
Обръща голямо внимание на това как лунната светлина се отразява от морската повърхност, как слънчевата светлина се промушва между стеблата на брезичките и вятъра разклаща цветята. Ятото птички което излита и оформя странни фигури в небето го вълнуват силно, и може да наблюдава с часове облаците и нехните игриви сенки над тъмно зелената гора.
И можете ли да си представите, че заради тези дивотии, десетата особеност се отнася най-силно именно за тези програмисти?
- Поглед тип "Матрицата", ама не точно в зелено. Ти му покажеш снимка на топ модел, той вижда характер. Ти му покажеш красива ваза, той: "Цилиндър!". Пък като види катастрофа - "Ах, каква колизия!". Абе пълна откачалка!
- 24-битово цветоусещане. Ей затова жените го уважават. Различава амарин от атлазено синьо (въпреки че тези имена може и нищо да не му говорят), и може да изреди поне дванайсет вида зелено без да се замисля (като започне от RGB, мине през HSL и стигне до корекция чрез gamma).
- Ако щете вярвайте, изобщо не си пада по големи цици. Трудни са за рендване.
This page is under construction