LINUX.ORG.RU

Обязательность изучения ООП на java и шаблонов проектирования!

 , ,


0

2

Люто приветствую! Я примерно уже год программирую на Си, а также пишу gui на GTK. Из литературы, кроме книжек по Си, читаю «Фундаментальные алгоритмы на Си» и «Практика программирования» от Брайна Кернигана. Вообщем, решил двигаться дальше. Знакомые посоветовали изучать ООП на Java, а после книгу GOF-a. Якобы, шаблоны помогают писать более правильный, грамотный код. А ООП знать необходимо, парадима ведь популярная. Есть еще дядька, родной, тоже программист. Он советовал изучать какой-нибудь скриптовый язык, типа Perl и читать «Искусство программирования на Си». Вот, сижу и разрываюсь. Все вместе изучать продуктивно не получится. Как думаете, какой совет лучше?



Последнее исправление: Na_linuxe (всего исправлений: 2)

Как думаете, какой совет лучше?

Изучай ООП на Perl, одновременно читая «Искусство программирования на Си».

rskeyf
()

Очень глупо изучать язык ради изучения языка. Нужно исходить из задачи. Для чего тебе язык программирования?

mono ★★★★★
()
Ответ на: комментарий от mono

Очень глупо изучать язык ради изучения языка.

...если ты кодомакака.

Debasher ★★★★★
()
Ответ на: комментарий от Na_linuxe

Может, имеет смысл тогда почитать теорию множеств, теорию сложности вычислений, шаблоны проектирования?..

Adonai ★★★
()
Ответ на: комментарий от rskeyf

SICP читал, книжка годная, но большую часть знаний было получено на пратике, а так книжка хорошая!

Na_linuxe
() автор топика
Ответ на: комментарий от Adonai

Большая часть шаблонов проектирования завязаны на Java/C#/C++. Поэтому советовали изучать именно Java, типа ъ-ООП, шаблоны нормально поймешь на примерах!

Na_linuxe
() автор топика
Ответ на: комментарий от Na_linuxe

О-кей, почему бы тебе тогда не сделать на QtAbstractItemModel табличку, выводящую логи, сортированные по юнитам systemd из journalctl? Причешешь, авось и что удобное получится?

И реальный пример, и шаблону MVC научишься.

Adonai ★★★
()
Последнее исправление: Adonai (всего исправлений: 2)
Ответ на: комментарий от generator

В этом треде не хватает анонимуса с пастой про хаскель :)

Или Анонимуса-регистранта с рассуждениями о машине Тьюринга. :)

sleepflint ★★★
()
Ответ на: комментарий от mono

Очень глупо изучать язык ради изучения языка

половина форума негодует

umren ★★★★★
()
Ответ на: комментарий от stevejobs

сколько видел человек, которые учат Хаскель исходя из задачи? :3

Все так учат. Задача — выделиться среди сверстников.

anonymous
()
Ответ на: комментарий от anonymous

По той же причине, кстати, читают те говнокнижки, которые ты в говнотолксах насобирал.

anonymous
()
Ответ на: комментарий от Na_linuxe

Тогда изучай не языки, а, собственно, парадигмы. По ООП читай Б.Мейера и Г.Буча. Паттерны читай ПОТОМ, когда опыт будет.

Почитай «общие» книжки в духе «Искусства программирования для Unix» Реймонда или там «Программиста-прагматика».

anonymous
()

Завтра ищешь в интернете книжку Categories for the Working Mathematician. По..й если ничего не поймешь. Затем идешь на haskell.org и изучаешь стандартную библиотеку от корки до корки. Потом зубришь, именно, с..а, вызубриваешь определения языка и стандартных библиотек - The Haskell 2010 Report, чтобы от зубов отскакивало. Когда напишешь свой первый катаморфизм, по пути изучив теорию типов на уровне TaPL-а, скачиваешь и изучаешь любую хаскеллевскую библиотеку с первоклассными функторами и морфизмами, рекомендую category-extras или recursion-schemes. Как переделаешь стандартную прелюдию, чтобы по крайней мере все рекурсивные схемы были выражены через комонады, можешь идти дальше - тебя ждет увлекательный мир теории категорий. Катаморфизмы, параморфизмы, зигоморфизмы, хистоморфизмы, препроморфизмы, анаморфизмы, апоморфизмы, футуморфизмы, постпроморфизмы, хиломорфизмы, крономорфизмы, синкрономорфизмы, экзоморфизмы, метаморфизмы, динаморфизмы алгебра и коалгебра Калвина Элгота наконец. Успех хиккующих вы..ков / просто быдлокодеров типа рейфага или сисярп/джава-девелоперов, которые работают в Люксофте не будет тебя волновать и уже через пол года ты будешь получать такие гранты, что любой профессор будет течь при одном упоминании списка твоих публикаций.

anonymous
()
Ответ на: комментарий от mono

А как выбирать язык для решения задачи? Ориентируясь на мнения местных аналитиков?

trex6 ★★★★★
()

«Штудировать GOF» это такая же отмазка, как и «Прочитай всего Кнута, иначе нипрограмист»

GblGbl ★★★★★
()

изучать ООП на Java, а после книгу GOF-a.

книгу GOFа для Java не нужно вообще. Для Java есть свои собственные книжки про шаблоны проектирования

А ООП знать необходимо, парадима ведь популярная

«популярно» - недостаточный аргумент

