JavaRush /Java Blog /Random-KO /초보자를 위한 상위 10개 프로그래밍 도서
Max Stern
레벨 35
Нижний Новгород

초보자를 위한 상위 10개 프로그래밍 도서

Random-KO 그룹에 게시되었습니다
미래의 Javaists를 위해 많은 기술 인터뷰를 진행한 동료가 있습니다. 나는 그에게 거의 동등한 언어 능력을 가진 사람들 중에서 선택할 때 실제 경험이 없는 지원자를 고용하기로 결정하는 데 무엇이 영향을 미치는지 물었습니다. 시장 상황을 고려할 때 이 질문은 많은 분들과 관련이 있다고 생각합니다. 초보자를 위한 프로그래밍 관련 상위 10권 - 1“기술에 대한 열정, 문제 해결을 위한 최선의 옵션을 선택하는 능력, 일반적인 IT 지식, 직장에서 무엇이 그를 기다리고 있는지에 대한 이해” – 이것이 그의 대답이었습니다. 나는 Java를 배우는 데 도움이 되는 초보자를 위한 프로그래밍 책 에 대한 기사를 설명한 적이 있습니다. 이 기사에서는 초보 프로그래머가 IT에 대한 지식과 향후 작업에 대한 이해를 얻고 최상의 솔루션을 선택하는 작업을 단순화하는 데 도움이 되는 출판물에 중점을 둘 것입니다. 즉, 직업을 구하고 처음부터 가능한 한 최선을 다하는 것입니다. 이 목록은 내 취향에 따라 정리한 것이므로 다소 주관적일 수 있습니다. 학생들을 위한 고전적인 프로그래밍 교과서와 모든 세대의 프로그래머를 위한 참고서가 모두 있습니다.

코드 및 생산성 향상

단지 코드를 작성하는 것만으로는 충분하지 않습니다. 잘 작성하고, 개선할 수 있으며, 전반적인 개발 과정을 이해하는 것도 중요합니다. 초보 프로그래머와 기타 사람들을 위한 다음 책은 한 세대 이상의 전문가가 소프트웨어 개발의 어려운 기술 프로세스에 대처하는 데 도움을 주었습니다.

실용주의 프로그래머. Journeyman to Master (앤드류 헌트, 데이비드 토마스)

원제: Andrew Hunt 및 David Thomas의 Journeyman에서 Master까지의 프로그래밍 방식 프로그래머 이 초보자를 위한 프로그래밍 관련 상위 10권 - 2책을 읽지 않았다면 포럼과 전문 리소스에서 이 책의 인용문을 반복적으로 접했을 가능성이 높습니다. 이 책에 등장하는 실용주의 프로그래머의 이미지는 너무나 명확하고 이상화되어 있어서... 아무리 역설적으로 들리더라도 그를 로맨티스트라고 부를 수 있을 정도입니다. 그럼에도 불구하고 이 책의 조언은 오랜 세월이 지났음에도 불구하고 실용적이고 관련성이 높습니다. 프로그래밍 책의 세계에서 "실용주의 프로그래머"를 무엇과 비교해야 할지 모르겠습니다. 이 세상에서 가장 가까운 유사품은 "구약성서"나 아주 멋진 요리책입니다. "화용론"에서는 모든 것이 매우 구체적이며 실제로 최대한 적용 가능합니다. 때로는 진부해질 때도 있지만(예를 들어 효과적인 의사소통에 관한 섹션에는 비즈니스 에티켓의 기본 규칙이 포함되어 있음) 때로는 책의 조언이 대체 불가능한 경우가 있습니다. 특히 초보 개발자에게 인내심 있고 세심한 멘토가 없는 경우에는 더욱 그렇습니다. 코드 반복성, 프로토타이핑, 추정에 대한 팁입니다. 또는 완벽한 프로그램을 만드는 것이 불가능하다는 점을 상기시켜줍니다. 예를 들어 코드 디버깅, 단위 테스트 또는 알고리즘 속도와 관련된 유용한 기술 포인트도 있습니다. 간단히 말해서 프로그래머로서의 경력을 준비하는 데 필요한 것입니다.

기존 코드 개선 리팩토링(Martin Fowler)

원제: Refactoring: Improving the Design of Existing Code(Martin Fowler, Kent Beck 공저) 초보자를 위한 프로그래밍 관련 상위 10권 - 3누군가에게 경력을 쌓는 최고의 프로그래밍 책을 나열해달라고 요청하면 누군가는 분명히 "Refactoring"을 언급할 것입니다. 어떤 사람은 이 책이 시대에 뒤떨어졌다고 말할 수도 있고 어떤 면에서는 그 말이 옳을 수도 있습니다. 이 책은 리팩토링이 아직 보편적인 규칙이 아니던 시기에 작성되었으며, 그 안에 들어 있는 일부 진실은 오늘날의 프로그래머 지망생에게 분명합니다. 그럼에도 불구하고 리팩토링 기술은 매우 잘 설명되어 있으며 (어떤 곳에서는 장황하게도) 모든 초보자가 유용한 것을 찾을 수 있습니다. 몇 년 전에 이 책의 업데이트판이 나왔고 새로운 기술이 추가되었습니다. 정말 대단합니다. 또한 이 책의 예제는 Java로 작성되었습니다. 제가 언급할 수 있는 유일한 단점은 장황함입니다. 그럼에도 불구하고 나는 책을 추천한다.

클린 코드(로버트 마틴)

원제 Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin 초보자를 위한 프로그래밍 관련 상위 10권 - 4이 책은 이전 책보다 최신이지만 프로그래밍에 관한 책의 고전이 되었습니다. 글로벌 프로그래밍 커뮤니티에서 로버트 마틴(Robert Martin)이라고도 불리는 "밥 삼촌(Uncle Bob)"은 애자일 선언문의 저자 중 한 사람일 뿐만 아니라 SOLID와 같은 현대 "순수" 프로그래밍의 일부 원칙의 저자 중 한 명입니다. 이 책의 주요 주제 중 하나는... 귀하의 코드로 작업해야 하는 모든 사람(미래의 귀하를 포함하여)에 대한 공감 또는 단순히 좋은 태도입니다. 대부분의 "클린 코드" 규칙은 이러한 간단한 원칙과 상식을 기반으로 합니다. 대부분의 규칙과 조언은 매우 정확해 보이며 직관적으로 머리 속에서 소용돌이치는 것처럼 보이지만 이를 명확하게 공식화하는 것은 쉽지 않습니다. 그러나 저자의 생각 중 일부에 대해 논쟁이 있을 수 있습니다. 그는 때때로 극도로 범주적입니다. 예를 들어, 그는 좋은 코드에는 주석이 필요하지 않다고 썼습니다. 그럼에도 불구하고 이 책은 꼭 읽어야 할 책이다.

레거시 코드로 효과적으로 작업하기(Michael Feathers)

원본 제목 Working Effectively with Legacy Code(Michael Feathers) 초보자를 위한 프로그래밍 관련 상위 10권 - 5Life는 이에 대해 준비하지 않았습니다... 아니요, 정말입니다. 단지 배우는 중이라면 레거시 코드 기반으로 작업하는 것이 얼마나 고통스러운지 상상할 수 없습니다. 아마도 빌 게이츠의 할아버지가 쓴 것 같습니다. 이 코드는 익숙한 코드와 완전히 다르게 작성되는 경우가 많으며 문서화 수준이 너무 낮아 때로는 작성자를 찾고 싶을 때도 있습니다. 아쉽게도 대규모 프로젝트에서 Java 프로그래머의 삶은 레거시 지원과 관련이 있는 경우가 많습니다. 이 책은 고대 코드 작업의 기술적인 측면에 도움이 될 수 있지만 운명을 받아들이는 데에도 도움이 될 수 있습니다. 그리고 네, 저는 진심이에요. 이 책은 대규모 프로젝트를 진행하는 아웃소싱 회사나 제품 회사에 대한 확고한 목표를 갖고 있는 경우에 유용할 것입니다.

머리부터 먼저. 디자인 패턴(에릭 프리먼, 버트 베이츠, 캐시 시에라, 엘리자베스 롭슨)

