Кто такой алгоритмист?
От: Dufrenite Дания  
Дата: 09.04.07 07:28
Оценка:
Народ, тут мне сказали, что я не алгоритмист и вообще...
Объясните плиз, что это за разновидность такая?
Re: Кто такой алгоритмист?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 09.04.07 07:53
Оценка: +1
Здравствуйте, Dufrenite, Вы писали:

D>Народ, тут мне сказали, что я не алгоритмист и вообще...

D>Объясните плиз, что это за разновидность такая?

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

Знания и умения, требуемые от алгоритмиста — хорошее знание типичных алгоритмов решения задач как общего плана, так и в своей области; умение их описать на языке, понятном кодеру; умение говорить с архитектором о своём уровне реализации; умение переводить общеархитектурные решения на свой уровень, определяя, что надо сделать и как это можно делать... Обычно ему требуется высшее образование по специальности; что такое O(N^2) он должен понимать во всех деталях даже разбуженным посреди ночи, а умение отличать NP-полные задачи от не-таковых — весь рабочий день;)) Ну и, разумеется, ему недопустимо путать массив со списком, а AVL-деревья с R-деревьями;))
The God is real, unless declared integer.
Re[2]: Кто такой алгоритмист?
От: Dufrenite Дания  
Дата: 09.04.07 08:33
Оценка:
Здравствуйте, netch80.

Окей, спасибо. Буду знать.
Хотя вообще-то всегда считал, что связка такая:
Бизнес драйвер -> Архитектор -> Кодер
И названные вами обязанности распределяются между архитектором и кодером.
Что-же: век живи — век учись...
Re[3]: Кто такой алгоритмист?
От: netch80 Украина http://netch80.dreamwidth.org/
Дата: 09.04.07 08:52
Оценка: 14 (2)
Здравствуйте, Dufrenite, Вы писали:

D>Здравствуйте, netch80.


D>Окей, спасибо. Буду знать.

D>Хотя вообще-то всегда считал, что связка такая:
D>Бизнес драйвер -> Архитектор -> Кодер
D>И названные вами обязанности распределяются между архитектором и кодером.
D>Что-же: век живи — век учись...

Формально, кодер может не понимать ничего из того, что нужно алгоритмисту. Ему сказали вызвать tree_open() — он и зовёт. Аналогично для архитектора — его дело решить "вот тут надо поставить промежуточного агента" или "не разделив X и Y мы не получим масштабируемую архитектуру".

В варианте где обязанности алгоритмиста распределяются между архитектором и кодером — просто не выделена одна существенная промежуточная роль. Кстати, её "распределяемость" показывает, что она таки есть:)

Но в этом всём есть один существенный момент — полный комплект ролей, выделяемых и формально, и административно (вплоть до отдельных людей или отделов) — допустим, применим и оправдан далеко не всегда. На практике значительно чаще роли совмещаются, чем детально разделяются. И выделение отдельного алгоритмиста — вариант, насколько я вижу, весьма редкий. Чаще это считается "свойством" того или иного программиста: например, Вася алгоритмист, ему можно задачу поставить чуть менее детально, а Петя — нет, он умеет только кодить и какую реализацию он выберет — зависит от угла наклона левой пятки в момент просыпания, поэтому за него должны это решить или Вася, или архитектор.
The God is real, unless declared integer.
Re[4]: Кто такой алгоритмист?
От: Dufrenite Дания  
Дата: 09.04.07 12:11
Оценка:
Здравствуйте, netch80, Вы писали:

N>Здравствуйте, Dufrenite, Вы писали:


D>>Здравствуйте, netch80.


D>>Окей, спасибо. Буду знать.

D>>Хотя вообще-то всегда считал, что связка такая:
D>>Бизнес драйвер -> Архитектор -> Кодер
D>>И названные вами обязанности распределяются между архитектором и кодером.
D>>Что-же: век живи — век учись...

N>Формально, кодер может не понимать ничего из того, что нужно алгоритмисту. Ему сказали вызвать tree_open() — он и зовёт. Аналогично для архитектора — его дело решить "вот тут надо поставить промежуточного агента" или "не разделив X и Y мы не получим масштабируемую архитектуру".


N>В варианте где обязанности алгоритмиста распределяются между архитектором и кодером — просто не выделена одна существенная промежуточная роль. Кстати, её "распределяемость" показывает, что она таки есть


N>Но в этом всём есть один существенный момент — полный комплект ролей, выделяемых и формально, и административно (вплоть до отдельных людей или отделов) — допустим, применим и оправдан далеко не всегда. На практике значительно чаще роли совмещаются, чем детально разделяются. И выделение отдельного алгоритмиста — вариант, насколько я вижу, весьма редкий. Чаще это считается "свойством" того или иного программиста: например, Вася алгоритмист, ему можно задачу поставить чуть менее детально, а Петя — нет, он умеет только кодить и какую реализацию он выберет — зависит от угла наклона левой пятки в момент просыпания, поэтому за него должны это решить или Вася, или архитектор.


Окей, огромное спасибо.
Теперь всё ясно.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.