Мегасрач у belnetmon
На 500+ комментариев:
http://belnetmon.livejournal.com/1024560.html
Для непрограммистов объясняю суть: при собеседовании на работу программиста человеку предлагается пройти тест: написать реальную простенькую программу и посмотреть, получится ли у него.
Казалось бы, что в этом требовании такого странного? Реакция, однако, забавная. В тему набежало некоторое количество мутных личностей, которые стали писать о том, что предлагаемые задачи недостаточно простые или недостаточно стандартные.
Мне кажется, что суть проблемы такова: некоторые мои коллеги учатся не столько программировать, сколько красиво гнуть пальцы. Человек помнит огромное количество всяких продуктов, языков и систем. Но знания кандидата по каждому пункту укладываются в 1-2 абзаца. Это значит, что на собеседовании он легко может поддержать беседу о данной системе, но вот написать что-то реальное - фиг.
Я называю этот типаж "эрудитом".
Если попросить эрудита написать программу типа описанной в тесте, то он будет
- Два дня читать документацию
- Два дня гуглить
- Два дня шариться по форумам
- К началу следующей недели он найдет-таки на каком-то форуме подходящую программу, скопипастит ее, и она заработает.
При этом эрудит будет страшно горд теми фактами, что:
1. Он не изобрел велосипед (ибо изобретать велосипед неправославно).
2. Он использовал проверенный, работающий код - ибо все, что опубликовано в инете, в понимании эрудита работает идеально. В отличие от сделанного руками (см п.1)
3. Он сэкономил работодателю кучу бабок, так как см. пункт 1.
Особо продвинутый эрудит способен обернуть найденную копипасту в "паттерн". Как правило, результат от этого потеряет в качестве. Но эрудит будет убежден, что результат, напротив, приобретет дополнительные магические свойства типа "расширяемость +5". Просто потому как в книжках про "паттерны" много говорится про такие вещи. Поэтому всякий паттерн - это сразу большой плюс, а любой код, в котором эрудит сходу не увидит один из 20-30 знакомых паттернов, есть неправославный велосипед и должен вместе с афтаром гореть в аду.
Например, преобразование int в строку - это не паттерн...
http://belnetmon.livejournal.com/1024560.html
Для непрограммистов объясняю суть: при собеседовании на работу программиста человеку предлагается пройти тест: написать реальную простенькую программу и посмотреть, получится ли у него.
Казалось бы, что в этом требовании такого странного? Реакция, однако, забавная. В тему набежало некоторое количество мутных личностей, которые стали писать о том, что предлагаемые задачи недостаточно простые или недостаточно стандартные.
Мне кажется, что суть проблемы такова: некоторые мои коллеги учатся не столько программировать, сколько красиво гнуть пальцы. Человек помнит огромное количество всяких продуктов, языков и систем. Но знания кандидата по каждому пункту укладываются в 1-2 абзаца. Это значит, что на собеседовании он легко может поддержать беседу о данной системе, но вот написать что-то реальное - фиг.
Я называю этот типаж "эрудитом".
Если попросить эрудита написать программу типа описанной в тесте, то он будет
- Два дня читать документацию
- Два дня гуглить
- Два дня шариться по форумам
- К началу следующей недели он найдет-таки на каком-то форуме подходящую программу, скопипастит ее, и она заработает.
При этом эрудит будет страшно горд теми фактами, что:
1. Он не изобрел велосипед (ибо изобретать велосипед неправославно).
2. Он использовал проверенный, работающий код - ибо все, что опубликовано в инете, в понимании эрудита работает идеально. В отличие от сделанного руками (см п.1)
3. Он сэкономил работодателю кучу бабок, так как см. пункт 1.
Особо продвинутый эрудит способен обернуть найденную копипасту в "паттерн". Как правило, результат от этого потеряет в качестве. Но эрудит будет убежден, что результат, напротив, приобретет дополнительные магические свойства типа "расширяемость +5". Просто потому как в книжках про "паттерны" много говорится про такие вещи. Поэтому всякий паттерн - это сразу большой плюс, а любой код, в котором эрудит сходу не увидит один из 20-30 знакомых паттернов, есть неправославный велосипед и должен вместе с афтаром гореть в аду.
Например, преобразование int в строку - это не паттерн...
no subject
no subject
no subject
чо те стоит на бумажке накалякать 10 строк =)
no subject
я, кстати, вообще очень плохо ручкой пишу. я мыслю блоками, а не строками, и на листочке привычно сначала пишу обрамления блока, а потом долго думаю, как туда строку вставить. мне чо, со своим нетбуком ходить, что ли? так я бы не взял, например, на работу существо, которое по доброй воле дома работает под Slackware, и водружает Слаку на все машины в области досягаемости. %-)
no subject
no subject
no subject
no subject
no subject
no subject
главное тут — это не дать схемерам начать делать Свой Охуенно Крутой И Быстрый Диалект Схемы Для Нашего Проекта. потому что — как показывает практика — в итоге получается очередной монстрокомпилятор Схемы, без доков, с 9e+3 фичами, а проект так никто писать и не начинает: «ну щаз, вот ещё чуть-чуть компилятор допилим, и быстро напишем ваш сраный проект, ну чего пристали-то с ерундой всякой?!»
кстати, трёх схемеров нанимать тоже не надо: двое ещё как-то могут договориться, а трое сначала будут долго выяснять, какой именно компилятор Схемы наиболее крут, а потом плюнут на всё и сядут писать свой. и см. выше.
no subject
no subject
no subject
no subject
из забавных — могу назвать HOP или Roadsend PHP Compiler.
а охуенным для меня продукт будет, например, потому, что я буду иметь бесплатный REPL. то бишь, возможность вломиться в работающую систему и посмотреть, что там пошло не так, на реальном работающем релизе, в realtime, а не в криптологах/криптодампах при помощи libthelepaty и libtimemachine. плюс — инкрементальное построение продукта («дунул-придумал-написал-проверил»).
думаешь, откуда в современных игрушках все эти «консоли»? оттуда, что надо иметь возможность «подёргать за потроха», а язык не позволяет. в Схеме же я имею внутри продукта полную и рабочую Схему, доступ ко всем нужным переменным, возможность позвать любую функцию и ты пы. а также, например, немаловажную возможность тупо переопределить пару функций, не останавливая весь продакшн — что важно для мелких багофиксов: не надо ждать очередного релиза и тормозить рабочий процесс при его накатывании, достаточно просто запустить на самом продукте мелкофайл и работать себе дальше.
плюс, конечно, совершенно убойная выразительность языка и возможности метапрограммирования — тут все «мэйнстримовые» языки атомно отсасывают.
при всём при этом, к сожалению, я почти не пишу на Схеме. потому что найти людей, для которых «функциональное программирование», «лябмда-исчисление», «immutable structures», «state-less programs» и ты пы не просто фоновый шум, а осмысленые словосочетания, весьма сложно (или весьма дорого %-).
no subject
no subject
Лисп (и Схема в частности) далеко не экзотика. просто они идут вразрез с современной IT-индустрией, где совершенно не нужны думающие и понимающие, а нужны высиральщики кода. ну, that's life. понятно, что один хороший лиспер стоит по деньгам как пара десятков обезьян (и выше). понятно, что выкинуть его и взять другого — напряжно, это не обезьяны, которых на каждом углу пучок за пятак. понятно, что на модные базворды он срать хотел с колокольни. а то, что стоимость поддержки обезьяновысеров с лихвой перекроет деньги, потраченые на лиспера — это до манагеров не доходит, потому что в программерской области они не смыслят ни хуинки (гы, многие до сих пор уверены, что если в проект, который пролажал все сроки, нанять 50 обезьян заместо десяти, то проект зарелизится в пять раз быстрее). ну, и так далее.
скука, в общем, это всё — везде так, на самом деле. нанимают джамшутов, а потом удивляются, что стены косые, потолки падают, а сетевые кабеля разведены как угодно, только не так, как надо было. зато дёшево, хуле. умных слов не говорят, поставили — сразу, типа, «работают». было бы смешно, если бы рыдать не хотелось.
кстати, о Лиспе: Emacs. то, что у него марсианские кнопкобиндинги — ерунда, это можно поправить в пару минут (хоть и не надо, потому что они достаточно удобны). аналогов-конкурентов реально нет.
no subject
да... это к вопросу, зачем переписывать весь код на схему, ага ;)))))
no subject
штука же в том, что обезьян-байтоёбов выращивать выгодно. это дёшево и даёт неисчерпаемый ресурс джамшутов. именно потому в MIT, например, заменили Схему на бидон: «творцы нам тут нахуй не нужны. Криэйтором, Вава, криэйтором.»
no subject
Другие языки из перечисленного списка столь же фееричны?
no subject
а Forth, например, отлично для однокристалок подходит. Схема тоже, но в это не все верят. %-)
но с точки зрения обезьяны-императивщика — фееричны все, да. у обезьяны от них заклинивает череп и начинается словоизвержение на тему «это высоколобая хуйна, а нам работу работать надо».
no subject
no subject
что забавно — он прав: ему действительно надо «работать работу». а на результат и усилия насрать — лишь бы полезная деятельность активно эмулировалась.
алсо, ты говоришь «простой синтаксис» так, как будто это что-то плохое. тем не менее вон авторы Scheme48 взяли Схему, которая совсем уж проста, сделали из неё путём кастрации Pre-Scheme — и получился охуительный байтоёбский инструмент. на этой самой Pre-Scheme написали VM для Scheme48, забив на традиционное применение сей в таких задачах. а Си использовали как и полагается — как ассемблер, компилируя в него Pre-Scheme (потому что в машинный код лениво, зачем, если есть отличный переносимый макроассемблер?).
no subject
То есть, алгоритм схемера такой: берется какой-нибудь максимально примитивный синтаксис, для него пишется конвертер на C. такой конвертер любой сишник назовет скромно кодогенератором. но схемер назовет его компилятором и выпятит груди: "йа компиляторы пишу!"
казалось бы, при чем тут джамшуты...
(no subject)
(no subject)
(no subject)
no subject
no subject