LINUX.ORG.RU
ФорумTalks

Что лучше учить?

 ,


2

2

Паттерны проектирования с риском вывихнуть мозг от шаблонов абсратной фабрики синглтонов, или нормальную библиотеку например qt в которой уже все написано (гуи, сеть, СУБД и т.д.) и грубо говоря «можно петь не зная нот», как в караоке.

С чисто практической точки зрения без лишних холиваров типа о пользе высшего образования.

Перемещено leave из development



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

нормальную библиотеку
qt

ахах

в которой уже все написано

ахахахахаха

можно петь не зная нот

ахахахахахахахахахаха

Шаг влево, шаг вправо от ограждений формошлёпства — отстрел ноги, огорчение и поход учить нотную грамоту.

deep-purple ★★★★★
()

Первое тебе точно понадобится, второе не факт. Ответ очевиден.

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

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

Если вы боитесь что-то учить, чтобы не «вывернуть мозг», попробуйте 1С, там таких бездарей любят.

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

Просто чтаешь книгу «Qt 5.10. Профессиональное программирование на C++». Отличный вариант изучения С++ прагматичный и достаточно простой. Но мне говорят, что это плохой подход. Вот и хочу выяснить почему.

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

А шаблоны разве не уже протухли? Смотри, что пишут:

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

Например, паттерн Стратегия в современных языках можно реализовать простой анонимной (лямбда) функцией.»

Хочу преподу про это сказать на занятиях, но сначала послушаю местных гуру.

Liz812
() автор топика

А паттерны по-твоему только для «гуи, сеть, СУБД и т.д.» нужны? Или может быть ты хочешь стать qt-кодером и писать невменяемую лапшу?

seiken ★★★★★
()

Без разницы, что учить. Лишь бы было интересно.

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

Например, паттерн Стратегия в современных языках можно реализовать простой анонимной (лямбда) функцией.»

И все? А как быть с остальными паттернами?

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

В питоне никаких паттернов в книгах не описывали, а в С++ все носятся с ними как дураки с писанной торбой. Хотя придумали их древние люди. Зачем сейчас учиться добывать огонь, если у всех есть зажигали?

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

В питоне никаких паттернов в книгах не описывали

А что, к каждому ЯП нужно непременно книгу выпускать про паттерны?

seiken ★★★★★
()
Ответ на: удаленный комментарий

Примеры:

«Визитер» - заменяется generic функциями. «Абстрактная фабрика», «Одиночка» - метаобъекты, замыкания. «Строитель» - мультиметоды.

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

Потому, что нужно учиться программировать, а не учить Qt и даже не C++.

Например, паттерн Стратегия в современных языках можно реализовать простой анонимной (лямбда) функцией.»

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

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

WitcherGeralt ★★
()

На мой взгляд шаблоны проектирования учить толку немного, если нет опыта программирования и опыта проектирования. Лучше отложить до лучших времен. А перед изучением Qt неплохо бы подучить сам язык C++ по хорошей книге. И наконец, на ЛОРе сильно вряд ли можно знания получить, хотя вот благодаря ЛОРу я заинтересовался языком Rust в свое время, что плюс.

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

Видишь, паттерны — это ещё и универсальный язык для разработчиков. Когда все знают названия концепций, разрабам с разным бэкграундом не придётся друг дружке на пальцах банальные вещи объяснять. Да и ты, не зная шаблонов проектирования, одни и те же вещи в разных языках и библиотеках сразу не признаешь.

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

Вот раньше не было в С++ анонимных функций, деды придумали способ как это обойти. Кому сейчас это надо изучать? А на занятиях усердно про это рассказывают. Вот я и говорю, что нужно просто перейти на следующий уровень и пользоваться современными подходами. На чистом С++ кто сейчас пишет? Поэтому вместо С++ нужно изучать qt или что-то там еще такое же высокоуровневое, а не вывихивать себе мозги шаблонами на полэкрана.

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

«Визитер» - заменяется generic функциями. «Абстрактная фабрика», «Одиночка» - метаобъекты, замыкания. «Строитель» - мультиметоды.

Если говорить прямо, они не заменяются, а реализуются и этими способами.

Паттерны давно пора рассматривать как способ решить задачу Х, а не как копипасту кода.

Шаблоны проектирования нужны для формирования образа мыслей и их освоение нужно для формирования навыков решения определенного класса задач.

Сами по себе паттерны как таковые в виде «под копирку» хоть и катят иногда, но с ростом разработчика обычно отмирают. Дальше ты начинаешь использовать опыт по необходимости. Но изучение и применение этих паттернов - это по факту наработка опыта и формирование навыков решения задач.

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

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

Если говорить прямо, они не заменяются, а реализуются и этими способами.

