사람들이 프로그래밍 서적을 사용하는 이유는 무엇입니까? [닫은]


94

나는 누군가 프로그래밍하는 법을 배우는 가장 좋은 방법이 무엇인지 물어 보면 사람들은 대개 다양한 저자들이 쓴 많은 글에 대한 참조를 제공한다는 것을 알게되었습니다.

그러나 나는 많은 사람들이 책에서 프로그램을 배우는 것을 전혀 믿지 않습니다. 나는 그들이 보통 도전에 직면하고 있음을 발견하고 그것을 극복하기위한 도구로 프로그래밍을 사용한다.

예를 들어, 내가 플레이하고있는 게임을 위해 서버를 시작하고 싶었 기 때문에 프로그래밍을 시작했다. 그래서 나는 특정 서버에 대한 지원을 통해 구글을 읽고 읽었으며 지금은 내가 개발 한 기술만을 사용하여 고용 된 소프트웨어 엔지니어이다 ( 인기가없는 서버 패키지를 위해 C # 스크립트를 코딩하여 추가로 개발했습니다.

제 질문은 사람들이 일반적으로이 책들에서 배우기가 더 쉽다는 것입니까? 나는 그중 몇 가지를 살펴본 결과 너무 건조하여 마무리를 끝내도록 장려했습니다.


3
책은 여기에 기본이 아니지만, 당신이 책을 읽는다면 그것들은 당신이 흥미있는 또 다른 책일뿐입니다.
cnd

42
처음부터 프로그래밍하는 방법 또는 고급 기능을 배우는 것에 대해 이야기하고 있습니까? '24 시간의 C ++ 학습 '과 고급 이론적 인 내용에 대한 괜찮은 책 사이에는 큰 차이가 있습니다. Knuth의 온라인 작업은 찾을 수 없습니다.
André Paramés

78
좋은 프로그래밍 책을 본 적이없는 것 같습니다.
Jaywalker

46
이것은 왜 학교에 가야 하는가?라는 질문에 은유 적이다.
Jodrell

8
나는 책을 주요 학습 도구로 발견 한 적이 없지만 많은 책을 가지고 있으며 항상 추천합니다. 당신이하는 것만으로 배우는 것이 분명합니다. 그러나 책은 아이디어의 원천이며 쉽게 구할 수있는 참고 자료로 사용될 수 있습니다. 우리는 배울 책을 읽거나 추천하지 않습니다. 우리는 책에 포함 된 아이디어를 공유하기 위해 책을 읽거나 추천합니다.
Joel Etherton

답변:


229

일반적으로 말하면 내가 배우는 방법은 다음과 같습니다.

  • 책 구매
  • 덮기 위해 그것을 읽지 말고 모든 것을 찾을 수있는 곳을 아십시오.
  • 작업 할 애완 동물 프로젝트 찾기
  • 경험을 통해 배우지 만이 책을 참조로 사용하십시오
  • 책이 실패하면 항상 Google이 있습니다.

참고 : 세 번째 요점이 먼저옵니다.

편집 : 질문에 대답 "왜?"합니다

Google은 무언가를 수행하는 방법을 찾는 것이 좋지만 모르는 것을 찾는 것은 좋지 않습니다. C #에 델리게이트라는 개념이 있고 현재 진행중인 문제를 해결하는 것이 도움이된다는 것을 모르는 경우 왜 Google "C # 델리게이트"를 사용하겠습니까?

또한, 신호 대 잡음비는 때때로 약간 높을 수 있습니다. 머리에 무언가가 어떻게 수행되는지 대략적인 아이디어가 있다면 읽고있는 기사가 올바른지 쉽게 확인할 수 있습니다. 그러나 실마리가 없다면 더 큰 혼란에 빠질 수 있습니다.


19
훌륭한 답변, 특히 "왜"에 대한 편집. 최근에 ASP.NET을 배우기 시작했으며 Google을 사용하여 학습했습니다. 몇 년 동안 .NET 2.0에 C #을 사용했기 때문에 얻을 수 있다고 생각했습니다. 문제를 겪을 때마다 Google을 검색하여 답을 찾을 수 있었지만 곧 내가 할 수있는 일의 빙산의 일각에 부딪 히고 라이브러리의 큰 덩어리가 완전히 누락되었다는 것이 분명해졌습니다. 책은 기술에 대한 훨씬 더 나은 개요와 그것이 할 수있는 모든 것을 제공합니다. "24 시간 안에 x를 배우십시오"책을 피하고 대신 "고급 x"책을 찾으십시오.
Gavin Coates

44
"모르는 내용 찾기"+1
Covar

2
5 점으로 확대 : 책이 실패하면 초보자가 아닌 사람을 대상으로하는 책을 포함하여 해당 주제에 대한 Google 및 기타 책 이 항상 있습니다.
Richard

5
"신호 대 잡음비가 +1 인 경우가 +1 일 수 있습니다. 머리에 어떤 아이디어가 어떻게 적용되는지 이해하고 있다면 읽고있는 기사가 올바른지 쉽게 확인할 수 있습니다. 그러나 실마리가 없습니다 ... 더 큰 혼란에 빠질 수 있습니다. "
Tom Squires

9
"책이 실패하면 항상 Google이 있습니다." Stack Overflow;)
Joren

42

책이 여전히 관련이있는 몇 가지 이유 :

  1. 표준 LCD 화면보다 종이에서 많은 텍스트를 읽는 것이 더 쉽다는 것을 알았습니다. 전자 잉크 디스플레이의 전자 책이이를 바꿀 수 있습니다.
  2. 책은 큰 그림과 몇 가지 모범 사례를 설명하는 경향이 있습니다. 빠른 시작이나 새로운 시각이 필요할 때 정말 좋습니다.
  3. Google은 특정 주제에 대한 예가 필요하지만 큰 그림은 아닙니다.

그러나 책은 당신을 끝까지 데려 가지 않으며 단지 올바른 방향으로 당신을 밀어 줄 것입니다.


2
큰 그림은 +1입니다. 잠시 동안 새로운 언어 / 환경에서 프로그래밍을 한 후, 책은 큰 그림을 작성하는 데 정말 유용하며 내 탐구에서 놓친 것들을 발견합니다.
Adam Morris

