Вобще, написать методическое пособие ккажется не таким уж трудным делом: что там должно быть примерно представляю, уже предварительно оговорено с коллегой, метод изложения тоже примерно представляю. В общем и целом как курс так и пособие будут значительно лучше и полезней для студентов, п сравнению с тем что имеем сейчас. Но, т.к. у меня в душе основательно засел перфекционист, то хочется чтобы пособие было не просто лучше того что есть, а стало по настоящему хорошим и полезным для будущих молодых специалистов.
Отсюда и хочется получить несколько советов, наставлений, и просто мыслей хабрапользователей (особенно специалистов), на тему того, что по их мнению должно быть включено в учебное пособие.
В настоящий момент уже точно определены и согласованы (в т.ч. и с замом по учебной работе) следующие моменты:
- Основная канва пособия — ООП
- Все описание и примеры (а так же курс лаб. работ) будут на 2х языках — C#/.NET и JAVA (возможно это самый спорный момент, но решение по нему уже принято)
- Все примеры рассматриваются на обоих языках одновременно (на том уровне, какой будет нужен в пособии, различия будут не столь велики)
Далее опишу некоторые моменты которые я вижу в этом пособии:
- Прежде всего, оно должно давать только основы всего описываемого материала
- Спектр рассматриваемого материала должен быть достаточно широк
- Написано пособие должно быть так, чтобы не теряло актуальности длительное время (небольшие коррекции периодически, само-собой, потребуются, ибо это не фундаментальный труд)
Что хочется рассмотреть в данном пособии:
- Основы ООП (совсем чуть-чуть истории, основные принципы: абстракция, полиморфизм, инкапсуляция)
- Области видимости свойств/методов (включая readonly, конечно же упомянуть что присуще далеко не всем языкам)
- Абстрактные классы и интерфейсы
- Исключения
- Коллекции
- Библиотеки (пакеты/нэймспейсы)
- Другие возможности языков (тут все обсуждаемо, что стоит только упомянуть, о чем лучше написать подробнее)
- Работы с XML (мне кажется что это очень важная тема, и ее стоит обязательно затронуть, чтобы люди хотя бы знали что сущесвуют DOM и SAX)
- Проектирование приложений (mindmap'ы, функциональная спецификация, UML)
- Шаблоны ООП
- Рефакторинг
- Системы командной разработки (буквально пару слов о CVS, SVN, BugZilla, Flyspray, GroupHub)
Еще раз хочу заметить что «Прежде всего, оно должно давать только основы всего описываемого материала». Делается это для того, чтобы пришедшие в вуз за корочкой — не сильно напрягались (к сожалению таких достаточно много, и тут я бессилен что-либо сделать), а те кому это действительно интересно и нужно, кто собирается связать свою карьеру с разработкой высокоуровневого ПО (для низкоуровневого есть другой курс) — чтобы получили общее представление о технологии разработки ПО и основные понятия, от которых уже можно будет отталкиваться.
Для чего я все это написал тут.
Я трезво оцениваю свои способности и возможности, и понимаю что самостоятельно действительно хорошее пособие я не осилю (вопрос опыта и знаний). А как писал выше — очень этого хочется. Чтобы специалистов в нашей сфере становилось больше (коллега ездил пару недель на сапорт одного проекта, пока разработчик той компании находился в отпуске, и потом рассказывал страшилки про 600 полей в одной таблице БД и т.п.). Ну и вобще, хочется повысить уровень образования на отдельно взятой кафедре по близкому мне предмету.
В комментариях очень хотелось бы увидеть мнения по данному вопросу. Предложения и пожелания чего бы вам хотелось увидеть в подобном учебном пособии (будь вы студентами). Что я пропустил, из того что необходимо осветить в обязательном порядке, а что лучше оставить полностью на самостоятельное изучение.
«Beta 1» пособия должна быть подготовлена к началу октября. Соответственно, к тому времени все разделы будут опубликованы тут (если это конечно будет интересно хабралюдям). Ну а потом, конечно же, и финальный вариант пособия.