Sun 6 Aug 2006
А у тебя есть второй молоток?
Posted by Alex Lebedev under программирование
[4] Comments
“Когда все что у вас есть – это молоток, то любая проблема выглядит как гвоздь, который нужно забить.”
У меня есть гипотеза, что хороший программист должен иметь в арсенале больше языков программирования, чем он имеет лет опыта работы.
Каждый новый язык требует по-другому смотреть на проблему, которую нужно решить. Таким образом, каждый новый язык, который вы изучаете, делает вас лучшим программистом в тех языках, которые вы знали до этого. Именно поэтому я никогда не одобрю прием в мою группу человека, владеющего только одним языком программирования. Пусть учится дальше.
Какие языки я изучил за последний год? C# и Python. За год перед этим? T-SQL и JScript. Из этих четырех языков только JScript не заставил меня стать заметно более эффективным программистом. В целом, изучение новых языков многократно окупило затраченные усилия.
Кроме количества важно и то, чтобы языки были разными. Изучение языка, аналогом которого вы уже владеете, будет простым но малополезным делом. Например, есть ли смысл мне сейчас изучать Java? Навряд ли, потому что С# – это, фактически, улучшенная версия Java, работающая на другой виртуальной машине.
Следующие в очереди на изучение – Ruby (начал вникать но не могу пока сказать что свободно владею) и Lisp. Планирую изучить их за год с небольшим.
А сколько языков изучили вы за последний год?

August 10th, 2006 at 06:48
Всё это спорно… Нет, конечно всегда стоит почитать перед сносном какую-нибудь книжку про Ruby или другой экзотический язык. Но чтобы заморачиваться на него и начинать делать проекты… это имхо перебор – растрата своих сил и времени. Хотя еще есть вариант, когда ты понимаешь, что используемый тобой язык не подходит, тогда несомненно стоит изучить, что-то новое. Собственно так я перешёл с php на java. И кажется нашёл, то что искал
August 10th, 2006 at 07:15
Есть два основных способа понять, что тебе не подходит язык программирования, работа, девушка, страна в которой живешь (нужное подчеркнуть). Первый способ – увидеть, что у Васи лучше, и решить, что ты тоже этого заслуживаешь. Второй – распробовать новый вариант и понять, что он лучше соответствует твоим потребностям. Первого способа достаточно только пока тебя в больших количествах окружают люди, у которых все лучше чем у тебя. Как только ты поднимаешься над средним уровнем, этот способ практически перестает работать; чтобы расти дальше – нужно экспериментировать.
Вот здесь Пол Грэхэм пишет о том, почему сложно понять что новый язык программирования лучше пока ты его не освоишь.
August 13th, 2006 at 12:32
вообще программист, не знакомый с лиспом – не совсем программист
а руби (или рубин?) – самый хороший новый динамический язык, и в принципе заменяет питон и почти заменяет лисп для большинства (не требующих больших библиотек и скорости) задач, и на нем сейчас пишутся самые современные веб-приложения (37signals.com)
вообще еще стоит посмотреть на смолток, из которого руби вырос (тоже японцы делали.)
September 14th, 2006 at 06:40
Вспоминается поговорка – “Сколько ты знаешь языков, столько раз ты человек”
.
Мне кажется PM’ы и Developer’ы по-разному отнесутся к этой статье. Программистам нужно всегда быть в курсе всех новинок языка, на котором они пишут. Для этого нужно время. Естественно на освоение новых языков времени практически нет. У PM’ов ситуация другая.
А на Ваш вопрос “Например, есть ли смысл мне сейчас изучать Java?” отвечу Вашими же словами: “Каждый новый язык требует по-другому смотреть на проблему, которую нужно решить.”