2
Raymond Chen의 블로그 또는 Channel 9 의 Going Deep 시리즈는 이유 를 배우는 데 특히 도움이됩니다 . 일단 " "가 무엇 인지 알면 , 어떻게 할 수 있는지는 사소한 세부 사항이됩니다. 일반적으로 책의 저자는 온라인에서 찾은 일련의 코드 스 니펫을 혼동하지 않고 진행중인 작업의 논리를 이해하기 위해 배경으로 이동할 수 있습니다.
Ian Boyd

책의 큰 장점 중 하나 인 IMO는 한 번에 여러 곳에 손가락을 대면 섹션을 빠르게 넘길 수 있습니다. 처음에 찾은 내용을 이해하기 위해 다른 것을 찾아 보는 경우가 많기 때문에 코드를 통해 새로운 것을 배우려고 할 때 이것이 귀중합니다. 화면에서 탐색하는 것은 동일하지 않습니다.
TMN

동의했다. 예를 들어 Asp.Net MVC로 바로 들어가면 어떻게해야하는지 알 수 있습니다. 그러나 당신이 잘못했을 가능성이 너무 많은 것들이 미묘합니다. 그런 다음 왜 효과가 없는지 머리를 긁적입니다.
Andy

28

1980 년대의 책에서 프로그래밍을 배웠을 때 프로그래밍 언어 전체를 완전히 배울 수있는 유일한 정보원이있었습니다. 또한 당신은 컴퓨터 잡지를 살 수 있지만, 그들의 내용은 흥미롭고 도움이 될 수도있는 임의의 기사였습니다.

요즘 인터넷에서 필요한 모든 정보를 찾을 수 있습니다. 완전한 튜토리얼을 책과 충분히 비슷하다고 생각하지만.

배우는 방법은 개인 취향이나 실제 요구에 달려 있습니다.

책이나 온라인 자습서 인 경우 "완전한 텍스트"의 장점은 실제로 필요하지는 않지만 나중에 도움이되는 내용을 다룬다는 것입니다. 무언가가 가능하다는 것을 알고 어디에서 찾을 수 있는지 아는 것입니다. 특히 복잡한 환경이나 C ++과 같은 매우 복잡한 언어에 대해 배우는 경우. Ajax 나 보안 문제에 대해 듣지 않고도 Ruby on Rails에 관한 많은 작은 블로그를 읽을 수 있습니다 . 놀기만하면 문제가되지 않을 수 있습니다. 그러나 나에게 일어난 것처럼 몇 주 이내에 전문 Ruby on Rails 개발에 들어가고 싶다면 모든 중요한 요점을 다루는 텍스트로 작업하면 많은 도움이 될 것입니다.

다른 책은 프로그래밍 스타일, 모범 사례, 디자인 패턴 또는 특정 알고리즘 그룹에 대한 세부 정보를 제공합니다. 당신은 그들과 함께 작업 할 수 있으며 아마도 모든 디자인 패턴 중에서 아주 작은 부분 집합 만 적용 할 것입니다. 그래도 그들을 알고 어디에서 찾을 수 있는지 아는 것이 도움이됩니다. 이는 단순히 "어떻게 실행"보다 "솔루션 구축"에 더 관심이있는 방향으로 사고 프로세스를 훈련시키는 방법입니다.

개인적으로 나는 독서를 좋아하기 때문에 책이 마르는 느낌이 들지 않습니다. 물론이 책이 실제 지식 수준 이상인 것은 중요합니다. C #의 모든 기본 사항을 이미 숙지했다면 초보자 용 책을 읽는 것이 의미가 없습니다.


7
내가 쓴 내용에 대해 +1 : "모범 사례 / 방법론"유형의 책은 "Y를 사용하여 X를 수행하는 방법"종류의 책과 크게 다릅니다. 전자는 어려운 귀중한 일반적인 문제 해결 경험을 가르치기 때문에 정말 귀중한 것입니다. 단위 테스트, 리팩토링, 추정 등을 배우면이를 다양한 언어 / 도메인 / 프로젝트에 적용하고 적용 할 수 있습니다.
Péter Török

1
스타일, 실습 및 패턴에 대한 언급을 확실히 이해하십시오. 이것들은 정말 유익한 책들입니다. 문제를 해결하고 해결하기 만하면 프로그래밍을 배울 수 있습니다. 학습 스타일, 실습 및 패턴을 통해 잘 프로그래밍하는 법을 배웁니다. 그러나 이러한 개념을 포괄적으로 이해하기에 가장 좋은 곳은 텍스트입니다.
Rig

"실제로 필요하지는 않지만 나중에 도움을 줄 수있는 자료를 다룹니다."에 대해 +1입니다. 훌륭한 프로그래머는 활용할 지식이 풍부합니다. 모든 세부 사항을 기억하지 않아도 필요할 때 잡아 당기고 배울 수있는 스레드를 알고 있다면 매우 귀중 할 수 있습니다!
Jared Updike

22

책 (또는 책처럼 구성된 웹 문서)은 여전히 ​​대부분의 언어를 배우는 데 선호되는 방법입니다.

당신이 언어로 뛰어 들어 자신을 위해 물건을 발견한다면, 좋은 책이 적시에 전달되었을 중요한 측면을 놓칠 것입니다.

예를 들어, 저의 일부 동료들은 책없이 뛰어 들어 Java를 배웠습니다. 그들은 몇 년 동안 Java로 프로그래밍 해 왔으며, .substring ()을 사용하여 배열을 String으로 변환 한 다음 String을 다시 배열로 변환하여 byte [] 배열을 일상적으로 조작하고 있음을 발견했습니다. System.ArrayCopy ()는 Java In A Nutshell의 155 페이지에 소개되었습니다.

선생님보다 혼자 배우는 것보다 배우기가 더 쉽다는 것을 알고 있기를 바랍니다. 좋은 책은 좋은 선생님을 대신 할 수있는 저렴한 대안입니다. 신중하게 계획된 순서로 개념을 소개하므로, 이해하기에 충분할뿐만 아니라 철저한 이해를 구축 할 수 있습니다.


