Я изучаю C++ уже три месяца и за это время создал ряд приложений для своей компании. Я считаю, что мне достаточно комфортно работать с C++ / MFC и STL, однако я не просто хочу быть хорошим программистом, я хочу быть хорошим программистом. У меня есть несколько книг о передовых методах работы, но мне было интересно, может ли кто-нибудь предложить материалы для чтения, которые им помогли, и какие-либо дисциплины, которые следует поощрять?
Спасибо!





Для C++ Книги Скотта Мейерса очень хороши и помогут перейти на следующий уровень.
Если у вас его еще нет C++ Бьярна Страуструпа, 3-е издание
+1 за книги Скотта Мейерса. Должно быть обязательным к прочтению для всех программистов на C++.
Я бы начал с Прагматичный программист, Код завершен, Рефакторинг и Шаблоны проектирования.
Это все хорошие книги по общему неспецифическому языку. Я думал, что OP искал ресурсы C++?
В ОП специально сказано: «Предложите материалы для чтения, которые им помогли».
Я с @Che по этому поводу. Эти книги послужат прекрасным руководством.
Однако я бы изменил порядок. Code Complete - это книга, которую я действительно хотел бы прочитать в начале моей карьеры программиста. Прагматичный программист, к которому я был готов только в то время, когда я его прочитал, через несколько лет.
Я не знал, что мне следовало расположить их в определенном порядке ... ОП просит, чтобы это помогло, эти книги помогли мне, стать лучшим программистом, независимо от языка
@CheGueVerra Код готов ... Шаблоны дизайна .. Это мои книги? : D кстати +1
3 месяца в C++, и вы уже привыкли к нему? Блин, я изучаю C# больше года и прошел множество курсов Microsoft, и мне это нисколько не нравится.
При этом вы услышите, как Код завершен называют очень хорошей книгой. Я сейчас его читаю.
Code Complete - отличная книга, без вопросов. Но он не научит вас нюансам C++.
Быть лучшим программистом - это гораздо больше, чем просто изучать нюансы определенного языка.
Я бы сказал, что обучение на курсах - это против, когда ему удобно заниматься чем-то столь же творческим, как программирование. в лучшем случае они могут хорошо изучить основы и узнать людей.
Определенно код завершен. Книгу следует превратить в обязательный курс в любой программе обучения программированию. Потрясающее чтение, открывающее вам глаза на программирование в реальном мире в составе команд разработчиков.
Хорошие блоги: Гуру недели и все книги Херба Саттера. Они дадут вам уже довольно много для пережевывания.
Современный дизайн C++ от Alexandrescu, если вы хотите получить хорошее представление о том, чего вы еще не знаете и, вероятно, не хотите знать.
Код Ката для практики!
Разработка крупномасштабного программного обеспечения C++ Джона Лакоса дает рекомендации по методам проектирования, которые сделают ваш C++ более удобным в сопровождении. Это довольно здорово, но вы можете окунуться в него и все же получить некоторые преимущества.
Я прочитал несколько (не полных, но некоторые части) обычных книг на VB.net, они неплохие, но если вы хотите быть профессионалом и у вас есть время ... Вы можете опробовать форумы MSDN, помочь другим людям и обсудить с ними сложные и сложные проблемы, я думаю, что это лучший способ ..
выучить другой язык. даже если вы не будете его использовать, он отлично подходит для открытия ума.
Я бы посоветовал Lua, Scheme и Python. но подойдет почти все остальное. (самый отличный от C, лучший)
Скорее не по теме: вместо того, чтобы предлагать книги для изучения, я хотел бы упомянуть некоторые общие темы, которые следует рассмотреть.
Резьба. Он не очень востребован, если вы используете MFC, но во многих других областях он незаменим. Механику потоковых API легко освоить, но изучение всех углов требует много времени и практики.
Замыкания, Map-Reduce и другие шепелявые техники. Узнайте, что это такое, почему они не поддерживаются в C++ и как имитируются в C++ (функторы и многие другие случаи объектов обратного вызова с отслеживанием состояния). Для этого у меня есть книга «Структура и интерпретация компьютерных программ».
Командная строка. Это дает вам представление о том, когда не следует кодировать свои собственные программы. Командная строка была бы командной строкой Unix - я не знаю о последних экспериментах MS в этом, но cmd.exe ужасен. Получите Cygwin и начните экспериментировать.
Языки сценариев. Это дает вам представление о том, когда вы не программируете на C++. Мне больше всего нравится Perl, но многие говорят Python, Ruby и еще много чего. Эй, изучи XSLT, если тебе так хочется!
Я уверен, что упустил другие области. Я отмечу это как Community Wiki - не стесняйтесь добавлять.
Йосуттис и Вандевурде - Шаблоны: полное руководство
Как я вижу, никто не упомянул блестящую книгу Брюса Эккеля «Мышление на C++». ИМХО, это одна из лучших книг, с которой можно начать разработку на C++. С моей точки зрения, первый том более полезен, чем второй, но их стоит прочитать.
http://www.amazon.com/Thinking-C-Introduction-Standard-One/dp/0139798099/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1227890306&sr=8-1
Ах! У нас есть копия в офисе, мы заберем ее домой на выходных и прочитаем. +1.
Многие люди могут посоветовать более современные книги. Но я все же рекомендую Справочное руководство по C++ с аннотациями Маргарет А. Эллис и Бьярна Страуструпа.
ARM был издан еще в 90-м. В отношении шаблонов он несколько устарел. STL (очевидно) отсутствует. (Хотя сайт sgi.com хорошо освещает STL!)
Однако ARM очень дешевый (б / у). (Доставка превысит стоимость книги.) Соотношение сигнал / шум остается зашкаливающим. Он очень хорошо разбирается в грязных областях C++, объясняя, что было сделано и почему.
Я до сих пор использую его как ссылку. Я оцениваю его как K&R.
Дитель / Дитель "Как программировать на C++" ... Эта книга до сих пор лежит на моем столе (через 10 лет) .. Время от времени я перечитываю главу.
Я бы определенно получил Code Complete, как предлагали другие. Фактически прочтите это в первую очередь.
Я читаю эту книгу прямо сейчас! Определенно хорошая книга, по которой можно учиться - однако, если он уже действительно знаком с C++, она может быть недостаточно подробной для него.
Чтобы лучше понять объектную ориентацию, потратите немного времени на Smalltalk. Squeak можно загрузить бесплатно. Затем прочтите «Паттерны программного обеспечения» Ричарда П. Гэбриэла, а затем его «Объекты потерпели неудачу».
Мышление на C++ - Брюс Экель Стандарт Symfonia C++ - Ежи Грембош
Если вы больше ничего не делаете, запрограммируйте.
Когда вы не читаете эту книгу о программировании и когда что-то кажется вам интересным, попробуйте реализовать что-нибудь с этими знаниями. Я обнаружил, что это единственный способ действительно установить принципалов.
Быть в курсе последних событий в блогах может быть весело, но это рассеянные знания. Кажется, это больше отвлекает, чем помогает. Но в сочетании с Google и желанием исследовать что-то конкретное может действительно раскошелиться на массу информации. Но не просто подписывайтесь на множество RSS-каналов и ожидайте улучшения.
Я думаю, что изучение конкретных тем помогает расширить ваши способности. Исследуйте темы, которые вас заинтриговали, познакомьтесь с людьми, которые занимаются такими же вещами, как вы (конференции, группы пользователей, irc, facebook, stackoverflow и т. д.), И, прежде всего, практикуйте свое искусство.
Вы можете ознакомиться с библиотекой Boost и рядом книг, написанных о ней. Хотя это могло быть не то, что вы имели в виду, ИМО, библиотеки Boost являются примерами хорошо спроектированных современных библиотек C++, которые используют функции языка в значительной степени так, как они должны использоваться для создания среди наиболее эффективных решений для их проблемная область. Конечно, существуют причудливые библиотеки, такие как препроцессор и MPL, которые заставляют задуматься о том, пригодятся ли они вам когда-нибудь, но все они довольно хороши. По моему собственному опыту, изучение библиотеки и литературы по ней помогло мне понять, как можно эффективно использовать C++.
Способствовать ростуЗа пределами стандартной библиотеки C++: введение в Boost
Здесь есть несколько отличных предложений: stackoverflow.com/questions/305691/…