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

Область Уровень Комментарии
2^n (Уровень 0) n^2 (Уровень 1) n (Уровень 2) log(n) (Уровень 3)
Програм- мирование
Среда программиро- вания (IDE) В основном использует IDE для редактирования текста. Способен эффективно пользоваться меню в IDE. Знает некоторые тонкости среды. Для самых используемых функций среды знает горячие клавиши. Написал свои макросы.
API Часто нуждается в обращениях к документации. Помнит самые часто используемые API. Обширные и глубокие знания API. Написал библиотеки, которые оборачивают API, для упрощения задач, которые наиболее часто встречаются. Эти библиотеки также часто восполняют пробелы в API. Примером API может быть Java-библиотека, .Net фреймворк или API какого-либо приложения.
Фреймфорки Не использует никаких фреймверков за рамками основной платформы. Знает, но не использует популярные фреймворки, доступные для его платформы. Профессионально пользовался более чем одним фреймворком и хорошо разбирается в идиомах фреймворков. Является автором фреймворка.
Требования Понимает выставленные требования и пишет код в соответствии со спецификацией. Задает вопросы касающиеся не рассмотренных в спецификации случаев. Понимает картину в целом и предлагает дополнительные аспекты, которые должны быть описаны в спецификации. Может предложить лучшие альтернативы и следовать выставленным требованиям, основываясь на собственном опыте.
Скрипты Отсутствует знание скриптовых инструментов. Batch-файлы/shell. Perl/Python/Ruby/VBScript/ Powershell. Писал и публиковал повторно используемые скрипты.
Базы Данных Думает, что Excel — это база данных. Знает основы баз данных, нормализацию, ACID, транзакции и может написать простые select’ы. Может спроектировать хорошие нормализованные схемы БД, с учетом запросов, которые будут выполняться; умело использует представления, хранимые процедуры, триггеры и собственные типы данных. Понимает разницу между кластеризованными и не-кластеризованными индексами. Специалист в использовании ORM -тулзов. Может осуществлять администрирование БД, оптимизацию производительности БД, индексную оптимизацию, писать сложные select’ы, может заменить использование курсора вызовами функций sql, понимает как данные хранятся внутри, как хранятся индексы, имеет представление о том, как зеркалятся и реплицируются БД и т.д. Понимает как работает двухфазный commit.
Опыт
Языки и профессиона-льный опыт Императивные или объектно-ориентированные программирования Императивные, объектно-ориентиро-ванные и декларативные (SQL) языки программирования. Дополнительный бонус — если понимает разницу между статической и динамической, слабой и строгой типизацией, статически выводимыми типами. Функциональные языки программирования. Дополнительный бонус — если знает, что такое ленивые вычисления, каррирование, продолжения. Конкурентные (Erlang, Oz) и логические (Prolog).
Годы профессиональ-ного опыта 2-5 6-9 10+
Годы профессиональ-ного опыта конкретной платформы 2-3 4-5 6+
Знание предметной области Не знает о понятии предметная область. Работал хотя бы над одним продуктом в своей предметной области. Работал над несколькими продуктами в одной и той же предметной области. Эксперт своей предметной области, проектировал и реализовывал несколько продуктов/решений в ней, хорошо разбирается в ее сущностях и протоколах.
Знания
Инструментарии Ограничены используемой IDE (VS.Net, Eclipse и т.д.) Знает о некоторых альтернативах популярным стандартным инструментариям. Хорошие знания редакторов кода, отладчиков, различных IDE, open-source альтернативах и т.д. (Например, это может быть кто-то, кто знает большинство тулзов из списка Скота Ганзельмана.) Использует ORM-тулзы. Написал свои инструментарии и скрипты, дополнительный плюс — если эти скрипты были опубликованы.
Code base (кодовая база) Никогда не смотрел кодовую базу. Имеет общее представление о расположении кода и о том, как его собрать. Хорошие рабочие знания кодовой базы, реализовывал несколько багфиксов и, может быть, некоторые маленькие фичи. Реализовал несколько больших фич в кодовой базе, может легко описать изменения, требуемые для реализации большинства фич или багфисков.
Знание новейших технологий Не слышал о новейших технологиях. Слышал о новейших технологиях в своей области. Скачивал alpha/preview/CTP /beta-версии и читал некоторые статьи и руководства на эти темы. Пробовал сделать что-либо сам. Используя preview-версию сбилдил свою программу. Дополнительный плюс — если сделал свое решение доступным для других.
Знание внутренних аспектов платформы Нулевые знания внутренних аспектов платформы. В основном, знает как работает платформа внутри. Имеет глубокие познания внутренних аспектов платформы и может обрисовать, как платформа исполняет программный код. Написал свои тулзы для расширения возможностей платформы или для извлечения дополнительной информации о работе платформы. Например расширения дизассемблера, декомпилятора, отладчика и т.д.
Книги
Матрица компетентности программиста ч.ii.

Серии книг … за 21 день … за 24 часа … для чайников.

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

Совершенный код Не заставляйте меня думать! Регулярные выражения

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

Человеческий фактор: успешные проекты и команды Приемы объектно-ориентиро-ванного проектирования. Паттерны проектирования Жемчужины проектирования Руководство по разработке алгоритмов Программист-прагматик Мифический человеко — месяц

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

Искусство программирования Структура и интерпретация компьютерных программ Concepts Techniques and Models of Computer Programming Database systems , by C. J Date Thinking Forth Little Schemer

Блоги Слышал о блогах, но не уделял им внимания. Читает технические блоги, блоги о программировании и разработке ПО и регулярно слушает подкасты. Ведет ссылочный блог, содержащий коллекции ссылок на полезные статьи и тулзы, которые [ссылки] он собирает. Ведет блог, в котором содержится его собственные понимание вопросов программирования.

Хоттабыч (фильм в HD)


Похожие статьи:

Понравилась статья? Поделиться с друзьями: