Comments 87
по моему мнению очень неплохой ресурс по введению в курс дела
http://firststeps.ru/
http://firststeps.ru/
0
Ресурс хорош. Но он как раз и подталкивает к беспорядочному накоплению знаний в разных конкретных областях. Чего очень не хочется.
Я мечтаю составить для себя курс, наподобие институтского - от простого к сложному, с сохранением структуры знаний.
Я мечтаю составить для себя курс, наподобие институтского - от простого к сложному, с сохранением структуры знаний.
+2
на intuit.ru ходили ?
+4
Беспорядочно накопленные знания, при наборе определенной критической и массы и при условии их реального применения имеют свойство упорядочиваться сами собой :)
+10
но всё-таки это, наверное, не лучший способ)) С практическим применением никто не спорит, но применять тоже лучше не всё подряд)
+1
Выше я имел в виду то, что когда "беспорядочных" знаний в разных смежных областях становится много, они начинают обрастать связами и представлять собой одну ясную картину.
Может быть способ и не лучший, но свои преимущества имеет. Например когда-то именно раздел по WinAPI сайта firststeps помог мне быстро начать писать Win32 API приложения, а не чтение упорядоченного и структурированного MSDN и даже не книжки Рихтера про программирование под Windows. Лично мне было проще начать так, а потом по мере необходимости был подтянут MSDN и была прочитана книга Рихтера.
Может быть способ и не лучший, но свои преимущества имеет. Например когда-то именно раздел по WinAPI сайта firststeps помог мне быстро начать писать Win32 API приложения, а не чтение упорядоченного и структурированного MSDN и даже не книжки Рихтера про программирование под Windows. Лично мне было проще начать так, а потом по мере необходимости был подтянут MSDN и была прочитана книга Рихтера.
0
тут Вы совершенно правы, начинать с Рихтера - плохая идея, а MSDN имхо используется как справочник, а не как учебник.
Другое дело что и для первых шагов, и для профессионалов есть книжки хорошие и плохие. И даже "беспорядочные" знания лучше набирать по хорошим)
Другое дело что и для первых шагов, и для профессионалов есть книжки хорошие и плохие. И даже "беспорядочные" знания лучше набирать по хорошим)
0
С этим полностью согласен :) Хорошо всегда использовать лучшее, но не всегда так выходит..
Для меня критерием качества источника информации является смогу ли я извлечь из представленных данных нужную мне информацию за заданный отрезок времени. Если материал удовлетворяет этим требованиям, значит он хороший независимо от его оценок относительно всего множества материалов данной тематики, так как он позволяет решать текущие задачи прямо здеcь и сейчас, а ничего другого и не требуется. Ведь по сути дела, кроме самих данных решающее значение имеют методы работы с ними и тот бэкграунд знаний которые уже есть на момент начала работы с новым источником информации. Оба этих параметра оказывают очень серьезное влияние на восприятие и усваивание новой информации.
Для меня критерием качества источника информации является смогу ли я извлечь из представленных данных нужную мне информацию за заданный отрезок времени. Если материал удовлетворяет этим требованиям, значит он хороший независимо от его оценок относительно всего множества материалов данной тематики, так как он позволяет решать текущие задачи прямо здеcь и сейчас, а ничего другого и не требуется. Ведь по сути дела, кроме самих данных решающее значение имеют методы работы с ними и тот бэкграунд знаний которые уже есть на момент начала работы с новым источником информации. Оба этих параметра оказывают очень серьезное влияние на восприятие и усваивание новой информации.
0
Вообще мне концепция обучения представляется так: сначала фундамент из непоколебимых основ (наши вузы вроде бы ещё способны его давать), и если говорить о книгах, то ставить мозги на место и создавать общую картину предметной области должны проверенные источники. Если копать совсем глубоко, то мозги на место ставит хорошая математическая база, но это уже у кого как в жизни сложится.
А когда человек уже получает некоторое понимание и знает хотя бы в какую сторону ему двигаться, делать это можно самыми разными способами, и тут про качество источников вы совершенно правы.
Но это меня уже куда-то на границы с философией занесло :)
А когда человек уже получает некоторое понимание и знает хотя бы в какую сторону ему двигаться, делать это можно самыми разными способами, и тут про качество источников вы совершенно правы.
Но это меня уже куда-то на границы с философией занесло :)
0
Всегда по рукой: «Профессиональное программирование на PHP», Джордж Шлоссенейгл, ISBN 5-8459-0925-2 (рус.).
Хороша теорией и примерами (не готовыми проектами) по ООП и обработкой ошибок с помощью первого.
Хороша теорией и примерами (не готовыми проектами) по ООП и обработкой ошибок с помощью первого.
+4
Книга "Совершенный код" Стива Макконнелла.
Думаю, must read для любого программиста).
Думаю, must read для любого программиста).
+9
GoF: http://en.wikipedia.org/wiki/Design_Patterns
Применительно к Flex: http://www.amazon.com/ActionScript-3-0-Design-Patterns-Programming/dp/0596528469
Применительно к Flex: http://www.amazon.com/ActionScript-3-0-Design-Patterns-Programming/dp/0596528469
+2
писал анализ литературы для курсача, в него вошли 17 книг по php. просмотр литературы был очень беглый (все 17 штук за ночь), так что на полноту не претендует. больше всего понравилась - "Котеров Д.В., Костарев А.Ф., PHP5. Наиболее полное руководство". сам обзор тут http://blog.reborn.ru/programmer_notes/?postid=4617
+2
"PHP5 для профессионалов", Эд Леки-Томпсон, Хьяо Айде-Гудман, Алек Коув, Стивен Д. Новицки (ISBN 5-8459-1066-8). Хорошая книга. Охватывает много фундаментальных аспектов:
Есть у этой книги один минус - куча ошибок как в тексте так и в исходных кодах, хотя лично меня эти ошибки заставляли глубже задумываться над приведёнными примерами.
- Основы ООП
- Шаблоны (паттерны) проектирования
- Служебные классы (например, Collection, GenericObject)
- Уровни абстракции базы данных
- Протокол SOAP
- MVC
- Модульное тестирование
- и многое другое
Есть у этой книги один минус - куча ошибок как в тексте так и в исходных кодах, хотя лично меня эти ошибки заставляли глубже задумываться над приведёнными примерами.
+1
Где бы эту ск0чать посмотреть. Даже английскую версию не нашел...
0
Воспользуйтесь поиском по библиотекам: http://www.ebdb.ru/
Есть там английская аж на 5-ти сайтах.
Есть там английская аж на 5-ти сайтах.
0
How to Design Programs
An Introduction to Computing and Programming
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
http://www.htdp.org/
Structure and Interpretation of Computer Programs
an excellent computer science text used in introductory courses at MIT.
Hal Abelson, Jerry Sussman, Julie Sussman
http://mitpress.mit.edu/sicp/
An Introduction to Computing and Programming
Matthias Felleisen, Robert Bruce Findler, Matthew Flatt, Shriram Krishnamurthi
http://www.htdp.org/
Structure and Interpretation of Computer Programs
an excellent computer science text used in introductory courses at MIT.
Hal Abelson, Jerry Sussman, Julie Sussman
http://mitpress.mit.edu/sicp/
+3
1) Программист-прагматик. Путь от подмастерья к мастеру. Авторы: Э.Хант, Д.Томас
2) Приемы объектно-ориентированного проектировани. Паттерны проектирования. Авторы: Э.Гаммаб Р.Хелм, Р.Джонсон, Д.Влиссидес
Во второй книге подробно разобраны очень многие паттерны
2) Приемы объектно-ориентированного проектировани. Паттерны проектирования. Авторы: Э.Гаммаб Р.Хелм, Р.Джонсон, Д.Влиссидес
Во второй книге подробно разобраны очень многие паттерны
+3
SICP, она же «Wizard book», есть в бесплатном виде на сайте MIT. Design Patterns: Elements of Reusable Object-Oriented Software за авторством GoF.
Читать только подлинники, потому что перевода нормального нет. Точнее, для SICP был эффорт какой-то, но я не уверен, что он успешно закончился.
И да, в русском языке нет слова «движусь», есть слово «двигаюсь».
Читать только подлинники, потому что перевода нормального нет. Точнее, для SICP был эффорт какой-то, но я не уверен, что он успешно закончился.
И да, в русском языке нет слова «движусь», есть слово «двигаюсь».
+1
За книжку спасибо. А за движусь - http://slovari.yandex.ru/dict/ushakov/ar…
)
)
0
http://gramota.ru/slovari/dic/?lop=x&gor… ) так что скорее всё-таки «двигаюсь»
0
UFO just landed and posted this here
К. Ларман. "Применение UML и шаблонов проектирования".
Фундаментальный труд, охватывающий сразу несколько аспектов разработки ПО. Я читал эту книгу довольно давно, перечитывал некоторые части много раз. Сразу оговорюсь, я читал 2-ое издание, но сейчас в продаже уже 3-е.
Первое, что я вынес для себя из этой книги - это представление о том, как должен выглядеть итеративный процесс разработки в частности и процесс разработки в общем. В книге описывается UP. Причем описываются различные аспекты и виды работ: начиная от формирования первоначального видения проекта и описания use-case`ов, и заканчивая тестированием продукта. Приведены наиболее распространенные шаблоны проектирования. Подробные описания и разъяснения, а также примеры применения шаблонов. И конечно же это отличный учебник по UML.
Способ подачи материала не рассчитан на профессионала. Это, скорее всего, учебник, который дает представление обо всех аспектах объектно-ориентированного подхода к созданию ПО и об итеративном процессе разработки. Простой и понятный язык.
Если хочется упорядочить уже имеющиеся знания и получить базовые знания обо всех смежных с разработкой ПО областях - анализ, проектирование, тестирование, документирование и т.д. - очень рекомендую.
Из минусов: не очень хорошо переведены некоторые термины, книгой неудобно пользоваться как справочником.
Вот ссылка на ozon: http://www.ozon.ru/context/detail/id/3105480/
Фундаментальный труд, охватывающий сразу несколько аспектов разработки ПО. Я читал эту книгу довольно давно, перечитывал некоторые части много раз. Сразу оговорюсь, я читал 2-ое издание, но сейчас в продаже уже 3-е.
Первое, что я вынес для себя из этой книги - это представление о том, как должен выглядеть итеративный процесс разработки в частности и процесс разработки в общем. В книге описывается UP. Причем описываются различные аспекты и виды работ: начиная от формирования первоначального видения проекта и описания use-case`ов, и заканчивая тестированием продукта. Приведены наиболее распространенные шаблоны проектирования. Подробные описания и разъяснения, а также примеры применения шаблонов. И конечно же это отличный учебник по UML.
Способ подачи материала не рассчитан на профессионала. Это, скорее всего, учебник, который дает представление обо всех аспектах объектно-ориентированного подхода к созданию ПО и об итеративном процессе разработки. Простой и понятный язык.
Если хочется упорядочить уже имеющиеся знания и получить базовые знания обо всех смежных с разработкой ПО областях - анализ, проектирование, тестирование, документирование и т.д. - очень рекомендую.
Из минусов: не очень хорошо переведены некоторые термины, книгой неудобно пользоваться как справочником.
Вот ссылка на ozon: http://www.ozon.ru/context/detail/id/3105480/
0
кстати, какие свободные и удобные UML-средства используете? может быть что-то можете порекомендовать?
+1
> Основы программирования, основы ООП, создание удобного и расширяемого кода и т.д. и т.п. Движусь, в основном, в сторону ...
Из любимых книг предлагаю следующие
1. Гудман, C. Хидетниеми, C. Введение в разработку и анализ алгоритмов
2. Бентли Дж. Жемчужины программирования
3. Керниган Б., Пайк Р. Практика программирования
Как видите книги не привязаны в названиях к языкам программирования.
Все они хороршо показывают алгоритмический подход к решению задач.
Иллюстрациями являются блок-схемы, словесные описания, псевдокод алгоритмов и вставки фрагментов текста на некоторых языках программирования.
Я предложил именно эти книги, потому что они описывают
1. представление информации в компьютерах
2. правильные подходы при алгоритмизации задачи
Из любимых книг предлагаю следующие
1. Гудман, C. Хидетниеми, C. Введение в разработку и анализ алгоритмов
2. Бентли Дж. Жемчужины программирования
3. Керниган Б., Пайк Р. Практика программирования
Как видите книги не привязаны в названиях к языкам программирования.
Все они хороршо показывают алгоритмический подход к решению задач.
Иллюстрациями являются блок-схемы, словесные описания, псевдокод алгоритмов и вставки фрагментов текста на некоторых языках программирования.
Я предложил именно эти книги, потому что они описывают
1. представление информации в компьютерах
2. правильные подходы при алгоритмизации задачи
+1
Вот это как раз и есть основы, спасибо
0
Забыл добавить - не стремитесь охватить все сразу.
Кстати только первая из книг было рекомендована в качестве учебника в Америке.
Но и ее и все остальные можно читать и как учебник (есть теория и задачи), и как научно-популярную литературу.
Основы программирования они дают в полной мере.
По основам ООП сложно что-либо рассказать много. По системам счисления и то больше получится.
Кстати только первая из книг было рекомендована в качестве учебника в Америке.
Но и ее и все остальные можно читать и как учебник (есть теория и задачи), и как научно-популярную литературу.
Основы программирования они дают в полной мере.
По основам ООП сложно что-либо рассказать много. По системам счисления и то больше получится.
0
"Веревка достаточной длины, чтобы… выстрелить себе в ногу". Ален Голуб
книга очень толковая и рассказывает о программировании в целом, с небольшими примерами из си-си++.
если же конкретно по языкам то по си++ рекомендую
Брюс Эккель - Философия Си++ ( есть в свободном доступе в нете на английском "Thinking in C++" )
книга очень толковая и рассказывает о программировании в целом, с небольшими примерами из си-си++.
если же конкретно по языкам то по си++ рекомендую
Брюс Эккель - Философия Си++ ( есть в свободном доступе в нете на английском "Thinking in C++" )
0
вот ссылки на почти все вышеназванные книги
Профессиональное программирование на PHP
http://rapidshare.com/files/60709022/Advanced_PHP5_programming._Schlossnagle__G.rar
Совершенный код" Стива Макконнелла.
http://infanata.ifolder.ru/7067919
http://rapidshare.com/files/120966062/mcConnellCodeComplete.rar.html
К. Ларман. "Применение UML и шаблонов проектирования".
http://www.proklondike.com/file/design_larman_uml_and_patterns.rar
Приемы объектно-ориентированного проектировани. Паттерны проектирования. Авторы: Э.Гаммаб Р.Хелм, Р.Джонсон, Д.Влиссидес
http://rs214.rapidshare.com/files/50075933/priemy_obektnoorientirovannogo_proektirovanija_patterny_proektirovanija.rar
Бентли Дж. Жемчужины программирования
http://wmate.ifolder.ru/1592404
Керниган Б., Пайк Р. Практика программирования
http://mini-soft.ru/book/tech_prog/index.php
Профессиональное программирование на PHP
http://rapidshare.com/files/60709022/Advanced_PHP5_programming._Schlossnagle__G.rar
Совершенный код" Стива Макконнелла.
http://infanata.ifolder.ru/7067919
http://rapidshare.com/files/120966062/mcConnellCodeComplete.rar.html
К. Ларман. "Применение UML и шаблонов проектирования".
http://www.proklondike.com/file/design_larman_uml_and_patterns.rar
Приемы объектно-ориентированного проектировани. Паттерны проектирования. Авторы: Э.Гаммаб Р.Хелм, Р.Джонсон, Д.Влиссидес
http://rs214.rapidshare.com/files/50075933/priemy_obektnoorientirovannogo_proektirovanija_patterny_proektirovanija.rar
Бентли Дж. Жемчужины программирования
http://wmate.ifolder.ru/1592404
Керниган Б., Пайк Р. Практика программирования
http://mini-soft.ru/book/tech_prog/index.php
+1
Все эти книги по сути, дикий маразм :-/
Нужно садится и делать конкретную задачу (взять где-то, самому себе поставить), и желательно что бы кто-то контролировал и наставлял на путь истинный...
У нас менталитет такой, что без собственных ошибок вообще ничему не научишься.
И фраза "переучивается тяжело" роли не играет, все равно придётся!
Нужно садится и делать конкретную задачу (взять где-то, самому себе поставить), и желательно что бы кто-то контролировал и наставлял на путь истинный...
У нас менталитет такой, что без собственных ошибок вообще ничему не научишься.
И фраза "переучивается тяжело" роли не играет, все равно придётся!
-3
> по сути, дикий маразм
http://ru.wikipedia.org/wiki/Маразм
Вы какой смысл вкладываете в данное слово?
Эти книги систематизируют знания. А как вы собираетесь конкретные задачи бессистемно решать?
http://ru.wikipedia.org/wiki/Маразм
Вы какой смысл вкладываете в данное слово?
Эти книги систематизируют знания. А как вы собираетесь конкретные задачи бессистемно решать?
0
маразм - потеря неких знаний и умений...
Если есть задача, человек развивается под неё, накапливая те самые знания и умения.
Если задачи монотонны, он должен ставить другие - сам себе.
Просто читая, без практики, сильно многому не научишься(для такого нужен хороший склад ума).
Если ты прочитаешь как плыть брассом, сразу брассом ты не поплывёшь, ты должен много, очень много времени потратить на то, что бы научится. Если есть наставник (тренер) - это время сократится в разы.
Систематизация знаний без знаний очень фиговая затея... Прочитав толстую книгу до конца, ты забудешь практически все что было в начале (а это обычна база языка). Лишь после использования прочитанного на практике (не на тестах, в "боевых" условиях) у тебя останутся эти знания, особенно они хорошо отпечатаются в памяти, если они пришли через "грабли" или "шишки" на лбу ;)
Если есть задача, человек развивается под неё, накапливая те самые знания и умения.
Если задачи монотонны, он должен ставить другие - сам себе.
Просто читая, без практики, сильно многому не научишься(для такого нужен хороший склад ума).
Если ты прочитаешь как плыть брассом, сразу брассом ты не поплывёшь, ты должен много, очень много времени потратить на то, что бы научится. Если есть наставник (тренер) - это время сократится в разы.
Систематизация знаний без знаний очень фиговая затея... Прочитав толстую книгу до конца, ты забудешь практически все что было в начале (а это обычна база языка). Лишь после использования прочитанного на практике (не на тестах, в "боевых" условиях) у тебя останутся эти знания, особенно они хорошо отпечатаются в памяти, если они пришли через "грабли" или "шишки" на лбу ;)
-1
Вы такой интересный ) Я-то как раз умею решать конкретную задачу. Да еще и если гуру вокруг сидят. Я говорю о том, что такой подход - бессистемный, неправильный. Потому что код, получающийся при этом, чаще всего похож на кошмарный сон. Потому что не зная базы можно наворотить такое решение, что и индусы рядом не валялись. Работать-то оно будет, да...
У кого это - у "вас" менталитет такой?
У кого это - у "вас" менталитет такой?
0
У нас, у славян ;)
Вы сравнивали свой код теперешний и годичной давности? Различия на лицо. Учился я по многим учебникам, а к нормальному кодингу пришёл сам, постоянно натыкаясь на какие-то грабли. Тем более каждый, абсолютно, пишет все по своему :) Используя только некий "шаблон" программирования, улучшая его или наоборот.
А для систематизации знаний, нужно много всего прочитать, попробовать на практике, а потом пройти какой-то итоговый тест, тогда будет результат :)
Вы сравнивали свой код теперешний и годичной давности? Различия на лицо. Учился я по многим учебникам, а к нормальному кодингу пришёл сам, постоянно натыкаясь на какие-то грабли. Тем более каждый, абсолютно, пишет все по своему :) Используя только некий "шаблон" программирования, улучшая его или наоборот.
А для систематизации знаний, нужно много всего прочитать, попробовать на практике, а потом пройти какой-то итоговый тест, тогда будет результат :)
-1
1. "Код", Чарльз Петцольд. "Для самых маленьких", фундаментальные принципы работы ЭВМ, организация памяти, основы архитектуры процессоров и т.п., буквально на пальцах. Не понять невозможно.
2. "Практика программирования", Брайан Керниган, Роберт Пайк. Принципы и приемы программирования на различных языках высокого уровня.
3. "Философия Java" (Thinking in Java) Брюс Эккель, фундаментальные представления об ООП и Java
4. "Программист-прагматик", Эндрю Хант - обязательна к прочтению для любого практикующего программиста; если придерживаться советов из этой книги, эффективность работы повышается на порядок.
5. Прочее: "Паттерны проектирования." (строго после опыта самостоятельной разработки, иначе многое будет просто не понятно), "Мифический человекомесяц" (управление процессом разработки), "Искусство программирования" (для математиков и фанатиков) и т.п. авторов и книг много и тут уже многое зависит от конкретной области развития и применения.
2. "Практика программирования", Брайан Керниган, Роберт Пайк. Принципы и приемы программирования на различных языках высокого уровня.
3. "Философия Java" (Thinking in Java) Брюс Эккель, фундаментальные представления об ООП и Java
4. "Программист-прагматик", Эндрю Хант - обязательна к прочтению для любого практикующего программиста; если придерживаться советов из этой книги, эффективность работы повышается на порядок.
5. Прочее: "Паттерны проектирования." (строго после опыта самостоятельной разработки, иначе многое будет просто не понятно), "Мифический человекомесяц" (управление процессом разработки), "Искусство программирования" (для математиков и фанатиков) и т.п. авторов и книг много и тут уже многое зависит от конкретной области развития и применения.
+1
Хорошая тема, записал выписал себе несколько книжек из комментов выше.
Сам ничего не добавлю - все что хотел написать, написали до меня.
p.s. Забавно, что у меня порядка 40% моих книг от издательства Питер, и 30% от издательства Вильямс. Хорошие книги переводят =)
Сам ничего не добавлю - все что хотел написать, написали до меня.
p.s. Забавно, что у меня порядка 40% моих книг от издательства Питер, и 30% от издательства Вильямс. Хорошие книги переводят =)
0
Нужно обязательно прочитать:
Мартин Фаулер "Рефакторинг существующего кода"
Мартин Фаулер "Рефакторинг существующего кода"
0
походу кода еще нет
0
развивая тему Gof - Архитектура корпоративных программных приложений
++Очень полезная книга и ответ многим на вопрос - Есть ли жизнь за фреймворками
++Очень полезная книга и ответ многим на вопрос - Есть ли жизнь за фреймворками
0
Лично мое мнение, надо начать, а нужную литературу прочтешь походу дела.
0
UFO just landed and posted this here
По-моему, первой книгой на полке начинающего программиста на объектно-ориентированных языках должен стоять учебник логики. Я рекомендую учебник Ивлева; еще есть пособие М.И. Панова, но его не найти.
После некоторого штудирования логики можно брать какую-нибудь умную художественную литературу, потому что такой наборчик:
>>Движусь, в основном, в сторону PHP и Adobe Flex,
>>но параллельно приходится знать и Javascript и
>>объектно-ориентированные базы данных и C++
>>и многое другое.
создает дилетанта во всех этих... ммм... отделах программирования :)
Классика С++ — это Страуструп (http://lib.ru/CPPHB/) и Герберт Шилдт. "Классика" PHP — рефман к нему и советы специалистов на форумах, а книг по нему великое множество, наверное, дело вкуса. А если ориентироваться по издательствам, как Unknown007, то зе бест — это О'Рейли :)
В общем, мое мнение таково — главное определиться, что писать и на чем писать и не делать все одному. Диверсификация рулит :)
После некоторого штудирования логики можно брать какую-нибудь умную художественную литературу, потому что такой наборчик:
>>Движусь, в основном, в сторону PHP и Adobe Flex,
>>но параллельно приходится знать и Javascript и
>>объектно-ориентированные базы данных и C++
>>и многое другое.
создает дилетанта во всех этих... ммм... отделах программирования :)
Классика С++ — это Страуструп (http://lib.ru/CPPHB/) и Герберт Шилдт. "Классика" PHP — рефман к нему и советы специалистов на форумах, а книг по нему великое множество, наверное, дело вкуса. А если ориентироваться по издательствам, как Unknown007, то зе бест — это О'Рейли :)
В общем, мое мнение таково — главное определиться, что писать и на чем писать и не делать все одному. Диверсификация рулит :)
0
UFO just landed and posted this here
У меня другой вопрос. Свою сферу я описал довольно четко в топике. Вопрос о базовых, основных для любого из перечисленных вами направлений, знаний.
-1
UFO just landed and posted this here
пхп, флекс, ообд. Все это дело - кроссплатформенное.
0
UFO just landed and posted this here
По ООП есть фундаментальный труд Бертрана Мейера "Объектно-ориентированное конструирование программных систем". Редкий пример того, как в книге могут быть полезными все 1200 страниц (второй такой пример - "Совершенный Код" - она ненамного меньше по объему). Целиком я ее пока не осилил, но некоторую степень просветления уже обрел :)
0
Может быть здесь:
http://anatolix.naumen.ru/Books/Index и здесь:
http://www.parser.ru/links/ (в конце страницы) найдёте что-нибудь интересное для себя.
http://anatolix.naumen.ru/Books/Index и здесь:
http://www.parser.ru/links/ (в конце страницы) найдёте что-нибудь интересное для себя.
0
Лучше труда Фаулера "Рефакторинг" не видел ничего. Очень легко читается.
Хотя и GoF про паттерны тоже стоит почитать.
Хотя и GoF про паттерны тоже стоит почитать.
0
На хабре есть тематический блог про книги: Читальный зал. Будет правильно перенести топик туда.
А по поводу книг ничего дельного посоветовать не могу - все что читал советовали выше. Даже выписал себе пару книжек на будущее.
А по поводу книг ничего дельного посоветовать не могу - все что читал советовали выше. Даже выписал себе пару книжек на будущее.
0
МОЩНЫЙ_ФУНДАМЕНТАЛИЗМ: Иан Грэхем, Объектно-ориентированные методы. Принципы и практика, 3-е издание, изд.Вильямс, 2004
880 стр., с ил.; ISBN 5-8459-0438-2, 0-201-61913-X; формат 70x100/16; твердый переплет, 1 кв..
http://www.williamspublishing.com/Books/5-8459-0438-2.html
ГИБКИЕ_И_ОБОСНОВАННЫЕ_РЕШЕНИЯ: Мартин Фаулер, Архитектура корпоративных программных приложений (Addison-Wesley Signature Series), изд.Вильямс, 2008
544 стр., с ил.; ISBN 978-5-8459-0579-6, 0-321-12742-0; формат 70x100/16; твердый переплет, 3 кв.; Вильямс.
http://www.williamspublishing.com/Books/5-8459-0579-6.html
КРАСИВЫЕ_НАХОДКИ: GoF уже называли;
СОПРОВОЖДЕНИЕ: по рефакторингу ООП-кода неплохие книжки у Фаулера, Кириевски и т.д..
880 стр., с ил.; ISBN 5-8459-0438-2, 0-201-61913-X; формат 70x100/16; твердый переплет, 1 кв..
http://www.williamspublishing.com/Books/5-8459-0438-2.html
ГИБКИЕ_И_ОБОСНОВАННЫЕ_РЕШЕНИЯ: Мартин Фаулер, Архитектура корпоративных программных приложений (Addison-Wesley Signature Series), изд.Вильямс, 2008
544 стр., с ил.; ISBN 978-5-8459-0579-6, 0-321-12742-0; формат 70x100/16; твердый переплет, 3 кв.; Вильямс.
http://www.williamspublishing.com/Books/5-8459-0579-6.html
КРАСИВЫЕ_НАХОДКИ: GoF уже называли;
СОПРОВОЖДЕНИЕ: по рефакторингу ООП-кода неплохие книжки у Фаулера, Кириевски и т.д..
0
1. Гради Буч - "Объектно Ориентированный Анализ и Проектирование" Обязательно читать! До того, как брать в руки что-либо другое!
2. После Буча можно осваивать практику, определяясь в со сферой. Если язык Java - То обязательно Брюс Эккель Thinking in Java. Если С++ - Страуструп
3. В любой последовательности "Рефакторинг" Фаулера (см выше), "Введение в шаблоны проектирования" Гамма-Хелм-Джонсон-Влиссидес (см выше)
4. Очень неплохая книга Д. Кериевски "Рефакторинг с использованием шаблонов".
Ларман. "Применение UML и шаблонов проектирования" мне лично не очень понравился. Даже если откинуть субьективную оценку отвратительного перевода на русский (каюсь, читал не на языке Шекспира), эта книга никак не может претендовать на место в библиотеке начинающего ООП программиста.
В ней гораздо больше материала посвящено процессам разработки коммерческого ПО, нежели философским или прикладным аспектам ООП. Я бы рекомендовал ее как хороший материал для изучения одного из (!) способов организации процесса разрабоки.
2. После Буча можно осваивать практику, определяясь в со сферой. Если язык Java - То обязательно Брюс Эккель Thinking in Java. Если С++ - Страуструп
3. В любой последовательности "Рефакторинг" Фаулера (см выше), "Введение в шаблоны проектирования" Гамма-Хелм-Джонсон-Влиссидес (см выше)
4. Очень неплохая книга Д. Кериевски "Рефакторинг с использованием шаблонов".
Ларман. "Применение UML и шаблонов проектирования" мне лично не очень понравился. Даже если откинуть субьективную оценку отвратительного перевода на русский (каюсь, читал не на языке Шекспира), эта книга никак не может претендовать на место в библиотеке начинающего ООП программиста.
В ней гораздо больше материала посвящено процессам разработки коммерческого ПО, нежели философским или прикладным аспектам ООП. Я бы рекомендовал ее как хороший материал для изучения одного из (!) способов организации процесса разрабоки.
+1
Тут еще не так давно вышла "Объектно-ориентированное программирование на PHP" Максима Кузнецова и Игоря Симдянова, издательство bhv. У меня в голове она кое-что упорядочила. В ней нет основ PHP, а построена приблизительно так:
1. ООП в PHP теория.
2. Создание ООП фреймворка.
3. Создание ОО CMS.
1. ООП в PHP теория.
2. Создание ООП фреймворка.
3. Создание ОО CMS.
+1
Прежде чем учить ООП я бы посоветовал сначала составить свое мнение по следующим вопросам:
1) Автоматное программирование
2) Функциональное программирование
3) Логическое программирование
4) Процедурное программирование
5) Структурное программирование
6) вот тут ООП!
7) Прототипное программирование
8) Аспектно-ориентированное программирование
При изучении каждого пункта посмотреть на пару типичных представителей языков программирования (многие знают, что JavaScript - прототипно-ориентированный?).
Вот тогда вас можно будет назвать начинающим программистом. И можно будет продолжать развиваться дальше.
Искусство программирования - это не знание в совершенстве стандартных библиотек C#, а нечто большее. 90% наших ВУЗов почему-то считают, что если человек знает 3 признака ООП и написал 10 лабораторных, то он - уже программист. И самое плохое в этом, что человек тоже так начинает считать. А для того чтобы программировать профессионально надо одновременно использовать все ключевые идеи из всех вышеперечисленных областей.
Автоматное программирование дает простоту алгоритмов, функциональное - надежность, процедурное - понятность, структурное - структуру кода, (в этом месте на самом деле все необходимое для программирования уже есть, но мы идем дальше) ООП добавляет еще архитектуру и улучшает структуру и зоны ответственности, аспектное - еще большая понятность и еще большая структурированность.
Видно, что не зная ООП уже можно быть хорошим программистом. А вот зная только ООП - нельзя. ООП - это продолжение теории программирования, а не начало. Кстати и не конец.
1) Автоматное программирование
2) Функциональное программирование
3) Логическое программирование
4) Процедурное программирование
5) Структурное программирование
6) вот тут ООП!
7) Прототипное программирование
8) Аспектно-ориентированное программирование
При изучении каждого пункта посмотреть на пару типичных представителей языков программирования (многие знают, что JavaScript - прототипно-ориентированный?).
Вот тогда вас можно будет назвать начинающим программистом. И можно будет продолжать развиваться дальше.
Искусство программирования - это не знание в совершенстве стандартных библиотек C#, а нечто большее. 90% наших ВУЗов почему-то считают, что если человек знает 3 признака ООП и написал 10 лабораторных, то он - уже программист. И самое плохое в этом, что человек тоже так начинает считать. А для того чтобы программировать профессионально надо одновременно использовать все ключевые идеи из всех вышеперечисленных областей.
Автоматное программирование дает простоту алгоритмов, функциональное - надежность, процедурное - понятность, структурное - структуру кода, (в этом месте на самом деле все необходимое для программирования уже есть, но мы идем дальше) ООП добавляет еще архитектуру и улучшает структуру и зоны ответственности, аспектное - еще большая понятность и еще большая структурированность.
Видно, что не зная ООП уже можно быть хорошим программистом. А вот зная только ООП - нельзя. ООП - это продолжение теории программирования, а не начало. Кстати и не конец.
+1
>Решил с этим бороться и начать изучать все заново, по порядку.
Лично я много раз пробовал, это заблуждение. Для того что бы писать хороший код надо писать много кода и много думать.
>Знаю, что здесь полно опытных людей, которые могут посоветовать с чего начинать и в каком порядке учить.
Я сомневаюсь что это возможно, порядок только вы можете выработать для себя, почитайте отзывы в интернете и решите что вам стоит почитать. А лучше вообще пишите больше кода.
>Движусь, в основном, в сторону PHP ...
Мне кажется не лучший язык для изучения ООП. Может, например, попробуете Java?
Лично я много раз пробовал, это заблуждение. Для того что бы писать хороший код надо писать много кода и много думать.
>Знаю, что здесь полно опытных людей, которые могут посоветовать с чего начинать и в каком порядке учить.
Я сомневаюсь что это возможно, порядок только вы можете выработать для себя, почитайте отзывы в интернете и решите что вам стоит почитать. А лучше вообще пишите больше кода.
>Движусь, в основном, в сторону PHP ...
Мне кажется не лучший язык для изучения ООП. Может, например, попробуете Java?
0
Поддерживаю Java. Хотя ООП-подход в веб программировании практически не используется. ООП хорош для написания middleware и бизнес-логики. Из ООП фреймворков для веба можно назвать разве что Java Server Faces, и то ООП там используется в неявной форме.
Под ООП я понимаю не "язык с объектами", а метод программирования, при котором используется наследование, инкапсуляция и полиморфизм.
Под ООП я понимаю не "язык с объектами", а метод программирования, при котором используется наследование, инкапсуляция и полиморфизм.
-1
Попробуйте SICP. Есть на русском, есть английские видеолекции. Это не об ООП (хотя есть и это), а вообще о том, как надо программировать.
Что касается ООП, тут предложить можно много. Думаю, что стоит посмотреть на Smalltalk, Self, или вот semka рассказывает про Io. Также подойдёт java script. Со статической типизацией - есть мейнстрим языки - Java, C#.
Почитать будет, когда будете пытаться делать что то на одном из этих языков. Общие принципы для С++-like языков есть в книжках Буча, GoF, Фаулера.
Если нужно больше теории, можно почитать Карделли, у него есть статьи по теории объектов.
Просто ООП - вещь не совсем точная: мало того, что он в разных языках разный, так и каждый под ним понимает что-то своё.
Из принципов, относящихся именно к ООП, стоит почитать про LSP.
И напоследок - лучше сначала почитать про программирование вообще, это неплохо сделано в SICP.
Что касается ООП, тут предложить можно много. Думаю, что стоит посмотреть на Smalltalk, Self, или вот semka рассказывает про Io. Также подойдёт java script. Со статической типизацией - есть мейнстрим языки - Java, C#.
Почитать будет, когда будете пытаться делать что то на одном из этих языков. Общие принципы для С++-like языков есть в книжках Буча, GoF, Фаулера.
Если нужно больше теории, можно почитать Карделли, у него есть статьи по теории объектов.
Просто ООП - вещь не совсем точная: мало того, что он в разных языках разный, так и каждый под ним понимает что-то своё.
Из принципов, относящихся именно к ООП, стоит почитать про LSP.
И напоследок - лучше сначала почитать про программирование вообще, это неплохо сделано в SICP.
+1
Sign up to leave a comment.
Библиотека начинающего ООП программиста — ваши советы