원제 Head First Design Patterns: A Brain-Friendly Guide(Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson 작성) 초보자를 위한 프로그래밍 관련 상위 10권 - 6디자인 패턴은 시간이 지나면서 연구하지 않으면 마음속에 떠오를 좋은 형식의 논리적 규칙입니다( 아니면...) 가능한 한 빨리 살펴보기 시작하면 문자 그대로 초보 프로그래머의 초능력으로 변합니다. 예, 처음에는 상대적으로 복잡한 개인 프로젝트를 가지고 놀면서 스스로 하위 작업으로 쪼개고 결국에는 동일한 패턴을 찾는 것이 유용합니다. 하지만 일을 하다 보면 항상 실험할 시간이 충분하지 않습니다. 인턴십을 받았을 때 저는 패턴에 대해 거의 알지 못했습니다. JavaRush에서 공부하는 동안 필요할 때 알아낼 것이라고 생각하면서 이러한 모든 팩토리, 싱글톤, 주입, 종속성을 건너뛰었습니다. 하지만 그것을 아주 빨리 알아내야 했고, 바로 『Head First』라는 책이었다. 디자인 패턴”이 도움이 되었습니다. 쉽게 쓰여지고, 일러스트레이션과 유머가 가득합니다... 저는 "디자인 패턴"이라는 주제에 대한 프레젠테이션이 매우 중요하다고 생각합니다. 매우 지루한 방식으로 프레젠테이션할 수도 있고, Head First처럼 프레젠테이션할 수도 있습니다. "클린 코드" 및/또는 "리팩토링"에 큰 도움이 됩니다!

컴퓨터 아키텍처 및 일반 컴퓨터 과학

미래의 프로그래머가 컴퓨터 아키텍처를 이해하고, 운영 체제가 어떻게 구성되어 있는지, 데이터베이스가 어떻게 구성되어 있는지 아는 것이 얼마나 중요합니까? 이 지식이 귀하의 업무에 유용할 것이라는 것은 사실이 아닙니다. 그러나 이는 IT 분야와 IT 지식에 대한 열정을 입증하는 데 확실히 도움이 될 것입니다. 그리고 가장 중요한 것은 모든 것이 어떻게 작동하는지 안다면 문제를 더 잘 해결하는 데 도움이 될 것입니다. 정보 100%. 그래서 당신에게 도움이 될 만한 두 권의 책을 더 소개합니다.

코드(찰스 페졸드)

원제 코드: 컴퓨터 하드웨어 및 소프트웨어의 숨겨진 언어(Charles Petzold) 초보자를 위한 프로그래밍 관련 상위 10권 - 7"코드"의 첫 번째 버전은 2000년대 초반에 세상에 등장했지만 실제로는 더 일찍 또는 나중에 나타날 수도 있었고 여전히 관련성이 있었을 것입니다. 사실 이 책에서는 0과 1이 어떻게 작동하는지부터 시작하여 컴퓨터의 작동을 매우 낮은 수준에서 설명하고 있으며, 첫 번째 기술 사례는 가장 간단한 것으로 간주될 수 있는 손전등 회로입니다. -비트 컴퓨터... 아니, 당신은 책에 나오는 모든 것이 매우 원시적이라고 생각하지 않습니다. 사실은 정반대입니다. 컴퓨터 회로, 명령, 메모리 작동 및 운영 체제를 본질적으로 설명합니다. 아마도 나는 그것을 읽은 후에 컴퓨터가 어떻게 작동하는지 이해했을 것입니다. 프로세서의 아키텍처와 명령 세트가 변경되고 메모리 대역폭이 증가하더라도 본질적으로 컴퓨터는 동일하게 작동합니다. Java 프로그래머에게 이 지식이 필요합니까? 업무에 직접적으로 필요한 사람은 거의 없습니다. 그러나 간접적으로 나는 모든 것이 실제로 어떻게 작동하는지 이해했다는 사실로 인해 작업에 종종 도움을 받았습니다.

컴퓨터 과학 입문(Glenn Brookshire, Dennis Brilov)

