etc./StackOverFlow

모든 프로그래머가 읽어야 할 가장 영향력 있는 책은 무엇입니까? [닫은]

청렴결백한 만능 재주꾼 2022. 3. 17. 08:08
반응형

질문자 :Community Wiki


시간을 되돌려 개발자 경력을 시작할 때 특정 책을 읽으라고 자신에게 말할 수 있다면 어떤 책을 하시겠습니까?

나는 이 목록이 다양하고 광범위한 것을 다루기를 기대합니다.

검색하려면: 오른쪽 상단 모서리에 있는 검색 상자를 사용합니다. 현재 질문의 답변을 검색하려면 inquestion:this 사용하세요. 예를 들어:

 inquestion:this "Code Complete"


  • Steve McConnell의 Code Complete (2nd edition)
  • 실용적인 프로그래머
  • 컴퓨터 프로그램의 구조와 해석
  • Kernighan과 Ritchie 의 C 프로그래밍 언어
  • Cormen, Leiserson, Rivest & Stein의 알고리즘 소개
  • Gang of Four의 디자인 패턴
  • 리팩토링: 기존 코드 디자인 개선
  • 신화 속의 남자의 달
  • Donald Knuth 의 컴퓨터 프로그래밍 기술
  • 컴파일러: Alfred V. Aho, Ravi Sethi 및 Jeffrey D. Ullman의 원리, 기법 및 도구
  • Douglas Hofstadter의 괴델, 에셔, 바흐
  • 클린 코드: Robert C. Martin 의 Agile Software Craftsmanship 핸드북
  • 효과적인 C++
  • 더 효과적인 C++
  • Charles Petzold의 코드
  • 프로그래밍 펄 (Jon Bentley)
  • Michael C. Feathers의 레거시 코드로 효과적으로 작업하기
  • Demarco와 Lister의 Peopleware
  • Peter Seibel의 직장에서의 코더
  • 농담이시군요, 파인만 씨!
  • 효과적인 자바 2판
  • Martin Fowler 의 엔터프라이즈 애플리케이션 아키텍처 패턴
  • 작은 책략가
  • 노련한 책략가
  • Ruby를 사용하는 이유(심각한) 가이드
  • 수감자들이 망명을 운영하고 있습니다: 첨단 기술 제품이 우리를 미치게 만드는 이유와 이성을 회복하는 방법
  • 유닉스 프로그래밍의 기술
  • 테스트 주도 개발: Kent Beck의 예제
  • 애자일 개발자의 관행
  • 생각하게 하지마
  • Robert C. Martin의 애자일 소프트웨어 개발, 원리, 패턴 및 사례
  • Eric Evans의 도메인 주도 설계
  • 도날드 노먼(Donald Norman) 의 일상물 디자인
  • Andrei Alexandrescu의 모던 C++ 디자인
  • Joel Spolsky의 Best Software Writing I
  • Kernighan과 Pike 의 프로그래밍 실습
  • 실용적인 사고와 학습: Andy Hunt의 웻웨어 리팩터링
  • Software Estimation: Steve McConnel 의 Black Art의 신비화
  • 열정적인 프로그래머(내 직업은 인도로 갔다) 채드 파울러
  • 해커: 컴퓨터 혁명의 영웅
  • 알고리즘 + 데이터 구조 = 프로그램
  • 견고한 코드 작성
  • JavaScript - 좋은 부분
  • 37개의 신호로 실제 얻기
  • Karl Seguin 의 프로그래밍 기초
  • 컴퓨터 그래픽: C의 원리와 실습 (2판)
  • Bruce Eckel의 Java로 생각하기
  • 컴퓨팅 시스템의 요소
  • Joshua Kerievsky의 패턴으로 리팩토링
  • Andrew S. Tanenbaum의 최신 운영 체제
  • 주석이 달린 튜링
  • 도널드 노먼의 우리를 똑똑하게 만드는 것들
  • 시대를 초월한 건축 방식( Christopher Alexander)
  • 마감일: Tom DeMarco의 프로젝트 관리에 관한 소설
  • Stroustrup 의 C++ 프로그래밍 언어(3판)
  • 엔터프라이즈 애플리케이션 아키텍처의 패턴
  • 컴퓨터 시스템 - 프로그래머의 관점
  • Robert C. Martin의 C#의 애자일 원칙, 패턴 및 사례
  • 테스트를 통해 성장하는 객체 지향 소프트웨어
  • Brad Abrams의 프레임워크 설계 지침
  • David West 박사의 객체 사고
  • W. Richard Stevens 의 UNIX 환경에서의 고급 프로그래밍
  • 해커와 화가: 컴퓨터 시대의 큰 아이디어
  • Tracy Kidder 의 새로운 기계의 영혼
  • Jeffrey Richter의 C#을 통한 CLR
  • 시대를 초월한 건축 방식( Christopher Alexander)
  • Steve Metsker의 C# 디자인 패턴
  • 루이스 캐롤의 이상한 나라의 앨리스
  • 선과 오토바이 정비 기술 Robert M. Pirsig
  • 얼굴 소개 - 인터랙션 디자인의 핵심
  • 모두가 여기에 온다: 조직 없는 조직의 힘 Clay Shirky
  • 프로그래밍의 도
  • 자연의 컴퓨터적 아름다움
  • Steve Maguire의 견고한 코드 작성
  • Philip과 Alex의 웹 출판 가이드
  • Grady Booch의 응용 프로그램을 사용한 객체 지향 분석 및 설계
  • Joshua Bloch의 효과적인 자바
  • NJ Cutland의 계산 가능성
  • 프로그래밍의 거장
  • 더 타오 테 칭
  • 생산적인 프로그래머
  • 케빈 미트닉 의 속임수의 기술
  • 직업 프로그래머: 불완전한 세계 를 위한 게릴라 전술 - 크리스토퍼 던컨
  • 인공 지능 프로그래밍의 패러다임: Common Lisp의 사례 연구
  • 운명의 주인
  • Andy Hunt의 NUnit과 Matt Hargett의 Dave Thomas를 사용한 C#의 실용적인 단위 테스트
  • 이를 해결하는 방법 조지 폴리아(George Polya)
  • 파울로 코엘료 의 연금술사
  • Smalltalk-80: 언어와 그 구현
  • 보안 코드 작성 (2nd Edition) by Michael Howard
  • Philip Wadler와 Richard Bird의 함수형 프로그래밍 소개
  • 버그가 없습니다! 데이비드 틸렌
  • Jason Freid와 DHH의 재작업
  • 작동 중인 JUnit

