2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




 
 Посоветуйте литературу хорошую. [С++ ]
Сообщение03.10.2016, 20:33 
Добрый вечер (день, может даже, зависит от времени)!
Изучаю программирование на языке С++ пока что, т.к вроде бы он наиболее перспективен. Хотя знаю, что одним вроде как не обойдёшься. Изучаю очень детально, серьёзно. Очень интересует и память, и железо как отдельная дисциплина тоже когда знания о нем помогают наиболее эффективно написать программу, хотя как отдельную дисциплину с удовольствием изучил бы, все тонкости самого языка вроде как и чего компилятор и когда делает, что бы было по больше инструментов для придумывания внутренней конструкции и внешней для своего творения. Да и это просто интересно, но хочется писать очень хорошие программы. Если выбирать учебник по программированию - то самый хороший. Ещё я изучаю математику детально - если что то с этим связано, то проблемы нет, я лишь рад использовать мат методы.

Вот что я хорошо изучил, и, собственно почти единственное что нашёл рекомендованное:

1. С. Прата Язык программирования С плюс плюс.

2. Потом прочитаю и Страуструпа.

Полагаю там содержания чем то эквивалентны в основных чертах.
Но, что мне изучать дальше ? В Прата лишь синтаксис, объектно ориентированное программирование, но как создавать программы, которые не в чёрном окошке вылезают, а подобны всем современным программам. Мне бы хотелось понимать и знать как писать современный софт, где окна и прочее появляются, рисуются изображения на экране и прочее, программа на мышь реагирует..
Я бы хотел уметь много-много,создавать разнообразные программы, эффективные, но что мне качественного почитать ещё и, такого, где содержатся эти знания ? Хотя бы от куда начать, что логичнее, т.к книг и областей много. Но максимально общий кусок, при этом, я бы пожелал принять.
Я могу очень усердно что то изучать, главное чтоб книга хорошая была.

Посоветуйте пожалуйста. Мне бы как то начать "оживлять" свои программы.

 
 
 
 Re: Посоветуйте литературу хорошую.
Сообщение03.10.2016, 20:56 
Изучите библиотеку Qt (названий книг я не знаю, но они есть). А если вы заинтересованы в изучении программирования для Windows, то я бы весьма рекомендовал вначале изучить WinAPI - даже сегодня, когда вряд ли кто пишет приложения на чистом WinAPI, знание этой низкоуровневой кухни весьма полезно. Небесполезно также заняться велосипедостроением: WinAPI - это чистый C, и немало программистов оттачивали навыки программирования на C++, создавая свою собственную тру-C++ обёртку над этим интерфейсом.

 
 
 
 Re: Посоветуйте литературу хорошую.
Сообщение03.10.2016, 23:45 
Вы упомянули эффективность. Есть две стороны этого понятия: первое - эффективность примитивов, они должны быстро обрабатываться, язык должен обладать хорошей библиотекой контейнеров и алгоритмов. Второе - эффективность решения задачи (алгоритмическая эффективность).

C++ ориентирован на эффективность примитивов. С этим проблем нет. Так как вы уже прошли базовый уровень, то Герб Саттер, Решение сложных задач на С++. Там 87 задач с решениями. Задачи ориентированы на использование стандартной библиотеки.

Алгоритмическая эффективность не зависит от используемого языка программирования. В большинстве задач этот вид эффективности важнее чем первый. Начните с Джона Бентли, Жемчужины программирования. Вы получите представление об О-большом. Дальше можно получить представление почему STL устроена так, а не иначе.

Есть третья сторона эффективности - выразительность языка. Эффективная программа ни кому не нужна, если вы её так никогда не написали из-за того ваш язык не выразителен. К сожалению, это больное место C++ - он недостаточно выразителен. Тут я вам помочь не могу. Если вы хотите написать много и быстро, то C++ плохой выбор.
Помните, что C++ - инструмент. Таких инструментов в вашем чемоданчике должно быть несколько. Язык выбирается под задачу.

 
 
 
 Re: Посоветуйте литературу хорошую.
Сообщение04.10.2016, 00:42 
Leon_06 в сообщении #1156996 писал(а):
Изучаю программирование на языке С++ пока что, т.к вроде бы он наиболее перспективен.
А мужики-то не знают... :wink:
Leon_06 в сообщении #1156996 писал(а):
но как создавать программы, которые не в чёрном окошке вылезают, а подобны всем современным программам.
Современные программы - слишком размытое понятие. Некоторые никуда не вылезают, вы даже черного окошка не увидите. А у некоторых вообще окошко отсутствует (как устройство) и никогда не появится. Поэтому я бы вам рекомендовал сначала как-то обозреть окрестности - какое вообще бывает программирование. Не какие языки используются, а какие задачи решаются. Выбирать все равно придется, лучше сделать это осознанно.
Если вы решили взять С++ как первый язык - ну пусть будет С++, какие-то базовые вещи (структуры данных, алгоритмы и прочее), общие для всех языков, все равно так или иначе изучить придется.
Leon_06 в сообщении #1156996 писал(а):
хочется писать очень хорошие программы
Хорошие программы - это тоже широкое понятие. Помимо эффективного использования памяти и процессора (которое вы упомянули) есть еще эффективность в плане командной работы (не всю же жизнь вам писать в одиночку, рано или поздно кодом придется делиться), эффективность в плане поддержки и развития (насколько просто будет править баги и раширять функциональность), юзабилити (насколько удобно пользователю пользоваться вашей программой). И если вы хотите программу "с окнами", юзабилити вам заниматься придется. В этом плане могу посоветовать Алана Купера "Об интерфейсе" (3-е издание) и "Психбольница в руках пациентов" (обе книги примерно об одном и том же, но первая немного основательнее и академичнее, а вторая лучше объясняет, зачем это надо).

-- 04.10.2016, 01:58 --

(минутка грустного юмора на тему юзабилити)

Изображение

 
 
 
 Re: Посоветуйте литературу хорошую.
Сообщение04.10.2016, 09:40 

(Оффтоп)

rockclimber в сообщении #1157060 писал(а):
"минутка грустного юмора на тему юзабилити"
Думаю сравнимое количество человеко-часов пользователей убили программисты 1С чуть не каждый квартал тасуя отчёты по менюшкам ... Или программно замедляя старт и закрытие программы, в чём сами признаются (неофициально).

 
 
 
 Re: Посоветуйте литературу хорошую.
Сообщение04.10.2016, 12:13 
Leon_06 в сообщении #1156996 писал(а):
создавать программы, которые не в чёрном окошке вылезают, а подобны всем современным программам. Мне бы хотелось понимать и знать как писать современный софт, где окна и прочее появляются, рисуются изображения на экране и прочее, программа на мышь реагирует..


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

 
 
 [ Сообщений: 6 ] 


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group