원제 컴퓨터 과학: 개요(Glen Brookshear 및 Dennis Brylow 저) 초보자를 위한 프로그래밍 관련 상위 10권 - 8이 책은 대학 시절 컴퓨터 과학의 기초를 공부하던 중 나에게 다가왔습니다. 저만 6판 번역본을 받았고, 현재 13판이 나와있습니다. 이 책은 미국과 다른 나라의 대학에서 수년간 가르쳐온 컴퓨터 공학의 기초 강좌이다. 이 자료의 적용 범위는 기계 아키텍처, 숫자 시스템, 데이터 처리, 운영 체제, 데이터베이스 구성 원리, 데이터 구조, 파일 구조 등 매우 광범위합니다. 책의 모든 부분이 똑같이 잘 쓰여진 것은 아닙니다. 예를 들어, 나는 디자인 방법과 데이터베이스에 관한 섹션에서 한때 매우 혼란스러웠지만 숫자 체계, 비트 단위 계산, PC 아키텍처 및 데이터 구조에 대한 섹션은 정말 공감했습니다. 이 책의 가장 멋진 점은 키를 사용한 수많은 연습 문제입니다. 학생 외에도 이러한 책은 공백을 메우고 일반적인 컴퓨터 과학에 대한 아이디어를 얻기 위해 기술 교육 없이 독학한 사람들에게 주로 필요할 것입니다.

알고리즘 및 데이터 구조. 그리고 또 다른 공격!

현대의 고급 프로그래밍이 어떻게 발전했는지를 고려하면 알고리즘에 대한 지식은 덜 중요해졌습니다. 이제 필요한 라이브러리를 사용하는 것만으로도 충분하며 배열을 가장 잘 정렬하는 방법에 대해 고민하지 않아도 됩니다. 그러나 여전히 직장에서 한 번 이상 머리를 써야 할 것입니다. 초보 프로그래머를 위한 요구 사항에서 "가능한 최상의 솔루션을 선택하는 능력"이라는 점을 기억하십니까? 그래서 누가 뭐래도 좋은 알고리즘 훈련은 최적의 솔루션을 찾기 위한 탁월한 업그레이드라고 생각합니다. 그러므로 다음 두 권의 책은 그들에 관한 것입니다. 알고리즘에 대해.

우리는 알고리즘을 흔들고 있습니다. 프로그래머와 호기심 많은 Aditya Bhargava를 위한 그림 가이드

원제: Grokking Algorithms: 프로그래머 및 기타 호기심 많은 사람들을 위한 그림 가이드 작성자: Aditya Y. Bhargava 초보자를 위한 프로그래밍 관련 상위 10권 - 9저자는 책의 시작 부분에 알고리즘이 바로 그에게 다가오지 않았다고 썼고, "Grokking Algorithms"를 쓰려고 했습니다. 읽기 쉬울 거라고요. 이는 초보 프로그래머, 즉 "hello, world"를 쓸 수 있고 int, 문자열, 루프, 분기 및 배열이 무엇인지 아는 사람들을 위해 설계되었습니다. 글쎄, 화면에 배열을 표시할 수 있습니다. 필요한 수학 지식은 대략 중등학교 6~7학년 수준입니다. 그리고 이것이 이 책의 첫 번째 심각한 장점입니다. 이 주제에 관한 많은 출판물처럼 독자를 수학 학생으로 상상하려고 하지 않습니다. 즉, 당신이 수학과 알고리즘을 두려워하고 이미 후자를 배우려고 노력했지만 아무것도 이해하지 못했다면 이 책은 당신의 눈으로 보기에 완벽한 재활을 위한 것입니다. 두 번째 긍정적인 점은 이 책이 실제로 유용할 수 있는 내용을 논의하고 있다는 것입니다(이것을 이해하는 것은 확실히 사실입니다). 이진 검색과 효율성의 본질에 대한 설명으로 시작됩니다. 문자 그대로 손가락과 많은 그림을 사용합니다. 셋째, 이 책에는 많은 질문과 연습 문제가 포함되어 있습니다(코드 예제는 Python으로 되어 있지만 그다지 중요하지는 않습니다). 어떤 사람에게는 긍정적일 수 있지만 다른 사람에게는 부정적인 점: 이 책은 모든 것을 포괄하는 참고서인 척하지 않습니다. 일반적으로 연구용으로 인정되는 알고리즘 중에서 여기에는 비효율적인 삽입 알고리즘과 효율적인 퀵 정렬 알고리즘의 두 가지만 있다고 가정해 보겠습니다. 저자가 버블이나 병합과 같은 다른 알고리즘을 고려하면 안되는 이유를 모르겠습니다. 실제로 병합 알고리즘은 책에서 언급되지만 간략하게 분석은 하지 않고 퀵 정렬과 비교한 것 뿐이다. 다른 주제에서는 모든 것이 동일합니다. 매우 잘 다루는 기본 사항이 있지만 때로는 더 깊이 있는 연속을 원하지만 그럴 수 없는 경우도 있습니다. 한마디로 이것은 매우 기본적인 책이며, 그 후에는 모든 것이 더 진지하게 설명되는 책을 찾고 싶을 것입니다. 예를 들어 다음과 같습니다.

