Жил-был программист…
в рубрике Peopleware, Другое, Колонка Спанч Боба
Обыкновенный программист, главное занятие которого, разумеется, программирование.
Он закончил технический ВУЗ по специальности “прикладная математика”. На старших курсах он устроился работать в небольшую компанию и писал простенькие приложения под базы данных.
Сначала наш Программист почти ничего не знал. Не знал, что такое шаблоны C++; не знал, для чего нормализуют базы данных, не знал, чем обеспечивается целостность сущностей; даже определение третьей нормальной формы давал, лишь подумав секунды четыре.
А решая классическую задачу о выборке из двух таблиц (person - skills, “многие ко многим”, ключи Person_ID и Skill_ID, соответственно) записей о людях (Person), обладающих такими вот знаниями (Skills): Oracle и C++ одновременно, писал примерно такой запрос:
SELECT p.name AS 'Person name', s.name AS 'Skill 1', s1.name AS 'Skill 2' FROM person p, person_skill ps, skill s, person_skill ps1, skill s1 WHERE p.id = ps.person_id AND ps.skill_id = s.id AND p.id = ps1.person_id AND ps1.skill_id = s1.id AND s.name = 'Oracle' AND s1.name = 'cpp'
…
И код он писал плохо и медленно.
Но время шло. Наш
Программист читал книги, писал программы и наконец выполнил свой первый
проект. Затем он выполнил второй проект, а потом еще один и еще один. А
потом вдруг взял да и сменил место работы.
Перед самым увольнением Начальник вызвал Программиста к себе в кабинет.
- Почему ты уходишь от нас? - спросил Начальник.
- Мне у вас скучно, - ответил Программист.
- Понятно, - сказал Начальник. А потом, немного подумав, добавил: - Может, тебе зарплату повысить?
- Не надо, - ответил Программист. - Я уже твердо решил уйти от вас.
И Программист стал работать в другом месте. Здесь он узнал много нового и
интересного, потому что менеджером проекта у него был… Впрочем, я уже
не помню, кто именно был у него менеджером проекта — может быть, даже сам gaperton.
Но наш Программист твёрдо запомнил, что в задачке про person - skills нужно использовать GROUP BY и COUNT.
Спасибо за это gaperton’у большое.
А потом Программист ещё раз сменил место работы. И ещё раз, и ещё…
Он научился отвечать на Каверзные Вопросы на собеседовании.
Он был вполне лоялен к компаниям, в которых работал.
Он каждый день писал отчет о проделанной работе.
Он сдал несколько экзаменов и получил соответствующие сертификаты…
Через несколько лет его резюме занимало уже целых четыре страницы.
А потом Программист взял и умер — непонятно от чего. То ли ему действительно стало очень скучно, то ли заболел, бедняга, серьезно…
И никто не заплакал.
Может быть, жена заплакала бы, да только не было у Программиста жены.
А был ли он вообще когда-то женат, я тоже за давностью лет не припомню.
Комментариев: 20 на “Жил-был программист…”
Прокомментировать
Вы должны быть авторизованы для комментирования.




