LINUX.ORG.RU

Нормальная ли система обучения?

 ,


1

4

Я немного знаю C++ (что такое класы, абстракция, инкапсуляция, массивы понимаю). Будет-ли нормально если я с этими небольшими знаниями начну изучать Qt, а потом уже потихоньку читать Бьерна Страуструпа, Лафоре, и т.д?

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

Я хочу быть программистом. Наверное больше системным теперь, теперь речь не о Qt. До ваших комментариев думал что мое изучение с++ в любом случае в конце-концов дойдет до GUI и останется на GUI

Ну и я не знаю с чего начать. А мнения разные и хрен поймешь с чего начать.

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

Я ламер, объясните мне что-к чему в этом функциональном программировании?

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

Во-вторых, это сопутствующие плюшки, которые вытекают из того, что язык умеет работать с абстракциями и сущностями очень высоких порядков, в отличии от тех же низкоуровневых крестов (которые вообще ничего не умеют). Например, это параллелизм из коробки (как в том же хачкеле, я уже не говорю про Erlang), это редукция вычислений (благодаря ленивости кода и/или данных), это удобство тестирования, профилирования и отладки.

В-третьих, и это самое главное, это возможность декомпозиции программной модели на части, позволяющие помимо построения алгоритма, проводить полное и формальное доказательство любой его части, за счёт чего на порядок возрастает надёжность кода. Лично для меня это на первом месте.

И да, самое главное. Я не говорю, что функциональщину стоит пихать куда только можно, это было бы таким же глупым, как пихать во все дыры С++. Инструмент выбирается под задачу, а не наоборот. Вот только что, у крестов, на самом деле, нет своей ниши, в любой области его можно заменить намного более подходящим инструментом. Единственное, для чего он годится: поддержка legacy.

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

Наверное больше системным теперь, теперь речь не о Qt.

Что Вы понимаете под системным программированием?

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

Няшной сишечки хватит за глаза. А этого косоглазого ублюдка (С++) советую даже не касаться — перепачкаетесь.

разработка ОС

Советую ознакомиться с языками ассемблера. Не обязательно, но крайне желательно. Ну про архитектуру я уже писал.

mix_mix ★★★★★ ()

Почему я не люблю С++

Вброшу ещё

1) Не может в управление памятью
2) Не может в LALR грамматику
3) Как следствие, не может в человеческий синтаксис
4) Не может в денотационную семантику
5) Не может в настоящие макросы (с темплейтами отсос - не могут в квазицитирование)
6) Следствие - не может в человеческий полиморфизм (не говоря про higher-order), только убогое кодовысерание.
7) Не может в referential transparency
8) Linear typing
... и остальные миллиарды отсосов

Зато может в:
1) Нетипизированный секс с указателями
2) Аппликативный порядок
3) УТЕЧКИ УТЕЧКИ УТЕЧКИ
4) Зловонную кучу Стандартов не реализованных в полном объеме ни одним компилятором
5) Стандарты наполовину состоят из undefined behavior и implementation-defined
6) Следовательно, миллиард практически не диагностируемых «приятных» неожиданностей.
etc.

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

А если мне приспичит сделать красивую программу, но с достаточной интеграцией в систему? С++ подойдет.

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

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

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

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

Что такое тян? Не в первый раз это дурацкое слово вижу.

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

А если мне приспичит сделать красивую программу, но с достаточной интеграцией в систему?

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

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

Функциональщина вообще противоестественна. Сложно найти что-то, настолько далекое от реального железа. Ты все таки обязательно выучи Verilog, тогда точно поймешь, насколько уродлива, непрактична и бесконечно далека от реальности вся эта матанистая чушь.

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

Что такое тян?

ちゃん — «уменьшительный» именной суффикс. В простонародье отребье так почему-то всех девушек называет.

mix_mix ★★★★★ ()

А как можно на практике применять C, ассемблер и т.д? В open source податься?

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

Любой нормальный человек бы сделал ядро на либой на сишке, а гуй на каком-нибудь питухоне

тут ясно не хвататает списков - почему сишка и «питухон» сосут

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

Во-первых, всякие семантические плюшки, включая карринг,

