정답
분명히 누구나 자신의 취향이 있습니다. 나 자신도 포함됩니다. 겹치는 부분이 제한되어 있기 때문에 책이 어떻게“반드시 읽어야”하는지 궁금합니다. :)하지만 목록을 만드는 것은 항상 재미 있습니다.
- The Mythical Man-Month
- C 및 C ++, Second Edition의 보안 코딩 (C 및 C ++ 개발자에게만 해당되지만 Java 용 버전이 있지만 Ada를 사용하면 일반적으로 John 만 필요합니다. Barnes의 설명서 : Amazon.co.uk : John Barnes : 9781107424814 : Books )
- 인증 된 컴파일러를위한 프로그램 로직 : Andrew W. Appel, Robert Dockins, Aquinas Hobor, Lennart Beringer, Josiah Dodds, Gordon Stewart, Sandrine Blazy, Xavier Leroy : 9781107048010 : Amazon.com : Books
- 컴퓨터 프로그래밍 기술, Vol. 1 : Fundamental Algorithms, 3rd Edition : 9780201896831 : Computer Science Books @ Amazon.com
- Art of Computer Programming, Volume 2 : Seminumerical Algorithms (3 판) : Donald E. Knuth : 0785342896848 : Amazon.com : 도서
- 컴퓨터 프로그래밍 기술 : 제 3 권 : 정렬 및 검색 (2 판) : Donald E. Knuth : 9780201896855 : Amazon.com : 도서
- 컬러 페트리 그물-모델링 및 검증 동시 개최 | 커트 젠슨 | Springer
- TCP / IP Illustrated, Volume 1 : The Protocols
- Unix 네트워크 프로그래밍, 볼륨 1 : The Sockets Networking API (3 판) : W. Richard Stevens, Bill Fenner, Andrew M. Rudoff : 9780131411555 : Amazon.com : 도서
- POSIX 스레드를 사용한 프로그래밍 : David R. Butenhof : 0785342633924 : Amazon.com : Books
분명히, 이 책들 모두가 모든 사람에게 적용되는 것은 아닙니다. 나는 필드 전체를 다룰만큼 충분히 미쳤 기 때문에이 모든 것과 좋은 것을 더 많이 가지고 있습니다. 그러나이 선택만으로도 강력한 프로그래밍, 알고리즘, 네트워킹, 시스템 모델링 및 다양한 소프트웨어 개발 모델을 확실히 파악할 수 있습니다. 소프트웨어 엔지니어가주의를 기울여야 할만큼 중요한 영역입니다.
답변
여기서는 학교를 통해 기술 숙련도를 달성 한 소프트웨어 엔지니어에 대해 이야기하고 있다고 가정하겠습니다. 부트 캠프 또는 기타 학습 기회.
알고리즘은 정말 중요하며 “ 알고리즘 소개 “책은 반드시 읽어야합니다. 저는 소프트웨어 설계와 객체 지향 설계에 대한 강력한 이해도 중요하다고 생각하며, 제 성경은 여전히“ 디자인 패턴 : 재사용 가능한 객체 지향 소프트웨어의 요소 .” 스몰 토크의 예제는 요즘 읽기가 가장 쉽지는 않지만이 주제에 대해 깊이와 폭이있는 다른 책은 없습니다.
직장에서 시작하는 많은 엔지니어를 만났습니다. , 그리고 수년에 걸쳐 몇 가지 차이를 발견했기 때문에 각 영역에 대한 책을 제안하고 싶습니다.
새로운 엔지니어는 언어와 상관없이 동시성을 이해하지 못하는 경향이 있습니다. 여러 스레드를 병렬로 실행하면서 적절한 수준의 동기화를 제공한다는 개념은 이해하기 쉽지 않습니다. 저는 Java 배경에서 “ Java Concurrency in Practice “를 읽음으로써 많은 것을 개인적으로 배웠습니다. 또한 Java에서 적절하게 코딩하는 방법에 대해 반드시 읽어야하는 “ Effective Java “에 동시성에 대한 좋은 섹션이 있습니다.
Cyber -보안은 요즘 드디어 화제가되고 있습니다. 아아, 주니어 엔지니어는 자신의 코드에 적용 할 수있는 보안 개념을 인식하지 못하는 경향이 있습니다. 시작하기 좋은 방법은 OWASP 상위 10 개 목록 을 읽고 각 애플리케이션 취약성을 자세히 살펴 보는 것입니다. 저는 “ 24 가지 소프트웨어 보안의 대죄 : 프로그래밍 결함 및 해결 방법 “의 열렬한 팬입니다.
신규 엔지니어는 코딩에 집중하세요. 그들은 코딩이 중요하다고 믿고, 좋은 코드를 빠르게 생성하기를 원하며 때로는 더 간결하게 입력 할 수 있기 때문에 읽기 어려운 코드에 의존합니다. 그 생각에는 두 가지 문제가 있습니다. 모든 소프트웨어 엔지니어는 버그를 만들고 소프트웨어 엔지니어는 팀에서 더 잘 일합니다! 품질도 중요하며 유지 보수성도 중요합니다. 개인적으로 저는 “레거시 코드로 효과적으로 작업하기”라는 책에서 테스트와 코드를 개선하기위한 테스트의 필요성에 대해 이야기하는 것을 좋아합니다. “ 깨끗한 코드 : 민첩한 소프트웨어 장인의 핸드북 “은 유지 관리의 주제에 접근하며 때로는 극단적 인 관점으로 접근합니다. 팀으로 토론하십시오.
특히 대학을 졸업 한 신입 엔지니어는 직장과 새로운 직업에 적응하는 데 어려움을 겪을 수 있습니다. 이것은 실제로 모든 엔지니어, 실제로 모든 사람에게도 마찬가지입니다. “ The First 90 Days : Proven Strategies for Getting Up to Speed Faster and Smarter “라는 훌륭한 책이 있습니다. 새로운 직업, 특히 구조에 대한 필요성. 구조가 훌륭합니다. 특히 새로운 환경에서 편안합니다. 딸과 함께 케이크를 구울 때와 똑같은 레시피를 적용하여 일관된 결과를 얻습니다. 11 개월 전 네이티브 앱 팀에서 Wayfair에 입사했을 때, 저는 도착하자마자 상당히 일반적이면서도 일관된 질문을하여 땅을 파악하기로 결정했습니다. 이 질문들은 저에게 무슨 일이 일어나고 있는지에 대한 개념을 주었을뿐만 아니라 제가 만난 사람들에 대해 많은 것을 알려주었습니다. 1 : 1마다 동일한 설문지를 사용하여 약 한 달 동안 사실 조사 임무를 수행했고 첫날부터 집중 영역을 나열하기 시작했습니다.
저는 소프트웨어 개발 분야에서 20 년 이상 일했습니다. 지난 10 년간 지도력 책을 읽었습니다. 최근에 읽은 책을 선호한다면 언제든지 지도력 책에 대해 물어보세요!