Community Wiki

케이앤알

@Juan: Juan을 알고 있습니다. 하지만 실제로 당면한 작업에 착수해야만 배울 수 있는 몇 가지 사항이 있습니다. 하루 종일 추상적 인 이상을 말하는 것은 단순히 당신을 학자로 만듭니다. 우리가 진정으로 그들의 존재 이유를 골똘히 생각하는 것은 초록의 적용에 있습니다. :NS

@Keith: Alan Cooper의 "The Inmates are Running Asylum"에 대한 훌륭한 언급 - 확실히 눈을 뜨게 한 것입니다. 그 책을 읽은 이후 나와 함께 일한 개발자라면 누구나 이 책이 지지하는 아이디어를 언급하는 것을 들었습니다. +1


Community Wiki

컴퓨터 과학자를 위한 이산 수학 http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02

JK Truss의 컴퓨터 과학자를 위한 이산 수학.

이것이 프로그래밍을 가르치는 것은 아니지만 모든 프로그래머가 알아야 할 기본적인 수학을 가르쳐줍니다. 대학에서 이 내용을 기억할 수 있지만 실제로 술어 논리를 수행하면 프로그래밍 기술이 향상됩니다. 컬렉션을 사용하여 프로그래밍하려면 집합 이론을 배워야 합니다.

여기에는 다양한 방식으로 문제에 대해 생각할 수 있는 흥미로운 정보가 많이 있습니다. 새로운 것을 배우기 위해 가끔씩 집어 들고 다니는 것이 편리합니다.


Community Wiki

체계론: 시스템이 작동하는 방식과 특히 실패하는 방식 . 저렴하게 사용하세요. 그러나 몇 가지 실패한 프로젝트를 수행할 때까지 유머를 얻지 못할 수도 있습니다.

책의 아름다움은 저작권 연도입니다.

아마도 이 책에서 가장 심오한 교훈을 주는 "법칙"은 다음과 같습니다.

기본 실패 모드 정리(FFT): 복잡한 시스템은 일반적으로 실패 모드에서 작동합니다.

다른 부분의 오류 또는 다른 부분의 유효성 검사로 가려진 소프트웨어의 특정 부분에 오류가 있는 부분이 있다는 아이디어입니다. 소프트웨어 결함이 하드웨어 안전 장치로 가려진 Therac-25 방사선 기계 에서 실제 사례를 참조하십시오. 하드웨어 안전 장치가 제거되었을 때 그 동안 감지되지 않은 소프트웨어 경쟁 조건으로 인해 기계가 3명을 죽였습니다.