Ненужно, но к функциональщине непосредственного отношения не имеет

срезы,

Вообще никаким боком к функциональщине

лямбды,

Вот только это и есть функциональщина

сопоставление с образцом, list comprehensions,

Абсолютно никакой связи с функциональщиной. И присуствует во вполне императивных языках.

ленивые вычисления,

Не нужно

где-то макросы etc.

Никакого отношения к функциональщине не имеет вообще.

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

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

общий уровень абстракций повышается на порядок

В чем уровень абстракции измеряешь?

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

Эстетическая красота - это ООП. А функциональщина - это задротство и write only код.

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

Ну тогда зачем вообще C++ придумали?

у тебя браузер на чем написан? не хочешь сменить его на другой, не на С++?

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

Например, в embedded или вообще в АСУ. Робототехникой не интересуешься?

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

Для того, чтобы писать быстрый, где надо весьма низкоуровневый код, но при этом иметь возможность оперировать абстракциями сколь угодно высокого порядка. C++ применим практически везде, где применим и C, за исключением совсем уж ограниченного по ресусрам embedded.

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

непрактична и бесконечно далека от реальности вся эта матанистая чушь.

Взрослым дядям исполинские программно-аппаратные комплексы разрабатывать, а тебе бы лишь с байтиками трахаться. Знаем, проходили, я сам на асме года 3 писал.

Сложно найти что-то, настолько далекое от реального железа.

А вот это ложь. Причём, наглая и ничем не прикрытая. Ты бы хоть про лисп-машины удосужился почитать, прежде чем вякать такое.

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

Ну ты-то знатная илита, записал макросы и срезы в отличительные черты ФП - точно знаешь, как важно термины не путать ололо.

Так, например, суффикс «-тян» превратился в самостоятельное слово и стал обозначать просто девушек.

Ясно тебе? Да, нужно было писать «найди себе *-тян».

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

Ты бы хоть про лисп-машины удосужился почитать

как раз доказательство слов анонимуса - лисп тормозил, для него придумали «костыль», который не выдержал испытания временем и давным давно рипнулся

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

Лавсанчег, это ты? Дядя, расскажи про лисп-машины.

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

Взрослым дядям исполинские программно-аппаратные комплексы разрабатывать

Ну и где они, «исполинские» комплексы на функциональном говне? В засекреченных подземных бункерах, глубоко в джунглях Амазонки?

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

Лисп-машины совершенно императивны. Если что, спек Symbolics я читал. Они от «обычного» железа отличаются только некоторой аппаратной поддержкой для сборки мусора (атомарные барьеры, например).

Из функционального железа можнл разве что только Reduceron назвать. Но он и вовсе игрушка, на хер никому не нужная.

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

Для того, чтобы писать быстрый, где надо весьма низкоуровневый код [...] C++ применим практически везде, где применим и C

Скажи это Линусу, ага? А то вот-то он и не знает. А ты ему, такой умный, глаза откроешь.

Для того, чтобы писать быстрый, [...] но при этом иметь возможность оперировать абстракциями сколь угодно высокого порядка C++ применим
абстракциями сколь угодно высокого порядка [...] C++

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

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

> Ясно тебе? Да, нужно было писать «найди себе *-тян».

Если ты имел в виду «найди себе девушку», то так бы и писал. Что за дебильный лепет? Что за детсадовский ублюдочный сленг? Не стыдно?

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

Скажи это Линусу, ага? А то вот-то он и не знает. А ты ему, такой умный, глаза откроешь.

Линус тот еще тролль. И крестов он тупо не осилил.

Ты, похоже, ничего, кроме крестов и не видел

Я много чего видел, чего ты, скорее всего, даже и вообразить себе не мог бы. Я даже на Аде кодил.

Судя по подобному изречению ты как минимум даже и не представляешь что такое «абстракции сколь угодно высокого порядка».

Прекрасно себе это представляю. И что такое операционные и денотационные семантики знаю. И про лямбда-куб тоже в курсе. Только вот C++ все равно круче всех, так-то.

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

Тогда это очень хороший язык.

Естественно. На сегодняшний день, C++11 - лучший из языков. Самый мощный, самый выразительный. Жаль только, что ни хрена компиляторами не поддерживается.

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

