Адам, Ева и их дети в ООП

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

Вспомнил про него случайно, когда младшая сестра поступила в институт. Как-то она обратилась ко мне за помощью, нужно было написать лабораторную работу по ООП на C++.

Вытаскивая из памяти заброшенные знания и пытаясь донести их до сестры, я пришел к выводу, что с разбегу объяснить основы ООП не выйдет. Имея навыки «процедурного» программирования, она совсем не понимала сути ООП. Тогда я решил упростить такие понятия, как: объекты, классы, методы классов, свойства классов и пр., и стал представлять их в виде привычных вещей.


Читать дальше →

LINQ 'em all!

Иногда технологии развиваются. Иногда они развиваются быстро. Гораздо быстрее, чем система образования. Гораздо быстрее, чем пишутся книги. Слишком быстро.

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

Это нормально. Время меняется. Автомобили сменяют кэбы, гребной винт вытеснил парус, патрон похоронил стрелу. Устаревшие технологии становятся уделом энтузиастов и узких профессионалов в тех немногих сферах, где без них нельзя. Кто следующий?

В ИТ — это подход к программированию через написание алгоритмов. Т.е., те многочисленные умные слова и бесчисленные задачи, которые мы с вами решали на первых курсах университетов, и которыми нашим студентам до сих пор усиленно забивают голову. Почему пришел их черед уходить в небытие? Да просто потому что задачи, решаемые с помощью циклов, условий, рекурсии и прочих алгоритмических трюков, расписанных Д.Кнутом в знаменитом трехтомнике, в их большинстве можно решить с помощью современных средств разработки без собственно алгоритмов. Грамотное владение ООП (т.е. то, чему надо учить студентов в программистских ВУЗах прежде всего) в сочетании с современными технологиями позволяет красиво и эффективно избавиться от огромного количества кодострочек. Как?

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


Читать дальше →