Добавил:
СПбГУТ * ИКСС * Программная инженерия Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Матрица компетентности программиста

.pdf
Скачиваний:
16
Добавлен:
14.04.2022
Размер:
101.21 Кб
Скачать

Матрица компетентности программиста

Область

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

програм-­

 

 

 

Уровень

 

 

 

 

 

 

 

 

 

мирования

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Теория:

2n

n2

 

n (Уровень2)

 

 

 

 

log(n) (Уровень3)

Коммен­ тарии

(Уровень0)

(Уровень1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Понимает плюсы и минусы­ использо­ -­

Знание сложных структур

 

 

 

 

 

вания­ тех или иных базовых струк-­

данных, таких как B-

 

 

 

Может объяснить

тур данных (размер памяти, время

 

 

Не понимает

дерево, Биномиальная куча

 

 

и использовать

выполнения операций с данными­

,

 

Структуры

разницы между

и Фибоначчиевская­

куча,

 

на практике

 

в чем разница между массивами­

 

 

 

данных

массивом

массивы,

 

и связными списками в этом плане­ ).

АВЛ-дерево, Красно-

 

и связным

 

чёрное дерево, Косое

 

 

связные списки,

Может объяснить­ , как реализо­

вать­

 

 

списком.

дерево, Список

 

 

 

словари и т.д.

хэш-таблицы и как обработать кол-­

 

 

 

 

с пропусками, TRIE-

 

 

 

 

 

 

лизии. Приоритетные­

очереди

 

 

 

 

 

 

 

 

 

 

 

 

структуры и т.д.

 

 

 

 

 

 

и способы их реализации и т.д.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Не может найти

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

среднее­

 

 

 

 

 

 

 

 

 

 

Может распознать­

 

 

 

значение

Базовые методы

 

 

 

 

 

 

 

 

и написать решение­

 

 

массива чисел

 

 

 

 

 

 

 

 

динамическим

 

Работать с теми, кто

 

сортировки

 

Деревья, Графы, "простой путь"

 

 

 

 

(тяжело пове-­

 

 

 

программированием­

,

имеет хороший

Алгоритмы

и поиска. Обход

и "разделяй-и-властвуй" алгоритмы,

рить, но

хорошо знает алгоритмы­ на

рейтинг в TopCoder —

и поиск

 

понимает значимость уровней

 

 

 

 

встречаются

 

 

 

 

графах, хорошо знает

это невероятная­

 

в структурах

 

приведенной здесь матрицы.

 

 

 

 

и такие

 

 

 

 

численные методы, может

удача!

 

данных.

 

 

 

 

 

 

 

 

 

 

кандидаты на

 

 

 

 

 

 

 

 

 

идентифицировать­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

собеседова-­

 

 

 

 

 

 

 

 

 

 

проблемы класса NP.

 

 

нии).

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Системное

Не знает, что

Базовое

 

Понимает, чем отличается kernel

 

Понимает, как работает

 

програм-­

такое

понимание

 

mode от user mode, что такое муль-­

весь "программный стэк":

 

мирование

компилятор,

компиляторов­

,

ти-трединг, способы­ синхрониза­

ции­

железо (CPU + Память +

 

 

линковщик или

линковщиков

 

и как реализованы­

примитивы­

син-­

Кэш + Прерывания +

 

 

интерпретатор.

и интерпретато-­

хронизации­

, может читать­

ассем-­

микрокоды), двоичный код,

 

 

 

ров. Понимает,

блерный код. Понимает, как

 

 

 

ассемблер, статическая

 

 

 

что такое

 

работают сети, сетевые протоколы­

и динамическая линковка,

 

 

 

ассемблерный

и может реализовать передачу­

 

 

компиляция­

, интер-­

 

 

 

 

код и как

 

данных через сокеты.

 

 

 

 

 

претация, JIT-компиляция,

 

 

 

работают

 

 

 

 

 

 

 

 

 

 

 

 

 

программы на

сборка мусора, куча, стэк,

уровне железа.

адресация памяти...

Небольшое

 

понимание

 

виртуальной

 

памяти и

 

пэйджинга.

 

Навыки:

2n

n2

n (Уровень2)

log(n) (Уровень3)

Коммен­

тарии

(Уровень0)

(Уровень1)

 

 

 

 

 

 

 

 

 

Контроль

Бэкап

VSS и основы

Специалист по возможностям CVS

Знает распределенные­

 

 

исходников в

CVS/SVN

and SVN. Знает, как разветвить

 

 

версий

системы VCS. Пробовал

 

 

папку с датой

в качестве

и слить, настроить­ репозиторий­

 

 

исходников

Bzr/Mercurial/Darcs/Git.

 

 

бэкапа.

пользователя

и т.д.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Может настроить­ скрипт

 

 

Автома-­

Знает, как

 

 

для сборки системы

 

 

 

 

 

запустить Build

Умеет билдить из

Может настроить скрипт для сборки

и документации­ , инсталля-­

 

тизация

из среды

командной

основной системы.

торов, генераторов­

"release

 

build'ов

программирова-­

строки.

notes" и добавить­

скрипт

 

 

 

 

ния.

 

 

в систему контроля­

версий

 

 

 

 

 

исходников.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Написал

 

 

 

 

 

 

 

 

 

 

автоматизи-­

 

 

 

 

 

 

 

 

 

 

рованные юнит-

 

Понимает и может­

 

 

 

 

 

 

Автомати-­

Думает, что

тесты и может

 

настроить автоматические

 

тестирование­ —

создавать свои

Пишет код в стиле Test-driven

тесты на функционал­

,

 

 

зированное

 

 

это работа

хорошие юнит-

Development (TDD).

пользовательский­

 

 

 

 

 

 

тести­рование

 

 

 

 

 

 

 

тестеров.

тесты для кода,

 

интерфейс и загрузку/

 

 

 

 

который пишет

 

производительность­

...

 

 

 

 

в настоящее

 

 

 

 

 

 

 

 

 

 

время.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Програм-­

2n

n2

n (Уровень2)

log(n) (Уровень3)

Коммен­

тарии

мирование:

(Уровень0)

(Уровень1)

 

 

 

 

 

 

 

 

Деком-­

Просто после-­

Может разбивать

Способен создавать многократно

Использует со-­

 

 

 

 

 

 

позиция

довательные

решение задачи

используемые функции/объекты,

ответствующие структуры­

 

задачи

строчки кода,

на несколько

которые решают общие задачи.

данных­ и алгоритмы­ .

 

 

 

 

а copy/paste —

функций.

 

Создает общий­ /объектно-

 

 

для повторного

 

 

ориентированный­

код,

 

 

 

использования

 

 

который­ инкапсулирует­

те

 

 

кода.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

условия­ задачи, которые

 

 

 

 

 

 

 

 

 

 

 

могут быть изменены.

 

 

 

 

 

 

 

 

 

 

 

Может визуализировать­

 

 

 

 

 

 

 

 

Может

 

 

и проектировать­

сложные

 

 

 

 

 

 

 

 

 

 

системы с несколькими

 

 

 

 

 

 

 

 

произвести

 

 

 

 

 

 

 

 

 

 

 

 

линейками продуктов­

 

 

 

 

 

 

 

Не способен

декомпозицию

 

 

 

 

 

 

 

 

 

 

 

и интеграцией­

с внешними­

 

 

 

 

 

 

Деком-­

думать

задачи

 

 

 

 

 

 

 

 

Может спроектировать систему,

системами­ . Также должен­

 

 

 

 

 

 

о системе

и спроектиро-­

 

 

 

 

 

 

позиция

которая охватывает несколько

уметь проектировать­

сис-­

 

 

 

 

 

 

сложнее одного

вать систему

 

 

 

 

 

 

системы

технологий/платформ.

темы поддержки­ работы:

 

 

 

 

 

 

класса или

в пределах

 

 

 

 

 

 

 

 

 

мониторинг­

, генерация­

 

 

 

 

 

 

 

файла.

одной

 

 

 

 

 

 

 

 

 

 

 

отчетов, аварийные

 

 

 

 

 

 

 

 

 

платформы или

 

 

 

 

 

 

 

 

 

 

 

 

 

переходы на

 

 

 

 

 

 

 

 

 

 

 

технологии.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

использование запасных

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ресурсов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Важность этого кри-­

 

 

 

 

 

 

 

 

 

 

терия для программис-­

 

 

 

 

 

 

 

 

 

 

та часто недооцени­

ва­ -­

 

 

 

 

 

 

 

 

 

 

ют. С увеличением­

 

 

 

Не может

 

 

 

 

 

 

 

 

аутсорсин­ га­ разработ-­

 

 

 

 

Может понимать

 

 

ки ПО в те страны­ , где

 

выразить свои

 

 

 

 

 

 

Его понимают.

 

 

и объяснять мысли/дизайн/

английский не явля-­

 

мысли/идеи.

 

 

Общение

Хорошие

 

 

идеи/специфику в точно

ется родным языком­ ,

Плохо

Может эффективно общаться.

правописание

выраженной форме,

 

этот вопрос­ стал более

 

с правописани­-

 

 

 

 

и грамматика.

 

 

в общении соответствует

актуальным­

. Я знаю

 

ем

 

 

 

 

 

 

ситуации.

 

 

 

 

несколько­

проектов­

,

 

и грамматикой.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

которые­

провалились­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

потому, что

 

 

 

 

 

 

 

 

 

 

 

 

 

программисты­ не

 

 

 

 

 

 

 

 

 

 

 

 

могли понять смысл

 

 

 

 

 

 

 

 

 

 

 

обсуждения­

.

 

 

 

 

 

 

 

Файл имеет разделы

 

 

 

 

 

 

 

 

 

 

 

 

"license header", "sum-­

 

 

 

 

 

 

Организация

Нет четкой

Методы

Код разделен на регионы, имеет

mary", хорошие

 

 

 

 

 

 

 

 

сгрупированны

хорошие комментарии, в т.ч. со

комментарии,

 

 

 

 

 

 

 

 

 

кода в файле

организации

логически и по

ссылками на другие файлы

непротиворечивую­

 

 

 

 

 

 

 

 

в файле.

вызовам.

исходников.

 

расстановку­ пробелов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

и табуляции. Файл должен

 

 

 

 

 

 

 

 

 

 

 

выглядеть красиво.

 

 

 

 

 

 

 

Организация

Не приходит в

Похожие файлы

Каждый физический­

файл

Организация кода на физи-­

 

 

 

 

 

 

кода между

голову мысль

группируются

предназначен для чего-то одного­ ,

ческом уровне точно

 

 

 

 

 

 

 

файлами

четко

в папку.

например, служит для объявления

соответствует­

проекту, и,

 

 

 

 

 

 

 

организовать

 

одного класса или для реализации

глядя на имена файлов

 

 

код с помощью

 

одного функционала и т.д.

 

и структуру папок, можно

 

 

разделения на

 

 

 

понять, как

 

 

 

 

 

 

 

файлы.

 

 

 

спроектирована данная

 

 

 

 

 

 

реализация.

 

 

 

 

 

 

 

 

 

 

Структура дерева

 

Разница между этим

 

 

 

 

 

исходного кода

 

 

пунктом и предыду-­

Организация

 

Простое

Нет "круговых" зависимостей.

 

соответствует логической

щим состоит в масш-­

 

Бинарники, либы, документация,

 

иерархии и организации

табе организации.

Все в одной

разделение кода

 

дерева

билды, сторонний код — все

 

кода в проекте. Глядя на

Организация­ дерева

исходников

папке.

в логические

разложено в соответствующие­

 

имена файлов и структуру

исходников относится

 

подкаталоги.

 

 

 

папки.

 

папок, можно понять, как

ко всему комплексу

 

 

 

 

 

 

 

 

 

спроектирована­

данная

продуктов, которые

 

 

 

 

 

система.

 

 

 

 

 

определяют систему.

 

 

Хорошие имена

 

 

Допущения в коде сопро-­

 

Чита-­

 

 

 

вождаются assert'ами, по-­

 

Односложные

файлов,

Нет длинных функций, а нестандарт-­

 

бельность

переменных,

ный код, багфиксы и допущения

 

ток операций в коде

 

 

имена.

 

естественный­

— нет глу-­

 

кода

классов, методов

в коде поясняются комментариями­

.

 

 

бокой вложенности­

 

 

 

 

и т.д.

 

 

 

 

 

 

 

 

условий или методов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Безопасное

 

Проверяет все

 

 

Имеет свою собственную

 

 

аргументы

Убеждается, что проверил

 

библиотеку­ , помогающую­

 

програм-­

Не понимает

 

 

и ставит assert'ы

возвращаемое значение и что

 

в безопасном­

про-­

 

 

мирование­

данной

 

 

 

на критические

обрабатывает исключения

 

граммировании, пишет

 

(defensive­

концепции.

 

 

допущения

в потенциально бажном коде.

 

юнит-тесты, которые

 

 

coding)

 

 

 

 

 

в коде.

 

 

эмулируют сбои.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пишет код так, чтобы

 

 

 

 

 

 

определять­

возможные

 

 

 

Обработка

Убеждается, что после того, как

 

ошибки на раннем­ этапе,

 

 

Пишет код для

ошибок в коде,

произошла ошибка/исключение,

 

придерживается­

 

 

 

Обработка

"идеального"

который либо

программа продолжает работать,

 

последовательной­

 

 

случая, когда

кидает

а ненужные более ресурсы,

 

стратегии обработки

 

 

ошибок

 

 

 

все работает

исключение,

коннекшены и память были

 

исключений во всех слоях

 

 

 

 

 

и нет сбоев.

либо генерирует

корректно освобождены

 

кода, разрабатывает­

общие

 

 

 

ошибку.

обработчиком ошибки.

 

принципы обработки­

 

 

 

 

 

 

 

исключений­

во всей

 

 

 

 

 

 

 

системе.

 

 

 

 

 

 

Среда

В основном

Способен эф-­

Для самых используемых функций

 

Написал свои макросы.

 

програм-­

использует­ IDE

фективно поль-­

среды знает горячие клавиши.

 

 

 

 

 

 

 

 

мирования

для редактиро-­

зоваться меню

 

 

 

 

 

 

 

 

 

(IDE)

вания текста.

в IDE. Знает

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

некоторые тон-­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

кости среды.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Написал библиотеки­

,

 

 

 

Часто

Помнит самые

 

 

 

 

 

которые оборачивают API,

Примером API может

 

нуждается

 

 

 

 

 

для упрощения задач,

быть Java-библиотека,

API

часто

 

 

 

 

 

в обращениях

Обширные и глубокие знания API.

которые наиболее часто

.NET фреймворк или

используемые

 

к документа-­

 

 

 

 

 

встречаются. Эти

 

 

API какого-либо

 

API.

 

 

 

 

 

 

 

 

ции.

 

 

 

 

 

библиотеки также часто

приложения­

.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

восполняют пробелы в API.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Не использует

Знает, но не

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

никаких

использует

Профессионально­

пользовался более

 

 

 

 

 

 

 

 

 

Фреймворки

фреймворков за

популярные

чем одним­

фреймворком­ и хорошо

Является автором

 

 

 

 

 

рамками

фреймворки,

разбирается в идиомах

 

фреймворка.

 

 

 

 

 

 

 

основной

доступные для

фреймворков.

 

 

 

 

 

 

 

 

 

 

 

 

 

платформы.

его платформы.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Понимает

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выставленные

Задает вопросы,

Понимает картину­

в целом

 

Может предложить­

лучшие

 

 

 

требования и

касающиеся не

 

альтернативы и следовать

 

 

Требования

и предлагает дополнительные

 

 

пишет код

рассмотренных

выставленным

 

 

 

 

 

аспекты, которые­

должны быть

 

 

 

 

 

 

в соответствии

в спецификации­

требованиям, основываясь

 

 

 

описаны в спецификации­ .

 

 

 

 

со специфика-­

случаев.

 

на собственном опыте.

 

 

 

 

 

 

 

 

 

 

 

цией.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Отсутствует

 

 

 

 

 

 

Писал и публиковал­

 

 

 

Скрипты

знание

Batch-

 

 

 

 

 

 

 

 

Perl/Python/Ruby/VBScript/Powershell.

повторно используемые

 

 

скриптовых

файлы/shell.

 

 

 

 

 

 

 

 

скрипты.

 

 

 

 

 

 

 

 

 

инструментов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Базы Данных

Думает, что

Знает основы

Может спроектировать хорошие

Может осуществлять

 

 

 

Excel — это

баз данных,

нормализованные­

схемы БД,

администрирова­ ние­ БД,

 

 

 

база данных.

нормализацию,

с учетом запросов, которые будут

оптимизацию­

произ-­

 

 

 

 

 

ACID,

выполняться; умело использует

водительности­

БД,

 

 

 

 

 

 

транзакции

представления, хранимые

 

индексную оптимизацию,

 

 

 

 

и может

процедуры, триггеры и собственные

писать сложные select'ы,

 

 

 

 

написать

типы данных. Понимает разницу

может заменить

 

 

 

 

 

 

простые select'ы.

между кластеризованными­

и не-

использование курсора

 

 

 

 

 

кластеризованными­

индексами.

вызовами­

функций SQL,

 

 

 

 

 

Специалист в использовании ORM-

понимает, как данные хра-­

 

 

 

 

 

тулзов.

 

 

 

 

нятся внутри, как хранятся

 

 

 

 

 

 

 

 

 

 

индексы, имеет

 

 

 

 

 

 

 

 

 

 

 

 

представление о том, как

 

 

 

 

 

 

 

 

 

 

зеркалятся­

и реп-­

 

 

 

 

 

 

 

 

 

 

 

 

лицируются БД и т.д.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Понимает как работает

двухфазный commit.

Опыт:

2n

n2

n (Уровень2)

log(n) (Уровень3)

Коммен­

тарии

(Уровень0)

(Уровень1)

 

 

 

 

 

 

 

 

 

Декларативные

 

 

 

 

 

 

 

 

(SQL) языки

 

 

 

 

 

 

 

 

программиро-­

 

 

 

 

 

 

 

 

вания, допол-­

 

 

 

 

 

 

 

Императивные

нительный

 

 

 

 

 

 

Языки и

бонус — если

Функциональные­ языки прог-­

 

 

 

 

 

или объектно-

 

 

 

 

понимает разни-­

раммирования, дополнительный­

 

 

 

 

професси-­

ориентирован-­

Конкурентные (Erlang, Oz)

 

 

цу между ста-­

бонус — если знает, что такое

 

 

ональный

ные языки

и логические (Prolog).

 

 

тической и ди-­

"ленивые вычисления",

 

 

опыт

программирова-­

 

 

 

 

 

ния

намической,

каррирование, продолжения.

 

 

 

 

 

слабой и строгой­

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

типизацией,

 

 

 

 

 

 

 

 

статически­

 

 

 

 

 

 

 

 

выводимыми

 

 

 

 

 

 

 

 

типами.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Годы

 

 

 

 

 

 

 

 

професси-­

1

2−5

6−9

10+

 

 

 

онального

 

 

 

 

 

 

 

 

 

 

 

опыта

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Годы

 

 

 

 

 

 

 

 

професси-­

 

 

 

 

 

 

 

 

онального

 

 

 

 

 

 

 

 

опыта

1

2−3

4−5

6+

 

 

 

исполь-­

 

 

 

 

 

 

 

 

зования

 

 

 

 

 

 

 

 

платформы

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Работал хотя бы

 

 

Эксперт своей предметной

 

 

Знание

Не знает

 

 

области, проектировал

 

 

над одним

Работал над несколькими

 

 

о понятии

и реализовывал несколько

 

 

предметной

продуктом

продуктами в одной и той же

 

 

"предметная

продуктов­

/решений­ в ней,

 

 

области

в предметной

предметной области.

 

 

область".

хорошо­ разбирается в ее

 

 

 

области.

 

 

 

 

 

 

 

 

сущностях и протоколах.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Знания:

2n

n2

n (Уровень2)

log(n) (Уровень3)

Коммен­

тарии

(Уровень0)

(Уровень1)

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Инстру-­

Ограничены

Знает

 

Хорошие знания­ редакторов кода,

Написал свои инструмен-­

 

ментарии

используемой

о некоторых

 

отладчиков­ , различных IDE, open-

тарии и скрипты, дополни-­

 

 

IDE (VS.Net,

альтернативах

 

source альтернативах­

и т.д

тельный плюс — если эти

 

 

Eclipse и т.д).

популярным

 

(например, это может быть кто-то,

скрипты были

 

 

 

 

 

стандартным

 

кто знает большинство­

тулзов из

опубликованы.

 

 

 

 

 

инструментари-­

 

списка Скота Ганзельмана).

 

 

 

 

 

 

 

 

 

 

ям.

 

Использует ORM-тулзы.

 

 

 

 

 

 

 

 

 

 

Имеет общее

 

 

 

 

 

Реализовал несколько

 

 

 

 

 

Хорошие рабочие знания code base,

больших­

фич в code base

 

 

Никогда не

представление

 

 

Code base

 

реализовывал несколько багфиксов

и может легко описать

 

 

смотрел code

о расположении­

 

 

 

 

и, может быть, некоторые маленькие

изменения, требуемые­

для

 

 

base.

кода и о том, как

 

 

 

 

фичи.

 

 

 

реализации­

большинства­

 

 

 

его собрать.

 

 

 

 

 

фич или багфиксов.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Пробовал сделать­

что-либо

 

Знание

 

Слышал

 

 

 

 

 

сам, и используя­ preview-

 

Не слышал

 

Скачивал alpha/preview/CTP/beta-

версию, сбилдил­ свою

 

 

о новейших

 

 

 

новейших

о новейших

 

версии и читал некоторые статьи

программу­

. Допол-­

 

 

технологиях

 

 

 

технологий

технологиях.

 

и руководства на эти темы.

нительный плюс — если

 

в своей области.

 

 

 

 

 

 

 

 

 

 

сделал свое решение­

 

 

 

 

 

 

 

 

 

 

доступным­

для других.

 

 

 

 

 

 

 

 

 

 

Написал свои тулзы для

 

 

 

 

 

 

 

 

 

расширения возможностей

 

Знание

Нулевые

В основном

 

Имеет глубокие познания

платформы или для

 

 

 

извлечения

 

 

 

 

знания

знает, как

 

внутренних аспектов платформы

 

 

 

 

внутренних

 

дополнительной

 

 

 

внутренних

работает

 

и может обрисовать, как платформа

 

 

 

аспектов

 

информации о работе

 

 

аспектов

платформа

 

превращает программу

 

 

 

 

платформы

 

 

 

платформы. Например,

 

 

платформы.

внутри.

 

в исполняемый код.

 

 

 

 

 

 

 

 

 

 

дизассемблер,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

декомпилятор, отладчик

 

 

 

 

 

 

 

 

 

и т.д.

 

 

 

 

 

 

 

Книги

Серии книг

Совершенный

 

Приемы объектно-ориентированного­

Structure and Interpretation

 

 

"... за 21 день"

код

 

проектирования­ . Паттерны

of Computer Programs

 

 

 

"... за 24 часа"

 

 

проектирования

 

 

 

 

 

 

 

 

 

 

 

 

"... для

Не заставляйте

 

 

 

 

 

Concepts Techniques and

 

 

чайников".

меня думать!

 

Человеческий фактор: успешные­

Models of Computer

 

 

 

 

Регулярные

 

проекты и команды

 

 

 

Programming

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

выражения

 

Жемчужины программирования­

Искусство програм-­

 

 

 

 

 

 

Algorithm Design Manual

мирования

 

 

 

 

 

 

 

 

 

Database systems, by C. J

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Программист-прагматик

Date

 

 

 

 

 

 

 

 

 

 

 

Мифический человеко­

-месяц

Thinking Forth

 

 

 

 

 

 

 

 

 

Little Schemer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Читает

 

 

 

 

 

 

 

 

 

технические

 

 

 

 

 

 

 

 

Слышал

блоги, блоги

 

Ведет ссылочный блог, содержащий­

Ведет блог, в котором

 

 

 

о программи-­

 

содержатся его

 

 

Блоги

о блогах, но не

 

коллекции ссылок на полезные

 

 

ровании

 

собственные понимание

 

уделял им

 

статьи и тулзы, которые он

 

 

и разработке ПО

 

вопросов и соображения на

 

 

внимания.

 

собирает.

 

 

 

 

 

и регулярно­

 

 

 

 

тему программирования­

.

 

 

 

слушает

 

 

 

 

 

 

 

 

 

подкасты.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Замечание:

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

Источник: Omega's Blog

Форматирование и исправление: Grom PE

Английская версия: Programmer Competency Matrix