Java의 알고리즘(Robert Sedgwick, Kevin Wayne)

원제: Algorithms by Robert Sedgewick 및 Kevin Wayne 초보자를 위한 상위 10개 프로그래밍 도서 - 10사실 이 책은 매력을 주기도 하고 겁을 주기도 합니다. 적어도 그 양이... 많은 페이지와 특정 학문적 성격으로 인해 당신을 놀라게 할 것입니다. 그러므로 당신이 수학에 관심이 없거나 수학(엔지니어를 위한 고등 수학의 가장 간단한 요소인 고등학교)에 자신감이 없다면 이 책부터 시작하지 않는 것이 좋습니다. 거기에는 수학적 용어가 그리 많지 않지만 접근 방식 자체가 그러한 사고를 전제로 합니다. 그러나 이전 책 이후에는 - 왜 안되겠습니까? 그녀가 당신에게 가이드를 줄 것입니다. 첫 번째 장에서는 Java에 대한 지식을 요약하고 일부 데이터 구조를 정의합니다. 선택적으로 읽는 것이 더 좋지만 두 번째와 세 번째 장을 충분히 자세히 연구하는 것도 나쁘지 않습니다. 나머지 부분도 그래프와 문자열에 대한 흥미롭고 철저한 정보로 가득 차 있습니다. 나는 이와 같은 것들이 프로그래밍 사고방식을 형성하는 데 매우 도움이 된다고 말하고 싶습니다. 프레젠테이션에 관해서는 저자가 교사라는 느낌이 들지만 대부분 관심이 있고 준비된 사람들과 함께 일하는 데 익숙합니다. 그러니 인내심을 갖고 읽어보세요. 또한 문제를 해결하는 데도 많은 문제가 있습니다. 그건 그렇고, Coursera에서는 책의 저자가 만든 알고리즘에 대한 강좌를 찾을 수 있습니다.

프레임워크를 알아보세요

그리고 마지막으로 한 권의 책이 더 있습니다. 그리고 다시 - 유용합니다.

스프링 인 액션(크레이그 월스)

원제: Spring in Action(Craig Walls 저) 이 초보자를 위한 최고의 프로그래밍 책 10권 - 11책은 표지에 실제로 치마를 입지 않은 "치마를 입은 남자"가 등장하는 유명한 책입니다. 솔직히 말해서, 한 권의 책으로 Spring을 배우는 것은 한꺼번에 모든 것을 실제로 시도해 보더라도 매우 어려운 작업입니다. 그건 그렇고, 이 장이나 저 장을 읽은 후에 이를 수행하는 방법을 이해하는 것은 극히 어려울 수 있습니다. 회사에서 인턴 생활을 할 때 이 책을 가지고 작업했는데, 이렇게 활용하면 많은 도움이 됩니다. 게다가 지금도 이미 프로그래머로 일하고 있는데 계속해서 그 일로 돌아갑니다. 즉, 이 도움말을 통해 주요 Java 프레임워크에 대한 일반적인 아이디어를 얻을 수 있습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION