시간을 거슬러 올라가서 개발자로 커리어를 시작할 때 특정 책을 읽도록 지시한다면 어떤 책이 될까요?
나는이 목록이 다양하고 다양한 것들을 다룰 것으로 기대한다.
검색하려면 : 오른쪽 상단에있는 검색 상자를 사용하십시오. 현재 질문의 답변을 검색하려면을 사용하십시오 inquestion:this
. 예를 들면 다음과 같습니다.
inquestion:this "Code Complete"
시간을 거슬러 올라가서 개발자로 커리어를 시작할 때 특정 책을 읽도록 지시한다면 어떤 책이 될까요?
나는이 목록이 다양하고 다양한 것들을 다룰 것으로 기대한다.
검색하려면 : 오른쪽 상단에있는 검색 상자를 사용하십시오. 현재 질문의 답변을 검색하려면을 사용하십시오 inquestion:this
. 예를 들면 다음과 같습니다.
inquestion:this "Code Complete"
답변:
@Juan : Juan은 알고 있습니다.하지만 실제로 작업을 수행해야만 배울 수있는 것이 있습니다. 하루 종일 추상적 인 이상으로 말하면 단순히 학문에 빠지게됩니다. 초록의 적용에서 우리는 진정으로 그들의 존재 이유를 알아 냈습니다. :피
@Keith : Alan Cooper의 "수감자들이 정신 병원을 운영하고있다"에 대한 훌륭한 언급 –이 책을 읽은 후 나와 함께 일한 개발자라면 누구나 배우고 자하는 아이디어를 들었습니다. +1
JK Truss의 컴퓨터 과학자를위한 이산 수학 .
이것은 당신에게 프로그래밍을 가르치지는 않지만 모든 프로그래머가 알아야 할 기본 수학을 가르쳐줍니다. 대학에서 얻은 것들을 기억할 수도 있지만 실제로 술어 논리를 사용하면 프로그래밍 기술이 향상되므로 컬렉션을 사용하여 프로그래밍하려면 세트 이론을 배워야합니다.
여기에는 다양한 방법으로 문제에 대해 생각할 수있는 흥미로운 정보가 많이 있습니다. 새로운 것을 배우기 위해 한 번에 한 번 집어 들고 있으면 편리합니다.
Systemantics : 시스템 작동 방식 및 특히 시스템 장애 방법 . 싸게 사용하십시오. 그러나 몇 가지 실패한 프로젝트를 수행하기 전까지는 유머를 얻지 못할 수 있습니다.
이 책의 아름다움은 저작권의 해입니다.
아마도이 책에 제시된 가장 심오한 테이크 아웃 "법":
기본 고장 모드 정리 (FFT) : 복잡한 시스템은 일반적으로 고장 모드에서 작동합니다.
아이디어는 다른 부품의 고장이나 다른 부품의 검증에 의해 가려지는 특정 소프트웨어에 결함이있는 부품이 있다는 것입니다. 하드웨어 결함 안전 장치로 소프트웨어 결함이 가려진 Therac-25 방사선 기계 의 실제 예를 참조하십시오 . 하드웨어 안전 장치를 제거했을 때 그 기간 동안 감지되지 않은 소프트웨어 경쟁 조건으로 인해 기계가 3 명을 죽였습니다.
제가 개인적으로 가장 좋아하는 것 중 하나는 Hacker 's Delight 입니다.
두 번째 버전이 곧 출시되기를 바랍니다.
익스트림 프로그래밍에 대한 설명 : Kent Beck의 변화 를 받아들 입니다. 저는 소프트웨어 개발에 대한 하드 코어 XP 또는 그 이상을 옹호하지는 않지만이 책의 원리를 소개하기를 원했습니다. 단위 테스트, 리팩토링, 단순성, 지속적인 통합, 비용 / 시간 / 품질 / 범위-개발 관점을 바 꾸었습니다. 애자일 이전에는 디버거와 변경 요청에 대한 두려움이 전부였습니다. 애자일 이후, 그 악마들은 크게 쳐지지 않았습니다.
프로그래밍 언어 의 토대를 철저히 이해하기 위해 Benjamin C Pierce의 유형 및 프로그래밍 언어.
데이터베이스 시스템 개념 은 훌륭한 데이터베이스 디자인 원칙을 이해하는 데 도움이되는 최고의 책 중 하나입니다.
프로그래밍 실습. Brian W. Kernighan, Rob Pike.
여기에 표시된 스타일은 훌륭합니다. 코드는 그 자체만으로도 충분하며 전체 책은 KISS 원칙을 따릅니다. 개인적으로 내가 선택한 언어는 아니지만 여전히 영향력이 있습니다.
처음부터 프로그래밍. 인터넷에서 무료입니다. 이 책은 AT & T asm을 가르쳐주었습니다. 읽기 매우 쉽습니다.
인공 지능 프로그래밍의 패러다임 : Peter Norvig의 공동 Lisp의 사례 연구
Common Lisp를 배우고 싶었 기 때문에 그것을 읽기 시작했습니다. 반쯤되었을 때 나는 이것이 지금까지 읽은 프로그래밍에 관한 가장 위대한 책이라는 것을 깨달았습니다.
확실하게 소프트웨어 장인
대체 텍스트 http://ecx.images-amazon.com/images/I/5186JKTDVWL._SL500_AA240_.jpg
이 책은 소프트웨어 엔지니어링, 시스템 개발에 관한 많은 것들을 설명합니다. 다른 종류의 제품 개발 (web VS shrinkwrap VS IBM 프레임 워크) 간의 차이점을 이해하는 것이 매우 유용합니다. 폭포 모델을 만들 때 사람들이 염두에 두었던 것은 무엇입니까? 이것을 읽고 우리가 명확하게 될 모든 것을 (희망적으로)
Thomas Friedman의 "세계는 평평하다".
프로그래밍의 우수성은 정신 에너지에 대한 투자와 의학 또는 법률의 직업에 필적하는 지속적인 학습에 대한 헌신을 요구합니다. 그것은 해당 직업이 지불하는 것의 일부를 지불하며, 금융 분야로 향하는 수학에 정통한 사람들에게 지불하는 임금은 훨씬 적습니다. 그리고 임금 코드를 건설은 그것이 직업이기 때문에 침식되어 상대적으로 쉬운에 대한 지능과 자기 징계를 입력하는 대부분의 경제에.
배관보다 적은 비용으로 프로그래밍이 이미 침식되었습니다. 배관은 "해외에"있을 수 없습니다. 1 년마다 배우게 될 완전히 새로운 배관 기술을받을 수있는 특권을 얻기 위해 매년 2 월마다 전문 배관공 회의에 참석하기 위해 $ 2395를 지불 할 필요는 없습니다.
북미 나 유럽에 거주하고 젊고 똑똑하다면 프로그래밍은 합리적인 직업 선택이 아닙니다. 프로그래밍과 관련된 비즈니스 . 비즈니스를 연구하고 BS 검출기를 개선하기위한 프로그래밍에 대해 충분히 알고 있어야합니다. 그러나 당신의 정신 에너지에 대한 사자의 몫을 도서관, 데이터 구조 및 알고리즘의 숙달에 바치는가? 프로그래밍이 경제적 인 선택보다 더 중요한 경우에만 의미가 있습니다.
만약 당신이 프로그래밍 을 좋아 하고 그런 이유로 그것을 당신의 경력으로 만들려고한다면, 그것은 당신이 생계를 유지하기 위해 점점 더 어렵고 어려운 직업으로 만드는 힘에 대한 냉담한 이해를 발전시켜야합니다. . "세계는 평평하다"는 변수의 이름을 지정할 수는 없지만, 이미 도착한 경제 현실에 6 ~ 8 시간 동안 몰입 할 수 있습니다 . 당신이 무서워 그것을 읽고, 할 수없는 경우, 다음 나가서 구입 "코드 완료."
작년에 나는 많은 수업을 들었다. 나는 읽었다
혁신가의 딜레마 (파괴적인 기술)
신화적인 남자의 달 (관리 소프트웨어)
틈새를 넘어서 (스타트 업)
데이터베이스 관리 시스템, COW Book
Programming C #, OSTRICH Book
iPhone 개발자를 시작으로하는 GRAPEFRUIT
각각의 책은 훌륭했지만 Clayton Christensen (1997 !!!)의 Innovator 's Dilemma는 정말 훌륭한 책이며 현대 소프트웨어 세계에 대해 정말 생각하게했습니다. 해결해야 할 과제는 파괴적인 기술이며 디스크 드라이브 회사와 비 기술적 회사가 항상 새로운 게임 변화 기술에 의해 방해받는 방식입니다. 아마도 가장 큰 '웹'회사 인 Google에 대해 생각할 때 새로운 관점을 제공합니다. 그들은 왜 모든 사람에게 손을 가지고 있습니까? 그들은 새로운 것에 의해 그들의 지위를 방해 하고 싶지 않기 때문 입니다. Google의 미리보기는 아이디어를 얻기에 충분합니다. 읽어!
파이썬 언어는 저에게 큰 영향을 미쳤습니다. 몇 년 전에이 책을 읽었 으면 좋겠습니다. 파이썬 언어의 아름다움과 단순성은 다른 언어로 코드를 작성하는 방법에 실제로 영향을 미쳤습니다.
정말 좋은 책입니다. 컴퓨터 과학의 가장 중요한 영역에 대한 높은 수준의 맛이 있습니다. 예, CS! = 프로그래밍이지만 모든 프로그래머에게 여전히 유용합니다.
프레드 브룩스의 신화적인 남자-월 http://en.wikipedia.org/wiki/The_Mythical_Man-Month
"The Unix Programming의 기술"은 소프트웨어 설계의 몇 가지 원칙 (주로 단순성)을 이해 시키려고하는 Eric S. Raymond와 같은 훌륭한 해커 / 명쾌한 마음을 가진 훌륭한 책이라고 생각합니다. 이 책은 유닉스 플랫폼에서 프로젝트를 시작하려는 모든 프로그래밍에 필수입니다.
Pete Goodliffe의 코드 크래프트 는 잘 읽었습니다!
Martin Fowler의 리팩토링 : 기존 코드의 디자인 개선 이 이미 나열되었습니다. 그러나 그것이 왜 저에게 영향을 미쳤는지 자세히 설명하겠습니다.
전체 책의 본질은 인간이 읽고 이해하는 것이 더 간단하도록 코드를 구성하는 것입니다 . 필자가 작성한 코드는 동료와 후임자가 좋은 것을 소비하고 배울 수 있다는 것을 강력하게 가르쳐 줍니다. 그것은 사람들이 내 이름을 찬양하고 영원히 저주를 저주하지 않도록하는 방식으로 의식적으로 프로그램 하도록 영감을줍니다 .
대체 텍스트 http://ecx.images-amazon.com/images/I/61dECNkdnTL._SL500_AA240_.jpg
C ++ 프로그래밍 방법 초보자에게 좋습니다. 1500 페이지로 완성 된 훌륭한 책입니다.
Alistair Cockburn 의 Agile Software Development : Cooperative Game 은 폭 넓은 찬사를받지는 않지만 깊이있는 통찰력으로 가득 찬 훌륭한 책입니다 .
무엇이 특별합니까? 글쎄, 모두가 "애자일 (Agile)"이라는 용어를 들어 왔으며, 요즘 대부분이 신자 인 것 같습니다. 당신이 믿든 말든, 애자일 운동이 존재하는 이유에는 몇 가지 깊은 원리가 있습니다. 이 책은 이러한 원칙을 정확하고 과학적인 방법으로 밝혀 내고 설명합니다. 몇 가지 원칙은 다음과 같습니다 (btw, 이것은 Alistair가 아닌 나의 말입니다).
거기에는 훨씬 더 많은 것이 있습니다. 나는 지금 닫을 것이지만 나는이 책을 강력히 추천한다!