2
무언가를 배우는 것과 배우는 것을 배우는 것의 차이점을 지적하면 +1입니다.
idbrii

좋은 책은이 지역을 빠르게 다룰 수있는 좋은 방법입니다. 누군가가 이미 당신을 위해 연구를 수행했습니다. 좋은 책을 찾는 것은 어려울 수 있습니다. 내가 관심있는 주제 (실제로 좋은 구매자)에 대한 훌륭한 책을 얻을 수있는 50/50의 기회가있었습니다. 이제 서점에서 좋은 책을 찾을 가능성이 10 % 미만이라는 것을 알았습니다. 그러나 인터넷에서 이용할 수있는 자료와 같은 좋은 책이 많이 있습니다. 올바른 리소스를 선택하면 학습 속도가 빨라질 수 있습니다.
BillThor

1
그 시간이 언제인지 잘 모르겠습니다. 최근에 오래된 CS 책을 살펴 보았습니다. 표준이 크게 향상되었습니다. 예를 들어, 나는 몇 년 전 '미란다의 기능 프로그래밍'을 사용했습니다. 최근에 'Real World Haskell'을 사용했습니다. 오래된 책은 기본적으로 Haskell과 동일한 개념과 패러다임을 사용하지만 오늘날에는 신비합니다.
슬림

21

나는 당신이 무언가에있을 것 같아요. 최소한 저의 기술 대부분은 "X"를하는 프로그램을 원하거나 필요로합니다.

이 방법을 배우는 사람들은 도움을 요청하지 않을 수도 있습니다. 그들은 너무 바빠서 (빈약하지만 길을 따라 배우기) 너무 바쁩니다. 프로그래머가 되고자하는 사람들 (첫 번째 그룹에 속함)은 반드시 해결해야 할 문제가 없지만 프로그래머가되는 방법이나 프로그래밍하는 방법에 대해 많은 질문을합니다. 직접 답변이있는 질문.

그래서 우리는 책을 읽습니다. "아, 그래요. '파이썬으로 뛰어 들으십시오.'" "Nope" "Um ..." "정말 바쁘지만 갇 히면 도와 줄 것입니다" "Uh ... 좋아요, 추측합니다"

다른 한편으로, 나는 배우고있을 때 좋은 독서 자료에서 지옥을 소중히 여깁니다. 그래서 해결하려는 문제가 더 숙련 된 저자에 의해 어떻게 해결되는지 알 수 있습니다. "초보자"기술 나는 길을 따라 픽업하지 않았을 수도 있습니다.

TLDR : 책은 좋고, 행함으로써 배우는 것이 좋으며, 책을 읽음으로써 배우는 것은 ???


1
+1 : 당신이 못을 박았다고 생각합니다. 내가 소유 한 가장 귀중한 책은 당시에 쓰고 있던 응용 프로그램과 관련이있는 것으로 배웁니다.
저스틴 쉴드

41
간단한 문제를 겪고 나쁘고 책을 읽기에는 "너무 좋아"느끼기 때문에 모든 것을 알고 있다고 생각하는 "자발적"프로그래머가되지 않도록주의하십시오.
Joris Timmermans

2
나는 독서에 반대하지 않는다는 것을 명심해야한다. 나는 단지 디지털 미디어가 일반적으로 훨씬 더 최신적이고 매력적이라고 ​​생각한다.
Alex Hope O'Connor

2
@Alex 디지털 미디어 정보. 그것은 실제로 미디어가 다루는 주제에 달려 있습니다. 미디어가 언어 y로 x를 수행하는 방법 또는 z로 코딩하는 가장 효율적인 방법과 같은 문제를 다루는 경우 본인의 진술에 동의합니다. 그러나 NP, P, 알고리즘 분석 등과 같은 다른 주제 (보통 고급 고급 이론 주제)는 일반적으로 교과서에서 가장 잘 다루어집니다. 크 누스의 프로그래밍 기술을 보자 . 꽤 오래된 텍스트이지만 여전히 프로그래밍에 관한 최고의 책 중 하나로 간주됩니다.
cledoux

16
나는 이것이 확인 편견의 경우라고 생각한다. @Alex는 특정 답변을 찾고있는 것 같습니다. 나는이 대답이 그 자체 로 나쁘다 는 것을 말하지는 않지만 상상력의 확장으로 제공되는 최선의 대답은 아닙니다.
zzzzBov

15

나는 기술 서적을 읽는 것을 좋아합니다. Sharepoint는 모든 기술 서적과 관심있는 특정 주제에 관한 서적 만 말합니다. Charles Petzold의 Programming Windows의 첫 번째 책을 여러 번 읽었습니다. 이것과 다른 많은 것들 때문에 메모리에서 Win32 응용 프로그램을 작성할 수있었습니다. API를 찾아 볼 필요가 없었기 때문에 비즈니스 부분에 집중할 수있었습니다.

나는 책이 무언가를하는 "권한있는"방법을 제공한다고 생각합니다. 아마도 나보다 더 나은 것을하는 올바른 방법을 알고있는 누군가가 말입니다. 나는 내가 배우는 것이 내 문제를 해결하는 가장 좋은 방법이라고 감히 믿는다. 물론 저자를 신뢰한다면 (아마존의 리뷰 영역을 좋아해야 함).

문제를 해결하려고 할 때 지금은 점점 더 "구글링"하고 복사하고 붙여 넣기는하지만, 내가 복사하고있는 것 (또는 영감을받은 것)이 신뢰할만한 것임을 확인하는 데 많은 시간을 할애합니다. 내 코드를 넣을 수 있습니다. 웹에서 솔루션을 찾았 기 때문에 반드시 최상의 것은 아닙니다.

다른 많은 프로그래머들과 마찬가지로 이제는 단순히 답변을 Google로 검색하지만 여전히 알려진 저자의 책을 고르는 것을 발견합니다. 내용을 잘 설명하는 사람 (교육)이 내 콘텐츠를 가져 와서 Google 검색 결과에서 모든 정크를 필터링하지 않아도된다고 생각합니다.


14

귀하의 질문은 "HTML 페이지 대신 인쇄 된 책과 같은 오래된 기술을 사용하는 이유"가 아니라 "한 명 또는 소수의 저자가 작성한 프로그래밍에 대한 더 긴 텍스트를 읽는 이유"로 해석되지 않았습니다.

