avva: (Default)
[personal profile] avva
[livejournal.com profile] ivan_ghandhi сказал то, о чем я не раз думал:
Интересная у нас профессия, у программистов. Можно тридцать лет и три года сидеть на компьютере, и в результате знаний и осмысленного опыта практически столько же, сколько у двадцатилетнего хакера.


Есть ли действительное накопление опыта и знаний (настоящих знаний, не типа там библиотеки какой итп.) в программировании? Может, после того, как достигается определенный рубеж профпригодности, мы никуда не растем? Мне так иногда кажется; я вспоминаю себя, пишущего разные неплохие программы 15 и 10 лет назад, и мне неочевидно, что сейчас я умею их писать лучше. Именно "неочевидно": если как следует подумать, то все-таки, наверное, сейчас умею лучше, но это отнюдь не очевидное утверждение. И даже если умею лучше, то совсем не ясно, насколько это качественно лучшее умение, или скорее накопленное количество сведений: стандартов, протоколов, библиотек, методов сериализации или синхронизации...

С другой стороны, [livejournal.com profile] 9000 возражает в комментах там:
С другой стороны, глянем на Эйнштейна. Для придумывания ОТО нужен были именно что опыт, потому что она растёт из не настолько простых идей. Недавно мне попалась "Сумма технологий" Лема; я поразился, насколько более глубоким и менее наивным сумел стать автор за 10 лет. Притом, что Лем, imho, один из гениев 20 века.

Перечитывая свой код месячной давности, думаешь, бывало: "какой балда его написал!". Код пятилетней давности, которой уже забыл -- "хм, да я уже тогда был ловок". Код 10-леьней давности -- "ужас, ужас, каким я был наивным неумехой".

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

И вот что еще подумалось: может быть, одна из причин того, что в последнее время (год-два) я старался изучить больше совсем новых для себя по сути своей языков (Хаскель, Лисп) было тоже связано с этим, двигалось в том числе подспудным желанием смочь сказать самому себе: я действительно знаю больше, чем знал 10 лет назад, действительно понимал что-то совсем новое и мощное, что тогда не понимал. Может быть. Потому что, если честно, картина программирования как искусства, которое не становится лучше или хуже с годами, возможность того, что со временем ничему действительно новому не учишься, мне не то что не нравится, а в какой-то степени даже ужасает. Нехорошая эта картина, не по душе мне она - и мое стремление расширить свои знания, выучить что-то действительно новое было, возможно, стремлением от нее оттолкнуться.

А вы что о всем этом думаете?
Page 1 of 3 << [1] [2] [3] >>

Date: 2007-06-27 01:05 am (UTC)
From: [identity profile] scolar.livejournal.com
Нужно чётко различать два вида нашей повседневной деятельности: "пишем код" vs. "решаем задачу". Для второго типа опыт - вещь бесценная. Для первого, действительно, начиная с какого-то момента рост практически прекращается. Этот стабильный уровень у каждого свой, разумеется.

ужасающая картина

Date: 2007-06-27 01:10 am (UTC)
From: [identity profile] aneta.livejournal.com
А мне тоже так показалось. Действительно, лет пять роста практически с нуля, а потом - предел, только вширь - новые библиотеки, новые языки... Но это уже скучно. Либо расти по административной линии, руководить другими, учить, писать книжки, открывать свою фирму... Но это уже в сторону, уже не сама профессия.

Я уволилась, ищу что-нибудь другое, принципиально. Вернуться в науку, например... Но тяжело - приходится начинать с начала, а время упущено..

Date: 2007-06-27 01:29 am (UTC)
From: [identity profile] msh.livejournal.com
Мне кажется, что то, в чем я действительно значительно улучшился за последние годы - это как раз та часть программистского ремесла, которая не языки и не библиотеки. И я вижу еще огромное поле для улучшения и при текущей скорости, видимо, желаемого результата до пенсии не успею достичь

Date: 2007-06-27 02:52 am (UTC)
From: [identity profile] selfmade.livejournal.com
В программировании, чтобы оставаться на одном месте, нужно постоянно бежать. При этом новички начинают не со старта, а вливаются в поток с обочины.

Date: 2007-06-27 03:17 am (UTC)
spamsink: (Default)
From: [personal profile] spamsink
Мне кажется, что опыт программиста заключается в том, что он приближается к мудрости в смысле serenity prayer, т.е. в способности навскидку оценить сложность задач, которые перед ним ставят, а не пытаться брать нахрапом сложное и не надувать щеки перед простым.

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

Date: 2007-06-27 03:33 am (UTC)
From: [identity profile] bujik.livejournal.com
А мой друг [livejournal.com profile] chio говорит: "программист силен наработками". :-)

Date: 2007-06-27 03:40 am (UTC)
From: [identity profile] shmel39.livejournal.com
Я думаю, именно поэтому кодирование часто складывается на низкоквалифицированных кодеров. "Лучший инструмент программиста - Visio. Накропал схемки, пошел спать, с утра индусы уже все закодировали" (С) :-))

Сам по себе конкретный язык программирования (или несколько) не является столь сложным, чтобы изучать его несколько десятилетий. А вот опыт решения задач, умение абстрактно мыслить, правильно развивать архитектуру, масштабировать, участвовать в крупных проектах - это все накапливается, да.

Кстати, а если сравнить скажем студента-математика и матерого профессора, есть ли здесь аналогия?

P.S. Хотел спросить про Haskell. Какую большую задачу Вы решали на нем в процессе изучения. Я просто зашел в тупик: я не знаю чего можно на нем вообще написать, кроме коротких математических задачек типа Project Euler. Либо к нему нужны задачи сильно специфические, либо надо уметь его специфически использовать под произвольные задачи.

Date: 2007-06-27 04:02 am (UTC)
From: [identity profile] kray-zemli.livejournal.com
мне программирование не нравится как раз тем, что, как тут сказали, "надо все время бежать". Плохо не то, что надо постоянно учить что-то новое, а то, что уже выученное устаревает и становится ненужным. Мне почему-то кажется, что программирование когда-нибудь дойдёт до финиша, до логического конца.

PS: А всех программистов убить, и уже сейчас. :-))

Date: 2007-06-27 04:07 am (UTC)
From: (Anonymous)
Проблема дальнейшего роста состоит, пожалуй, в том, что по обретении внушительного массива знаний требуется выход за пределы известного. Дело это рискованное, ибо не гарантирует более-менее стабильного гешефта, ввиду чего многих отсутствие финансовых гарантий при новых исследованиях заставляет продолжать "плакать, но кушать кактус".

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

Date: 2007-06-27 04:12 am (UTC)
From: [identity profile] yanis.livejournal.com
я думаю, что за пять лет формируется профессионал в какой-то области программированиђ. за десять лет - в целом серьезный мастер. потом уже только опыт накапливается.
зато, если не зацикливаться на чистом программировании а как-то разнообразить это дело разными приложениями в других предметных областях, то возможности роста ничем не ограничены.
20-летний хакер во многом лучше человека с 10-летним опытом, но есть в вещи, для которых 20-летний хакер совсем не годится и, скорее даже вреден.

Date: 2007-06-27 04:15 am (UTC)
From: [identity profile] bugabuga.livejournal.com
Неосмысленный опыт увеличивает производительность :)
То бишь за 30 лет человек привыкает решать определённые классы задач во сне и одной левой. Да, если не менять профиль, то будет скучно, а потом хакеры с библиотеками стандартных решений может набегут, но ведь можно и количество в качество переводить.
От решения конкретных задач к созданию библиотек, общих принципов, улучшение процесса и тому подобные качественные скачки.

Date: 2007-06-27 04:17 am (UTC)
From: [identity profile] abvgd.livejournal.com
>> именно поэтому кодирование часто складывается на низкоквалифицированных кодеров

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

Date: 2007-06-27 04:26 am (UTC)
From: [identity profile] monomyth.livejournal.com
хорошо, что программист из меня не получился :) Хотя собственно "программированием" и занимаюсь на работе в последнее время.

Но я думаю ты говориш о проблеме перехода количества в качество и я не вижу, как человек, может достичь тупиковости если он чем–то занят. Просто, я думаю, становятся не интересны задачи, если их уровень не повышается с опытом их решения и поэтому нет мотивации для новых качественных скачков.

Не знаю

Date: 2007-06-27 05:26 am (UTC)
From: [identity profile] pargentum.livejournal.com
Мне кажется, самое ценное, что я изучил со времени окончания Универа - не языки и технологии, а осознание важности нефункциональных требований к коду, в первую очередь maintainability. То есть в универе я это знал, но как-то слишком умозрительно.

Date: 2007-06-27 05:26 am (UTC)
From: [identity profile] 1bigud.livejournal.com
Наш декан говорил нам на первом курсе: "По настоящему заниматься математикой вы можете только сейчас, когда вам будет по 25 лет, вы уже ничего нового постичь не сможете". Программирование суть та же математика.

Date: 2007-06-27 05:30 am (UTC)
From: [identity profile] ygam.livejournal.com
Хороший анекдот!

Date: 2007-06-27 05:52 am (UTC)
From: [identity profile] nms.livejournal.com
Компьютерное ремесло (ошибочно (?) называемое "искусство программирования") есть:

1) Анализ проблемы
2) Синтез решения
3) Запись на тарабарском языке

Конкретные персоны сильны не во всем. Первым двум пунктам меня учил учитель математики на уроках математики в школе. Третий пункт я освоил уже позже во студенчестве.

Date: 2007-06-27 06:01 am (UTC)
From: [identity profile] dimiii.livejournal.com
Отличное сравнение!

Date: 2007-06-27 06:43 am (UTC)
From: [identity profile] gruimed.livejournal.com
Ответ на мой взгляд простой, но не очень для нас лестный - программирование не настолько сложно, как принято думать. Есть исключения там и сям, но в массе своей - это совсем не квантовая механика. Так что да - потолок есть, и не такой уж безумно высокий.

Date: 2007-06-27 06:46 am (UTC)
From: [identity profile] gruimed.livejournal.com
Таки искусство, потому что по крайней мере в некоторых случаях путь "анализ проблемы->синтез решения" невозможен - система слишком сложная.

То что я описал верное только для достаточно сложных систем, так что в массе своей - ремесло конечно.

Date: 2007-06-27 06:57 am (UTC)
From: [identity profile] nms.livejournal.com
То есть смог проанализировать -- ремесло, не смог -- магия? ;-)

Date: 2007-06-27 07:19 am (UTC)
From: [identity profile] staryj-perec.livejournal.com
Если взглянуть на эту проблему динамически - интересная картина плоучается. То, что понималось под "программистом" 10-15 лет назад и сеичас заметно отличается. В прошлом, 10-15 лет назад, "программист" включал в себя и системного архитектора, и дизайнера, руководителя проэкта, и собственно программиста, т.е. того, кто все задумки реализует.
И там твои пределы ограничены только твоей башкой.
Сейчас произшло заметное раделение труда, и собственно "программист" остался в последней ипостаси - реализатор, если хотите слесарь, али плотник. Т.е. "программист" = инструмент, а не идея. Поэтому и скучно.

Date: 2007-06-27 07:34 am (UTC)
From: [identity profile] gruimed.livejournal.com
Не магия, а искусство :)

Date: 2007-06-27 08:19 am (UTC)
From: [identity profile] moon-aka-sun.livejournal.com
Что зато приятно теперь, что можешь какую-нибудь ерунду написать, алгоритм там вспомогательный или обработку файла какую, строк на 50-100, и в ней с первого раза не только не будет синтаксических ошибок, но и заработает как надо. Бонус - это даже может быть один из нескольких языков.

Date: 2007-06-27 08:19 am (UTC)
From: [identity profile] yornick.livejournal.com
У опытного актёра 133 штампа, у начинающего 3.
Кто лучше смотрится на сцене? Опыт, умудрённость или энергия и энтузиазм ?
И возвращаясь к нашим бараном,
идеальный вариант это не идти в ногу с технологией ( и это не самый плохой вариант ) а создавать её. А для этого тебе как минимум надо знать чем занимались твои предшественники.

Вот такой спонтанный комментарий
Page 1 of 3 << [1] [2] [3] >>

January 2026

S M T W T F S
    1 2 3
4 5 6 7 8 910
11121314151617
18192021222324
25262728293031

Most Popular Tags

Style Credit

Expand Cut Tags

No cut tags
Page generated Jan. 9th, 2026 12:28 pm
Powered by Dreamwidth Studios