Арсеньева Елена:
Рассказ про программиста реально “доставляет”, как сейчас принято говорить в сети. Заставляет задуматься о бренности бытия… Хотя и мрачно, причем весьма.
12 августа, 2009 в 23:01
Лукашина Катерина:
Жизнь весьма скучного человека… Обязательно для ознакомления безыдейным трудоголикам.
13 августа, 2009 в 10:29
Шамрай Александр:
“Человек в футляре” Чехова в современной интерпретации
13 августа, 2009 в 11:32
Желнова Наталья:
Насчет скучного и безыдейного трудоголика - можно поспорить.
Все-таки сертифицированный специалист… Не просто “парень с улицы”.
13 августа, 2009 в 17:18
Лукашина Катерина:
Хм… я как раз о том и говорю, парень взял и всего добился, прошу прощения, попой. Читал, работал над собой, а толку никакого… Взял… и умер. =)))
14 августа, 2009 в 10:28
Желнова Наталья:
Тезисы:
Ну, скажем так: не “попой”, а трудом и упорством.
Читать и работать над собой - полезно.
Скучно на работе бывает и талантливым людям.
А насчет “умер” - ну… Все там будем.
14 августа, 2009 в 12:10
Лукашина Катерина:
Ну, я не буду продолжать оспаривать свое впечатление от написанного, просто мне кажется так. =)))
14 августа, 2009 в 15:08
Желнова Наталья:
Немудрено.
Задача про person - skills предлагалась на техническом интервью в Люксофте. Взята мной “шутки ради”.
Успешным кандидатом считался тот, кто воспроизводил следующий код:
use pubs
go
create view au
as select au_id, au_fname, au_lname from authors
go
select au_lname, au_fname from au join titleauthor as ti on au.au_id = ti.au_id
join titles as ts on ti.title_id = ts.title_id
group by au_lname, au_fname
having count (au_lname) = 2
go
В дальнейшем мы постараемся, чтобы в нашем творчестве было меньше римейков.
Ваши Software Raccoons
18 августа, 2009 в 5:21
Сатаров Владимир:
Над текстом рыдал от смеха.
В концовке уронил скупую мужскую слезу. Птичку - жалко.
Давайте посмотрим на жизнь реально, коллеги. Платят зарплату, которую считаешь нормальной - сиди и не рыпайся. Нашел больше - переходи.
СКУЧНО? Сорри, коллега, я не ослышался???? ВАМ СКУЧНО???? Придумайте, коллега свою тему! Большую, сочную и вкусную! И реализуйте ее на здоровье! Вам за это не заплатят? Не беда: получите удовольствие и опыт. Никто не оценит? А оно вам надо? Большая, сочная и вкусная задача - это “rules by default”.
И еще: не ходите, дети, на примат учиться. Для этого есть нормальные кафедры ПО ВТ и АС.
19 августа, 2009 в 11:06
Желнова Наталья:
Ну, по поводу “не ходите, дети” - это, знаете, спорно…
Я вот Мехмат закончила. По этой самой специальности. И ничего так.
По крайней мере, меня еще не уволили “за то, что я не ОЧЕНЬ умная”.
19 августа, 2009 в 14:44
Сатаров Владимир:
По поводу примата…..
Выше приведены куски кода. Если бы я ТАК написал, то не видать мне принятия лабы как своих ушей уже 2-м. курсе.
Если бы ко мне на собеседование пришел коллега с такими каляками, то он тут же бы ушел с дипломом любого цвета хоть от МГУ, хоть от МФТИ. И мне без разницы его IQ.
Матчасть надо знать.
19 августа, 2009 в 15:04
Желнова Наталья:
Вы про какие фрагменты кода, коллега?
Про тот, что я привела в комментаиях - или про то, что в статье?
То, что в статье - реальный факт из жизни того программиста, про которого я пишу (персонаж реален, но пальцами показывать мы не будем).
А по поводу того, что в комментарии… Да, это именно про матчасть. Точне, по теме “оптимизация запросов в SQL”. В частности, если немного подумать, можно понять, почему второй запрос выполняет только один table scan, когда выбирает данные из таблицы, получившейся в результате выполнения join.
19 августа, 2009 в 15:31
Сатаров Владимир:
Тот, который из статьи, я распечатаю и на стенку повешу. Не возражаете? Исключительно для поднятия настроения - никаких иных мыслей не имею.
19 августа, 2009 в 16:57
Желнова Наталья:
Дык, воля Ваша. Статья изначально задумывалась исключительно как юмористическая.
19 августа, 2009 в 18:52
Астахов Иван:
Прикольно.
А где вы вообще себе людей набираете, может, посоветуете?
PS. Мне нужен человек, который бы вместо
use pubs
go
create view au
as select au_id, au_fname, au_lname from authors
go
select au_lname, au_fname from au join titleauthor as ti on au.au_id = ti.au_id
join titles as ts on ti.title_id = ts.title_id
group by au_lname, au_fname
having count (au_lname) = 2
go
написал вот так:
use pubs
go
select au_lname, au_fname
from authors au join
(select au_id, count(*) as c from titleauthor group by au_id having count(*) = 2) a2 on au.au_id = a2.au_id
go
ну или через вьюшку, если подзапросы нельзя использовать.
Если выполнять их рядом в одном батче - query cost 46.22 против 53.78.
И это на смешных 20 записях.
21 августа, 2009 в 15:01
Желнова Наталья:
А на каких условиях Вам этот человек нужен?
Если на part-time, то могу порекомендовать одного такого, с которым когда-то работала… А то он СЛИШКОМ умный - и ему скучно.
Да, я должна всех сразу предупредить: с героем моей статьи я не работаю. Пересекалась с ним когда-то давно; с тех пор он значительно поумнел.
21 августа, 2009 в 16:51
Астахов Иван:
У нас все по-белому, так что или в штат на фулл-тайм или как аутсорсер/аутстаффер по договору с юрлицом. Просто так кого-то привлечь мы не можем
А вообще все будет зависеть от человека - если сильно друг другу понравимся, то наверняка что-нибудь придумаем.
21 августа, 2009 в 17:00
Желнова Наталья:
Что ж, записывайте имена:
Дмитрий Никифоров
Oracle Certified Professional (DBA & Programmer)
Ссылка на профиль: http://www.linkedin.com/profile?viewProfile=&key=734297&authToken=BJW2&authType=NAME_SEARCH&locale=en_US&srchindex=1&pvs=ps&goback=.psr_*1_dmitry+nikiforov_*1_*1_*1_*1_*1_*1_*1_*1_Y_ru_115470_*1_*1_*2_*2_*2_Y_Y_*1_Relevance
Закончил Физтех (ФАЛТ), в 1990 году с красным дипломом.
P.S. Если начнете разговор, то не говорите ему, что это я рекомендовала Вам к нему обратиться. У нас с ним давние личные счеты. Если не захочет разговаривать - просто скажите мне, у меня с ним есть общие знакомые, через них и доберемся.
21 августа, 2009 в 17:22
Желнова Наталья:
Sorry
http://www.linkedin.com/pub/dmitry-nikiforov/0/2b4/b35
ссылка на профиль в LinkedIn
21 августа, 2009 в 17:23
Желнова Наталья:
P.S. Это была минута рекламы.
21 августа, 2009 в 17:23