Как я должен привести свой C ++ в соответствие с современными разработками? [закрыто]


9

Как мне обновлять C ++ до последней версии, так как я уверен, что язык и лучшие практики изменились? Я понимаю, что это может быть не по теме, поэтому позвольте мне уточнить некоторые детали. Около 10 лет назад, я думаю, что я был довольно хорошим программистом на C ++, я пожирал книги Скотта Мейерса, я мог разгадывать загадки в рекламных роликах доктора Доббса. Я был, вероятно, немного языковым адвокатом. Я программировал в основном на Java, немного на python за последние 10 лет, так что мои навыки работы с OO все еще на пустом месте. Но, присоединившись к компании, где C ++ распространен, я понял, что должен признаться, что я и в самом деле ржавый, и теперь есть языковые возможности, которые являются либо новыми, либо гораздо более распространенными, чем я помню - такие вещи, как пространства имен и т. Д.

Я понимаю, что чтение и запись кода (особенно сопряжение) - это хороший способ освоить скорость, но есть ли другие ресурсы, которые люди порекомендовали бы в этом, чтобы дать мне ускоренный старт. Книга? Страница в Интернете? Учебники?

Обобщить:

  • Рекомендации для C ++ конкретных ресурсов для повышения квалификации?
  • Не OO / программирование вообще.
  • Вещи в дополнение только к чтению и написанию кода.

Ответы:


10

Если вы уже «проглотили книги Скотта Мейерса », то вы намного дальше, чем обычный парень, который делал C ++ 10 лет назад (ИМХО). Получите 3-е издание Effective C ++ (и книгу Саттера / Александреску по стандартам кодирования C ++), чтобы получить краткое обновление, и, действительно, вы должны быть готовы к работе.

Рекомендации, содержащиеся в этих книгах (я думаю, первоначально 2005 г.), сегодня так же актуальны, как и тогда.

Да, и установите Boost, если вы еще этого не сделали.

Удачное время для перезапуска в C ++, так как я уверен, что в этом и следующем году будет много ресурсов и книг типа перезапуска, когда стандарт C ++ 11 начнет устанавливаться.


Отличные рекомендации. Скотт Мейерс пришел в нашу компанию в прошлом году и дал всем нашим разработчикам двухдневный курс повышения квалификации по современным методам C ++. Он знает, как C ++ работает в реальном мире, и не просто академик с теориями.
Карл Билефельдт

2

1) начать с современного компилятора, который имеет функции c ++ 11 (при условии, что ваша работа потребует этого раньше, чем позже, если не уже)

2) взять существующие программы (возможно, ваши любимые проекты) и обновить или расширить их для использования более современных библиотек (таких как стандартные библиотеки c ++ 11 или boost ).

3) читать о последних возможностях C ++. Есть также много хороших книг. если вы еще не читали Modern C ++ Design , я бы порекомендовал его. Это классика для продвинутых дизайнов с использованием техник с ++, которые были представлены и отточены во время вашего отсутствия.

это отправная точка.


1

Ник,

Я бы посоветовал вам принять участие в проекте с открытым исходным кодом. Вы смотрели на sourceforge ? Это может относиться к любому языку, но ключевым преимуществом здесь является обучение у других разработчиков при участии в программном проекте. Вы можете выбрать некоторые интересные стили и использовать языковые функции при работе над проектом с открытым исходным кодом. Некоторые хорошие, некоторые плохие, некоторые .... просто странно :).


4
Возможно, мне просто не повезло, но проекты с открытым исходным кодом, которые я видел, содержали один из самых ужасных кодов, с которыми я когда-либо сталкивался - их можно было бы использовать как прекрасный пример того, как не писать на C / C ++. Поэтому, если вы решите заглянуть в открытый исходный код ради обучения, я бы посоветовал вам выбрать проект, в котором активно участвуют многие программисты. Такие проекты с большей вероятностью содержат в себе качественный код.

1

Создайте код ката на С ++: Ханойская башня, кольцевой буфер и тому подобное. Делать это будет намного эффективнее, чем просто читать книги об этом - хотя чтение книг поможет вам узнать то, чего вы не знали.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.