책을 특정 주제에 대한 구조화 된 정보 모음으로 생각할 수 있습니다. 누군가가 주제를 이해하기 쉽게하기 위해 각 장을 서로 구축하려고 노력했다는 장점이 있습니다. 일반적으로 정보의 경계가 무엇인지 (다른 내용과주의를 기울여야하는 사항)에 대해 설명합니다. 읽고 사용하면 특정 기술을 달성 할 수 있습니다. 빨리 감기 버튼을 누른 상태에서 학습하려는 경우, 최소한 책의 구조를 신뢰할 수있는 경우, 책은 지루한 부분을 건너 뛰지 않고 모든면을 다룰 수있게합니다. "book"이라는 이름의 컬렉션도 참조로 가장 유용합니다.

인터넷을 사용하는 블로그, "주변 (fiddling around)"등은 대개 구조화되지 않은 정보에 속합니다. 많은 지식과 지식이 필요하지만 지식을 쌓으려면 더 많은 검색 작업을 수행해야합니다. "먼저 이것을 배우지 않으면 그 내용의 장점을 보지 못할 것입니다." "지금 Google 검색했습니다.". 특정 부품이 너무 지루하거나 아무도 중요하지 않다고 말해서 놓칠 수 있습니다. 인터넷에 쓰여진 모든 것이 최고의 품질이 아니기 때문에 잘못된 것을 배울 수도 있습니다. 쓸모없는 검색 결과를 걸러내는 데 많은 시간이 걸릴 수 있습니다. 특정 디자인 패턴이나 프로그래밍 구조를 모르고 아무도 말하지 않았기 때문에 혼자서 무언가를 달성하려고 노력하면 며칠을 낭비 할 수 있습니다. 덜 알수록

조금 도발적으로 말하면 : 나는 다리 건축이나 구조 분석에 대한 책을 읽지 않았지만 Google을 사용하여 배우면서 그것을 배웠다고 말하면 매일 다리를 지을 건축가를 믿지 않을 것입니다. ...


내 질문은 정직한 것으로 해석 될 수 있지만 후자는 내 일반적인 합의였습니다.
Alex Hope O'Connor

10

C 프로그래머라면 책이나 선생님없이 파이썬을 배우기를 어떻게 기대하십니까?

기본 구문을 배우고 바로 뛰어 들으면 Python으로 C 코드를 작성하게되고 Python이 C 만큼 장황하고 고통 스럽다는 잘못된 결론에 도달하게됩니다.


과장입니다. 파이썬 프로그래밍을 시작했다면 구글은 문제에 대한 답을 찾고 특정 문제에 대한 파이썬 솔루션을 설명하는 파이썬 레시피 와 같은 것을 찾을 수 있습니다.
idbrii

6
@pydave : 그것이 과장이라면 SO에 파이썬으로 작성된 C 코드가 많지 않을 것입니다 (예)
BlueRaja-Danny Pflughoeft

4
나는 당신의 예제 질문을 읽고, 당신의 대답을 읽고, 무슨 뜻인지 이해합니다 : 기본 구문을 배우는 것은 언어를 배우는 것과 다릅니다. (언어의 구성을 배우지 않는 것도 고려하지 않았습니다.) 파이썬으로 C 코드를 작성하기에 충분한 파이썬을 배우더라도 파이썬으로 프로그래밍하는 법을 배우지 못했습니다.
idbrii

이것은 더 많은주의를 기울여야 할 심각한 문제입니다. 모든 프로그래밍 언어는 Turing complete이므로 C와 같은 Python 코드 또는 Java와 같은 Ruby 코드를 작성하여 문제를 해결할 수 있습니다. 프로그래밍하려는 언어의 정점에 맞설 수있는로드 블록이 없습니다. 최악의 경우 코딩 비 효율성의 고통을 느끼지 못할 수도 있습니다. 네이티브 C 나 네이티브만큼 고통스럽기 때문입니다. 자바, 당신이 정상적으로 받아 들여지는 고통 수준.
웨지

더 동의 할 수 없습니다-나는 PHP를 작성하는 C 프로그래머입니다 :-|
warren

9

Google은 일반적으로 작은 코드 스 니펫 또는 오픈 소스 라이브러리를 찾는 데만 적합합니다. 일부 라이브러리 / 프로그램에 대한 문서는 기껏해야 신뢰할 수 없습니다 (존재하는 경우 단순하거나 일반적인 예만 표시).

프로그래밍 책은 많지 않지만 OpenGL에 관한 책을 가지고 있으며 3D 엔진 코드가 대부분 들어있어 간단하게 복사 할 수 있지만 말할 수는 있지만 이론도 읽으십시오-몇 페이지 만 넘기면 코드 설명이 기다리고 있습니다. 요즘에는 인터넷에서 일부 오픈 소스 3D 엔진을 찾을 수 있지만 코드를 크게 변경 해야하는 경우 문제가 생길 수 있습니다. 일반적으로 도움말 포럼이 없으며 사람들은 알지 못합니다. 매우 전문적인 경우 귀하의 질문에 대답하십시오. 정말 전문적인 것들에 관해서는 전 세계 수십 명의 사람들 만이 답변을 얻을 수있는 충분한 위치를 파악하기 위해 몇 시간을 소비하지 않고도 귀하의 질문에 답변 할 수 있습니다. C #에서 링크 된 목록을 구현하는 방법을 묻는다면 처음 10 분 동안 SO에 5 개 이상의 답변을 얻을 수 있지만 three.js에서 복잡한 음영 알고리즘을 구현하는 가장 좋은 방법은 다음과 같습니다. , 귀하의 질문은 프론트 페이지에서 바위처럼 가라 앉을 것입니다.

게다가 책은 독자가 관련된 이론에 대해 배우려는 관점에서 거의 독점적으로 쓰여지는 반면, Google은 무작위 정크 코드를 생성합니다. 코드 스 니펫, 아무도 주제에 대해 보관 된 토론을 생성합니다. 인터넷의 소스는 훨씬 좋아졌습니다. SO, Moz Dev Network, Microsoft 웹 사이트, 블로그 등은 역사적으로 인터넷 소스를 따라 잡기 위해 책이 훨씬 나아졌습니다.


