모든 프로그래머가 읽어야 할 책에 대한 질문을 읽은 후 다음을 쓸모없는 것으로 간주해야하는지 궁금합니다.
- 코드 완성 : 1993 년 1 판; 2004 년 5 월 2 판
- 알고리즘 소개 (Cormen, Leiserson, Rivest, Stein) : 1990 년 1 판; 2001 년 9 월 제 2 판; 2009 년 제 3 판
- 실용 프로그래머 : 1999 년 10 월
- 컴퓨터 프로그램의 구조와 해석 : 1984 년 제 1 판; 1996 년 9 월 제 2 판
- C 프로그래밍 언어 : 1978 년 1 판; 1988 년 4 월 제 2 판
이 책들은 모두 아주 오래된 것 같습니다. 현대 컴퓨팅과 그 책이 쓰여졌을 당시의 현재 사이에는 차이가 없습니까?
예를 들어, 61 세의 선생님은 일을 아주 잘 설명하지만 25 년 전과 지금 가르치기 시작했을 때 이루어진 모든 일을 고려하는 것을 잊었습니다.
그 책들도 마찬가지입니까? 현재 관행에 더 가까운 원리와 기술을 가르치는 더 현대적인 책이 없습니까? 아니면 오늘날에도 유용하고 관련성이 있다고 생각하십니까?
답변
이 책은 개발 원칙에 관한 것입니다. 이러한 원칙은 본질적으로 언어에 구애받지 않으며 심지어 패러다임에 구애받지 않는 (OOP, 함수형 프로그래밍, 명령형 언어)에도 적용됩니다.
소프트웨어는 항상 데이터를 가져 와서 처리 한 다음 다시 출력하는 것이므로 개발 이론과 좋은 방법을 설명합니다. 페이스 북, 트위터, 3D, 회계 처리 과정, 철도 교통 관리, 로켓 발사 등
"How to learn XXXXX in YY days"
XXXXX는 언어이고 YY는 언어 에 관한 책입니다 . 여기서 YY는 결국 (그리고 때로는 실제로 매우 빠르게) 쓸모없는 숫자입니다. 시대에 뒤쳐진.
스티브 맥코넬 (Steve McConnell)이 작성한 코드 컴플리트 (Code Complete )는 아마도 이것을 깨닫게 한 책일 것입니다. 그리고 실용주의 프로그래머는 완전히 내가 소프트웨어 개발의 한 비전을 변경했습니다. 그러한 책을 읽음으로써 당신은 매일 직면하는 문제의 95 %가 이미 해결되었으며 우리 중 95 %가 여전히 바퀴를 재발 명하고 있음을 알게됩니다.
소위 “클라우드”는 소프트웨어 개발의 미래가 아니라 개발 된 소프트웨어를 사용하는 방법입니다.
과대 광고 / 헛소리 유행에 빠지지 말고 소프트웨어 장인 기술을 향상시킬 수있는 방법에 집중하십시오.
다른 훌륭한 영혼들이 우리에게 발명하고 배운 것을 배우는 데 집중하십시오. 왜냐하면 그것은 훌륭한 개발자가되기위한 유일한 방법이기 때문입니다.
답변
그 책은 모두 아주 오래된 것 같습니다. “
Psychology-Computer-Programming (1971)-1970 년보다 많은 프로그래머가 프로그램을 설계하는 방법과 실수, 피하는 방법에 대한 심리학이 그 어느 때보 다 중요합니다.
소프트웨어 도구 (1976)-웹이 프레임 워크, 유틸리티, 스크립트 및 플러그인의 모음이되면서 소프트웨어 도구의 아이디어는 결코 관련성이 없었습니다.
편집 :의 일반적인 질문을 해결하기 위해-오래된 프로그래밍 도서는 관련이 있습니까?
소프트웨어 엔지니어링의 일반적인 원칙은 크게 바뀌지 않았으며 새로운 기술 OO, TDD 등이 있습니다. 그러나 일반적으로 사용자와 문제는 변경되지 않았습니다. 문제를 나누는 방법에 대한 생각은 지금과 같습니다. 항상 그렇습니다.
이 오래된 책들은 일반적으로 해당 분야의 전문가들에 의해 작성되었습니다. 현대의 많은 프로그래밍 서적은 최신 유행어가 아직 최신 상태 일 때 2000 페이지의 문을 열어야합니다.
더 이상 사용되지 않는 언어 및 기술에 관한 책은 관련이 없을 수 있습니다. 목록에 Vax 어셈블러 설명서가 없습니다. 그러나 ‘C’는 여전히 많이 사용되며 ‘C 프로그래밍 언어’는 ‘C’에 대한 최고의 책일뿐만 아니라 간결한 자습서를 작성하고 언어에 대한 참조를 작성하는 방법의 모델입니다.
새로운 알고리즘이 있습니까? 예. 그러나 모든 오래된 알고리즘은 여전히 관련이 있으며 새로운 알고리즘의 대부분은 당신이 만나지 못할 모호한 영역에 있습니다. 최근에 더 나은 종류 나 FFT를 만든 사람은 없습니다. 다른 사람들이 더 잘 설명하려고 시도했지만 올해의 알고리즘 책이 CLRS보다 더 좋은 이유는 없습니다.
추신. 멋진 새 iWhatsit은 1977 년에 개발 된 BSD를 실행합니다. 이제 아이들이 잔디밭에서 내립니다!
답변
이 책들은 모두 아주 오래된 것 같습니다. 요즘과 그 책이 쓰여진 시점에 차이가 있다고 생각하지 않습니까?
IMHO 아주 좋은 책이 수십 년 동안 인기를 유지한다는 것은 놀라운 일이 아닙니다. 그러나 나는 당신이 열거 한 각 후보자들에게 무언가를 말할 수 있다고 생각합니다.
Code complete: 2nd edition = may, 2004
실제로 “Code complete”의 첫 번째 버전은 1993 년이되었으므로이 버전은 실제로 “클래식”입니다. 현재 가장 인기있는 언어 (C / C ++ / Java / C # / Objective-C / D / …)를 포함하는 C 계열의 거의 모든 프로그래밍 언어에 적용되는 예제를 사용하는 기본 코딩 스타일에 관한 것입니다. 예,이 책은 최신 정보입니다.
Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)
글쎄, 나는 실제로 그 책 (내 알고리즘 교과서는 “Sedgewick”에서 나온 것)을 읽지 못했지만 학습 알고리즘과 알고리즘 구성은 실제로 언어에 구애받지 않습니다. 물론,이 기술은 요즘 표준 라이브러리에서 많은 기본 알고리즘을 찾았 기 때문에 지난 몇 년 동안 다소 과소 평가를 받고 있지만 IMHO 모든 전문 프로그래머는이 분야에 대한 기본 지식이 있어야합니다.
The Pragmatic Programmer
이것은 장인으로서의 프로그래밍에 관한 아주 좋은 책입니다. 텍스트 편집기, IDE, 버전 제어 등을 사용하여 프로그래머가 수동 작업으로 프로그래밍을 수행하는 한 언어에 구애받지 않고 매우 최신입니다.
Structure and Interpretation of Computer Programs: = September 1, 1996
이 책은 Scheme을 사용하여 다른 프로그래밍 패러다임의 차이점을 가르쳐 주지만 개인적으로 가장 좋아하는 책입니다. 나는 추상화를 만드는 데 초점을 맞춘 다른 책을 모른다. 그리고 추상화를 만드는 것은 평범한 프로그래머와 최고의 프로그래머 사이의 차이를 만드는 핵심 능력입니다. 지난 수십 년 동안 바뀌지 않았으므로 실제로이 책은 시대를 초월한 것입니다. 또한, 기능 언어 및 언어 요소가 최근에 인기를 얻었으므로 IMHO는이 책에 제시된 아이디어가 르네상스를 얻었습니다.
The C Programming Language
글쎄,이 책은 다른 네 책만큼 영원하지 않을 수 있습니다. 그러나 C는 위에 나열된 모든 인기있는 언어의 “어머니”와 같은 것이기 때문에이 책을 읽는 것이 좋습니다. 현대의 “C”서적은 더 나을 것이라고 생각하지 않습니다. 그리고 C를 C에 대해 더 잘 아는 사람이 작성한 C ++ 코드의 유지 보수 프로그래밍을해야한다면이 책은 필수입니다.
마지막으로 기술에 국한되지 않고 더 많은 “현재 현실”을 고려한 책을 요구했습니다. 그렇다면 “현재의 현실”이란 무엇이며 “비 기술적”측면에서 무엇이 바뀌 었습니까? 이 목록이 완전하거나 올바른 우선 순위를 가지고 있다고 말하지 않고 지난 10 년 동안의 몇 가지 요점이 있습니다.
- 더 많은 레거시 코드가 있습니다 (특히 Fortran 및 Cobol뿐만 아니라 C ++ 및 Java에도 더 많은 레거시 코드).
- 단위 테스트와 TDD가 더 좋아졌습니다.
- 사용 가능한 훨씬 더 많은 오픈 소스 코드가 있습니다.
- OO는 점점 더 많은 비평가를 받았습니다
(웹이나 앱 개발에 대해서는 아무것도 언급하지 않았습니다. 왜냐하면이 기술에 특정한 것으로 생각하기 때문입니다).
주제 1과 주제 2, 특히 2008 년의 “Clean Code” 와 2004 년의 “레거시 코드로 효과적으로 작업하기 “에 관한 좋은 책이 있습니다.
답변
“Code complete”, “pragmatic programmer”및 “SICP”에 대해 언급 한 것 중에서 회사에서 시작하여 더 높은 수준으로 올라가고 자하는 모든 새로운 개발자를위한 권장 읽기 목록에 있습니다.
컴퓨터 과학의 기본 과학은 바뀌지 않았기 때문에 오래전부터 사용되지 않습니다.
답변
나는 그 책을 모두 읽지는 않았지만 Code Complete와 The Pragmatic Programmer를 소유하고 있습니다. 이 책들은 더 이상 사용되지 않습니다. 그것들은 약간 녹슨 단락이있을 수 있지만 대부분의 내용은 오늘날에도 여전히 관련이 있습니다.
컴퓨터 과학 및 프로그래밍의 발전 은 진화 과정입니다. 새로운 추상화가 오래된 것 위에 소개되고 있지만 이러한 새로운 것들은 오래된 것을 쓸모 없게 만듭니다.
유추 … 외상 외과 의사 또는 심장 이식 전문 외과 의사로 공부하든 인체의 작동 방식, 세포 화학, 장기 시스템, 가슴을 여는 방법 및 신속하게 여는 방법을 알아야합니다. 내시경 장비와 덜 침습적 인 기술을 발명했다고해서 출혈을 멈추는 것은 기본을 배우기위한 갈고리가 아닙니다. 그것은 당신이 더 배워야한다는 것을 의미합니다.
답변
“구름”은 요인이 아닙니다. “구름”은 실제로 나열된 대부분의 책보다 훨씬 오래되었습니다. 그 책의 대부분은 핵심 원칙에 관한 것이며 실제로 자주 바뀌지 않습니다. 프레임 워크와 라이브러리는 항상 변하지 만 코드를 어떻게 구성해야하는지 크게 변하지 않습니다. 마찬가지로 포인터는 여전히 포인터이기 때문에 다른 일을 시작하지 않습니다. 귀하가 나열한 유일한 언어 별 책은 C에 관한 것입니다.이 경우 오래된 책은 새로운 것보다 훨씬 유용합니다. 왜냐하면 작업하려는 C 코드가 개발 된 기간에 더 가깝게 쓰여졌 기 때문입니다.
답변
당신이 인용 한 목록은 더 이상 사용되지 않습니다. 책이 유용하지 않을 정도로 주제가 바뀔 때만 책은 쓸모가 없습니다. 프로그래밍의 성격과 C 언어는 출판 이후 거의 변하지 않았습니다.