Об вещах, исправляющих мозг программистам
По опыту общения с программистами всяких клиентов, НИИ и сторонних систем появилось мнение, ЧТО им всем нужно преподавать и спрашивать на экзаменах до тех пор, пока не поймут, для вправления мозгов.
Нужны всего лишь две вещи: реляционная теория и основы функционального программирования. Причем желательно как можно более обобщенно,а не на частных случаях.
Первое хорошо вправляет мозг в плане использования некошерных данных (типа "а вот тут у нас число в виде строки" или "поля должны адресоваться по номеру или позиции в файле")
А второе вправит мозг в плане нормальной реализации систем в виде слабо связанных модулей, а не "все в одном" и приучит не делать тупые неявные зависимости. А если язык со строгой типизацией - то еще и приучит не хранить в одном поле дату/время/пол домашнего животного/фазу луны/возраст бабушки.
Нужны всего лишь две вещи: реляционная теория и основы функционального программирования. Причем желательно как можно более обобщенно,а не на частных случаях.
Первое хорошо вправляет мозг в плане использования некошерных данных (типа "а вот тут у нас число в виде строки" или "поля должны адресоваться по номеру или позиции в файле")
А второе вправит мозг в плане нормальной реализации систем в виде слабо связанных модулей, а не "все в одном" и приучит не делать тупые неявные зависимости. А если язык со строгой типизацией - то еще и приучит не хранить в одном поле дату/время/пол домашнего животного/фазу луны/возраст бабушки.
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
no subject
(no subject)
(no subject)
(no subject)
(no subject)
no subject
Видео, например. Различные естественно иерархические структуры вроде программного кода, модулей и т.д.
Кроме того, почему-то строго нормализованные БД выливаются в десяток-другой вложенных подзапросов на построение репорта.
А еще реляционную модель тяжко эволюционировать, NOT NULL и ключи со временем (с приходом сторонних датасетов) отмирают, и база превращается в графоподобную ересь вроде RDF, что есть еще большее уродство.
Единственный выход - это обьектно-ориентированные БД, кластеризованные на манер map-reduce семантики. И кэши, кэши, кэши. И универсальные скоростные сериализаторы, компилирующиеся из описаний данных в какой-нибудь C#, а лучше в C.
Потому что всё хорошо до тех пор, пока система является активной, а не реактивной.
Особенный маразм - это те самые научные датасеты, обьем огромный, а качество никакое.
---
А вот функциональное программирование - это есть хорошо. И дискретная математика, и теория графов.
(no subject)