LINUX.ORG.RU
ФорумTalks

[мнения] Теорминимум программиста


1

2

http://sharpc.livejournal.com/67583.html

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

для Ъ:

Аппаратное обеспечение, Хоровиц-Хилл, полупроводниковая электроника/спинтроника/фотоника, транзистор, схемотехника, микрокод, технология создания процессоров, VID/PID, FPGA, Verilog/VHDL/SystemC, SISAL, Arduino, устройства памяти (ROM → EEPROM, RAM, SSD, HDD, DVD), RISC/CISC, Flynn's taxonomy ([SM]I[SM]D), принстонский и гарвардский подход, архитектуры процессоров, архитектуры x86

Процессоры, конвейеризация, hyper-threading, out-of-order execution, спекулятивное исполнение, branch predict, префетчинг, множественный ассоциативный кэш, кэш-линия/кэш-промах, такты, кольца защиты, память в мультипроцессорных системах (SMP/NUMA), тайминг памяти

Дискретная математика, K2, теорема Поста, схемы, конечные автоматы, клеточные автоматы, автомат Калашникова, ДКА и НДКА

Вычислимость, машина Тьюринга, нормальные алгоритмы Маркова, машина Поста, диофантовы уравнения Матиясевича, лямбда-функции Черча, частично рекурсивные функции Клини, комбинаторное программирование Шейнфинкеля, Brainfuck, эквивалентность тьюринговых трясин, проблема останова и самоприменимости, счетность множества вычислимых функций, RAM-машина, алгоритм Тарского, SAT/SMT-солверы, теория формальных систем

Языки программирования, грамматики, иерархия Хомского, теорема Майхилла-Нероуда, лемма о накачке и лемма Огдена, алгебра Клини, НДКА -> ДКА, алгоритмически неразрешимые задачи в формальных языках, Драгонбук, Фридл, регекспы и их сложность, PCRE/POSIX RE, БНФ, Boost.Spirit + Karma + Qi/Ragel, LL, LR/SLR/LALR/GLR, PEG/packrat, yacc/bison/flex/antlr, статический анализ кода, компиляция/декомпиляция/обфускация/деобфускация, Clang/LLVM/XMLVM, GCCXML, OpenC++, построение виртуальных машин, JiT/AoT/GC, DSL/DSEL

Алгоритмы и комбинаторная оптимизация, Кормен/Скиена/Седжвик/Кнут/Ахо-Хопкрофт-Ульман/Пападимитриу/Шрайвер-Голдберг/Препарата-Шеймос, структуры данных, алгоритмы, сложность и символы Ландау, классы сложности, NP-полные задачи, графы и деревья, потоки в сетях, матрица Кирхгофа, деревья поиска (особенно RB-дерево и B-дерево), occlusion detection, куча, хэш-таблицы и идеальный хэш, сети Петри, алгоритм русского крестьянина, метод Карацубы и матричное умножение Винограда-Штрассена, сортировки, жадные алгоритмы и матроиды, динамическое программирование, линейное программирование, diff-алгоритмы, рандомизированные алгоритмы и алгоритмы нечеткого поиска, псевдослучайные числа, нечеткая логика

всего 35 пунктов

И? зачем это здесь?
половина взято из подобной жж-ной записи для теор. минимума математика, половина из программы факультета прикладной математики 8-летней давности.

Goblin
()

А где про Патрика, ебилды и вдоль?

r_asian ★☆☆
()

И конечно же ноль! в предметной области. Какая-то в звезду ненужная технология создания процессоров и фотоника, насколько я понимаю winodws-специфичные кольца защиты, ДКА и НДКА вынесенные отдельно(при этом языки программирования одним определением), не нужная Adruino(после VHDL конечно же, мы же крутые дядьки), регулярные выражения PCRE вместе с POSIX(при этом тонкости одного PCRE вылетают из головы на третий день не использования), специфичная область построения виртуальных машин, куча книг по алгоритмам ну и вообще много лишнего и дублей.
Но ни одной строчки по компьютерным сетям, и это в век интернета. Нет основ компьютерной графики. Нет распределенных вычислений. Нет БД!
В общем выкинуть половину из списка, и дополнить тем, что реально используется в работе.

Tark ★★
()
Ответ на: комментарий от baverman

я думаю, что весьма проблематично держать все пункты в голове. Ну или я просто не Ъ.

johnson102
() автор топика

Пункт номер один, он же последний: перестать быть лузером и начать зарабатывать деньги.

mv ★★★★★
()
Ответ на: комментарий от johnson102

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

Tark ★★
()

Теорминимум программиста

Дискретка + ЯП на свой вкус

alienclaster ★★★
()

Здорово знать это всё, но, к сожалению, невозможно. Да и не нужно, потому что нет такой области программирования, в которой это _всё_ нужно.

P.S. фотоника и Arduino в одном параграфе порадовали.

tailgunner ★★★★★
()
Ответ на: комментарий от alienclaster

>> Пункт номер один, он же последний: перестать быть лузером и начать зарабатывать деньги.

омерика тебя портит

Кстати да. Икра ведрами не идет на пользу ни желудку, ни голове.

tailgunner ★★★★★
()

Я кстати был бы очень рад опросить автора топика по ссылке по некоторым интересным пунктам, ведь он не такое чмо, как я, и освоил этот «теорминимум».

Tark ★★
()

>трассировка лучей vs полигональная графика
И чему-то еще учат...

Tark ★★
()
Ответ на: комментарий от Tark

AFAIK, автор списка не говорит о том, что необходимо досконально разбираться во всех пунктах. Только иметь представление, расширить кругозор, так сказать.

baverman ★★★
()
Ответ на: комментарий от baverman

>Часть из пунктов этого минимума можно изучить за 5 минут по википедии, часть же потребует серьезного труда на протяжении нескольких месяцев, но это именно то, что обязательно следует знать и чем следует свободно владеть.
Уточните пожалуйста, где именно это здесь написано.

Tark ★★
()
Ответ на: комментарий от alienclaster

омерика тебя портит

Программисту это не нужно всё знать. Даже 10% от этого знать не нужно. Такие высеры - это от чрезмерного снобизма, который под собой если и имеет основание, то не в таком количестве, сколько его выкатывают.

Программисту (который сам полный цикл выпуска софта способен сделать, а не кодер по бумажке с жёстким и всеобъемлющим ТЗ сверху) нужно всё больше ориентироваться в предметной теме. Пишешь софт для ультразвуковой дефектоскопии - знай теорию материалов и недеструктивного анализа. Хаскель и VHDL с сетью там нафиг на первом плане не впёрлись, это такие мелочи по сравнению с осиливанием предметной темы.

mv ★★★★★
()
Ответ на: комментарий от tailgunner

Кстати да. Икра ведрами не идет на пользу ни желудку, ни голове.

Што поделать? Семья, дети голодные... Приходится думать, где ведро икры на их прокорм взять.

mv ★★★★★
()
Ответ на: комментарий от mv

> Программисту это не нужно всё знать. Даже 10% от этого знать не нужно.

А я не об этом тебе написал, а о том, что ты сам заснобился в некоторых своих изречениях о «главное бабло рубить»

Такие высеры - это от чрезмерного снобизма


Нет, они от чрезмерной неудачливости по жизни, снобы обычно хоть чего-то добиваются

нужно всё больше ориентироваться в предметной теме. Пишешь софт для ультразвуковой дефектоскопии - знай теорию материалов и недеструктивного анализа. Хаскель и VHDL с сетью там нафиг на первом плане не впёрлись, это такие мелочи по сравнению с осиливанием предметной темы.


Недавно в гости знакомая из Принстона захаживала (микробиолог по образованию и профессии в СШП), так тоже не гнушается на java и питончеге скрипты пописывать, поэтому охотно верю

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

> А я не об этом тебе написал, а о том, что ты сам заснобился в некоторых своих изречениях о «главное бабло рубить»

А mv ведь прав. Планку надо повышать. Я о своём городе — у нас зарплаты программеров/админов - от 10 до 20 тыс руб в месяц.
Я имею ввиду, с МГУшным образованием на такие копейки можно работать только от чрезмерного альтруизма и идейности.

pacify ★★★★★
()
Ответ на: комментарий от pacify

> А mv ведь прав. Планку надо повышать.

По-моему сказал он совсем о другом

Я о своём городе — у нас зарплаты программеров/админов - от 10 до 20 тыс руб в месяц.


Я вообще с Украины, дядь. У нас на рубли в городе, котором живу уже 3 месяца, ЗП в районе ~4800 рублей средняя по больнице. Никаких тут программеров или админов вообще нахрен не требуется. Максимум - на стройках да супермаркетах работать. Универов при этом до десятка наберется по области

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


