Может оффтопик. Какие сейчас наилучшие книги (с переводом на русский) по изучению C++ 11 с нуля? В инет магазинах их полно, хотелось бы знать мнение профессионалов. Так же интересуют книги по последним версиям MFC и WinAPI.
Здравствуйте, Submitter, Вы писали:
S>Может оффтопик. Какие сейчас наилучшие книги (с переводом на русский) по изучению C++ 11 с нуля? В инет магазинах их полно, хотелось бы знать мнение профессионалов.
страуструп для начала
S>Так же интересуют книги по последним версиям MFC и WinAPI.
на это лучше забейте, будете белой вороной с этими маргинальными скиллами.
Здравствуйте, Sni4ok, Вы писали:
S>>Так же интересуют книги по последним версиям MFC и WinAPI. S>на это лучше забейте, будете белой вороной с этими маргинальными скиллами.
Здравствуйте, Submitter, Вы писали:
S>Может оффтопик. Какие сейчас наилучшие книги (с переводом на русский) по изучению C++ 11 с нуля? В инет магазинах их полно, хотелось бы знать мнение профессионалов.
Есть книжка Страуструпа для тех кто вообще никогда не программировал (ни на каком языке) — "Programming -- Principles and Practice Using C++". В новой версии там даже C++14, не знаю перевели ли её уже на русский или нет (какую-то из старых точно переводили).
Если же опыт программирования есть — то можно взять его The C++ Programming Language. Но какая там ситуация с переводом на русский последнего издания (с C++11) — также не в курсе.
S>Так же интересуют книги по последним версиям MFC и WinAPI.
Здравствуйте, Submitter, Вы писали:
S>Здравствуйте, Sni4ok, Вы писали:
S>>>Так же интересуют книги по последним версиям MFC и WinAPI. S>>на это лучше забейте, будете белой вороной с этими маргинальными скиллами.
Насчёт MFC согласен, а вот WinAPI знать в итоге придётся, пусть и не сразу (ибо уж сколько лет его хоронят, а он живее всех живых, да и все Фреймворки в итоге на него и опираются). Иначе будет тяжело понимать происходящее на UI: почему оно работает так, а не иначе.
S>А Qt — тоже маргинальные скиллы?
Не маргинальные, но нишевые. Обычно если речь про QT, то тут же всплывает и кросс-платформа. А значит, нужно знать сразу несколько осей и понимать, как абстрагироваться от их деталей, чтобы один сырец компилился и работал на всех целевых системах (хотя бы Win/Linux).
Здравствуйте, Mr.Delphist, Вы писали:
MD>Не маргинальные, но нишевые. Обычно если речь про QT, то тут же всплывает и кросс-платформа. А значит, нужно знать сразу несколько осей и понимать, как абстрагироваться от их деталей, чтобы один сырец компилился и работал на всех целевых системах (хотя бы Win/Linux).
Обычно эти "знания" спокойно живут в сторонних библиотеках.
Здравствуйте, Submitter, Вы писали:
S>Может оффтопик. Какие сейчас наилучшие книги (с переводом на русский) по изучению C++ 11 с нуля? В инет магазинах их полно, хотелось бы знать мнение профессионалов. Так же интересуют книги по последним версиям MFC и WinAPI.
С++11
1. Есть ДВЕ книжки-учебника, переведенные на русский язык
— Стивен Прата: https://www.ozon.ru/context/detail/id/7979735/
Мой отзыв на Озоне:
Весьма объемлющий учебник. Самое важное, что автор уже внес довольно много сведений по новому стандарту. Во многих главах есть отдельный параграф, в котором описаны особенности описываемых конструкций по новому стандарту. Кроме того, есть глава 18, в которой непосредственно про новые свойства написано. И еще в приложении Ж — сведения по стандартной библиотеке с учетом дополнений.
Неплохо описаны ссылки rvalue и семантика переноса, лямбда-функции, новые свойства шаблонов, кортежи, интеллектуальные указатели.
О средствах параллельного программирования есть только упоминание.
В общем, и начинающим программистам, и преподам книга будет очень полезна.
Рекомендую.
Очередное издание этого весьма известного учебника. Данная версия написана целиком и полностью по стандарту С++11.
Хотя книга начинается с азов, но я убежден, что книга — не для начинающих программистов. Язык С++ весьма сложен, поэтому изучать его первым — плохая идея. Лучше, если этот язык будет вторым или даже третьим — после того, как вы уже понюхали серьезного программистского пороху в различных проектах.
А вообще-то книжка хороша. Изложено практически все, что нужно профессиональному программисту на С++. И с многочисленными примерами. В совокупности с новой книгой Н. Джосатиса по стандартной библиотеке покрывает весь современный С++ не только вширь, но и вглубь.
Кстати, для начинающих больше подойдет книжка Б.Страуструпа "Два гуся"...
Книга является обязательной для профессионалов, работающих в С++.
Весьма полезна преподавателям, преподающим С++ — объем новшеств, с которыми нужно знакомить студентов — весьма велик.
Для использующих Микрософтовские студии могу сказать, что Студия 2012 поддерживает ВСЮ стандартную библиотеку.
Все, что описано в этой книге — в Студии 2012 можно использовать.
Но языковые новшества поддерживаются не все — надо смотреть в MSDN.
В книге изложено все, что можно написать о параллельном программировании с использованием стандартного С++11.
Книга начинается с азов, но лучше, если вы уже имеете понятие о параллельном программировании и проблемах взаимодействия параллельных процессов.
Именно на эту книгу ссылается Николай Джосатис в своей книге по стандартной библиотеке в главе 18 — О средствах параллельного программирования в стандарте С++11.
Минус — клееный корешок при таком объеме материала. Лучше бы издательство выбрало формат покрупнее — тогда книга была бы потоньше, и ее проще было бы читать.
Книжку Страуструпа для студентов по стандарту С++11 переводит Вильямс, но еще не выпустил.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
LVV>>С++11 S>Вот блин хотел написать C++14 (который последний), а написал C++11 S>Надеюсь, все, что ты написал актуально и для C++14 ?
Нет. Эти книжки конкретно — только по С++11.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
S>>Надеюсь, все, что ты написал актуально и для C++14 ? LVV>Нет. Эти книжки конкретно — только по С++11.
Млин, не сделаешь большое одолжение, не распишешь всё то же самое (про литературу), но для последней C++? Кодить буду в VS 2013. Знания C++ есть, но не писал на нём 7 лет. Похоже сильно отстал, буду читать всё заново
S>>>Надеюсь, все, что ты написал актуально и для C++14 ? LVV>>Нет. Эти книжки конкретно — только по С++11. S>Млин, не сделаешь большое одолжение, не распишешь всё то же самое (про литературу), но для последней C++? Кодить буду в VS 2013. Знания C++ есть, но не писал на нём 7 лет. Похоже сильно отстал, буду читать всё заново
Для "последней С++" — это как?
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
LVV>>Для "последней С++" — это как? S>C++ 14 — последняя?
Официально — да.
Но:
1. Конкретно по С++14 еще нет русской литературы.
2. Студия 13 даже не весь С++11 поддерживает, не говоря уж о С++ 14.
Библиотеку — всю, а язык — не весь.
3. Если нужен язык С++11 весь — лучше кодить в QtCreator.
Там компилятор gcc, который С++11 поддерживает весь. И стандартную библиотекуу — тоже.
Да еще и библиотека Qt — весьма популярна и востребована.
Хочешь быть счастливым — будь им!
Без булдырабыз!!!
Здравствуйте, LaptevVV, Вы писали:
LVV>>>Для "последней С++" — это как? S>>C++ 14 — последняя? LVV>Официально — да. LVV>Но: LVV>1. Конкретно по С++14 еще нет русской литературы. LVV>2. Студия 13 даже не весь С++11 поддерживает, не говоря уж о С++ 14. LVV>Библиотеку — всю, а язык — не весь.
Понял, спасибо. Буду читать книги, которые ты привел.
LVV>3. Если нужен язык С++11 весь — лучше кодить в QtCreator. LVV>Там компилятор gcc, который С++11 поддерживает весь. И стандартную библиотекуу — тоже. LVV>Да еще и библиотека Qt — весьма популярна и востребована.
Все-таки решил отказаться от Qt, писать проект на знакомом MFC и WinAPI.
LVV>>3. Если нужен язык С++11 весь — лучше кодить в QtCreator. LVV>>Там компилятор gcc, который С++11 поддерживает весь. И стандартную библиотекуу — тоже. LVV>>Да еще и библиотека Qt — весьма популярна и востребована. S>Все-таки решил отказаться от Qt, писать проект на знакомом MFC и WinAPI.
По MFC новых книжек не было. Но есть старые.
1. Книжка Тихомирова: https://www.ozon.ru/context/detail/id/28350053/
2. Книжка Трельсена (это нынче Троелсен) по ATL: https://www.ozon.ru/context/detail/id/110643/
Здравствуйте, Mr.Delphist, Вы писали:
MD>Насчёт MFC согласен, а вот WinAPI знать в итоге придётся, пусть и не сразу (ибо уж сколько лет его хоронят, а он живее всех живых, да и все Фреймворки в итоге на него и опираются). Иначе будет тяжело понимать происходящее на UI: почему оно работает так, а не иначе.
Все-таки с той же Qt знания о WinAPI практически не понадобятся, хотя, конечно, и не помешают.
S>>А Qt — тоже маргинальные скиллы?
MD>Не маргинальные, но нишевые. Обычно если речь про QT, то тут же всплывает и кросс-платформа. А значит, нужно знать сразу несколько осей и понимать, как абстрагироваться от их деталей, чтобы один сырец компилился и работал на всех целевых системах (хотя бы Win/Linux).
Ну так для этого Qt и есть, чтобы абстрагироваться от их деталей.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Mr.Delphist, Вы писали:
MD>>Не маргинальные, но нишевые. Обычно если речь про QT, то тут же всплывает и кросс-платформа. А значит, нужно знать сразу несколько осей и понимать, как абстрагироваться от их деталей, чтобы один сырец компилился и работал на всех целевых системах (хотя бы Win/Linux).
EP>Обычно эти "знания" спокойно живут в сторонних библиотеках.
Верно, но если применять их без понимания причин, то получаем карго-культ в чистом виде.
Здравствуйте, Mr.Delphist, Вы писали:
MD>>>Не маргинальные, но нишевые. Обычно если речь про QT, то тут же всплывает и кросс-платформа. А значит, нужно знать сразу несколько осей и понимать, как абстрагироваться от их деталей, чтобы один сырец компилился и работал на всех целевых системах (хотя бы Win/Linux). EP>>Обычно эти "знания" спокойно живут в сторонних библиотеках. MD>Верно, но если применять их без понимания причин,
Например каких причин?
Вот есть QT программа — прекрасно работает на Windows, Linux, OS X. Своего platform-specific кода там практически нет, а если брать чисто UI — то нет вообще. Больше всего связанного с конкретной платформой — в скриптах упаковки в пакеты/инсталляторы.
Для подавляющего большинства UI программ возможностей QT хватит с головой, без всякой необходимости спускаться до API конкретной OS.
MD>то получаем карго-культ в чистом виде.
Здравствуйте, Evgeny.Panasyuk, Вы писали:
EP>Здравствуйте, Mr.Delphist, Вы писали:
EP>Например каких причин? EP>Вот есть QT программа — прекрасно работает на Windows, Linux, OS X. Своего platform-specific кода там практически нет, а если брать чисто UI — то нет вообще. Больше всего связанного с конкретной платформой — в скриптах упаковки в пакеты/инсталляторы. EP>Для подавляющего большинства UI программ возможностей QT хватит с головой, без всякой необходимости спускаться до API конкретной OS.
Вот буквально на днях на SO попадался вопрос "почему я делаю открытие второй формы во втором потоке и ничего не работает". Потому как товарищ не осознает однопоточной сути Windows UI и пытается впихнуть невпихуемое. А так — да, сырец целиком на C# и никакого Win32 API, казалось бы.
MD>>то получаем карго-культ в чистом виде.
EP>Карго-культ это другое понятие.
Ну почему же — люди городят вело-аэродромы в коде и объясняют "это для X", а на самом деле X проявляется совсем от другого. Потом это "другое" ломают, и начинается долгий ресёрч почему же вело-аэродром перестал работать.
Здравствуйте, Mr.Delphist, Вы писали:
EP>>Например каких причин? EP>>Вот есть QT программа — прекрасно работает на Windows, Linux, OS X. Своего platform-specific кода там практически нет, а если брать чисто UI — то нет вообще. Больше всего связанного с конкретной платформой — в скриптах упаковки в пакеты/инсталляторы. EP>>Для подавляющего большинства UI программ возможностей QT хватит с головой, без всякой необходимости спускаться до API конкретной OS. MD>Вот буквально на днях на SO попадался вопрос "почему я делаю открытие второй формы во втором потоке и ничего не работает". Потому как товарищ не осознает однопоточной сути Windows UI и пытается впихнуть невпихуемое. А так — да, сырец целиком на C# и никакого Win32 API, казалось бы.
Документацию надо читать, да. Например UI библиотека может позволять "открытие формы во втором потоке", даже поверх Win32 API
MD>>>то получаем карго-культ в чистом виде. EP>>Карго-культ это другое понятие. MD>Ну почему же — люди городят вело-аэродромы в коде и объясняют "это для X", а на самом деле X проявляется совсем от другого.
Потому что в случае с UI библиотекой у неё есть своя документация, тут не нужно гадать "для чего это X".