1
"1)"학습으로 인터넷 검색 "방법을 사용하여 임의 정크를 분류해야하는 시간을 지적 해 +1
Ray

1
'아무도 자신이 무슨 말을하는지 모르는 주제에 대한 아카이브 된 토론'+1 -ROFL.
5arx

7

최고의 책에서 작문의 질은 시작하기 전에 많은 분명하지 않은 문제들이 놓여지는 정도입니다. 경험이 많은 저자는 예기치 않은 부작용, 장기적인 영향, 문서화되지 않은 기능, 일반적인 사용 시나리오 등을 알려줍니다.

기본적으로, 당신은 문제를 겪고 정말로 흥미로운 부분을 지적하면서 많은 경험을 가진 작가의 이점을 얻고 있습니다.

때로는 온라인 참조에서도이 정보를 찾을 수 있지만 온라인 진입에 대한 장벽이 낮기 때문에 많은 정보가 온라인에 너무 기본적이거나 세부 정보가 누락되었거나 완전히 잘못되었습니다. 이것은 서적에서도 발생할 수 있으므로 일관되게 좋은 리뷰를 가진 고전 서적만을 믿어야합니다. 다른 책들도 유용 할 수 있지만 출처 중 하나로서 만 상호 참조하거나 직접 시도하여 정보를 확인해야합니다.


1
+1000 '정확한 잘못'온라인에서 '최고의 프로그래머'가 작성한 많은 예제 코드가 있습니다.이 코드는 사용자 컴파일러를 사용하지 않거나 그들이 말하는 내용을 알지 못합니다. 또한 좋은 책은 내용을 일관되고 읽기 쉬운 방식으로 소개하고 강화하는 교육학 모델로 작성됩니다.
jqa

6

책은 구조화 된 형식으로 많은 정보를 제공하는 경향이 있습니다. Google은 항상 특별히 구조화되어 있지는 않지만 필요한 정보를 정리하기 어려운 방대한 양의 정보를 제공하는 경향이 있습니다.

나는 실제 종이 책을 더 이상 읽지 않습니다. 내 옆에 전자 판독기가 있으며 랩톱에 Kindle 소프트웨어가있어서 찾고있는 정보에 액세스 할 수 있습니다.

프로그래밍 방법에 대한 구조적 개요를 찾고 있지 않지만 특정 작업을 프로그래밍하는 방법에 대한 세부 정보가 필요한 경우 Google이 도움이됩니다. 누군가는 거의 항상 그 일 전에 또는 적어도 그와 같은 일을 위해 코드를 작성했습니다.

프로그램 학습과 특정 과제 프로그래밍 학습에는 차이가 있다고 생각합니다. 프로그래밍 방법에 대한 적절한 개요를 얻지 못한 경우 인터넷 검색 특정 작업에서 비트와 조각을 배운 사람이 제공 한 코드의 품질에 의문을 제기합니다. 이것은 언어에 국한된 것이 아니라 더 개념적입니다.


4

책은 주제에 대해 더 깊이 들어가고 싶을 때 유용합니다. 물론 몇 가지 자습서를 수행하고 (애완 동물) 프로젝트를 작성하여 C #을 배웠습니다. 그러나 심도있는 C # 은 여전히 ​​진행중인 작업을 확인하고 몇 가지 새로운 사항을 학습하는 데 유용합니다.

또한 프로그래밍 서적을 가져 가서 내 목욕이나 햇빛 아래에서 읽을 수 있습니다 . 데스크탑 PC에서는 그렇게 할 수 없습니다.


4

다른 프로그래머로부터 배우는 편리한 방법이기 때문입니다.

책은 보충 책입니다. 당신은 지금까지 너무 빨리 자신의 일을 얻을 수 있습니다. 책을 읽는 것보다 무언가를 가르치고 자하는 더 나은 프로그래머가있는 프로젝트에 누가 참여하지 않겠습니까?

나는 "프로그래밍에 대해 알아야 할 모든 것"보다는 참조로 더 많이 사용하는 경향이 있습니다.


3

책을 사용하면 "수동적 인"방식으로 일련의 정보를 흡수 할 수 있습니다. 가능성의 일부를 제시 할 수있는 것을 볼 필요는 없습니다. C #을 배울 때이 책은 가능성을 지적하고 C ++에 해당하는 것이 무엇인지 궁금하게 생각했습니다. 물론 마스터 링은 (실제 크기) 프로젝트에서 사용할 때 이루어졌습니다. 그러나이 책은 실제로 차이점과 가능성을 지적하는 데 도움이되었습니다.


3

요컨대, 책이 높은 수준에서 더 유용한 경향이 있다고 생각합니다. 설계 지침을 제공 하고 문제를 해결하는 대신 문제 를 예방할 수 있습니다.


책은 확실히 단점이 있습니다. 필자의 Python 프로그래밍 사본 은 Python 2.0을 다루지 만 사용하는 런타임은 2.6입니다.

그러나 책의 중요한 측면은 자신이 걸려 넘어지지 않는 것을 찾을 수 있다는 것입니다. Google은 특정 문제를 해결하도록 도와 주지만 책은 디자인에 도움이됩니다. 그리고 책을 디자인하는 것만이 아닙니다. 언어 디자인을 이해하는 데 도움이되는 좋은 책을 읽으면 해당 언어를 사용하는 방법을 더 잘 이해할 것입니다.

다른 책은 지식을 구체화하는 데 좋습니다. Scott Murphy의 Effective C ++ 책이 좋은 예라고 생각합니다. 이 책은 C ++을 배우는 데 실제로는 좋지 않지만 알고리즘 / 인터페이스 / 상속 설계에서 아직 접하지 않았거나 해결되지 않은 문제를 확인하는 데 도움이됩니다. 간단한 해결책 (나중에 다른 문제가 발생하는 원인)을 쉽게 찾을 수 있지만, 언어를 더 잘 이해하면 처음부터 이러한 문제를 피하도록 소프트웨어를 설계 할 수 있습니다.