Работать надо - чтоб интересно было, все остальное идиотизм и промытый мозг

alienclaster ★★★
()

Из всего перечисленного только Петри-сети знаю. Попробовал сделать вдоль, промахнулся.

Теперь понял почему. Я неудачник! Пойду учить алгоритм русского крестьянина.

valich ★★★
()
Ответ на: комментарий от alienclaster

> У нас на рубли в городе, котором живу уже 3 месяца, ЗП в районе ~4800 рублей средняя по больнице.

Деревня какая-то, не город. Впрочем, для Украины - да, зарплаты нынче такие.

Работать надо - чтоб интересно было, все остальное идиотизм и промытый мозг


Мне и сейчас интересно, на хорошей по нашим меркам з/п. И раньше было интересно, на з/п порядка 5 тыс руб в месяц.
Просто сейчас - семья, ребенок.

pacify ★★★★★
()
Ответ на: комментарий от pacify

>> У нас на рубли в городе, котором живу уже 3 месяца, ЗП в районе ~4800 рублей средняя по больнице.

Деревня какая-то, не город. Впрочем, для Украины - да, зарплаты нынче такие.


Облцентр, у программистов порядка 700-1200 уе / мес. Семья - входит в понятие «интерес» :)

alienclaster ★★★
()
Ответ на: комментарий от alienclaster

А я не об этом тебе написал, а о том, что ты сам заснобился в некоторых своих изречениях о «главное бабло рубить»

Конечно, ведь это главный мотивирующий фактор развития специалиста. Заинтересованность в работе тоже очень важна, при выборе «не хватает денег» или «неинтересная работа» обычно выбирают второе.

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

Нет, они от чрезмерной неудачливости по жизни, снобы обычно хоть чего-то добиваются

Реального успеха люди в программировании добиваются не из-за досконального знания этого мутного списка, а из-за особого склада ума, ориентированного на решение проблем, плюс хорошей эрудиции и кругозора.

Никто ж не считает, что программисту деньги платят за процесс написания программ?

mv ★★★★★
()
Ответ на: комментарий от pacify

> Ничего я не понял. Если в облцентре у вас 700-1200 USD/мес, то в какой дыре - 4500 руб/мес?

150 средняя вообще, а цифры поболее - только для программистов, понял?

alienclaster ★★★
()
Ответ на: комментарий от mv

>> А я не об этом тебе написал, а о том, что ты сам заснобился в некоторых своих изречениях о «главное бабло рубить»

Конечно, ведь это главный мотивирующий фактор развития специалиста.


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

Заинтересованность в работе тоже очень важна, при выборе «не хватает денег» или «неинтересная работа» обычно выбирают второе.


Специалист не может стоят перед острой нуждой «не хватает денег на пожрать и отдать ребенка в сад». Другое дело, если твои соседи купили себе уже третий джип, а у тебя минивен 97-го года, но на социальном уровне вы *примерно* равны, можно заняться профессиональной реализацией. И вариант «неинтересная работа зато +5 баксов в час» уходит в жопу. С остальным согласен.

alienclaster ★★★
()

Моё первое место работы по профессии было связано с бухгалтерией. Предметная область оказалась куда более нужной чем любое из этого списка. Научиться писать код на любом ЯП для любых задач куда проще чем освоить предметную область, если есть хоть какие-то способности к программированию.

erfea ★★★★★
()
Ответ на: комментарий от alienclaster

> а цифры поболее - только для программистов, понял?

У нас тоже примерно так, только «средняя по больнице» повыше.
Воспитательница в детском саду получает где-то 2000-2500 руб,
дворник в том же д/с - 3800-3900 руб/мес,
грузчик на оптовом складе: вино/водка - 17 тыс (7-8 лет назад получал 8-9-11 тыс),
программер в НИИ - 6000-7000 руб (стартовая зарплата),
инженер на заводе - 10000 руб (с 30-35-летним стажем),
мастер на военном заводе - 9000 руб,
программист в гос.конторе - от 10 до 20 тыс.,
программист в коммерческой фирме - от 10 до 25 тыс.

pacify ★★★★★
()
Ответ на: комментарий от alienclaster

> Грузчик, выходит, самый центровой

Спиваются они, грузчики. Плюс - игральные автоматы и прочая ...
Коллектив такой.

pacify ★★★★★
()
Ответ на: комментарий от pacify

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

Legioner ★★★★★
()
Ответ на: комментарий от Legioner

> И только программисты работают по выходным за оклад.

Условия везде - разные.
Я работал в одной фирме, где начальник очень злился, когда мы пьем чай или прогуливаемся по коридору + принуждал чистить под новый год все системники офиса пылесосом (на выдув).
Такие эээ ... приколы бывают.
По выходным на него работать не надо было - наоборот, дольше 5 минут в офисе по окончании рабочего времени мы не задерживались.
Мелкая коммерческая фирма в г.Кирове - 5 программеров+админ.

pacify ★★★★★
()
Ответ на: комментарий от pacify

Это что вообще за бред?

>У нас тоже примерно так, только «средняя по больнице» повыше.

Воспитательница в детском саду получает где-то 2000-2500 руб,

Чувак, ты о минимальном размере оплаты труда слышал? Покайся, родной, или опять проделки жёсткой руки тоталитарного Путина?

дворник в том же д/с - 3800-3900 руб/мес,

Дворник, да темболее в ДС, получает больше, это точно.

Bad_ptr ★★★★★
()
Ответ на: комментарий от mv

>кодер по бумажке с жёстким и всеобъемлющим ТЗ сверху

Сколько снобизма в русских программистах... ТЗ, проектная документация, пользовательская документация, архитектура - НЕ НУЖНЫ! Ведь я же прогроммизд, голубая кровь, не то что эти бумагомараки! Я один могу BolgenOS написать за три дня!

Xellos ★★★★★
()
Ответ на: Это что вообще за бред? от Bad_ptr

>>Воспитательница в детском саду получает где-то 2000-2500 руб,

Чувак, ты о минимальном размере оплаты труда слышал? Покайся, родной, или опять проделки жёсткой руки тоталитарного Путина?


На пол-ставки - как раз минималка выходила у воспитателей. Работают там в основном молодые девки, на вид - от 18 до 27 лет.

дворник в том же д/с - 3800-3900 руб/мес,

Дворник, да темболее в ДС, получает больше, это точно.


У нас - один из самых низкооплачиваемых регионов России (так как природных ресурсов кроме леса и торфа нет) - г.Киров (Кировская область). Я тебе привожу цифры за прошлый год, январь-август 2010.

pacify ★★★★★
()

Человек перечислил то что он знает и почему-то считает, что это должны знать каждый программист. Я тоже много чего знаю и могу составить свои 35 пунктов из другой области математики и сказать, что это должен знать каждый программист, но я же этого не делаю.

Reset ★★★★★
()
Ответ на: комментарий от Xellos

> Покажи мне человека, который после МГУ останется в Кирове.

Я окончил МГУ, и остался в Кирове (по просьбе родителей). Пробовал работать по разным фирмам/конторам, но в конце-концов (когда в городе появился дешевый инет) перешел на фриланс.

pacify ★★★★★
()
Ответ на: Это что вообще за бред? от Bad_ptr

Это не бред, это чукча-писатель.

>>дворник в том же д/с - 3800-3900 руб/мес,

Дворник, да темболее в ДС, получает больше, это точно.


Не ДС, то есть DC, а д/с, то есть детский сад. И совсем даже не DC, а областной центр... депрессивного региона.

Xellos ★★★★★
()
Ответ на: комментарий от Xellos

> Скажи проще - нет нефти и золота.

Вроде, под Кирово-Чепецком нашли крохотное месторождение нефти.
А насчет леса - похоже, его будут до конца вырубать. Такие задачи перед нами в прошлом-этом году поставили чинуши из Москвы. Путин приезжал вроде к нам в этом году, Медведев где-то пару лет назад. Асфальт был проложен даже поверх канализационных люков.

pacify ★★★★★
()

>>программист

хоровицхилл
спинтроника

Ага, а ещё историю древней греции, микробиологию и какой рукой кошерно по корану.

Slesarev
()

Английский (+ опционально китайский) и умение правильно гуглить.

buddhist ★★★★★
()

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

note173 ★★★★★
()

>>конечные автоматы, клеточные автоматы, автомат Калашникова

это жыр такой или я не знаю чего-то про автомат Калашникова?

Slesarev
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.