Community Wiki

개인적으로 가장 좋아하는 것 중 하나는 Hacker's Delight 입니다. 교육적인 만큼 읽는 것도 재미있었기 때문입니다.

빨리 2탄이 나왔으면 좋겠습니다!


Community Wiki

컴퓨터 프로그래밍의 개념, 기술 및 모델.

대체 텍스트 http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg


Community Wiki

익스트림 프로그래밍 설명: 변화 를 수용(Kent Beck). 나는 하드코어 XP나 하이웨이 방식의 소프트웨어 개발을 옹호하지는 않지만 내 경력 훨씬 더 일찍 이 책에서 원리를 소개받았더라면 좋았을 텐데. 단위 테스트, 리팩토링, 단순성, 지속적인 통합, 비용/시간/품질/범위 - 이것들은 내가 개발을 바라보는 방식을 바꾸었습니다. 애자일 이전에는 디버거와 변경 요청에 대한 두려움이 전부였습니다. 애자일 이후에 그 악마들은 그렇게 크게 보이지 않았습니다.


Community Wiki

프로그래밍 언어의 토대에 대한 철저한 이해를 위한 Benjamin C Pierce의 유형 및 프로그래밍 언어.


Community Wiki

대체 텍스트 http://ecx.images-amazon.com/images/I/51E0Ojkz8iL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg


Community Wiki

Database System Concepts 는 좋은 데이터베이스 디자인 원칙을 이해하는 데 읽을 수 있는 최고의 책 중 하나입니다.

대체 텍스트


Community Wiki

프로그래밍 실습. Brian W. Kernighan, Rob Pike.

여기에 표시된 스타일은 훌륭합니다. 코드는 그 자체로 말하며 전체 책은 KISS 원칙을 따릅니다. 개인적으로 내가 선택한 언어는 아니지만 여전히 나에게 영향력이 있습니다.


Community Wiki

기초부터 프로그래밍. 인터넷에서 무료입니다. 이 책은 저에게 AT&T asm을 가르쳐주었습니다. 읽기가 매우 쉽습니다.

대체 텍스트


Community Wiki

인공 지능 프로그래밍의 패러다임 : Peter Norvig의 Common Lisp 사례 연구

여기에 이미지 설명 입력

커먼리스프를 배우고 싶어서 읽기 시작했습니다. 중도에 접어들었을 때 이 책이 지금까지 읽은 프로그래밍에 관한 가장 훌륭한 책이라는 것을 깨달았습니다.


Community Wiki

확실한 소프트웨어 장인 정신

대체 텍스트 http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg

이 책은 소프트웨어 엔지니어링, 시스템 개발에 대한 많은 것을 설명합니다. 웹 VS 수축 포장 VS IBM 프레임워크와 같은 다양한 제품 개발의 차이점을 이해하는 것도 매우 유용합니다. 폭포수 모델을 생각할 때 사람들은 무엇을 염두에 두었습니까? 이것을 읽으면 우리가 명확해질 것입니다 (바라건대)


Community Wiki

@Peter Coulton -- 당신은 Knuth를 읽지 않고 그것을 연구합니다.

저와 제 작업... Purely Functional Data Structures 는 기능적 언어를 염두에 두고 생각하고 개발하는 데 좋습니다.


Community Wiki

토마스 프리드먼의 '세상은 평평하다'.

프로그래밍의 우수성은 정신 에너지의 투자와 의학 또는 법률 직업에 필적하는 지속적인 학습에 대한 헌신을 요구합니다. 그것은 그 직업이 지불하는 것의 일부를 지불하고 금융 부문으로 향하는 수학에 정통한 사람들에게 지불되는 임금은 훨씬 적습니다. 그리고 대부분의 경제에서 지적이고 자제력이 있는 사람들이 비교적 쉽게 진입할 수 있는 직업이기 때문에 코드를 구성하는 데 드는 임금이 줄어들고 있습니다.

프로그래밍은 이미 배관 비용보다 적은 비용을 지불할 정도로 침식되었습니다. 배관은 "해양"할 수 없습니다. 2년마다 전문 배관공 회의에 참석하기 위해 $2395를 지불할 필요가 없으며 배우는 데 1년이 걸릴 완전히 새로운 배관 기술 세트를 받는 특권을 누립니다.

