car-club.org.ua
car-club.org.ua
Как отличить хорошего программиста от плохого

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

Математик оперирует неопровержимыми истинами, опирается на аксиомы, теоремы и правила. Таким образом от постановки задачи до решения ведет постоянная непрерывная логическая цепочка основанная на данностях, заданных тем или иным способом, в основе решения лежит дедуктивный подход. Программисты хоть и имеют склонность к математике (как правило, это связанно со скоростью решения задачи, или способностью находить решения задач основанных на различных взаимосвязях), но подход больше абстрактно — логический, индуктивный — от частного к общему. Вначале делаем чтоб работало, или решаем поставленную задачу, а потом(зачастую в процессе) делаем общий способ решения задач такого типа, появляется новая, никем не предусмотренная, разновидность задачи, совершенствуем общий способ. Мне кажется что наиболее близкими к профессии программиста являются: архитекторы, или физики теоретики (причем чем абстрактнее тем ближе).

Хороший программист отличается от плохого склонностью к оперированию абстрактными понятиями, не склонностью опираться на конкретику, умением абстрагироваться от внешних факторов и способностью оперировать сущностями разных порядков понимая их, а не вникая в их суть.

На практике, чтоб отличить потенциально хорошего програмиста от плохого, хорошо должны подходить задачи, которые нужно решить не зная методов решения, причем нужно чтоб человек сам их «изобрел». Например, человеку не знающему ООП, можно предложить написать решение какой нибудь задачи с помощью ООП, обьяснив только что ООП — это объектно ориентированное программирование, построенное на объектах, или попросить сделать программу «автомобиль» - программу позволяющую охарактеризовать автомобиль и выполнять каким то образом типичные для автомобиля действия итп, при этом очень интересно узнать мнение о каждой детали этой программы, что из себя представляет корпус условного автомобиля, мотор и другие детали, а так же спросить как автомобиль впишется в систему например дорожного движения.



что такое web 2.0

как отличить хорошего программиста от плохого

О развитии проекта