물론, 책이 종이에 인쇄되어 가치가있는 것은 아닙니다. 책을 만드는 데 필요한 관심과 노력과 엄격한 교육을 제공하려는 소망은 책의 가치를 부여합니다. 부작용으로 종종 C ++ FAQ 라이트 와 같은 유용한 온라인 리소스 나 Dive into Python 과 같은 전자 책 을 얻을 수 있습니다. 철저하고 유용한 학습 도구 인 온라인 전용 자습서도 있습니다 (일부 플랫폼 / 언어 / 라이브러리 설명서 등).

웹의 스 니펫은 질문에 대답하는 좋은 방법이지만 질문해야 할 내용은 거의 없습니다.


3

저는 프로그래머가되고 싶어서 프로그래밍 서적을 사용하고 있습니다. 책을 통해 프로그래밍에 전문적으로 능숙해질 수 있습니다.


3

나는 오랫동안 프로그래밍 책을 읽지 못했습니다. 나는 그것들을 참조 안내서로 사용하지만 이제는 대부분의 언어와 프레임 워크에서 인터넷이 더 쉽다고 생각합니다.

어쨌든 프로그래밍 서적에서 배우는 가장 좋은 것은 핵심 언어라고 생각합니다. 예를 들어, 첫 번째 실제 언어는 C였습니다. 저는 OS를 작성하여 배웠습니다 (권장하지 않습니다). 결과적으로, C에 대한 나의 지식은 2 ~ 3 년 동안 프로그래밍 한 후에도 상당히 무너졌습니다. 나는 언어에 대한 좋은 핵심 지식을 얻지 못했습니다. 이 15 줄의 지저분한 코드를 깨끗한 2 줄의 코드로 바꿀 수 있다는 것을 몰랐습니다. 그래서 문제를 해결할 수는 있었지만 C를 최대한 활용하지 못했습니다.

그런 다음 어느 시점에서 나는 C ++를 배우기로 결정했습니다 ... (C를 배우기 시작한 후 약 2 년). 그래서 내가 가지고있는 유일한 C ++ 책 인 C ++ For Dummies Book을 읽었습니다. 나는 그 동안 약 3/4 정도를 똑바로 읽었고, 그 동안 "거동"을 거의하지 않았다. 그 결과 15 줄의 지저분한 코드에 익숙하지 않고 첫 프로젝트에 뛰어 들었을 때 나는 더 쉬운 방법입니다 (찾아봐야 할지라도).

C # / ASP.NET을 배울 때도 같은 일을했습니다. 나는 책의 3/4 정도가 끝날 때까지 거의 아무것도 읽지 않았습니다. 그리고 내가 배우지 않은 것에 대해 흥미로운 C # 질문에 대해 Stack Overflow를 탐색했습니다. 첫 번째 프로젝트를 시작했을 때 대부분의 코드가 비교적 깨끗했으며 그 이후로 한 번만 "거대한"리팩터링해야한다고 말했습니다.

따라서 책은 프레임 워크 나 언어의 기능을 배우는 데 매우 유용합니다. 그 외에도, 그들은 이론적으로 구체적으로 설계되고 참조할만한 강력한 책을 제외하고는 인터넷에서 거의 쓸모가 없습니다.


2

그것은 당신이 읽는 것에 관한 것이 아니라 얼마나 많은 것입니다. 나는 프로젝트를 진행하는 동안 몇 개의 프로그래밍 서적을 가지고가는 것을 좋아합니다. 때때로 (생각보다 더 자주) 현재 프로젝트에 적용 할 수있는 기술에 대해 읽을 수 있습니다.

실제 솔루션으로 구현하면 정보가 그대로 유지됩니다.


2
SE와 같은 웹 사이트에서 질문에 대답 할 때 실제로 그 사실을 발견했습니다. 나는 종종 의견이 내가 현재 일하고 있거나 곧 해결 될 것이라는 문제를 해결하는 데 관련된 정보로 연결된다는 것을 알게된다.
Lea Hayes

2

나는 당신이 작업하고있는 기술의 상태에 대한 스냅 샷을 제공한다고 생각하기 때문에 책을 사용하는 것을 선호합니다. 저자는 XX 버전의 Y 언어 / 라이브러리를 사용하면 문제 Z를 해결하는 방법이라고 설명합니다. 웹 사이트 자습서에서 사용중인 버전을 나열하지 못하거나 책이 자주 사용하는 동안 사용하는 예제 코드를 제공하지 못할 수 있습니다.

온라인 문서는 일반적으로 복사 붙여 넣기 인 반면 책은 종종이 솔루션으로 문제를 해결하는 "이유"를 다룹니다.

또한 모든 참조에 대한 링크를 잃어 버리거나 이동하거나 내려갈 수 있습니다. 나는 투자와 같은 나의 책을 보호하고 돌본다.


2

책을 읽지 않고도 문제를 해결할 수 있지만, 문제를 해결하기 위해 프로그램 뒤에서 무슨 일이 일어나고 있는지 실제로 알 수 있습니까?

무슨 일이 일어나고 있고 더 나은 대안이 될 수 있는지 알아야합니다. 이를 위해서는 좋은 프로그래밍 서적이 필요합니다. 물론 책을 읽는 것만으로는 충분하지 않으며, 내용을 이해하고, 다른 책을 살펴보고, 문제를 해결하는 다양한 접근법을 생각해야합니다. 책이 있거나없는 학습은 계속됩니다.


1

C ++을 배우면서 머리 속의 무언가를 클릭 할 때까지 대부분의 문헌이 쓸모가 없다는 것을 알았습니다. 오늘날까지 나는 그것이 무엇인지 확신하지 못했지만 모든 것이 이해되기 시작했습니다. 그러면 서적과 웹 사이트가 훨씬 더 의미가 있습니다. C ++로 프로그래밍하는 방법을 배우는 데 2 ​​권의 책이 필요했으며 진정한 C ++ 책도 아니 었습니다 (주로 MFC에 중점을 둔 Visual C ++ 책은 아닙니다).