북미나 유럽에 살고 있고 젊고 똑똑하다면 프로그래밍은 합리적인 직업 선택이 아닙니다. 프로그래밍과 관련된 비즈니스는 절대적으로 그렇습니다. 비즈니스를 공부하고 BS 검출기를 개선하기 위해 프로그래밍에 대해 충분히 알고 있습니다. 그러나 라이브러리, 데이터 구조 및 알고리즘을 숙달하는 데 정신 에너지의 가장 큰 부분을 바치고 있습니까? 그것은 프로그래밍이 경제적인 선택보다 더 중요한 것인 경우에만 의미가 있습니다.

프로그래밍을 사랑 하고 그 이유로 직업으로 삼고 싶다면, 생계를 유지하기 위해 점점 더 어려운 직업이 되도록 하는 힘에 대한 냉정한 이해를 발전시켜야 합니다. . "세계는 평평하다"는 변수의 이름을 가르쳐주지는 않지만 이미 도래한 경제적 현실에 6~8시간 동안 몰입할 수 있습니다. 당신이 무서워 그것을 읽고, 할 수없는 경우, 다음 나가서 구입 "코드 완료."


Community Wiki

대체 텍스트

작년에 저는 여러 수업을 들었습니다. 나는 읽었다

혁신가의 딜레마(파괴적 기술)
The Mythical Man Month(관리 소프트웨어)
캐즘을 넘어(스타트업)
데이터베이스 관리 시스템, COW 책
프로그래밍 C#, OSTRICH 책
iPhone 개발자의 시작, The GRAPEFRUIT Book





각 책은 훌륭했지만 Clayton Christensen의 Innovator's Dilemma(1997!!!)는 정말 환상적인 책이며 현대 소프트웨어 세계에 대해 정말 생각하게 했습니다. 해결된 과제는 파괴적 기술과 디스크 드라이브 회사와 비기술적 회사가 항상 새로운 판도를 바꾸는 기술로 인해 혼란을 겪는 방식입니다. 아마도 가장 큰 '웹' 회사인 Google에 대해 생각할 때 새로운 관점을 제공합니다. 그들은 왜 모든 것에 손을 대고 있습니까? 새로운 일로 인해 자신의 위치가 무너지는 것을 원하지 않기 때문입니다. Google의 미리보기는 아이디어를 얻기에 충분합니다. 읽어!


Community Wiki

해커, Steven Levy.

성격과 삶의 방식이 우선되어야 합니다. 다른 모든 것은 배울 수 있습니다.


Community Wiki

프로그래밍 실습

대체 텍스트

그리고

컴퓨터로 해결하는 방법

대체 텍스트 http://img.infibeam.com/img/7101e0ee/496b1/05/629/PMB-9788131705629.jpg?hei=200&wid=160&op_sharpen=1


Community Wiki

파이썬 언어는 나에게 매우 큰 영향을 미쳤습니다. 몇 년 전에 이 책을 읽었더라면 좋았을 것입니다. Python 언어의 아름다움과 단순성은 내가 다른 언어로 코드를 작성하는 방법에 실제로 영향을 미쳤습니다.

대체 텍스트대체 텍스트


Community Wiki

새로운 튜링 옴니버스 http://ecx.images-amazon.com/images/I/51HlYd-%2BRwL._BO2,204,203,200_PIsitb-sticker-arrow-click,TopRight,35,-76_AA300_SH20_OU01_.jpg

정말 좋은 책. 컴퓨터 과학의 가장 중요한 영역에 대한 높은 수준의 취향을 가지고 있습니다. 예, CS != 프로그래밍이지만 이것은 여전히 모든 프로그래머에게 유용합니다.


Community Wiki

Brady Booch의 응용 프로그램을 사용한 객체 지향 분석 및 설계


Community Wiki

Fred Brooks의 신화적인 Man-Month http://en.wikipedia.org/wiki/The_Mythical_Man-Month


Community Wiki

나는 "The Art of Unix Programming"은 우리에게 소프트웨어 디자인의 몇 가지 원칙(주로 단순함)을 이해시키려고 노력하는 Eric S. Raymond와 같은 뛰어난 해커/훌륭한 마음이 저술한 훌륭한 책이라고 생각합니다. 이 책은 유닉스 플랫폼에서 프로젝트를 시작하려는 모든 프로그래밍의 필수품입니다.


Community Wiki

위의 책들 중 많은 부분이 필독서라는 점에는 동의하지만(Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming, SICP가 바로 떠오릅니다), 저는 약간 다른 방향으로 가서 A Discipline을 추천하고 싶습니다. Edsger Dijkstra 의 프로그래밍. 32년이 지났지만 "검증 가능성을 위한 설계"에 대한 강조는 매우 관련성이 있습니다("검증 가능성"이 "단위 테스트" 대신 "증명"을 의미하더라도).


