Компьютерра, 2007 № 20 (688) - [31]
Возможно, сложившаяся ситуация зависит от качества полученного образования, причем зависит многогранно. В данном случае интересен аспект ИТ-образования, получаемого в университетах и институтах естественнонаучного направления. В главной кузнице кадров, МГУ им. М. В. Ломоносова, это факультеты ВМиК, физический, мехмат. Состояние современного рынка труда таково, что очень многие студенты упомянутых факультетов посвящают часть жизни работе программиста. Даже на непрофильных факультетах существуют курсы (поточные лекции/практические занятия, примерно два года), посвященные азам программирования. Однако содержание материала оторвано от жизни. То, что было пригодным лет пятнадцать-двадцать назад, сейчас требует переосмысления. Так какими следовало бы сделать эти курсы, чтобы их полезность (для студента в частности и для общества в целом) выросла многократно? Попробую предложить модель, которая является результатом практического опыта, скорректированного сообразно нынешним мировым тенденциям.
Типичный предмет, который преподается, называется «Программирование» или «Информатика». И обучают на этих курсах азам программирования на каком-либо языке из семейства C++/Pascal. Дают базовый синтаксис, учат натягивать на форму объекты и писать обработчики. Иногда рассказывают о быстрых методах сортировки. А затем студенты, прослушавшие такие курсы (а особо одаренные еще и написали несколько простеньких программок), считая себя гуру в указанном вопросе, приходят на работу. И оказывается, что ничего-то они не знают, а то, что знают, совершенно не годится с точки зрения бизнеса. И приходится опять в них вкладывать и обучать элементарным вещам. Причем, как ни удивительно, эти элементарные вещи имеют всеобъемлющий характер и могут быть распространены гораздо дальше общепринятых рамок «Программирования». О чем же идет речь?
Прежде всего при составлении программы следует понимать, что количество информации вокруг нас, равно как и ее генераторов, непрерывно возрастает. И главное – научиться эффективно структурировать эту информацию, находить взаимосвязи и выделять необходимое. Поэтому занятие частностями, как-то: изучение интерфейса Word, детальное объяснение ООП на примере С++ и пр. на протяжении большей части курса слишком расточительно. Нужно искать инварианты в существующем мире и давать их студентам вместе с инструментарием для дальнейшего познания.
Какие инварианты я бы выделил в настоящий момент? В первую очередь – искусство совместной работы. Не каждый сам по себе что-то пишет в своей норке, а группа создает нечто, что одному человеку не осилить (из-за сложности, нехватки времени или большого объема). А совместная работа подразумевает разделение кода и текста, версионность документов; формирование различных баз знаний, систем багтрекинга и увязку их с системой контроля версий; использование форумов и досок объявлений, проведение телеконференций. Необходимо рассказать о таких возможностях, показать лучшие практики, продемонстрировать продукты и для закрепления знаний устроить лабораторные работы. Причем все это нельзя давать сухо, конспективно. Желательно привнести популяризаторскую изюминку, далеко ходить не надо – откройте книги Перельмана. Возможно, полезной будет установка одного-другого продукта на лабораторном занятии. Можно, например, разделить группу на две команды, каждая из которых ставит и настраивает свой продукт, а потом сравнить результаты и сделать выводы. И после этого предложить сделать те же самые вещи при помощи Excel-файлов. Как ни смешно, однако ситуация, когда при помощи одного Excel-файла пытаются собрать информацию от нескольких десятков сотрудников и поддерживать ее в актуальном состоянии (делегируя актуализацию самим сотрудникам) – ужасающе типична для российских компаний. То есть снова и снова возникает одна и та же идея использования бинарного файла закрытой структуры для совместной работы, хотя постановка задачи вопиет о необходимости использования элементарной 3-звенной CRM-системы [CRM (customer relationship management) – управление взаимодействием с заказчиками. 3-хзвенная архитектура представляет собой решение в котором существуют 3 уровня: уровень данных (база данных), уровень бизнес логики (сервер приложений) и презентационный уровень (тонкий или толстый клиент на машине пользователя)].
Поскольку в настоящий момент существует масса продуктов с открытым кодом, очень неплохо было бы дать о них информацию и использовать их в программе. Грядущее вступление в ВТО может сильно ударить по карману любителям проприетарного ПО. В качестве следующего инварианта я бы выделил знакомство с паттернами программирования (чтобы знать, что велосипеды изобретены и ждут седоков [Шаблоны проектирования (паттерн, pattern) – это эффективные способы решения характерных задач проектирования, в частности проектирования компьютерных программ. Паттерн не является законченным образцом проекта, который может быть прямо преобразован в код, скорее это описание или образец для того, как решить задачу, таким образом, чтобы это можно было использовать в различных ситуациях. Объектно-ориентированные паттерны зачастую показывают отношения и взаимодействия между классами или объектами, без определения того, какие конечные классы или объекты приложения будут использоваться. Алгоритмы не рассматриваются как паттерны, так как они решают задачи вычисления, а не проектирования.]).В качестве наиболее понятного паттерна, чье влияние может быть распространено и на массу различных задач, выходящих за рамки разработки ПО, я предложил бы MVC [Шаблон MVC широко признан как один из самых хорошо разработанных и зрелых шаблонов проектирования которые используются в данное время. При использовании шаблона MVC, обработка разбивается на три различных части, а именно на Модель(Model), компоненты представления (View) и контроллер (Controller). Модель – это объект приложения. Контроллер описывает, как интерфейс реагирует на управляющие воздействия пользователя. Вид должен гарантировать, что внешнее представление отражает состояние модели. Такой подход позволяет присоединить к одной модели несколько видов, обеспечив тем самым различные представления. Более того, можно создать новый вид не переписывая модель. (Ист.: «Приемы объектно-ориентированного проектирования. Паттерны проектирования», Э. Гамма, Р. Хелм, Р. Джонсон, Дж. Влиссидес, М., 2007;«Введение в Struts», Кевин Беделл, 2002).]. Даже элементарная задача набора красивого документа должна осуществляться именно через этот паттерн. Статики давно нет, надо учиться оперативно и быстро реагировать на изменения во внешнем мире. Касательно документов – содержание и внешнее представление должны быть разделены! Тогда любые новые требования к оформлению (статья для журнала, включение части документа в объемлющий документ, изменение требований…) удовлетворяются достаточно просто. При этом исходный текст совершенно не затрагивается. Если взять за точку отсчета именно такой подход (а он идет из «программирования» – один первоисточник информации, данные и представление обособлены), то обучение системам а-ля WYSIWYG (Word, OO, FrameMaker, PageMaker, Writer…) является танцем бульдозера, вырвавшегося на городской газон. После работы с Word восприятие студента необратимо искорежено. Начинать надо с систем типа LaTeX, Docbook или обучения CSS (прелесть CSS для веб-страниц можно оценить на www csszengarden com). Только после того, как идея MVC (или стилей) будет принята, можно переходить к Word. Тогда уже можно доходчиво объяснить, ссылаясь на полученный на предыдущем шаге опыт, назначение стилей и пользу от их применения. Можно развивать идею дальше и искать аналогии для других паттернов. В частности, паттерн Facade может быть перенесен как в область построения экспериментальных установок, так и в области сложной обработки данных. Упрощение системы, локализация знаний о специфичных данных, будь то формат картинки или протокол обмена с устройством управления шаговым двигателем – суть одно и то же.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
Документ создан на основе открытого контента, расположенного по адресуhttp://offline.computerra.ru/2005/599/Размер изображений не менялся, поэтому некоторые могут быть некорректно отображены на неVGA-моделях КПК (особенно скриншоты и таблицы).
ОглавлениеКолонкаПочему мы позволяем нас обманывать, или Грустные размышления об иррациональности политической жизни Автор: Дмитрий ШабановГолубятня: Samsung Galaxy S4 — цидули перебежчика (часть 1) Автор: Сергей ГолубицкийУроки любви к Родине: McAfee патентует технологию обнаружения и блокировки пиратского содержания Автор: Сергей ГолубицкийПодпадает ли астрономия под закон о митингах Автор: Дмитрий ВибеIT-рынокНасколько глупа шумиха вокруг «умных» часов? Автор: Андрей ПисьменныйПромзонаПосмотрите на свалку, которую китайцы превратили в парк Автор: Николай МаслухинЭтот сайт позволяет создать собственное световое шоу на точном макете Токио Автор: Николай МаслухинТехнологииДжипег, подвинься! Веппи как единственный необходимый графический формат Автор: Евгений ЗолотовИнновацииПочему менеджерам российских корпораций не нужны стартапы Автор: Елена КраузоваИнга Нахмансон (Fitting Reality): «Российскому e-commerce не до виртуальности» Автор: Елена КраузоваГидGoogle Now для iOS появился без лишнего шума и уже собирает сведения Автор: Андрей Васильков.
ОглавлениеСтатьиTertium datur: другие компьютеры Автор: Евгений Лебеденко, Mobi.ruИнтервьюПавел Фролов («ГНУ/Линуксцентр») о НПП Автор: Евгений КрестниковА. Самсонов о троичной логике и цифровой археологии Автор: Андрей ПисьменныйКолумнистыВасилий Щепетнёв: Месть индейских вождей Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники Автор: Киви БердКафедра Ваннаха: Подарки и конструкции Автор: Михаил ВаннахАлександр Амзин: Силой данного мне природой мозга Автор: Александр АмзинВасилий Щепетнёв: Гимн усталому караулу Автор: Василий ЩепетневКивино гнездо: Беззаконие роботехники (окончание) Автор: Киви БердДмитрий Шабанов: Марков и Эволюция человека Автор: Дмитрий ШабановКафедра Ваннаха: Пришельцы на Луне Автор: Михаил ВаннахГолубятня-ОнлайнГолубятня: Даже гоблин ходит в отпуск Автор: Сергей ГолубицкийГолубятня: Железный парад 2011 Автор: Сергей Голубицкий.
ОглавлениеКолумнистыДмитрий Вибе: Заблудшая планета Автор: Дмитрий ВибеВасилий Щепетнёв: Укрепление тары Автор: Василий ЩепетневКафедра Ваннаха: Душа по Пенроузу Автор: Михаил ВаннахГолубятня-ОнлайнГолубятня: Аудиофилия второй волны Автор: Сергей Голубицкий.
ОГЛАВЛЕНИЕСергей Голубицкий: Голубятня: Ужастик ЕвернотВаннах Михаил: Кафедра Ваннаха: Углерод и кремнийДенис Злобин: Пиратство: почему мы перестали ценить информациюСергей Голубицкий: Голубятня: Исход из 1PasswordВасилий Щепетнев: Василий Щепетнёв: Исчезновение столицыДмитрий Шабанов: Аргумент ХойлаАлла Аршинова: Александр Бондарь (ИЯФ СО РАН) о megascience-проектахВаннах Михаил: Кафедра Ваннаха: Удешевить странуЮрий Ильин: После шаттла: "Клипер" и "Русь"Киви Берд: Кивино гнездо: Дежавю, или Хождение по кругуСергей Голубицкий: Голубятня: News360 и ZiteВасилий Щепетнев: Василий Щепетнёв: Светлая сторона торгаАлександр Амзин: Возникнут модыАндрей Федив: Обзор Windows 8 Developer PreviewВаннах Михаил: Кафедра Ваннаха: Демократия хищных вещейДмитрий Вибе: Почтальон сойдёт с ума.
ОГЛАВЛЕНИЕСергей Голубицкий: Голубятня: Хронотоп детстваВасилий Щепетнев: Василий Щепетнёв: Колхоз имени Тома СойераЕвгений Лебеденко, Mobi.ru: Микропроцессор Hobbit: на каком языке говорили полуросликиВаннах Михаил: Кафедра Ваннаха: Intel в зеркале финансов Киви Берд: Кивино гнездо: Стены и мосты Олег Нечай: Обзор NAS Buffalo Link Station Pro Duo 2 ТВВасилий Щепетнев: Василий Щепетнёв: Без параллелейЕвгений Крестников: Валентин Макаров (РУССОФТ) о тендере на создание НППВаннах Михаил: Кафедра Ваннаха: Выкидуха в боюДмитрий Шабанов: Аргумент ГоссеАлександр Амзин: На отвлечённую темуСергей Голубицкий: Голубятня: Будучи ТАМВасилий Щепетнев: Василий Щепетнёв: До двенадцатого знакаДмитрий Вибе: Немного холодной воды у солнцаАндрей Федив: Обзор телефона Apple iPhone 4S.
ОГЛАВЛЕНИЕДмитрий Вибе: Ударим Венерой по МарсуВасилий Щепетнев: Василий Щепетнёв: После точкиСергей Голубицкий: Голубятня: От ашрама-дхармы к президенту-вампируДмитрий Шабанов: Объемное слышаниеОлег Нечай: PocketBook A 10": планшет, притворяющийся ридеромДмитрий Вибе: Так будет не всегда.
ОглавлениеСтатьиОбратная сторона эпохи пост-ПК: 30-долларовый компьютер Raspberry Pi Автор: Андрей ПисьменныйТерралабКак производятся материнские платы Автор: Олег НечайКолумнистыКафедра Ваннаха: Европейский лидер Автор: Михаил ВаннахВасилий Щепетнёв: Честь пикейного жилета Автор: Василий ЩепетневДмитрий Шабанов: Судьба точек роста в системе декоративного образования Автор: Дмитрий ШабановДмитрий Вибе: Лунная астрономия Автор: Дмитрий ВибеГолубятня-ОнлайнГолубятня: Про одного битого зелёного слоника Автор: Сергей ГолубицкийГолубятня: 4 спичечных коробка Автор: Сергей Голубицкий.
ОглавлениеКолумнистыКафедра Ваннаха: Горячая цифровая война Автор: Михаил ВаннахДмитрий Шабанов: Парадокс ускорения эволюции Автор: Дмитрий ШабановКивино гнездо: Пароль для серой зоны Автор: Киви БердВасилий Щепетнёв: Предсказания и пророчества Автор: Василий ЩепетневДмитрий Вибе: Мы сверху Автор: Дмитрий ВибеГолубятня-ОнлайнГолубятня: Идеальный мобильный звук. Часть вторая Автор: Сергей Голубицкий.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.
В книге рассказывается история главного героя, который сталкивается с различными проблемами и препятствиями на протяжении всего своего путешествия. По пути он встречает множество второстепенных персонажей, которые играют важные роли в истории. Благодаря опыту главного героя книга исследует такие темы, как любовь, потеря, надежда и стойкость. По мере того, как главный герой преодолевает свои трудности, он усваивает ценные уроки жизни и растет как личность.