최신 개발로 C ++을 어떻게 최신 상태로 만들어야합니까? [닫은]


9

언어와 모범 사례가 진화했다고 확신 할 때 매우 녹슨 C ++을 어떻게 최신 상태로 만들어야합니까? 나는 이것이 주제가 아닌 주제에 가깝다는 것을 알고 있으므로 세부 사항을 명확하게 설명하겠습니다. 약 10 년 전에 저는 꽤 훌륭한 C ++ 프로그래머라고 생각합니다. 저는 Scott Meyers의 책을 삼키고 Dr. Dobbs의 보푸라기 광고에서 퍼즐을 풀 수있었습니다. 아마 언어 변호사 일 것입니다. 나는 지난 10 년 동안 주로 Java, 일부 파이썬을 프로그래밍 해 왔으므로 OO 기술은 여전히 ​​처음에 있습니다. 그러나 C ++이 일반적인 회사에 합류하면서 나는 정말로 녹슨 사람이라는 것을 깨달았으며, 지금은 네임 스페이스와 같은 것들보다 새롭거나 훨씬 더 일반적인 언어 기능이 있습니다.

코드 읽기 및 쓰기 (특히 페어링)가 속도를 높이는 좋은 방법이라는 것을 알고 있지만, 사람들이 나에게 빠른 헤드 스타트를 제공하기 위해 권장하는 다른 리소스가 있습니까? 책? 웹 페이지? 튜토리얼?

요약:

  • C ++ 특정 Refresher 자원에 대한 권장 사항?
  • 일반적으로 OO / 프로그래밍이 아닙니다.
  • 코드를 읽고 쓰는 것 외에도

답변:


10

이 경우 이미 "먹어 스콧 마이어스의 책을 ", 당신은 훨씬 더되는 C ++ 십년 전에 (IMHO)을했던 평균 남자. Effective C ++ (Sutter / Alexandrescu의 C ++ 코딩 표준 책) 3 판을 짧게 새로 고치면 실제로 준비가 완료된 것입니다.

이 책의 권장 사항 (원래 2005 년 생각)은 당시와 마찬가지로 오늘날에도 유효합니다.

아, 부스트를 설치 하지 않았다면 설치하십시오 .

올해도 C ++ 11 표준이 정착되기 시작할 때 다시 시작 유형의 리소스와 책이 많이있을 것이라 확신하므로 C ++로 다시 시작할 수있는 행운의 시간입니다.


훌륭한 추천. Scott Meyers는 작년에 회사에 왔으며 모든 개발자에게 현대적인 C ++ 기술에 대한 2 일의 재교육 과정을 제공했습니다. 그는 C ++이 실제 세계에서 어떻게 작동하는지 알고 있으며 이론에 대한 또 다른 학문이 아닙니다.
Karl Bielefeldt

2

1) c ++ 11 기능을 갖춘 최신 컴파일러로 시작하십시오 (작업이 아직 필요하지 않다면 나중에 더 빨리해야한다고 가정)

2) 기존 프로그램 (아마도 애완 동물 프로젝트)을 가져 와서 최신 라이브러리 (예 : c ++ 11 표준 라이브러리 또는 boost ) 를 사용하도록 업데이트하거나 확장하십시오 .

3) 최신 C ++ 기능을 읽으십시오. 좋은 책들도 많이 있습니다. Modern C ++ Design을 아직 읽지 않았다면 권장합니다. 부재 중 소개되고 연마 된 c ++ 기술을 사용하는 고급 디자인의 고전입니다.

그것이 출발점입니다.


1

새긴 ​​금,

오픈 소스 프로젝트에 참여하는 것이 좋습니다. sourceforge를 보셨습니까 ? 이것은 모든 언어에 적용 할 수 있지만 소프트웨어 프로젝트에 기여하면서 다른 개발자로부터 배우는 것이 주요 이점입니다. 오픈 소스 프로젝트에서 작업하여 흥미로운 스타일을 선택하고 언어 기능을 사용할 수 있습니다. 좋은 것, 나쁜 것, 어떤 것 .... 그냥 평범한 이상한 :).


4
어쩌면 나는 운이 좋지 않았지만 내가 본 오픈 소스 프로젝트에는 내가 본 것 중 가장 끔찍한 코드가 포함되어 있습니다 .C / C ++을 작성 하지 않는 방법의 완벽한 예제로 사용될 수 있습니다 . 따라서 학습을 위해 오픈 소스를 들여다보기로 결정하는 경우 많은 프로그래머가 적극적으로 참여하는 프로젝트를 선택하는 것이 좋습니다. 이러한 프로젝트에는 양질의 코드가 포함될 가능성이 훨씬 높습니다.

1

C ++에서 코드 카타를 수행하십시오 : 하노이 타워, 링 버퍼 및 그와 같은 것들. 책을 읽는 것보다 책을 읽는 것보다 훨씬 더 효율적일 것입니다. 책을 읽으면 모르는 것을 배우는 데 도움이됩니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.