시간을 되돌려 개발자 경력을 시작할 때 특정 책을 읽으라고 자신에게 말할 수 있다면 어떤 책을 하시겠습니까?
나는 이 목록이 다양하고 광범위한 것을 다루기를 기대합니다.
검색하려면: 오른쪽 상단 모서리에 있는 검색 상자를 사용합니다. 현재 질문의 답변을 검색하려면 inquestion:this
사용하세요. 예를 들어:
inquestion:this "Code Complete"
질문자 :Community Wiki
시간을 되돌려 개발자 경력을 시작할 때 특정 책을 읽으라고 자신에게 말할 수 있다면 어떤 책을 하시겠습니까?
나는 이 목록이 다양하고 광범위한 것을 다루기를 기대합니다.
검색하려면: 오른쪽 상단 모서리에 있는 검색 상자를 사용합니다. 현재 질문의 답변을 검색하려면 inquestion:this
사용하세요. 예를 들어:
inquestion:this "Code Complete"
@Juan: Juan을 알고 있습니다. 하지만 실제로 당면한 작업에 착수해야만 배울 수 있는 몇 가지 사항이 있습니다. 하루 종일 추상적 인 이상을 말하는 것은 단순히 당신을 학자로 만듭니다. 우리가 진정으로 그들의 존재 이유를 골똘히 생각하는 것은 초록의 적용에 있습니다. :NS
@Keith: Alan Cooper의 "The Inmates are Running Asylum"에 대한 훌륭한 언급 - 확실히 눈을 뜨게 한 것입니다. 그 책을 읽은 이후 나와 함께 일한 개발자라면 누구나 이 책이 지지하는 아이디어를 언급하는 것을 들었습니다. +1
JK Truss의 컴퓨터 과학자를 위한 이산 수학.
이것이 프로그래밍을 가르치는 것은 아니지만 모든 프로그래머가 알아야 할 기본적인 수학을 가르쳐줍니다. 대학에서 이 내용을 기억할 수 있지만 실제로 술어 논리를 수행하면 프로그래밍 기술이 향상됩니다. 컬렉션을 사용하여 프로그래밍하려면 집합 이론을 배워야 합니다.
여기에는 다양한 방식으로 문제에 대해 생각할 수 있는 흥미로운 정보가 많이 있습니다. 새로운 것을 배우기 위해 가끔씩 집어 들고 다니는 것이 편리합니다.
체계론: 시스템이 작동하는 방식과 특히 실패하는 방식 . 저렴하게 사용하세요. 그러나 몇 가지 실패한 프로젝트를 수행할 때까지 유머를 얻지 못할 수도 있습니다.
책의 아름다움은 저작권 연도입니다.
아마도 이 책에서 가장 심오한 교훈을 주는 "법칙"은 다음과 같습니다.
기본 실패 모드 정리(FFT): 복잡한 시스템은 일반적으로 실패 모드에서 작동합니다.
다른 부분의 오류 또는 다른 부분의 유효성 검사로 가려진 소프트웨어의 특정 부분에 오류가 있는 부분이 있다는 아이디어입니다. 소프트웨어 결함이 하드웨어 안전 장치로 가려진 Therac-25 방사선 기계 에서 실제 사례를 참조하십시오. 하드웨어 안전 장치가 제거되었을 때 그 동안 감지되지 않은 소프트웨어 경쟁 조건으로 인해 기계가 3명을 죽였습니다.
개인적으로 가장 좋아하는 것 중 하나는 Hacker's Delight 입니다. 교육적인 만큼 읽는 것도 재미있었기 때문입니다.
빨리 2탄이 나왔으면 좋겠습니다!
익스트림 프로그래밍 설명: 변화 를 수용(Kent Beck). 나는 하드코어 XP나 하이웨이 방식의 소프트웨어 개발을 옹호하지는 않지만 내 경력 훨씬 더 일찍 이 책에서 원리를 소개받았더라면 좋았을 텐데. 단위 테스트, 리팩토링, 단순성, 지속적인 통합, 비용/시간/품질/범위 - 이것들은 내가 개발을 바라보는 방식을 바꾸었습니다. 애자일 이전에는 디버거와 변경 요청에 대한 두려움이 전부였습니다. 애자일 이후에 그 악마들은 그렇게 크게 보이지 않았습니다.
프로그래밍 언어의 토대에 대한 철저한 이해를 위한 Benjamin C Pierce의 유형 및 프로그래밍 언어.
Database System Concepts 는 좋은 데이터베이스 디자인 원칙을 이해하는 데 읽을 수 있는 최고의 책 중 하나입니다.
프로그래밍 실습. Brian W. Kernighan, Rob Pike.
여기에 표시된 스타일은 훌륭합니다. 코드는 그 자체로 말하며 전체 책은 KISS 원칙을 따릅니다. 개인적으로 내가 선택한 언어는 아니지만 여전히 나에게 영향력이 있습니다.
기초부터 프로그래밍. 인터넷에서 무료입니다. 이 책은 저에게 AT&T asm을 가르쳐주었습니다. 읽기가 매우 쉽습니다.
인공 지능 프로그래밍의 패러다임 : Peter Norvig의 Common Lisp 사례 연구
커먼리스프를 배우고 싶어서 읽기 시작했습니다. 중도에 접어들었을 때 이 책이 지금까지 읽은 프로그래밍에 관한 가장 훌륭한 책이라는 것을 깨달았습니다.
확실한 소프트웨어 장인 정신
대체 텍스트 http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
이 책은 소프트웨어 엔지니어링, 시스템 개발에 대한 많은 것을 설명합니다. 웹 VS 수축 포장 VS IBM 프레임워크와 같은 다양한 제품 개발의 차이점을 이해하는 것도 매우 유용합니다. 폭포수 모델을 생각할 때 사람들은 무엇을 염두에 두었습니까? 이것을 읽으면 우리가 명확해질 것입니다 (바라건대)
@Peter Coulton -- 당신은 Knuth를 읽지 않고 그것을 연구합니다.
저와 제 작업... Purely Functional Data Structures 는 기능적 언어를 염두에 두고 생각하고 개발하는 데 좋습니다.
토마스 프리드먼의 '세상은 평평하다'.
프로그래밍의 우수성은 정신 에너지의 투자와 의학 또는 법률 직업에 필적하는 지속적인 학습에 대한 헌신을 요구합니다. 그것은 그 직업이 지불하는 것의 일부를 지불하고 금융 부문으로 향하는 수학에 정통한 사람들에게 지불되는 임금은 훨씬 적습니다. 그리고 대부분의 경제에서 지적이고 자제력이 있는 사람들이 비교적 쉽게 진입할 수 있는 직업이기 때문에 코드를 구성하는 데 드는 임금이 줄어들고 있습니다.
프로그래밍은 이미 배관 비용보다 적은 비용을 지불할 정도로 침식되었습니다. 배관은 "해양"할 수 없습니다. 2년마다 전문 배관공 회의에 참석하기 위해 $2395를 지불할 필요가 없으며 배우는 데 1년이 걸릴 완전히 새로운 배관 기술 세트를 받는 특권을 누립니다.
북미나 유럽에 살고 있고 젊고 똑똑하다면 프로그래밍은 합리적인 직업 선택이 아닙니다. 프로그래밍과 관련된 비즈니스는 절대적으로 그렇습니다. 비즈니스를 공부하고 BS 검출기를 개선하기 위해 프로그래밍에 대해 충분히 알고 있습니다. 그러나 라이브러리, 데이터 구조 및 알고리즘을 숙달하는 데 정신 에너지의 가장 큰 부분을 바치고 있습니까? 그것은 프로그래밍이 경제적인 선택보다 더 중요한 것인 경우에만 의미가 있습니다.
프로그래밍을 사랑 하고 그 이유로 직업으로 삼고 싶다면, 생계를 유지하기 위해 점점 더 어려운 직업이 되도록 하는 힘에 대한 냉정한 이해를 발전시켜야 합니다. . "세계는 평평하다"는 변수의 이름을 가르쳐주지는 않지만 이미 도래한 경제적 현실에 6~8시간 동안 몰입할 수 있습니다. 당신이 무서워 그것을 읽고, 할 수없는 경우, 다음 나가서 구입 "코드 완료."
작년에 저는 여러 수업을 들었습니다. 나는 읽었다
혁신가의 딜레마(파괴적 기술)
The Mythical Man Month(관리 소프트웨어)
캐즘을 넘어(스타트업)
데이터베이스 관리 시스템, COW 책
프로그래밍 C#, OSTRICH 책
iPhone 개발자의 시작, The GRAPEFRUIT Book
각 책은 훌륭했지만 Clayton Christensen의 Innovator's Dilemma(1997!!!)는 정말 환상적인 책이며 현대 소프트웨어 세계에 대해 정말 생각하게 했습니다. 해결된 과제는 파괴적 기술과 디스크 드라이브 회사와 비기술적 회사가 항상 새로운 판도를 바꾸는 기술로 인해 혼란을 겪는 방식입니다. 아마도 가장 큰 '웹' 회사인 Google에 대해 생각할 때 새로운 관점을 제공합니다. 그들은 왜 모든 것에 손을 대고 있습니까? 새로운 일로 인해 자신의 위치가 무너지는 것을 원하지 않기 때문입니다. Google의 미리보기는 아이디어를 얻기에 충분합니다. 읽어!
해커, Steven Levy.
성격과 삶의 방식이 우선되어야 합니다. 다른 모든 것은 배울 수 있습니다.
프로그래밍 실습
그리고
컴퓨터로 해결하는 방법
파이썬 언어는 나에게 매우 큰 영향을 미쳤습니다. 몇 년 전에 이 책을 읽었더라면 좋았을 것입니다. Python 언어의 아름다움과 단순성은 내가 다른 언어로 코드를 작성하는 방법에 실제로 영향을 미쳤습니다.
정말 좋은 책. 컴퓨터 과학의 가장 중요한 영역에 대한 높은 수준의 취향을 가지고 있습니다. 예, CS != 프로그래밍이지만 이것은 여전히 모든 프로그래머에게 유용합니다.
Fred Brooks의 신화적인 Man-Month http://en.wikipedia.org/wiki/The_Mythical_Man-Month
나는 "The Art of Unix Programming"은 우리에게 소프트웨어 디자인의 몇 가지 원칙(주로 단순함)을 이해시키려고 노력하는 Eric S. Raymond와 같은 뛰어난 해커/훌륭한 마음이 저술한 훌륭한 책이라고 생각합니다. 이 책은 유닉스 플랫폼에서 프로젝트를 시작하려는 모든 프로그래밍의 필수품입니다.
위의 책들 중 많은 부분이 필독서라는 점에는 동의하지만(Pragmatic Programmer, Mythical Man-Month, Art of Computer Programming, SICP가 바로 떠오릅니다), 저는 약간 다른 방향으로 가서 A Discipline을 추천하고 싶습니다. Edsger Dijkstra 의 프로그래밍. 32년이 지났지만 "검증 가능성을 위한 설계"에 대한 강조는 매우 관련성이 있습니다("검증 가능성"이 "단위 테스트" 대신 "증명"을 의미하더라도).
Pete Goodliff의 Code Craft 는 잘 읽었습니다!
Martin Fowler의 리팩토링: 기존 코드 설계 개선 은 이미 나열되었습니다. 그러나 왜 그것이 나에게 영향을 미쳤는지 자세히 설명하겠습니다.
전체 책의 핵심은 코드를 구조화하여 인간 이 더 쉽게 읽고 이해할 수 있도록 하는 것입니다. 그것은 내가 작성하는 코드가 동료와 후임자들이 코드에서 좋은 것을 소비하고 배울 수 있다는 것을 강력하게 가르쳐줍니다. 그것은 사람들이 내 이름을 찬양하게 하고 나를 영원히 저주하지 않도록 의식적으로 프로그램하도록 영감을 줍니다.
대체 텍스트 http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C++ 프로그래밍 방법 초심자에게 좋습니다. 1500페이지로 꽉 차 있는 훌륭한 책입니다.
널리 찬사를 받지는 않았지만 깊은 통찰력으로 가득 찬 훌륭한 책이 있습니다. Agile Software Development: Cooperative Game , Alistair Cockburn 저.
무엇이 그렇게 특별한가요? 글쎄요, 분명히 모든 사람들이 "Agile"이라는 말을 들어봤고, 요즘은 대부분이 신자인 것 같습니다. 하지만 믿든 믿지 않든 애자일 운동이 존재하는 이유에는 몇 가지 깊은 원칙이 있습니다. 이 책은 정확하고 과학적인 방식으로 이러한 원칙을 밝히고 설명합니다. 몇 가지 원칙은 다음과 같습니다(btw, 이것은 Alistair가 아닌 내 말입니다).
거기에 너무 많은 것이 있습니다. 나는 이제 입을 다물겠지만 이 책을 강력히 추천한다!
운명의 주인. 당신의 직업에 대한 동기와 사랑이 있는 한, 진실로 영감을 주는 이 책에서 설명하는 것보다 더 좋을 수 없습니다!
출처 : http:www.stackoverflow.com/questions/1711/what-is-the-single-most-influential-book-every-programmer-should-read
스크롤 막대를 숨기지만 여전히 스크롤할 수 있습니다. (0) | 2022.03.17 |
---|---|
비트 시프트(비트 시프트) 연산자는 무엇이며 어떻게 작동합니까? (0) | 2022.03.17 |
컨테이너 너비에 따른 글꼴 크기 조정 (0) | 2022.03.17 |
SQL은 열에 최대 값이 있는 행만 선택합니다. (0) | 2022.03.17 |
Xcode 4에서 "기존 프레임워크를 추가"하는 방법은 무엇입니까? (0) | 2022.03.17 |