Раздел 1. "Программист дилетантствующий"
Раздел 2. "Программист продвинутый"
Раздел 3. "Программист системный"
Раздел 4. "Программист объектно-ориентированный"
Большинство изданий по языками и системам программирования путают две вещи : язык и практика программирования на нем. Общепринятая система погружения в язык - описание лексики, синтаксиса, напоминает изучение английского языка с помощью учебника грамматики и русско-английского словаря. Читающего же, в первую очередь интересует конечный результат - когда же он, наконец, начнет сам писать программы. Вопросы же технологии программирования, вообще "здравого смысла" при написании программ благополучно были отражены в книжках двадцатилетней давности и после этого забыты. Считается, что нынешние поколения программистов работают на столь высоком уровне, что неприлично напоминать о таких общеизвестных вещах, как списки, деревья, рекурсия.
Основная идея предлагаемого материала - не стоит, хотя бы при изложении столь открытого языка, как Си, начинать все валить в кучу - классы, объекты, структуры, функции, и прочая, и прочая, и прочая... Если задаться целью овладения навыками профессионального программирования на Си, то стоит делать это, как минимум, в несколько шагов, а именно :
- программирование на уровне Бейсик (l дилетантское) - простые переменные и массивы, основные алгоритмы решения арифметических задач, обработки текста, приближенных вычислений, законы информатики (простой и линейный поиск, сортировка), простые структуры данных - стек, очередь, модульное программирование (процедура, параметры), основы анализа программ путем разложения на стандартные фрагменты, основы технологии программирования ;
- программирование на уровне Паскаль (l продвинутое) - типы данных, иерархия типов данных и модулей (процедур) в сложный программах, производные типы данных - структуры, указатели, функции, динамическая память, общие вопросы организации памяти в программе ;
- организация данных - традиционный раздел, в котором Си предстает "во всей своей красе" (l системное).