“Когда все что у вас есть – это молоток, то любая проблема выглядит как гвоздь, который нужно забить.”

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

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

Какие языки я изучил за последний год? C# и Python. За год перед этим? T-SQL и JScript. Из этих четырех языков только JScript не заставил меня стать заметно более эффективным программистом. В целом, изучение новых языков многократно окупило затраченные усилия.

Кроме количества важно и то, чтобы языки были разными. Изучение языка, аналогом которого вы уже владеете, будет простым но малополезным делом. Например, есть ли смысл мне сейчас изучать Java? Навряд ли, потому что С# – это, фактически, улучшенная версия Java, работающая на другой виртуальной машине.

Следующие в очереди на изучение – Ruby (начал вникать но не могу пока сказать что свободно владею) и Lisp. Планирую изучить их за год с небольшим.

А сколько языков изучили вы за последний год?