2008-11-28 1 views
12

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

Спасибо!

+0

Есть некоторые большие предложения здесь: http://stackoverflow.com/questions/305691/which-book-dramatically-changed-your-way-of-approaching-problems – Dan

ответ

14

Для C++, Scott Meyers books очень хороши и помогут вам перейти на следующий уровень.

Если вы уже не имеете его C++ by Bjarne Stroustrup, 3rd Edition

+0

+1 для Книги Скотта Мейерса. Должно потребоваться чтение для всех программистов на С ++. – jmucchiello

17

Я хотел бы начать с Pragmatic Programmer, Code Complete, Refactoring и Design Patterns.

+0

Все они - хорошие общие неспецифические языковые книги. Я, хотя OP искал ресурсы C++? –

+0

Упорядоченно сказано: «Предлагайте читать материалы, которые им помогли» – GregD

+0

..и были в C++ и MFC в тегах ... –

4

3 месяца в C++ и вам уже удобно с ним? Sheesh, я уже более года изучаю C# и занимаюсь многочисленными курсами Microsoft, и мне это не нравится.

Это, как говорится, вы услышите Code Complete, брошенный как очень хорошая книга. Сейчас я читаю его.

+0

Code Complete - отличная книга, без вопросов. Но он не научит вас нюансам C++. –

+0

Быть лучшим программистом - это нечто большее, чем изучение нюансов определенного языка. – tvanfosson

+0

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

1

Хорошие блоги: Guru of the Week, и all the books by Herb Sutter. Те дадут вам достаточно много, чтобы пережевать.

Modern C++ Design от Alexandrescu, если вы хотите получить хорошее представление о том, чего еще не знаете, и, вероятно, не хотите знать.

Code Kata для практики!

3

Крупномасштабная C++ Software Design Джон Lakos дает руководство по методам разработки, которые сделают ваш C++ более ремонтопригодны. Это довольно здорово, но вы можете погрузиться и по-прежнему получать некоторые преимущества.

1

Я прочитал несколько (не полных, но некоторых частей) книг по рудинам на VB.net, они неплохие, но если вы хотите быть профессионалом и иметь время ... Вы можете опробовать форумы MSDN, помочь другие люди и обсудить с ними сложные и сложные проблемы, я думаю, что это лучший способ.

1

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

Я бы посоветовал Lua, Scheme и Python. но почти все остальное. (самое отличное от C, лучшее)

2

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

  • Threading. Этот вариант не очень востребован, если вы используете MFC, но во многих других областях это незаменимо. Механизму API-интерфейсов с резьбой легко подбирать, но изучение всех угловых случаев требует много времени и практики.

  • Закрытие, уменьшение карты и другие подобные lisp-подобные приемы. Узнайте, что они собой представляют, почему они не поддерживаются на C++ и как имитируются на C++ (функторы и многие другие случаи объектов с обратным вызовом). Для этого у меня действительно есть книга: «Структура и интерпретация компьютерных программ».

  • Командная строка. Это дает вам представление о том, когда вы не кодируете свои собственные программы. Командная строка - это командная строка Unix - я не знаю, как это происходит в последнем эксперименте MS, но cmd.exe ужасен. Получите Cygwin и начните экспериментировать.

  • Языки сценариев. Это дает вам представление о том, когда не программа на C++. Мой любимый Perl, но многие люди говорят Python, Ruby и еще много чего. Эй, изучите XSLT, если вы так склонны!

Уверен, что я оставил другие области. Я отмечу это как Community Wiki - не стесняйтесь добавлять.

1

Josuttis и Vandevoorde - Шаблоны: Полное руководство

1

Как я вижу, что никто не упомянул Брюс Екел блестящие книги «Мышление в 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

+0

Ах! У нас есть копия этого в офисе, он вернется домой в выходные и даст ему прочитать. +1. – Konrad

1

Я много людей предлагаю более современные, современные книги. Но я по-прежнему рекомендую The Annotated C++ Reference Manual Маргарет А. Эллис & Bjarne Stroustrup.

ARM был опубликован еще в '90. Он стал несколько устаревшим по отношению к шаблонам. STL (очевидно) отсутствует. (Though the website at sgi.com does a good job of covering STL!)

Тем не менее, ARM - дешевая (используется). (Доставка превысит стоимость книги.) Отношение сигнал/шум остается за пределами шкалы. Очень хорошо разбираться в грязных областях C++, объясняя, что было сделано &.

Я все еще использую его как ссылку. Я оцениваю его там с K&R.

1

Dietel/Dietel «Как программировать C++» ... У меня все еще есть эта книга на моем столе (10 лет). Время от времени я перечитываю главу.
Я бы определенно получил код Complete, как и другие. Infact прочитал это первым.

+0

Я читаю эту книгу прямо сейчас! Определенно хорошая книга, чтобы учиться - однако, если он действительно комфортно с C++ уже, он может быть недостаточно подробным для него. – Sean

1

Чтобы лучше понять ориентацию объектов, проведите некоторое время в Smalltalk. Squeak - бесплатная загрузка. Затем читайте «Образцы программного обеспечения» Ричарда П. Габриэля, после чего его объекты сработали.

1

Мышление в C++ - Брюс Eckel Symfonia C++ стандарт - Ежи Grębosz

1

Если ничего не делать, программы.

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

Пребывание в дневниках в блогах может быть забавным, но это разбросанные знания. Кажется, это отвлекает больше, чем помогает. Но в сочетании с Google и желание исследовать что-то конкретное может действительно кашлять тонны информации.Но не «просто подпишитесь на много rss-каналов и ожидайте улучшения.

Я думаю, что действительно изучение конкретных тем помогает расширить ваши возможности. Темы исследований, которые вас интригуют, встречают людей, которые делают такие вещи, как вы (конференции, группы пользователей, irc, facebook, stackoverflow и т. Д.) И, прежде всего, практикуйте свое искусство.

0

Вы можете проверить библиотеку Boost и ряд книг, написанных об этом. Хотя это, возможно, и не то, что вы имели в виду, IMO, библиотеки Boost являются примерами хорошо продуманных современных библиотек C++, которые используют особенности языка в значительной степени, как они должны использоваться для создания среди наиболее эффективных решений для их проблемной области. Конечно, есть такие необычные библиотеки, как препроцессор и MPL, которые заставляют вас задаться вопросом, будете ли вы когда-нибудь использовать их, но все они неплохие. По собственному опыту изучение библиотеки и ее литературы дало мне представление о том, как эффективно использовать C++.

Boost Beyond the C++ Standard Library: An Introduction to Boost