Я хочу быть программистом.

1) Узнаешь предметные области, в которых программирование применяется.

2) Выбираешь область, которая больше нравится.

3) Языки-шмазыки и прочую дребедень выбираешь исходя из конкретной задачи.

Подход «мне нравится лопата, чё бы ей покопать?» не катит.

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

Это только пока не поддерживается. Работа над этим уже очевидно ведется.

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

Йап, стыдно. Исправлюсь. Но это не меняет того, что если бы у ТСа была девушка, он бы не менял за день по сто раз мнение. Начал с Qt, набижали bleeding-edge лисперы и т. д. с одной стороны, а с другой - хардкорные асмщики и сишники, каждый тянет одеяло на себя, а бедный ТС до сих пор наивно читает все подряд, волнуясь и сомневаясь. Хотя чем дальше, тем болше тред скатывается в ООП против ФП, как обычно) Надо выделить на лоре отдельный раздел для выбора языков языкосрачей.

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

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

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

а бедный ТС до сих пор наивно читает все подряд, волнуясь и сомневаясь

Так и есть.

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

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

Это не конкретные задачи.

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

Ну тогда зачем вообще C++ придумали?

Ну придумали, бывает, чо. Дети тоже бывает мёртворожденными рождаются. Но тогда все думали, что живой, т.к. на тот момент лучше особо ничего не было (про cl молчу).

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

Весь тред не читал, но посоветую.

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

Так что советую не париться совсем и браться за Qt раз интересно. Всё остальное само потом придёт по мере совершенствования и прочтения книг. Зато сразу будет интересно, а засчёт этого и матчасть легче даваться будет.

А «илиту» не слушай. Сам когда-то про лисп наслушался - PCL осилил, было познавательно, но представление о мире не перевернуло. Хаскель вот изучаю ради интереса и общего развития. При этом пишу на плюсах по работе. И ничего, жизнью доволен.

anonymous ()

Лучше закончить школу с хорошими знаниями в математике, физике, поступить в хороший ВУЗ, где помогут освоить то, что сам скорее всего поленишься учить самостоятельно, и одновременно с этим осваивать часть того, что сдесь тебе понаписали(всё ты и до пенсии не потянешь). Знаний в школе катострофически мало, базы практически нет.

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

Ненужно, но к функциональщине непосредственного отношения не имеет
Вообще никаким боком к функциональщине

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

> сопоставление с образцом, list comprehensions
сопоставление с образцом, list comprehensions,

Не императивных, а мультипарадигменных.

В чем уровень абстракции измеряешь?

В мощности системы типов, в количестве объектов первого порядка, в возможности разработки DSL/eDSL.

Эстетическая красота - это ООП. А функциональщина - это задротство и write only код.

Ага, пиши ещё, посмеёмся всем отделом.

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

Вот вот! Я пока нихрена не понимаю кайфа консольных приложений. Спасибо большое!!!!

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

Видно вы правы. Ну тогда зачем вообще C++ придумали?

через 5 минут

Из всего этого выходит что C++ очень даже ничего.

Ты прямо как 13-летняя девочка, ей богу.

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

Сначала ты говоришь аргументы, но потом другие аргументы закрывают твои.

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

Линус тот еще тролль. И крестов он тупо не осилил.

Ну конечно, что же ещё.

Я много чего видел, чего ты, скорее всего, даже и вообразить себе не мог бы.

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

Только вот C++ все равно круче всех, так-то.

Да ты же упоротый фанатик, всё с тобой ясно. До тех пор, пока в крестах не запилят нормальную систему типов, не прикрутят хоть какую-то модульность (а не убогое include с ещё более убогим препроцессором) и не сделают функции и классы объектами первого порядка, назвать *это* человеческим языком у меня просто язык не повёрнется (прошу прощения за тавтологию).

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

Ну ты-то знатная илита, записал макросы и срезы в отличительные черты ФП

Тоже за деревьями леса не увидел?

Так, например, суффикс «-тян» превратился в самостоятельное слово и стал обозначать просто девушек.

Превратился у кого? У японцев? Или у школьников с двача?

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