Community Wiki

Pete Goodliff의 Code Craft 는 잘 읽었습니다!

코드 크래프트 http://ecx.images-amazon.com/images/I/51WZ9AEC3GL._SL500_BO2,204,203,200_PIsitb-dp-500-arrow,TopRight,45,-64_OU01_AA240_SH20_.jpg


Community Wiki

Martin Fowler의 리팩토링: 기존 코드 설계 개선 은 이미 나열되었습니다. 그러나 왜 그것이 나에게 영향을 미쳤는지 자세히 설명하겠습니다.

전체 책의 핵심은 코드를 구조화하여 인간 이 더 쉽게 읽고 이해할 수 있도록 하는 것입니다. 그것은 내가 작성하는 코드가 동료와 후임자들이 코드에서 좋은 것을 소비하고 배울 수 있다는 것을 강력하게 가르쳐줍니다. 그것은 사람들이 내 이름을 찬양하게 하고 나를 영원히 저주하지 않도록 의식적으로 프로그램하도록 영감을 줍니다.


Community Wiki

대체 텍스트 http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg

C++ 프로그래밍 방법 초심자에게 좋습니다. 1500페이지로 꽉 차 있는 훌륭한 책입니다.


Community Wiki

널리 찬사를 받지는 않았지만 깊은 통찰력으로 가득 찬 훌륭한 책이 있습니다. Agile Software Development: Cooperative Game , Alistair Cockburn 저.

무엇이 그렇게 특별한가요? 글쎄요, 분명히 모든 사람들이 "Agile"이라는 말을 들어봤고, 요즘은 대부분이 신자인 것 같습니다. 하지만 믿든 믿지 않든 애자일 운동이 존재하는 이유에는 몇 가지 깊은 원칙이 있습니다. 이 책은 정확하고 과학적인 방식으로 이러한 원칙을 밝히고 설명합니다. 몇 가지 원칙은 다음과 같습니다(btw, 이것은 Alistair가 아닌 내 말입니다).

  1. 팀 소프트웨어 개발에서 가장 어려운 점은 모든 사람의 두뇌가 동일한 이해를 갖도록 하는 것입니다. 우리는 유형의 세계에서는 보이지 않는 거대하고 정교하며 복잡한 시스템을 구축하고 있습니다. 더 많은 사람들의 두뇌가 더 깊은 이해를 공유하도록 하는 데 능숙할수록 팀은 소프트웨어 개발에서 더 효과적일 것입니다. 이것이 페어 프로그래밍이 의미가 있는 근본적인 이유입니다. 대부분의 사람들은 그것을 무시하지만(저도 처음에는 그렇게 했습니다) 이 원칙을 염두에 두고 한 번 더 시도해 볼 것을 적극 권장합니다. 방금 구축한 하위 시스템을 깊이 이해하는 두 명의 사람과 함께 하게 됩니다. 이렇게 깊이 있는 정보를 그렇게 빨리 전송할 수 있는 다른 방법은 많지 않습니다. 그것은 Vulcan의 마음이 융합된 것과 같습니다.
  2. 깊은 이해를 빠르게 전달하기 위해 항상 말이 필요한 것은 아닙니다. 그리고 그 결과: 단어가 너무 많고 청자/독자의 능력을 초과합니다. 즉, 시도하려는 이해 전달이 일어나지 않습니다. 아이들이 "몰입"하고 "흡수"함으로써 언어를 말하는 방법을 배운다는 것을 고려하십시오. 언어뿐만 아니라 ... 그는 바닥에서 기차를 가지고 노는 일부 아이들의 예를 제공합니다. 기차를 한 번도 본 적이 없는 또 다른 아이가 옵니다. 하지만 다른 아이들을 보며 게임의 요지를 파악하고 바로 따라합니다. 이것은 인간 사이에서 항상 발생합니다. 이것은 너무 많은 단어에 대한 결과와 함께 700페이지에 달하는 세부 요구 사항 사양을 작성하는 것이 옛날 "폭포" 시대에 얼마나 잘못 인도되었는지 알 수 있도록 도와줍니다.

거기에 너무 많은 것이 있습니다. 나는 이제 입을 다물겠지만 이 책을 강력히 추천한다!


Community Wiki

운명의 주인. 당신의 직업에 대한 동기와 사랑이 있는 한, 진실로 영감을 주는 이 책에서 설명하는 것보다 더 좋을 수 없습니다!


Community Wiki

출처 : http:www.stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read

반응형