Т.е. ты хочешь сказать, что «стратегия» - это не костыль выпавший из С++, а какой то сам по себе ценный артефакт?

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

Все паттерны — ценные артефакты. Ценные тем же, чем ценны для индивидуума посещения детского сада, подготовительно группы, школы и универы — сосализация. А потом на галеру — грести пока руки не отсохнут. Ну а чо? Все же так живут.

https://www.youtube.com/watch?v=j800SVeiS5I

deep-purple ★★★★★
()

ли нормальную библиотеку например qt

Свяжешься с Qt – навечно останешься формошлепом. Лучше уж js-макакой.

Im_not_a_robot ★★★★★
()
Ответ на: комментарий от deep-purple

Точно так же — лям туда, лям сюда, и вот она пришла — бда.

Ну да, это «круто», когда реализация заменяет концепцию. Можно было еще заявить, что изучать различные парадигмы программирования не нужно, ведь «современные ЯП» совмещают элементы и того и другого. И достаточно просто выучить самый последний и крутой ЯП, и не забивать себе голову ООП, ФП и прочим нафталином. Qt, видимо, тоже предполагается из этого «актуального» ЯП вызывать.

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

Изучать нужно то, что пригодится. Давайте еще lisp изучать или fortran, а потом работать уборщицей в Макдоналс, когда все остальные пишут на java за очень большую зарплату.

Liz812
() автор топика
Ответ на: комментарий от deep-purple

QML? Это какой-то маркап плюс JS? Что, теперь это типа state of the art?

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

Современные подходы не отменяют фундаментальных знаний.

Ты же сама меня не так давно за математику попячить пыталась. Типа как я смогу заниматься машинным обучением, если даже терминологию не осилю. Мне про ML спорить было не интересно, не стал, ибо не мой домен, тем не менее был успешный опыт, и я не настолько тупой, каким ты меня пыталась выставить. Но, будь мне интересно, я мог бы использовать точно такой же аргумент: математика не нужна, алгоритмы не нужны, у меня есть pytorch, ботаны за меня уже всё сделали, а я могу вообще половину мозга себе удалить, и заниматься ML это мне никак не помешает. Причём в прикладно программировании математика далеко не так важна как непосредственно программистский фундамент.

Ты определись, таки нужны фундаментальные знания или нет.

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

Изучать нужно то, что пригодится. Давайте еще lisp изучать или fortran, а потом работать уборщицей в Макдоналс, когда все остальные пишут на java за очень большую зарплату.

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

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

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

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

интересующая предметная область

Если я буду в аэрокосмической отрасли работать, мне ракеты изучать?

Liz812
() автор топика

абсратной

Шикарно. Буду использовать.

Хочу преподу про это сказать на занятиях, но сначала послушаю местных гуру.

Да-да, обязательно ему перескажи всё, что тут напишут прыщезадро^W гуру.

Люди то работают?

Где, тут???!! Тут кучкуются навсегда оставшиеся школьниками красноглазики с комплексом илитарности. Работать они не умеют в принципе.

с умным человеком тут познакомится хочу.

Умный человек от тебя, не умеющей в тся/ться, сбежит быстрее, чем плазма падает.

все остальные пишут на java за очень большую зарплату

Java-кодер не умеющий в C++ как правило очень печальное зрелище. И зарплата его тоже.

Если я буду в аэрокосмической отрасли работать, мне ракеты изучать?

Вообще-то да, не мешало бы. А ты думала, технику минета изучать надо?

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

Если я буду в аэрокосмической отрасли работать, мне ракеты изучать?

Не знаю. Посмотри соответствующие программы обучения. Но в нормальном ВУЗе обычно не надрачивают только на использование конкретных инструментов. Существенная часть программы обычно теория, которая применяется далеко не на каждой работе даже по специальности. Ты заранее не можешь с абсолютной точностью предсказать, что тебе потребуется знать на твоей будущей работе. Например, какой-нибудь конструктивный матан может казаться бесполезным грузом в памяти 20 лет после окончания ВУЗа, и вдруг, через 20 лет, оказаться нужным лично тебе.

seiken ★★★★★
()

Что лучше учить?

Давай начнём с того что тут нечего учить. О паттернах достаточно прочитать их список, как выглядят, плюсы и минусы. Можно и не читать, но от этого они в твоём коде никуда не денутся. Qt тоже не нужно учить - читаешь документацию по мере надобности. А так, учить надо всё.

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

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

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

«Структуры данных и алгоритмы» Ахо, Ульман, Хопкрофт

«Алгоритмы. Введение в разработку и анализ» Ананий Левитин

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

Хочу преподу про это сказать на занятиях

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

LongLiveUbuntu ★★★★★
()

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

olelookoe ★★★
()

Учи что-нибудь, но досконально.

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