올바른 책을 얻는다면 정말 유용 할 수 있습니다. 내 친구가 uni에서 Dietel 책을 읽고 있었는데 그 책이 매우 잘 쓰여 있음을 알았습니다. 나는 "... for Dummies"책이 저에게 올바른 방법으로 설명하지 않기 때문에 유용한 책을 찾지 못했습니다. 가장 좋은 조언은 서점에 가서 책을 맛보는 것이므로 매우 비싼 책에 많은 돈을 낭비하지 마십시오.

일부 프로그래밍 주제의 경우 여러 책을 읽고 Google을 통해 연구를 수행하고 실험하는 것이 유용하다는 것을 알았습니다. J2ME로 체커 게임을 할 때 AI 알고리즘을 작업 할 때이 작업을 많이 수행했습니다. 또한 사용자 정의 구문을위한 컴파일러 컴파일러를 작성하는 방법을 배울 때이 작업을 수행했습니다. 매우 다양한 변형과 ​​뷰가 있습니다.

때때로 여러보기를 이해하면 더 모호한 연결을 만들 수 있습니다.


1

나는 웹과 같은 책과 "적시에"소스에서 배우고 (프로그래밍) 경향이있다. 둘 다 좋을 수는 있지만 전반적으로 책에서 배우기를 선호합니다. 이유는 다음과 같습니다.

프로젝트의 일부를 마치기 위해 즉시 알아야 할 내용 만 배우면 때로는 큰 그림을 놓치게됩니다. 최고의 책은 단지 참조 일뿐 아니라 어떤 점에서 기술에 대한 포괄적 인 개요와 일반적인 문제에 대한 최상의 솔루션에 대한 노련한 조언을 제공함으로써 도제에 가까운 것을 달성합니다.

적시 학습은 만족스러운 문제로 매우 쉽게 겪을 수 있습니다. 해결하려는 문제를 식별하면 작동하는 것처럼 보이는 첫 번째 솔루션으로 넘어간 다음 웹을 실행하는 방법을 찾아보십시오. . 그러나 종종 문제가 생길 수 있습니다. 문제가있는 숙련 된 프로그래머와 대화를 나눌 수 있었다면 "X를 수행하는 방법이 있습니다"라고 말하지 않고 대신 "하지 말아야합니다" X, 대신 Y를하십시오 ". 그리고 이것은 당신이 최고의 책에서 얻는 경향이있는 지식입니다. 실제로 일부 책은 Javascript : The Good Parts 와 같은 이런 종류의 것에 관한 것 입니다.

JIT 학습이 가질 수있는 다른 문제는 학습 속도가 훨씬 느리다는 것입니다. JIT 학습을 통해 알아야 할 내용 만 배우는 경향이 있습니다. 그러나 종종 기본 지식 만 있으면 새로운 언어 나 프레임 워크를 빠르게 배울 수 있습니다. 기본을 뒤죽박죽하는 대신 견고한 기초부터 시작하여 기초를 세우십시오. 책을 읽는 동안 다룰 수있는 훌륭한 자료는 즉시 유용하지는 않지만, 배경 지식을 보유하면 의사 결정을 내리는 데 도움이되고 특히 노출되는 새 코드를 이해하는 데 도움이 될 수 있습니다. 물론 트레이드 오프가 있으며 쓸모없는 사실을 쌓아 놓은 나쁜 책이 있습니다.이 책을 읽은 후에는 기억할 수 없지만 기본 사항에 대한 좋은 근거를 제공하는 좋은 책도 있습니다.

개발자로서 성숙하기 위해 중요하다고 생각하는 단일 기술 주제보다 높은 수준의 책도 있습니다. 같은 책 전체 코드 , 리팩토링 , 레거시 코드와 함께 효과적으로 작동 등, 당신은 JIT 학습을 통해 그 책에서 지식을 데리러하지 않을거야.


1

책을 읽고, 특히 전자 책을 다운로드하고, 장의 모든 부분을 읽고, 코드를 복사합니다. 프로그래밍 편집기에 붙여 넣은 다음 출력 결과를 확인하십시오. 그런 다음 논리를 변경하십시오. 나는 더 빨리 작동하기 때문에 다운로드 가능한 전자 책을 언급했습니다. 책은 정말 훌륭합니다. 나는 거짓말하지 않지만 지난 11 월부터 오늘까지 끝났습니다. 약 20 권의 책. 모두 읽기를 좋아합니다. 초보자는 인터넷을 통해 도움을받는 특정 문제를 해결한다는 것입니다. 그러나 실제 복잡한 작업을 수행하면 포기합니다. 예를 들어 컨트롤을 datatable로 묶었 고 데이터 세트가 무엇인지 알지 못하고 데이터베이스 테이블의 메모리 상주 복사본 사이에 관계를 만드는 작업이 제공되었습니다.


0

새로운 프로그래머는 프로그래밍이 실제로 얼마나 깊은 지 이해하기가 매우 어렵습니다.

누구나 컴퓨터에 지시하는 프로그램을 작성할 수 있습니다. 학습이 거의없는 것만으로도 어려운 일이 아닙니다! 어려운 점은 지원할 수 있고 팀의 다른 구성원이 신속하고 깊이 이해할 수있는 프로그램을 만드는 것입니다.이 부분은 몇 년, 수십 년이 걸립니다.

또한 팀의 효과적인 부분으로 일하는 것을 배우는 것은 약간의 곡선입니다.

그렇다면 책이 웹에서 참조를 찾지 못하는 방식으로 이러한 "실제"프로그래밍 문제를 해결하는 데 어떻게 도움이됩니까?

내가 가장 좋아하는 책 중 두 가지는 "디자인 패턴"과 "리팩토링"입니다.

리팩토링은 잘못된 코드를 인식하는 방법을 알려주는 훌륭한 책입니다. 코딩 참조를 찾아서 배운 경우이 책 (많은 리팩토링 책 중 하나)이 중요합니다.

디자인 패턴은 훌륭한 프로그래머가 알아낼 수없는만큼 많은 것을 제공하지는 않지만, 이미 코드에서 이미 사용했던 다양한 패턴에 이름을 부여했습니다. 이를 통해 프로그래머는보다 효과적으로 의사 소통하고 일부 프로그래머가 문제를 공격 할 새로운 방법을 찾을 수있었습니다. 웹에서 디자인 패턴을 찾을 수 있지만 Google이하는 것보다 디자인 패턴의 이름을 Google보다 훨씬 쉽게 찾을 수 있습니다.

