Ответ 1
Для С++ книги Скотта Мейера очень хороши и помогут вам перейти на следующий уровень.
Если у вас его еще нет С++ by Bjarne Stroustrup, 3rd Edition
Я изучаю С++ уже три месяца и за это время создал несколько приложений для своей компании. Я считаю себя довольно комфортно с С++/MFC и STL, однако я не просто хочу быть программистом OK, я хочу быть хорошим программистом. У меня есть несколько книг о лучших практиках, но мне было интересно, может ли кто-нибудь предлагать материалы для чтения, которые помогли им и любые дисциплины, которые следует поощрять?
Спасибо!
Для С++ книги Скотта Мейера очень хороши и помогут вам перейти на следующий уровень.
Если у вас его еще нет С++ by Bjarne Stroustrup, 3rd Edition
Я бы начал с Pragmatic Programmer, Code Complete, Refactoring и Шаблоны проектирования.
Uhm... Научите себя программировать через десять лет (Питер Норвиг)
3 месяца в С++, и вам уже удобно с ним? Sheesh, я уже более года изучаю С# и занимаюсь многочисленными курсами Microsoft, и мне это не нравится.
Как говорится, вы услышите Code Complete, брошенный как очень хорошая книга. Сейчас я читаю его.
Разработка крупномасштабного программного обеспечения на С++ от John Lakos дает рекомендации по методам проектирования, которые сделают ваш С++ более удобным. Это довольно здорово, но вы можете погрузиться и по-прежнему получать некоторые преимущества.
Немного не по теме: вместо того, чтобы предлагать книги для изучения, я хотел бы упомянуть несколько широких тем, которые нужно рассмотреть.
Threading. Этот вариант не очень востребован, если вы используете MFC, но во многих других областях он незаменим. Механизму API-интерфейсов с резьбой легко подбирать, но изучение всех угловых случаев требует много времени и практики.
Завершения, Map-Reduce и другие lisp -подобные методы. Узнайте, что они собой представляют, почему они не поддерживаются на С++ и как имитируются на С++ (функторы и многие другие случаи объектов с обратным вызовом). Для этого у меня действительно есть книга: "Структура и интерпретация компьютерных программ".
Командная строка. Это дает вам представление о том, когда вы не кодируете свои собственные программы. Командная строка - это командная строка Unix. Я не знаю о последних экспериментах MS в этом, но cmd.exe ужасен. Получите Cygwin и начните экспериментировать.
Языки скриптов. Это дает вам представление о том, когда не программа на С++. Мой любимый Perl, но многие люди говорят Python, Ruby и еще много чего. Эй, изучите XSLT, если вы так склонны!
Я уверен, что я оставил другие области. Я отмечу это как Community Wiki - не стесняйтесь добавлять.
Хорошие блоги: Гуру недели и все книги Херба Саттера. Те дадут вам достаточно много, чтобы жевать.
Код Kata для практики!
Я прочитал несколько (не полных, но некоторых частей) книг по рудинам на VB.net, они неплохие, но если вы хотите быть профессионалом и иметь время... Вы можете опробовать форумы MSDN, помочь другим людям и обсудить с ними сложные и сложные проблемы, я думаю, что это лучший способ.
изучите другой язык. даже если вы не будете использовать его, он отлично подходит для разума.
Я бы советовал Lua, Scheme и Python. но почти все остальное. (самый отличный от C, лучший)
Josuttis и Vandevoorde - Шаблоны: Полное руководство
Как я вижу, никто не упомянул блестящие книги Брюса Эккеля "Думая на С++". ИМХО, это одна из лучших книг, с которой можно начать разработку на С++. С моей точки зрения, первый том более полезен, а второй, но оба они заслуживают внимания.
http://www.amazon.com/Thinking-C-Introduction-Standard-One/dp/0139798099/ref=pd_bbs_sr_1?ie=UTF8&s= книги & QID = 1227890306 & ср = 8-1
Я много людей могу предложить более современные, современные книги. Но я по-прежнему рекомендую "Аннотированное справочное руководство по С++" Маргарет А. Эллис и Бьярн Страуструп.
ARM был опубликован еще в 90-х. Это несколько устарело в отношении шаблонов. STL (очевидно) отсутствует. (Хотя сайт на sgi.com отлично справляется с STL!)
Тем не менее, ARM является грязной дешевой (используется). (Доставка превысит стоимость книги.) Отношение сигнал/шум остается за пределами шкалы. Это очень хорошо прикопать к грязным областям С++, объясняя, что было сделано и почему.
Я все еще использую его как ссылку. Я оцениваю его там K & R.
Dietel/Dietel "Как программировать С++"... У меня все еще есть эта книга на моем столе (10 лет). Время от времени я перечитываю главу. Я бы определенно получил код Complete, как другие предложили. Infact прочитал это первым.
Чтобы лучше понять ориентацию объектов, проведите некоторое время в Smalltalk. Squeak - бесплатная загрузка. Затем читайте "Образцы программного обеспечения" Ричарда П. Габриэля, после чего его объекты сработали.
Мышление в С++ - Брюс Экель Symfonia С++ Standard - Jerzy Grębosz
Если вы ничего не делаете, программа.
Когда вы не делаете этого, читайте о программировании, и когда что-то поражает вас как интересное, переходите к реализации чего-то с этим знанием. Я обнаружил, что это единственный способ действительно установить принципы.
Пребывание в дневниках в блогах может быть забавным, но это разбросанные знания. Кажется, это отвлекает больше, чем помогает. Но в сочетании с Google и желание исследовать что-то конкретное может действительно кашлять тонны информации. Но не "просто подпишитесь на много rss-каналов и ожидайте улучшения".
Я думаю, что действительно изучение конкретных тем помогает расширить ваши способности. Темы исследований, которые вас интригуют, встречают людей, которые делают такие вещи, как вы (конференции, группы пользователей, irc, facebook, stackoverflow и т.д.) И, прежде всего, практикуйте свое искусство.
Вы можете проверить библиотеку Boost и ряд книг, написанных об этом. Хотя это, возможно, и не то, что вы имели в виду, IMO, библиотеки Boost являются примерами хорошо продуманных современных библиотек С++, которые используют особенности языка в значительной степени, как они должны использоваться для создания среди наиболее эффективных решений для их проблемной области. Конечно, есть такие необычные библиотеки, как препроцессор и MPL, которые заставляют вас задаться вопросом, будете ли вы когда-нибудь использовать их, но все они неплохие. По собственному опыту изучение библиотеки и ее литературы дало мне представление о том, как эффективно использовать С++.