четверг, 21 февраля 2013 г.

То, о чем молчат или что еще должен знать программист

Я знаю немного, но то, что знаю, - знаю в совершенстве.
Абу-ль-Фарадж

Часто на просторах интернета я встречал, что программисту надо знать алгоритмы, структуры данных, математику, логику, архитектуру ЭВМ и т. д. Некоторые, например, составляют свои планы курсов по образованию. С этим спорить я не собираюсь, но хочу добавить туда еще один пункт, который очень часто забывают, но в то же время последние события показывают, что он важен.

Я говорю про инструменты.


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

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

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

Далее следует операционная система. У кого-то это Windows, у кого-то Linux, у кого-то Mac OS, а еще у кого-то BSD. Не зависимо от того, какая ОС установлена, программист обязан знать в ней каждый уголок. Например, в случае Windows, он должен уметь подправить ключ реестра из командной строки для добавления какого-либо нового функционала, в случае Linux'а, например, знать где какой конфигурационный файл лежит и за что отвечает. Сразу вспоминается старый анекдот:
Настоящий гентушник может собрать ОС с выключенным монитором и не заметить этого.

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

Данные требования можно расширить на практически любой список программного обеспечения и практически на любую профессию.

А что бы вы предложили в качестве дополнения к стандартным требованиям к знаниям программиста?

Комментариев нет:

Отправить комментарий