나는이 두 권의 책과 그들이 성취하려는 것을 설명하기 위해 인터뷰에서 질문을 받았다. 나는 이것이 매우 유효한 인터뷰 질문이라고 생각한다. 그가 아주 주니어 직책을 신청하지 않는 한


0

책에서 직접 프로그래밍하는 법을 배웠습니다. 약 20 년 전에 구글과 인터넷이 인기를 얻었습니다. 나는 그들이 훌륭한 자원이라고 생각합니다. 그러나 대부분의 현대 서적은 제조업체의 기술 기사 만 인용합니다. 이제 온라인으로 배우는 것이 낫다는 데 동의합니다. 다음과 같은 경고 문구가 있습니다.

비록 많은 책을 읽었지만 재정적으로 가능했기 때문에 인터넷에 거의 접근 할 수있었습니다. 나는 절대로 모든 종류의 규모가 큰 프로젝트를 완료 할 수 없었습니다. 물론 큰 고급 책에서 많은 규모의 프로젝트를 수행 할 수는 있지만 20 장으로 안내합니다.하지만 실제 프로젝트에서는 항상 벽돌 벽에 부딪치지 않았습니다. 나는 당신에게 말해야합니다, 나는 무거운 책을 읽었습니다.

나는 평생 대학에 입학하는데 문제가 있었지만 지금은 3 학년이되었습니다. 첫 해에 나는 4 학년 때부터 사람들을 만나서 AI, HCI, 어셈블러 및 컴파일러 개발 등의 이론에 대해 생산적인 대화를 나눌 수있었습니다. 그러나이 모든 지식으로 합리적인 프로그램을 만들 수 없었습니다. 내가 잃어버린 것 ... 어떤 책이나 온라인에서도 얻을 수없는 것.

구조. 첫해에 나는 기술적 특성에 대해 전혀 배웠습니다. (Allready는 모든 것을 알았고 며칠의 연구없이 수학을 통해 번식했습니다. 첫 여름 방학 동안 나는 첫 번째 실제 작업을 완료하는 데 그 어느 때보 다 가까워졌습니다.

두 번째 해에 저는 새로운 기술을 많이 배웠습니다 (여전히 내가 아는 것과 비교하여 기본 사항을 알고 있지만, 내가 알고있는 이론을 실제로 실천하고있었습니다). 이것은 다시 한 번 구조의 중요성을 강조했다. 첫 번째 실제 프로젝트를 완료하지 않았습니다. 나는 이제 자신을 프로그래머라고 생각한다.

나는 프로그래밍을 배우기 위해 책을 읽는 데 필요한 것을 믿지 않습니다. 그러나 도움이됩니다. 그러나, 나는 2 년 동안 대학에서 얻은 것을 가르치는 책이나 웹 사이트가 없다고 확신합니다. 대학에 가지 않고 공정한 놀이를하지 않고 프로젝트를 완수했다면, 나이에 상관없이 추천합니다.

책은 좋으며 인터넷은 더 좋으며 Google과 튜브는 팹이지만 내 아편에서 좋은 오래된 fashoned 대학을 능가하는 것은 없습니다. 그리고 나는 어느 정도의 인터넷 검색과 유투브가 의지 할 것인지 의심하고, 나는 책의 양이 적다는 것을 직접 알고 있습니다.


위에서 언급 한 곳에서 "저는 첫 번째 실제 프로젝트를 완료하지 않았습니다. 이제는 스스로 프로그래머라고 생각합니다." "이제 첫 번째 실제 프로젝트를 완료했습니다. 이제 프로그래머라고 생각합니다."라고 읽어야합니다. 맞춤법 오류가 발생했습니다.
Jack Spratt

0

나는 단서가 없다. 나는 프로그래밍 서적에 반대한다. 대부분의 경우 추가 정보를 검색하려면 여전히 인터넷을 조사해야합니다.

프로그래밍 언어를 배우고 싶습니까? 그것을위한 구글. jQuery가 어려워서 싫어했습니다. 그런 다음 Stack Overflow에 왔으며 그로부터 많은 것을 알고 있습니다. 어떤 책의 도움없이.

  • 그것을위한 구글
  • 전문적이고 완전한 오픈 소스 응용 프로그램을 둘러보십시오.
  • 해당 코드를 탐색하고 진행중인 작업을 얻으십시오.
  • 기존 코드 스 니펫에서 빠르고 간단한 응용 프로그램을 작성하십시오.
  • 직접 작성해보십시오.
  • 인터넷에서 더 많은 튜토리얼 찾기
  • 경험을
  • 더 많은 경험을
  • 당신은 새로운 언어를 배웠습니다! (나는 당신이 전문가가 될 것이라고 말하지 않았지만 기본은 몇 시간 또는 며칠 만에 배운다)

책을 참조로 사용하는 것은 매우 유용합니다. 다른 사람의 경험을 통해 얻을 수 있습니다. "book"은 django 또는 jquery 와 같은 광범위한 온라인 문서 / 자습서 일 수도 있습니다 . 그러나 시행 착오 + 읽기 소스만으로도 지식에 큰 차이가 생길 수 있습니다. 이제 몇 줄의 jQuery 만 있으면 메서드가 작동하지만 언어를 배우지 못했습니다. 그러나 C를 배우고 싶다면 K & R을 참조하는 것이 좋습니다. 물론 대부분의 정보는 온라인 어딘가에 있지만 많은 블로그 게시물에 흩어져 있습니다.
jimbob 박사

0

나는 책을 통해서만 프로그래밍을 배울 수 없다는 것이 옳다고 생각합니다 (대부분의 사람들이 언급했듯이), 연습을 많이해야하며 인터넷에서 사용할 수있는 많은 자료 (기사, 비디오, 샘플 등)가 있습니다.

그러나 좋은 책은 지식의 차이를 채 웁니다. 책 표지를 읽은 후에는 주제에 대한 지식에 빈틈이 없음을 확신 할 수 있습니다. 도전은 주제에 관한 좋은 책을 찾는 것이지만.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.