(no subject)
Feb. 2nd, 2007 09:53 amВ связи с одной частью вот этого поста
avva...
Что такое понимание программирования ? Для меня, например, программирование - это прежде всего понятие эстетическое. Тут мы полностью сходимся с Гелернтером, он об этом даже целую книжку написал. Вот, что он говорит в Mirror Worlds: "The software revolution balances ultimately on a fine point of aesthetics."
Так вот, мне кажется, что грань между человеком, способным понять программирование и тем, кто воспринимает программирование как ремесло и способ всегда найти работу, лежит не в способности понять указатели и рекурсию, а в понимании того, что рекурсия - это красиво и эстетично, хотя и не всегда практично, что Лисп красивей, чем С, что ядро ОС писать приятней, чем GUI для Excel'a, что сложный и при этом работающий multithreading - это явление эстетическое, а не просто тяжело отлаживаемая программа. И вот - самое главное сейчас скажу!!! Настоящий программист это тот, кто понимает, что когда из APL убрали все его символы и сделали язык J - это самое отвратительное издевательство, которое только можно себе представить. Вот такой тест на понимание программирования я бы давал в университете.
Да и не надо далеко ходить. Я когда-то даже вёл в Технионе курс APL. Там как раз одни студенты считали, что это очень полезный и интересный курс, а другие говорили - зачем мы тратим своё время на ерунду, лучше будем учить С++ и Джаву, чтобы потом зарабатывать много денег. Но можете не сомневаться, что сегодня первые как раз зарабатывают гораздо больше денег, чем вторые.
Или вот когда в source code в условии if одна скобка с пробелом, а вторая без пробела, или когда вокруг = с одной стороны есть пробел, а с другой нет, или (однажды рассказали - вот он где ужас-то) некий человек называл свои переменные русскими словами в транслите - вот это всё (процитируем Ольшанского) - мерзота и дантовый ад.
Что такое понимание программирования ? Для меня, например, программирование - это прежде всего понятие эстетическое. Тут мы полностью сходимся с Гелернтером, он об этом даже целую книжку написал. Вот, что он говорит в Mirror Worlds: "The software revolution balances ultimately on a fine point of aesthetics."
Так вот, мне кажется, что грань между человеком, способным понять программирование и тем, кто воспринимает программирование как ремесло и способ всегда найти работу, лежит не в способности понять указатели и рекурсию, а в понимании того, что рекурсия - это красиво и эстетично, хотя и не всегда практично, что Лисп красивей, чем С, что ядро ОС писать приятней, чем GUI для Excel'a, что сложный и при этом работающий multithreading - это явление эстетическое, а не просто тяжело отлаживаемая программа. И вот - самое главное сейчас скажу!!! Настоящий программист это тот, кто понимает, что когда из APL убрали все его символы и сделали язык J - это самое отвратительное издевательство, которое только можно себе представить. Вот такой тест на понимание программирования я бы давал в университете.
Да и не надо далеко ходить. Я когда-то даже вёл в Технионе курс APL. Там как раз одни студенты считали, что это очень полезный и интересный курс, а другие говорили - зачем мы тратим своё время на ерунду, лучше будем учить С++ и Джаву, чтобы потом зарабатывать много денег. Но можете не сомневаться, что сегодня первые как раз зарабатывают гораздо больше денег, чем вторые.
Или вот когда в source code в условии if одна скобка с пробелом, а вторая без пробела, или когда вокруг = с одной стороны есть пробел, а с другой нет, или (однажды рассказали - вот он где ужас-то) некий человек называл свои переменные русскими словами в транслите - вот это всё (процитируем Ольшанского) - мерзота и дантовый ад.
no subject
Date: 2007-02-02 01:13 am (UTC)эстетика это очень важный элемент почти во всём
и многим это всойственно не зависимо от призвания
и конечно истинно призванные не допустят (такой ужас )
этого явно не достаточно для хорошего программера
равно как a=20 and b=20 тоже не достаточно
то о чём ты говоришь просто определяет как человек относится к делу которым он занят и если человек правильный, то будет хорошим специалистом и на практике ещё он скорее всего пойдёт заниматься тем что ему нравится
no subject
Date: 2007-02-02 01:29 am (UTC)Достаточным условием я бы считал умение написать на Лиспе функцию факториал.
no subject
Date: 2007-02-02 01:45 am (UTC)но это получается какой-то фашисткий тест
на людей пригодных и непригодных делит
no subject
Date: 2007-02-02 01:53 am (UTC)no subject
Date: 2007-02-02 02:39 am (UTC)(например лебедев пишет что готов убить дизайнера пишушего дефис вместо тире)
то я бы сильно испугался
а вообще программистов и так не хватает
хоть и зарплаты высокие
это просто требовательность низкая
no subject
Date: 2007-02-02 02:41 am (UTC)http://www.paulgraham.com/goodart.html
no subject
Date: 2007-02-02 04:37 am (UTC)То надо сказать build manager-у, чтобы в еженощный build script вставил запуск indent, и не брать в голову. Поважнее вещи есть.
no subject
Date: 2007-02-02 05:05 am (UTC)no subject
Date: 2007-02-02 05:18 am (UTC)no subject
Date: 2007-02-02 05:19 am (UTC)А если кто не знает лиспа - на C++ templates.
no subject
Date: 2007-02-02 05:23 am (UTC)no subject
Date: 2007-02-02 05:24 am (UTC)no subject
Date: 2007-02-02 05:35 am (UTC)потом объявить, например,
int transpositions[Factorial < 7 >::value];
внутри какого-нибудь класса.
no subject
Date: 2007-02-02 07:55 am (UTC)no subject
Date: 2007-02-02 08:18 am (UTC)Ну, это бы я не стал спрашивать, ибо уж чересчур извращённая вещь.
no subject
Date: 2007-02-02 08:31 am (UTC)no subject
Date: 2007-02-02 09:14 am (UTC)если результат нужен вчера и через 10 минут тебя повесят - на пробелы нет времени, пишешь как привык
При необходимости поддержки кода обычно есть циркуляр что как оформлять
а на переменные с японскими корнями в латинице я насмотрелся вдоволь, сейчас смотрю на английские и не вижу особой разницы - в чем ужас то?
no subject
Date: 2007-02-02 09:39 am (UTC)Да, удивительно, что сам Иварсон, или как его, этого не понимает. Причем, он это начал делать примерно тогда, когда появился Юникод и стало возможным использовать почти любые символы где угодно, если только придумать способ их вводить.
no subject
Date: 2007-02-02 09:58 am (UTC)no subject
Date: 2007-02-02 10:01 am (UTC)no subject
Date: 2007-02-02 10:10 am (UTC)где-то все до пробелов регламентируют, где-то нотации на имена переменных и "так, посмотри как другие"
месяца за 2-3 вливаешься в могучий трудовой коллектив и не выбиваешься
ведь главное что б всем было комфортно работать - и тебе, и с тобой
no subject
Date: 2007-02-02 11:32 am (UTC)no subject
Date: 2007-02-02 12:44 pm (UTC)no subject
Date: 2007-02-02 01:44 pm (UTC)Смотрел, кстати, сайт thedailywtf? Я не уверен, что он всё ещё хорош, но одно время я его читал, и даже в ленте ЖЖ держал.
no subject
Date: 2007-02-03 09:09 pm (UTC)И то, что J выглядит жутковато и нечитаемо, в отличие от APL, тоде согласен. Но K в этом смысле ещё куда смешнее :))
Вообще, над программами на APL-образных языках надо некоторое время "медитировать", уж больно они своеобразно устроены. И тут важно, чтобы операторы были обозначены удобно для глаза. Увы, J в этом смысле весьма субоптимален. Лучше бы сделали английские слова. Вон в sql с этим вполне сложилось.