ПРЕДИСЛОВИЕ
ПРЕДИСЛОВИЕ
В настоящее время программирование трансформировалось в целую индустрию производства программных изделий. Поэтому уже мало знать только язык программирования и операционный подход к составлению алгоритмов. Профессиональный разработчик программных изделий должен владеть теорией проектирования, методами активизации мышления. Ему необходимо умение оперирования моделями, методами генерации решений и выбора их оптимальных вариантов. Создание программных изделий коллективом разработчиков предопределило необходимость умения планирования работ и их распределения между отдельными участниками проекта.
В современном программировании требуется активное владение дедуктивным мышлением, что не достигается школьным, а зачастую и вузовским образованием.
Данная книга ориентирована именно на решение данных проблем.
Материалы книги были использованы в более чем двадцатилетней педагогической практике авторов по подготовке такой массовой профессии, как программист. Практика показала, что большая часть студентов второго курса способна коллективно выполнять проекты программных систем средней сложности и их успешно реализовывать при достигнутом уровне производительности реализации 100–200 отлаженных строк в день. При этом достигается самодокументированность текстов программ.
Данная книга содержит теоретические знания, необходимые как программистам-кодировщикам программ, так и системным аналитикам. В ней излагаются методики овладения дедуктивным мышлением.
Авторы книги сделали максимум возможного, чтобы избежать привязки только к одному языку программирования. Иллюстрирующие примеры даются в основном на языках Pascal и Object Pascal, являющихся «языком эксперанто» для программистов. Авторы надеются, что знание других процедурно-ориентированных и объектно-ориентированных языков программирования, например С, C++, позволит без дополнительного обучения понять суть иллюстрирующих примеров.
Данный учебник содержит объем знаний, необходимый программистам первого уровня подготовки специалистов с высшим образованием (квалификация — бакалавр), но может быть использован при подготовке специалистов второй ступени образования.
Согласно квалификационному справочнику должностей руководителей, специалистов и других служащих (утв. постановлением Минтруда РФ от 21 августа 1998 г. № 37) (с изменениями от 21 января, 4 августа 2000 г., 20 апреля 2001 г.), обязанности, знания, навыки и умения инженера-программиста (программиста) характеризуются следующими нормативами.
Должностные обязанности. На основе анализа математических моделей и алгоритмов решения экономических и других задач, программист обязан:
— разрабатывать программы, обеспечивающие возможность выполнения алгоритма и соответственно поставленной задачи средствами вычислительной техники; проводить их тестирование и отладку;
— разрабатывать технологию решения задачи по всем этапам обработки информации;
— осуществлять выбор языка программирования для описания алгоритмов и структур данных;
— определять информацию, подлежащую обработке средствами вычислительной техники, ее объемы, структуру, макеты и схемы ввода, обработки, хранения и вывода, методы ее контроля;
— выполнять работу по подготовке программ к отладке и проводить отладку;
— определять объем и содержание данных контрольных примеров, обеспечивающих наиболее полную проверку соответствия программ их функциональному назначению;
— осуществлять запуск отлаженных программ и ввод исходных данных, определяемых условиями поставленных задач;
— проводить корректировку разработанной программы на основе анализа выходных данных;
— разрабатывать инструкции по работе с программами, оформлять необходимую техническую документацию;
— определять возможность использования готовых программных продуктов;
— осуществлять сопровождение внедренных программ и программных средств;
— разрабатывать и внедрять системы автоматической проверки правильности программ, типовые и стандартные программные средства;
— составлять технологию обработки информации;
— выполнять работу по унификации и типизации вычислительных процессов;
— принимать участие в создании каталогов и картотек стандартных программ, в разработке форм документов, подлежащих машинной обработке, в проектировании программ, позволяющих расширить область применения вычислительной техники.
Должен знать:
— руководящие и нормативные материалы, регламентирующие методы разработки алгоритмов и программ и использования вычислительной техники при обработке информации, основные принципы структурного программирования;
— виды программного обеспечения;
— технико-эксплуатационные характеристики, конструктивные особенности, назначение и режимы работы ЭВМ, правила ее технической эксплуатации;
— технологию автоматической обработки информации;
— виды технических носителей информации;
— методы классификации и кодирования информации;
— формализованные языки программирования;
— действующие стандарты, системы счислений, шифров и кодов;
— порядок оформления технической документации;
— передовой отечественный и зарубежный опыт программирования и использования вычислительной техники;
— основы экономики, организации производства, труда и управления;
— основы трудового законодательства;
— правила и нормы охраны труда.
Требования к квалификации:
— Инженер-программист I категории: высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста II категории не менее трех лет.
— Инженер-программист II категории: высшее профессиональное (техническое или инженерно-экономическое) образование, стаж работы в должности инженера-программиста III категории или других инженерно-технических должностях, замещаемых специалистами с высшим профессиональным образованием, не менее трех лет.
— Инженер-программист III категории: высшее профессиональное (техническое или инженерно-экономическое) образование, опыт работы по специальности, приобретенный в период обучения, или стаж работы на инженерно-технических должностях без квалификационной категории.
— Инженер-программист: высшее профессиональное (техническое или инженерно-экономическое) образование без предъявления требований к стажу работы или среднее профессиональное (техническое или инженерно-экономическое) образование и стаж работы в должности техника I категории не менее трех лет либо в других должностях, замещаемых специалистами со средним профессиональным образование, не менее пяти лет.
Профессионализм — это интегральная личностная характеристика человека. Профессиональный программист — это программист [24], который:
• овладел нормами профессиональной деятельности и общения и осуществляет их на высоком уровне, добиваясь профессионального мастерства в своей области (программировании);
• следует профессиональной ценностной ориентации, соблюдая профессиональную этику;
• развивает свою личность средствами профессии;
• стремится внести творческий вклад в профессию, обогащая ее опыт;
• стремится и умеет вызвать интерес общества к результатам своей профессиональной деятельности, способствует повышению веса и престижа своей профессии в обществе, гибко учитывает новые запросы общества к ней.
Хакеры могут многое знать и уметь, но они обычно из-за неудач общения в среде профессионалов пытаются получить самоудовлетворение своей деятельностью путем нарушения профессиональной этики.
Костерин В.В. осуществил сбор, анализ, синтез нового материала для написания учебника, провел его апробацию в учебном процессе. Камаев В.А. отбросил не менее 90 % собранного материала и, неоднократно редактируя текст учебника, сделал его понятным. Авторы выражают благодарность всем специалистам и студентам за замечания в адрес учебника.