программистское, о самооценке
Oct. 8th, 2012 05:46 pmНа HN обсуждают в очередной раз матрицу компетентности программиста.
Мое мнение - использовать ее в качестве пенисомерки, конечно, глупо, но внимательно прочитать - полезно. Я уверен, что каждый найдет несколько строк в этой классификации, с которыми не согласен, или важные темы, которые упущены. Но суть не в этом, а в методичном разложении всего этого материала по полочкам-ступеням. Если просто так задуматься, не имея перед глазами такую таблицу: "Что я знаю хорошо, а что плохо? Что мне стоит улучшить? Что я упускаю из виду?", то что-то, конечно, вспомнишь, но лишь малую часть. А тут подробный анализ - пусть несовершенный, как неизбежно для любого такого анализа - уже провели, и можно воспользоваться им для такого самоанализа и самооценки.
А еще Колин Персиваль (талантливый программист и секьюрити-специалист, автор Tarsnap'а) предложил свою версию вопросов по программе Computer Science для программистов: по его мнению, компетентные программисты легко ответят на большинство этих вопросов в течение 15-30 минут, не пользуясь сетью и другими справочными материалами. Точнее, он выложил первую часть (алгоритмы и структуры данных) из планируемых четырех. Люди жалуются, что это слишком сложно и программистам это в обычной жизни почти никогда не нужно.
Мое мнение - использовать ее в качестве пенисомерки, конечно, глупо, но внимательно прочитать - полезно. Я уверен, что каждый найдет несколько строк в этой классификации, с которыми не согласен, или важные темы, которые упущены. Но суть не в этом, а в методичном разложении всего этого материала по полочкам-ступеням. Если просто так задуматься, не имея перед глазами такую таблицу: "Что я знаю хорошо, а что плохо? Что мне стоит улучшить? Что я упускаю из виду?", то что-то, конечно, вспомнишь, но лишь малую часть. А тут подробный анализ - пусть несовершенный, как неизбежно для любого такого анализа - уже провели, и можно воспользоваться им для такого самоанализа и самооценки.
А еще Колин Персиваль (талантливый программист и секьюрити-специалист, автор Tarsnap'а) предложил свою версию вопросов по программе Computer Science для программистов: по его мнению, компетентные программисты легко ответят на большинство этих вопросов в течение 15-30 минут, не пользуясь сетью и другими справочными материалами. Точнее, он выложил первую часть (алгоритмы и структуры данных) из планируемых четырех. Люди жалуются, что это слишком сложно и программистам это в обычной жизни почти никогда не нужно.
no subject
Date: 2012-10-08 03:51 pm (UTC)no subject
Date: 2012-10-08 09:21 pm (UTC)no subject
Date: 2012-10-08 03:51 pm (UTC)no subject
Date: 2012-10-08 06:57 pm (UTC)А оставшийся процент компенсируется лицензированием продукта который делает то что нужно. Причем я не совсем понимаю почему это обзывают аппликативным программированием.
Точнее - я запросто могу себе представить фреймворк где все эти вещи не нужны, и приложение - где нужны. Так что какая связь - непонятно. Просто есть задачи для решения которых нужно придумывать собственные алгоритмы, а есть где достаточно использовать готовые. И этих задач - большинство.
no subject
Date: 2012-10-08 03:57 pm (UTC)no subject
Date: 2012-10-08 03:59 pm (UTC)no subject
Date: 2012-10-08 04:00 pm (UTC)no subject
Date: 2012-10-08 04:02 pm (UTC)no subject
Date: 2012-10-08 04:27 pm (UTC)no subject
Date: 2012-10-08 04:36 pm (UTC)в России в конце прошлого века даже аникейщиков программистами называли, не знаю как сейчас
no subject
Date: 2012-10-08 04:53 pm (UTC)no subject
Date: 2012-10-08 06:06 pm (UTC)Причем, нужно понимать что в целом писатель даже не обязан уметь писать при этом.
no subject
Date: 2012-10-08 06:30 pm (UTC)там должно быть что то работу с другими людьми и исправлением ошибок. ну и про посторонние оценки тоже. в предложеной матрице есть только одна похожая на такую позиция, в последней категории маловажного scripting-а. но и там должно быть добавлено, что этот код какие то люди действительно активно реюзали, не просто мусор на ыебсайте лежит опубликованый
no subject
Date: 2012-10-08 06:55 pm (UTC)no subject
Date: 2012-10-08 07:33 pm (UTC)no subject
Date: 2012-10-08 09:01 pm (UTC)no subject
Date: 2012-10-08 10:03 pm (UTC)Можно сказать "я умею сделать вебсайт продажи собачих кормов" и "я сделал вебсайт продажи собачих кормов, который три года был лидером индустрии". Разница -- как день и ночь. Первая формулировка не говорит об опыте программиста ничего. Совсем. Ноль.
no subject
Date: 2012-10-08 04:33 pm (UTC)no subject
Date: 2012-10-08 04:47 pm (UTC)Так что это матрица не компетентости программиста, а соответствия программиста трендам, модным в этом сезоне.
no subject
Date: 2012-10-08 04:49 pm (UTC)no subject
Date: 2012-10-08 05:08 pm (UTC)no subject
Date: 2012-10-08 04:45 pm (UTC)no subject
Date: 2012-10-10 05:01 am (UTC)Объяснял мне эту фигню
1 минуту, 2-3 минуты, 4-5 минут, 6+ минут.
no subject
Date: 2012-10-08 04:56 pm (UTC)а) Она расчитана на сферического программиста в вакууме. Программирование уже достаточно давно подразделилось на множество более узких специализаци. И даже первая колонка может быть не актуальна для _всех_ специализаций.
б) Эта таблица рассматривает ситуацию в статике (что ты знаешь прямо сейчас). Как по мне, два ключевых критерия - это ум и passion (не могу найти хорошего перевода). Собственно говоря эти два критерия позволяют передвинуться в достаточно короткие сроки по любей из строк таблицы из 2^n до log n.
no subject
Date: 2012-10-08 05:08 pm (UTC)no subject
Date: 2012-10-08 06:43 pm (UTC)no subject
Date: 2012-10-08 07:06 pm (UTC)идея 1: Есть дерево начальников. когда самый главный уходит на пенсию - на его место становится самый опытный подчинённый. В образовавшуюся дырку - подчинный подчиненного и тд. Это даёт возможность вытаскивать максимум из приоритетной очереди.
идея 2: если какой-то подчиненный умнее своего начальника, то начальника понижают, а подчиненный становится на его место. Это позволяет добавлять в приоритеную очередь.
идея 3: для сортировки - просто вытаскиваем из приориетной очереди все элементы пока не опустеет.
идея 4: если надо добавить сразу много элементов, а не один, то это на самое деле можно сделать за O(N) а не O(N lnN). Когда надо сделать слияние двух организаций, то выбираем начальником новой организации самого компететного из двух. Дальше см. идея 1, как заполнить вакантное место. Разделяй входное множество людей на две организации - и властвуй.
идея 5: данное дерево начальников можно хранить в массиве слой за слоем. Ребёнок элемента N - это N*2+1 и N*2+2.
Зато я совершенно не помню как сделано RB-tree. Много раз читал - и не помню, без книжки не смогу написать.
no subject
Date: 2012-10-08 07:10 pm (UTC)no subject
Date: 2012-10-08 05:59 pm (UTC)no subject
Date: 2012-10-08 07:34 pm (UTC)no subject
Date: 2012-10-08 07:08 pm (UTC)Exactly, on all points.
Right. But called it Software Development which caused some noticeable confusion.
no subject
Date: 2012-10-08 07:47 pm (UTC)facepalm.jpeg
no subject
Date: 2012-10-09 10:54 am (UTC)no subject
Date: 2012-10-08 08:43 pm (UTC)no subject
Date: 2012-10-08 09:09 pm (UTC)no subject
Date: 2012-10-09 02:44 pm (UTC)И где читать все то, чего не знаешь?
no subject
Date: 2012-10-08 09:37 pm (UTC)хорошо работать в команде, где у _каждого_ по всем параметрам "логарифмический" уровень или как минимум эти ценности разделяются и к ним стремятся.
плохо работать в команде "ветеранов индустрии", которые десятилетиями продолжают писать один и тот же говнокод.
трагедия в том, что вторые так и непонимают, что именно с ними не так. Эдакий программисткий dunning-kruger effect.
счастье в том, так нелюбимая нами обязанность интвьюировать кандидатов на самом деле еднственный способ взять первых и не взять вторых.
мораль в том, что нужно "учиццо, учиццо, учиццо" (погружается в код, убирает перископ)
no subject
Date: 2012-10-09 02:13 am (UTC)Я недавно начал проект, к которому был написан прототип. Прототип писал очень умный человек, который взял книгу и прочёл как нужно писать код. Чего там только не было - и мультитрединг, и интерфейсы и ещё чёрт знает что. Понять его код было ужасно сложно, отлаживать - ужас. А задача легко решалась без всех ненужных премудростей, что я и сделал.
no subject
Date: 2012-10-08 09:54 pm (UTC)для того, чтобы каждый увидел эту суть, ему нужно былть как минимум на "третьем уровне" алгоритмов: :)
no subject
Date: 2012-10-10 05:21 am (UTC)и какая степень перед первой если в некоторых горизонталях вообще можно выбрать пункт "о чем это они, что за странные слова в названии?"
no subject
Date: 2012-10-10 07:18 am (UTC)no subject
Date: 2012-10-10 10:15 am (UTC)Сейчас уже 3 выложил
no subject
Date: 2012-10-15 06:44 pm (UTC)Level 0 в testing должен быть Level ∞.
File has license header для level 3? Pfffff...
Scripting, frameworks и blogs заставляет задуматься о ценности все таблицы.