конкретно за Java и C# есть куча других, достаточных аргументов

ООП не нужно, Java и C# - нужно

какой-нибудь скриптовый язык,

типа Perl

не нужно, устаревшая технология

и читать «Искусство программирования на Си».

не нужно, устаревшая технология

stevejobs ★★★★☆
()
Ответ на: комментарий от GblGbl

в отличие от Кнута, GOF читается за пару вечеров

плюс, именно GOF не нужен, т.к. C++ - устаревшая технология

нужна специализированная книга про Java или C#

например, «С.Стелтинг, О.Маассен - Применение шаблонов Java»

stevejobs ★★★★☆
()
Ответ на: комментарий от Na_linuxe

охота изучать именно основы, парадигмы!

Никлаус Вирт. «Алгоритмы + структуры данных = программы»

anonymous
()
Ответ на: комментарий от mono

Очень глупо изучать язык ради изучения языка. Нужно исходить из задачи. Для чего тебе язык программирования?

+1, есть задача, думаешь как решить, выбираешь язык и платформу (зачастую правда обычные плюсики или жаба с сисярпом да петхоном - годятся)

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от Na_linuxe

Учи С, потом С++, потом Qt и java, потом уже для познания всякие питоны, лиспы. А вот за хацкел даже не берись!

comp00 ★★★★
()
Ответ на: комментарий от I-Love-Microsoft

Чтобы выбрать язык и платформу, надо сначала изучить несколько. Ваш Кэп

yoghurt ★★★★★
()

Оба хуже.

GOF — четыре жулика, которые отлично знают, как писать книжки, но вот насчёт программирования я бы не был так уверен. После прочтения у людей начинается болезнь «мы применили двадцать ваших паттернов, но вот как применить остальные — не понимаем, помогите, пожалуйста».

Perl — инструмент для админа, программисту он не нужен. Когда-то он поднялся на том, что программисты и админы не были разными категориями.

ООП — это замечательная парадигма, основанная на том, что всё на свете может быть описано как животное или геометрическая фигура. Нет, для получения зряплаты ООП, конечно, нужно, но более, в общем-то, низачем.

Miguel ★★★★★
()
Ответ на: комментарий от mono

А почему глупо? Разные языки лучше подходят для решения определенной области задач, предоставляя программисту разные парадигмы, модели и инструменты для реализации программ. Знать разные подходы и техники полезно, так как в универсальных языках часто таких инструментов нет и их реализуют собственными силами

Хотя изучать перл... Программы ведь на нем совсем не читабельны, почему не питон для автоматизирования каких либо рутинных задач?

sotlef
()

Якобы, шаблоны помогают писать более правильный, грамотный код.

Если это те шаблоны, которые паттерны, а не те, которые дженерики, то врут. Необходимо сначала научиться писать правильный, грамотный код, а потом изучать паттерны.

ya-betmen ★★★★★
()
Ответ на: комментарий от Miguel

А что тогда посоветуешь делать, а? Мне нужно совершенствоваться, практика конечно хорошо, но теория тоже нужна. А при постоянном кодописании есть риск окончательно деградировать в Code Monkey!

Na_linuxe
() автор топика
Ответ на: комментарий от trex6

ъ-ООП не существует.

lim x -> ъ ООП(x) - ФП(x) = 0

anonymous
()

Сейчас сюда набигут тролли, диванные теоретики, доморощенные гуру, форумные трепачи, невменяемые адепты маргинальщины, фрики, школьники, хипстеры, петросяны, IT-эзотерики, IT-шарлатаны, IT-небыдло. Скажут тебе, что ты жалкий быдло-monkey-coder, а паттерны и ООП — баззворды и нинужны. Что надо читать SICP, HtDP, TAPL, LoL, PCL, OL, Categories for the Working Mathematitian. Что надо учить LISP, Haskell, Smalltalk, Agda, Epigram, Coq и теоркат.

Хотя... WAIT, OH SHI~

anonymous
()
Ответ на: комментарий от Na_linuxe

А чем оправдано изучение LISP, Haskell

Прочищает мозги. Но, разумеется, не всем. Только тем, кто воспринимает концепции, стоящими за этими языками, а не становится фанбоем этих языков.

Smalltalk

Собственно, ничего особенного. Современный Smalltalk - это Ruby.

Agda, Epigram, Coq

Хз, не интересовался.

// другой анон

anonymous
()
Ответ на: комментарий от Na_linuxe

А чем оправдано изучение LISP, Haskell, Smalltalk, Agda, Epigram, Coq?

Прикладной пользы от них никакой, зато позволяют смотреть на всех, как на говно.

Вот представь, подходит к тебе начальник с утречка в понедельник, да спрашивает, мол, где обещанный код. А ты ему такой с вертушки про зигохистоморфные препроморфизмы, топосы Гротендика, иерархию Хомского да перцептроны Минского. И смотришь на него, как на говно. Начальник покраснеет, побледнеет, задышит тяжко, но ни слова не скажет и возвратится, шатаясь, в свой кабинет. Сеньоры полопаются от зависти, жуниоры притихнут в благоговении, а девки так просто потекут.

anonymous
()
Ответ на: комментарий от Na_linuxe

Эх, значит liso что-то вроде средство повышения своего ЧСВ в среде программистов?

LISP? Естественно. Не будь наивным, — другого назначения у языка 50-летней давности в XXI веке быть не может.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.