Построенные на теории массового обслуживания и стандарте GSM сети мобильной связи; PHP-скрипты, исполняющиеся на удаленных серверах и передающие свою выдачу через Ethernet по TCP/IP на компьютеры с NDIS-драйверами; процессоры, переупорядочивающие и спекулятивно исполняющие наборы инструкций для того, чтобы скомпенсировать вызванную ограничениями полупроводниковой электроники и скоростью света остановку роста тактовой частоты; рассчитанные на ЭВМ корпуса самолетов и автомобилей, лекарства и структуры ДНК; компьютерные игры, ради крохотного блика в которых пишутся мегабайты заполненных интегралами Френеля статей; электронные фильмы и книги; алгоритмы NLP и TreeNet, вызывающие нам из огромных баз данных поисковую выдачу — вот то, что окружает нас каждый день благодаря программистам, благодаря оригинальным подходам и фундаментальным знаниям, благодаря продуманной и отточенной десятилетиями методологии разработки и управления сложностью ПО.
Я и мои единомышленники взяли на себя труд составить теоретический минимум для программиста на основании наиболее ярких отраслей IT, вошедших даже в программы нормальных университетов, на основании собеседований и постоянно пригождающихся на практике знаний. Часть из пунктов этого минимума можно изучить за 5 минут по википедии, часть же потребует серьезного труда на протяжении нескольких месяцев, но это именно то, что обязательно следует знать и чем следует свободно владеть. В комментариях приветствуются исправления и дополнения.
( МинимумCollapse )
UPD: Некоторые комментарии повторяются довольно часто, и разумно было бы попробовать ответить на них в апдейте поста.
( Часто отвечаемые ответыCollapse )
Кроме того, хочу поблагодарить тех, кто помогал исправлять досадные ошибки в этом теормине, особенно своих коллег, которые не только владеют его большей частью, но и внесли наиболее ценные замечания по его дополнению.
Некоторые полезные ссылки:
Книги, которые стоит читать в IT
Матрица Компетентности Программиста
Список Баткина
MIT OpenCourseWare
Курсы Интернет-университета
UPD2 (2011.07.04): Огромное спасибо Vissi за перевод статьи на английский язык.
UPD3 (2011.12.31):
Питер Норвиг. Научитесь программировать за десять лет
Matt Might. What every computer science major should know
От физики к программированию
Зачем нужно знать всякие низкоуровневые вещи
Ну и наконец, откуда вообще вырос этот теормин:
ACM Computer Science Curriculum
Last update: 2014/12/31
← Ctrl ← Alt
Ctrl → Alt →
March 25 2011, 08:32:52 UTC 12 years ago
И три года слишком мало, чтобы понять - на RUP или, скажем, паттерны проектирования например можно потратить годы и так и не понять толком.
С приведенным предисловием список выглядит унылым пересказом анекдота "Я знаю карате, айкидо, джиу-джитсу и много других страшных слов".
March 25 2011, 16:30:37 UTC 12 years ago
И прежде чем писать какую-то хуйню, могли бы немного ознакомиться с биографией автора.
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
Deleted comment
12 years ago
12 years ago
12 years ago
12 years ago
March 25 2011, 08:58:10 UTC 12 years ago
March 25 2011, 09:10:22 UTC 12 years ago
March 25 2011, 10:02:08 UTC 12 years ago
March 25 2011, 10:09:35 UTC 12 years ago
Вообще тут можно насчитать несколько десятков противоречивых пунктов. В общем случае всё описанное подходит только для одного: в качестве курсов очень усиленного варианта подготовки новоиспечённого суперпрограммиста без реальной практики (пока). Как только он начнёт работать, он >80% из этого выкинет нафиг.
BTW, про Калашникова это шутка? ;) Я уже не стал вчитываться, но, похоже, у вас там таких "пасхальных яиц" ещё с десяток.
March 25 2011, 10:44:45 UTC 12 years ago
March 25 2011, 13:04:08 UTC 12 years ago
12 years ago
March 25 2011, 10:50:26 UTC 12 years ago
March 25 2011, 16:32:40 UTC 12 years ago
12 years ago
Anonymous
March 25 2011, 11:09:36 UTC 12 years ago
March 25 2011, 11:24:55 UTC 12 years ago
March 25 2011, 23:40:06 UTC 12 years ago
12 years ago
12 years ago
Теормінімум для програміздів.
March 25 2011, 11:57:35 UTC 12 years ago
"concurrent programming" == программирование "конкурентное" ?!!
March 25 2011, 12:25:25 UTC 12 years ago
Concurrent означает "одновременное", т.е. вообще говоря "программирование систем с параллельными вычислениями" в широком смысле
Re: "concurrent programming" == программирование "конкурентное" ?!!
March 25 2011, 23:40:50 UTC 12 years ago
Две полярности
March 25 2011, 12:28:48 UTC 12 years ago
Как Остаться Программистом в 40 и Больше Лет
March 25 2011, 13:59:55 UTC 12 years ago
Как Остаться Программистом в 40 и Больше Лет
March 25 2011, 14:00:15 UTC 12 years ago
March 25 2011, 14:01:34 UTC 12 years ago
У меня всего один вопрос: сможете придумать алгоритм удаления чётных элементов массива без создания вспомогательных хранилищ данных.
Да, обход с конца массива с последующим сдвигом элементов не предлагать :-)
March 25 2011, 14:08:18 UTC 12 years ago
Есть язык(и), в которых "массив" определяется так, что код сводится именно к "удаляём чётные элементы массива".
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
12 years ago
← Ctrl ← Alt
Ctrl → Alt →