Bee

Що е то леймър?

August 6, 2008 · 2 Comments

Понятието леймър

[източник]

Често са ни задавали въпроса какво означава леймър (от англ. lamer), когато се из­пол­з­ва като определение по адрес на някой програмист. Отново, без да даваме формална де­фи­ни­ция, ще обясним понятието, като използваме въведение ала Карл Май [May-1893].

На първо място, най-важната характеристика за един леймър е, че той не подозира, че е такъв.

По-нататък, едно от най-разпространените определения за леймър, е програмист, който пише програми в колонка и който, като чуе за рекурсия, получава леко разстройство.

Леймър е програмист, който знае няколко езика за програмиране, но няма никакво понятие от алгоритми.

Леймър е програмист, който ако изобщо слага коментари в програмите си, те са главно от следния вид:

i++; /* увеличаваме i с единица */

Леймър e програмист, който не знае, че зад простичката игра Minesweeper за Windows се крие една от най-сериозните задачи в информатика, за разрешаването на която университетът Станфорд е определил награда от 1 милион долара [Prize-2000].

Леймър е програмист, който може да напише бързо сортиране единствено, ако го научи наизуст. Нещо повече, истинските програмисти рядко могат да го запомнят и напишат бързо, но за сметка на това за 10 минути могат сами да си го “измислят”. Нашата цел е читателят да достигне това ниво, при което решаването на сложни задачи се свежда до просто упражнение на интуицията му.

Леймър е програмист, който не знае, че “събирачът на боклук” (от англ. garbage collector)  не е измислен, специално за да събира “труповете” на “починалите” обекти на Java, а зад него стои мощна и красива теория, представена още в средата на XX век.

Леймър е програмист, който не знае, че най-ефективната търсеща машина в Интернет Google дава толкова релевантни резултати, защото се основава на новаторски методи от те­о­ри­я­та на графите.

Леймър е програмист, който не знае, че формулата за ефективната реализация на про­из­во­лен компютърен проект е малко спецификации + много и ефективни алгоритми.

Леймър е програмист, който не може да проумее защо една програма, за която “някой бил казал, че има сложност Q(n2)”, е по-бърза от друга със сложност Q(n3), след като n3 > n2.

Леймър е програмист, който може да програмира на Cи и който може да намери най-малко общо кратно на две числа на лист, но не може да си напише програма за това.

Леймър е програмист, който не може да си обясни защо като се компресира един файл, и после се компресира още веднъж, той не намалява още повече.

Леймър е програмист, който знае, че това е дърво, но не подозира, че то­ва също е дърво, както и това  . И, че всъщност той са­мият, като програмист, също е едно младо и зелено дърво.

Леймър е програмист, който за 10 минути може да направи дадена програма 10 пъти по-бавна, без да се притесни, че някой преди него е загубил 10 часа в оптимизиране, за да я направи с 10% по-бърза.

Леймър е програмист, който brute-force-ва ftp (от англ. File Transfer Protocol — протокол за пренос на файлове в компютърна мрежа) пароли, без да съобрази, че при сегашната скорост на Интернет трудно би могъл да hack-не парола, по-дълга от 5 символа (а за това е необходимо едно съвсем просто комбинаторно изчисление), освен ако не извади луд късмет.

Леймър е програмист, който трудно може да проумее асоциация на хубава вечеря с хубава програма (а тяхното качество зависи предимно от рецептата/алгоритъма, който се използва).

Леймър е програмист, който не знае, че най-краткото разстояние между две точки не винаги е правата линия (понякога, то се намира по алгоритъма на Дейкстра).

Леймър е програмист, за когото двоично търсене означава търсене в двоични файлове.

Леймър е програмист, който се възхищава на програмни фрагменти като този:

(0×000000FF & (i >> 24);

често, просто защото си няма понятие какво точно означават и панически преминава на след­ва­ща­та страница, когато види “йероглиф” от вида:

Леймър е програмист, който не е чувал за динамично оптимиране. Всъщност, един от на­ис­ти­на добрите начини да разбиете в спор някой леймър, е да му заявите: “Хей, ами тази задача е до­бре известна и се решава лесно, елегантно и ефективно с динамично оптимиране”.

В началото, както всички начинаещи програмисти, и ние не бяхме нищо повече от едни мла­ди и зелени леймъри. С течение на времето с хубави книги и статии, и най-вече с упорит труд по решаване на алгоритмични проблеми, започнахме да надрастваме това ниво. Днес сме готови да по­могнем и на теб, драги ни читателю, да избягаш от стерилитета на занаятчийското про­гра­ми­ра­не.

Ще завършим настоящия параграф с една от прекрасните мисли на друг знаменит автор (Марк Твен):

“Когато искам да прочета нещо хубаво, сядам и си го написвам”.

Целта на настоящата книга е да доведе теб, читателю, до положение, при което да имаш са­мо­чувствието да заявиш:

“Когато искам да видя хубава програма, сядам и си я написвам”.

Categories: copy/paste · смешки
Tagged: , ,

2 responses so far ↓

Leave a Comment