воскресенье, 11 октября 2015 г.

О хорошем

Что такое "хороший программист". Мои 50центов.

Наверняка у вас в голове есть тоже какое-то определение. Есть еще всякие слова типа Lead/ведущий, в английском еще странная позиция уровня "Staff engineer", что в иерархии может быть довольно крутым (даже после lead).

Сейчас у нас импортный коллега в импортном офисе в linkedin выставил что он "директор по инфраструктуре и облачным решениям". По факту он единственный сис. админ. Директор - оно конечно звучит, но факт не отменяет.

Еще у себя у университете я видел "ведущего программиста". Так как это бюджетная организация, то ставка "ведущего программиста" подразумевала открывание аудитории с компьютерами до начала занятий и закрытие оной после окончания занятий. Российское понятие "трудовая книжка" не описывает всю сложность выполняемых работ, потому безликая надпись "ведущий программист" в принципе уравнивает всех несмотря на цветовую дифференциацию штанов на этой планете.

Сейчас в нашей команде 3 человека. Можно выбрать любой титул для linkedin, все равно санитары его не читают. Если что, я им лучше про аппликативные функторы рассказывать буду, чем вице-президентом представляться.

Сейчас (на ближайщий год) мое определение "хорошего программиста" - использование подходящего уровня абстракции и способность переходить/опускаться/подниматься на нужный уровень.

Да, это довольно абстрактно.

Но это лучше чем "я руководил коллективом и 15 программистов", "в начале 2000-х я писал на COM+/драйвера для принтера". Очевидно, что есть куча специализаций, и сравнить вообще что-то просто бессмысленно. Опыт/знание/умение не численный показатель.

Как же тогда оценить "подходящий уровень абстракции", спросит надоедливый читатель? Если коротко, я не знаю.

Есть куча нормальных задач, где надо опускаться сверху вниз. При условии, что вы это сами можете. Двигаться вверх обычно сложнее, и в задачах редко можно шагнуть на 1-2 шага вверх без сложностей.

Двигаться вниз на 2-3 шага довольно занимательно. Но дальше вы снова упретесь в абстракции. Либо там уже аксиоматика, либо абстракции, близкие к аксиомам. Можно опускаться в квантовую механику (заметьте, что "опускаться"). Понятие числа вообще сложно, тем более вещественного. А основания логики и философские основания математики вроде выглядят как "копание вниз", все равно упиратесь. Так что копание вниз и абстрагирование вверх одинаково сложно.

Разные уровни абстракции приводят к разным языкам. И не только в программировании. Порефлексируйте на эту тему самостоятельно.

Вообще, все вышенаписанное применимо в абстрактной форме к тем вещам, где есть абстракции. К землекопам, роющим троншеи для ГВС оно слабо применимо. Можно конечно, перейти из 2d в 3d, но дальше не получится. 

Комментариев нет: