Контейнеры STL должны быть в состоянии скопировать объекты, которые Вы храните в них и разработаны, чтобы ожидать, что оригинал и копия будут эквивалентны. автоматические объекты указателя имеют совершенно другой контракт, посредством чего копирование создает передачу права собственности. Это означает, что контейнеры auto_ptr покажут странное поведение, в зависимости от использования.
существует подробное описание того, что может пойти не так, как надо в Эффективном STL (Scott Meyers) объект 8 и также not-so-detailed описание в Эффективном C++ (Scott Meyers) объект 13.
Читайте блог разработчиков. Постарайтесь сохранить достаточное количество ресурсов в программе чтения каналов и просматривайте их каждый день (или около того). Просто выберите то, что вам нравится.
Большинство программистов пишут свое мнение, свое мнение и так далее. Вы можете МНОГОЕ узнать, просто читая, что делают другие, и отфильтровывая то, что вам нравится или кажется интересным, а что нет. Книги полезны, но с 23-летним опытом и просто желанием быть в курсе ... Я бы рекомендовал блоги ...
Некоторые блоги, которые я читал:
Stackoverflow - тоже отличный ресурс. Не только для поиска ответов на свои проблемы, но и для чтения ответов на другие проблемы . Серьезно, я Я обнаружил, что в последнее время много раз цитирую какой-то ответ из stackoverflow ... или применяю кое-что, что я здесь видел.
Как бы то ни было, быть в курсе текущих тенденций (таких как TDD или Aspect Oriented Programming) - это как быть в курсе самого мира. Вы встаете утром и читаете газету, может быть, только заголовки, а затем что-нибудь конкретное, около 5 или 10 минут. Затем вы читаете статьи, которые кажетесь вам интересными, но в некоторой степени осознаёте самые важные происходящие события. Это то же самое, но эти блоги (и некоторые другие) - ваша газета в мире программирования.
быть в курсе текущих тенденций (таких как TDD или аспектно-ориентированное программирование) - все равно что быть в курсе самого мира. Вы встаете утром и читаете газету, может быть, только заголовки, а затем что-нибудь конкретное, около 5 или 10 минут. Затем вы читаете статьи, которые кажетесь вам интересными, но в некоторой степени осознаёте самое важное, что происходит. Это то же самое, но эти блоги (и некоторые другие) - ваша газета в мире программирования. быть в курсе текущих тенденций (таких как TDD или аспектно-ориентированное программирование) - все равно что быть в курсе самого мира. Вы встаете утром и читаете газету, может быть, только заголовки, а затем что-нибудь конкретное, около 5 или 10 минут. Затем вы читаете статьи, которые кажетесь вам интересными, но в некоторой степени осознаёте самые важные происходящие события. Это то же самое, но эти блоги (и некоторые другие) - ваша газета в мире программирования.Прочтите новые книги по программированию, например, Прагматичный программист . В этой книге рассказывается о программировании с использованием современных инструментов, идиомах, методах и т. Д.
Многие «новые» концепции на самом деле не новы. Например, большинство «современных» языковых функций унаследованы от ранних функциональных языков. Такие методы, как TDD и Agile, - это просто систематизация вещей, которые делались в течение долгого времени, возможно, не в мейнстриме. Да и сами по себе их не сложно понять.
Я подозреваю, что вашим самым большим препятствием будет терминология. Возможно, вы привыкли слышать модные словечки, но когда вы смотрите на то, что они означают, вы просто обнаруживаете, что они объясняются в терминах других модных словечек.
Я рекомендую настаивать. Найдите способ вернуться туда, где вещи объясняются в терминах, которые вы можете связать, а затем продолжайте работать. После того, как вы сделаете это с помощью нескольких концепций, вы почувствуете себя намного увереннее в решении большего и получите лучшее представление о том, на чем вы действительно хотите сосредоточиться.
Для языковых вещей это, вероятно, проще, потому что вы можно вернуться, например, к Lisp и найдите концепции, объясненные в терминах того, что было знакомо в 60-х годах и раньше! (конечно, вы также можете найти более свежие статьи).
Для вопросов, связанных с дизайном и процессами, простое чтение их историй в Википедии должно дать вам некоторые подсказки.
Сфокусируйтесь достаточно узко, чтобы не ошеломлять, но широко достаточно, чтобы принять во внимание экосистему, в которой существует инструмент или технология.
Если все, что вам нужно, - это идти в ногу со временем, вам следует читать блоги разработчиков. Я не собираюсь давать вам обычный список блогов, потому что не думаю, что стоит полагаться на 4-7 блоггеров для получения всей вашей информации.
Раньше я объединял всех блоггеров в Google Reader и мое чтение список вырос до более чем 400 блогов. Это определенно не поможет.
Лучше посещайте такие сайты, как codebix.com, dzone.com, чтобы получить последние статьи и небольшую помощь сообщества в выборе лучших статей;).
Вам понадобится альтернативный подход к темам. Я нашел серию "Heads on ..." одновременно занимательной и технически обоснованной.
Взгляните на Heads on Java: http://oreilly.com/catalog/9780596009205
Лично я многому научился, просмотрев лекции и технические переговоры, опубликованные в Google. У них есть масса контента о программной инженерии. Очевидно, что просмотр видео - это совсем другой процесс обучения, чем чтение, но большинство людей очень умны и талантливы ораторы.
Вы можете найти эти лекции по функциональному программированию Эрика Мейера поучительными.
Похоже, ваши логические навыки программирования в порядке. Мне кажется, что лучший способ обновить свои навыки - это взять копию C # (Express бесплатен) или java (я парень .net) и преобразовать одно из ваших старых приложений, тогда вы находят реальные проблемы и смогут их решить (с помощью SO), используя «современные» методы.
Удачи.