Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Книга по ООП для начинающих


Автор: timbat 12.3.2012, 20:15
Здравствуйте! 

Я планирую написать небольшую бесплатную книгу по аспектам ООП для начинающих программистов Java и в данный момент собираю пожелания и предложения. 

Скажите пожалуйста, какой аспект или какое понятие для вас является самым трудным при изучении ООП? 

Спасибо

Автор: Stolzen 12.3.2012, 20:40
Наблюдаю, что часто очень сложно доходчиво объяснить, что такое интерфейсы и зачем они нужны. 
И само распределение обязанностей между объектами тоже вызывает проблемы (особенно у тех, кто раньше программировал на процедурных языках). 

Автор: Skynin 12.3.2012, 21:47
Своих проблем уже и не помню.

Переходил с Си, и мне объясняли ООП с низкого уровня:
представь структуру с указателями на функции, первым параметром которых является указатель на эту же структуру, ...., ....,

Но типичные, годами затруднения у начинающих действительно несколько раздражают, и сам думал написать нечто вроде:
http://lib.ru/CTOTOR/starterkit.txt
только не с таким обидным названием.

Даже начал набрасывать план такой книги, и первую главу. А потом как-то подумалось:
а кто ее будет читать, если не читают и остальные книги.

Интерфейсы и абстрактные классы да, вызывают затруднения.
Еще - непонимание собственно что такое переменная, что такое ссылка, что такое объект, и чем он "отличается" от ссылки на него.

Цитата

особенно у тех, кто раньше программировал на процедурных языках

Как уже сказал, я сам переходил с процедурного языка. Но, сколько ни пытался объяснить как мне объясняли, ощущение - а они не поняли и как процедурное программирование устроено, как оно работает.

Но что мне кажется точно неверным в обучении ООП, так это:
вот есть фрукт. А вот есть яблоки, груши, ...

Хотя, просто меня не так учили smile
А когда я понял как оно устроено в ООП, то и яблоки с фруктами уже не вызывали особых затруднений.

Книга же которая устранит эти муки начинающих нужна.
Но вот как ее писать... как А. Богатырев что-ли

P.S.
И какой язык брать за основу, для псевдокода.
Например если Python, то там как раз все устройство ООП видно, ты в него прям "по Сишному" можешь вмешаться в рантайме.
Если "Java" - то опять же, дайте мне вменяемого сишника - да там объяснять то пару часов от силы, и можно приступать к примерам в виде паттернов ООП.

Или Ruby, Smalltalk... - сложно мне представить, какими они видятся человеку который ни одного языка программирования еще не знает.

Автор: k0rvin 13.3.2012, 16:32
Цитата(timbat @ 12.3.2012,  20:15)
какое понятие для вас является самым трудным при изучении ООП?

"Объектно-ориентированый"

Автор: COVD 13.3.2012, 17:52
timbat, вы уже спрашивали здесь нечто подобное. Каковы результаты? Преподавайте новичкам - узнаете проблемы из первых рук.

Автор: Mirkes 15.3.2012, 16:55
С моей точки зрения нужно разделить две аудитории
1. Программисты работавшие на других языках и переходящие на Java
2. Начинающие.

С первыми наверное проще - им надо по большей части указывать на отличия.
Вторых нужно учить с нуля.

Я переходил с Delphi.
Первый готовый продукт выдал через неделю. 
Однако до Delphi  писал еще на нескольких языках.

Для меня самым непрятным моментом явилось отсутствие возможности передавать аргументы в методы по ссылке в смысле Delphi  и С.
Некоторые сложности были с чисто объектной моделью.
Неприятно поразил стиль документации к Java - просто раньше привык к другому.

Автор: Pawl 18.3.2012, 10:09
Цитата(Mirkes @  15.3.2012,  16:55 Найти цитируемый пост)
Неприятно поразил стиль документации к Java - просто раньше привык к другому.

Прикольно! А вот я изначально привык к документации "по-джавовски", и теперь другие стили выглядят для меня довольно дико smile. Тем более, сталкиваюсь с документацией по другим языкам редко, но уж если столкнусь - то всегда как в первый раз! smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)