събота, 19 юли 2008 г.

Как да оценим програмист, когато нямаме време да се задълбаваме?

"... и тръгне ли да прави 'лястовичка' за да ти показва че не е пиян, значи е пиян"
(Народна мъдрост)


Забележка: описания тук метод е разсъждение на автора. Няма претенциите да е изчерпателен и/или достатъчно добър. В никакъв случай не го ползвайте като основание за наемане или отхвърляне на кандидат за работа!

Замисляли ли сте се някога, как може да прецените що за програмист е някой с когото току що сте се запознали, примерно на чаша бира в компанията на много хора. В такива ситуации не може да му дадете задачка :) и обикновено след като сте в компания, няма възможност да се си начешете крастата приказвайки 5-6 часа за програмиране с него измежду халбите. Според мен може да научите много за нивото на човека с помощта на 1 или 2 прости въпроса. Трябва да следите отговорите и увереността с която се дават. За простота ще разделя програмистите на 3 категорий: начинаещ, програмист и гуру. Тези категории са базирани на уменията, а не на стажа. Познавам начинаещи програмисти с 10 годишен стаж, затова не оставяйте възрастта, стажа или "загадъчното" изказване и поведение да ви заблудят.

Ето началния въпрос:

"На какви езици можеш да програмираш?"

Примерни отговори:
  1. един език който се учи лесно: примерно C#, JavaScript, PHP => начинаещ или програмист но по-вероятно начинаещ
  2. един език който не се учи лесно: примерно C/C++, Perl, асемблерен език => програмист
  3. платформа: .NET, Java => начинаещ или програмист в редки случаи гуру. Изисква задаване на уточняващ въпрос. Примерно: "Коя Java? SE, EE, МЕ?" или "Tрябва ми едно просто .NET приложение с Windows Forms на JavaScript.NET или Python.NET/IronPython. Mожеш ли да помогнеш?"
  4. Изброяване на няколко езика => вероятно програмист
  5. "На каквото трябва/дойде" => ако е произнесено с подходяща увереност си имате работа с гуру
При всички случаи ще трябва да зададете 1-2 допълнителни въпроса с цел уточняване нивото на експертиза, но тези въпроси не могат да бъдат посочени тук защото са специфични за отговора на първия въпрос. Импровизирайте!
Предполагам сте забелязали, че въпросния метод има за цел да оцени ширината, а не дълбочината на знанията. Считам този метод за по-подходящ за бързо оценяване нивото на колега програмист. Хората които смятам за изключително добри програмисти, но владеят само 1 език или платформа са много малко и това ми дава основание да предложа този метод.

Няма коментари: