잘 알려져 있지만 프로그래밍에 관한 오래된 책에 대한 만료 날짜가 있습니까? [닫은]


51

모든 프로그래머가 읽어야 할 책에 대한 질문을 읽은 후 다음을 쓸모없는 것으로 간주해야하는지 궁금합니다.

이 책들은 모두 아주 오래된 것 같습니다. 현대 컴퓨팅과 그 책이 쓰여졌을 당시의 현재 사이에는 차이가 없습니까?

예를 들어, 61 세의 선생님은 일을 아주 잘 설명하지만 25 년 전과 지금 가르치기 시작했을 때 이루어진 모든 일을 고려하는 것을 잊었습니다.

그 책들도 마찬가지입니까? 현재 관행에 더 가까운 원리와 기술을 가르치는 더 현대적인 책이 없습니까? 아니면 오늘날에도 유용하고 관련성이 있다고 생각하십니까?


9
나열된 모든 타이틀이 12 년 전에 처음 출판 된 이유 를 고려할 가치가 있지만 오늘날에도 여전히 가치가 있습니다. 5 개 중 4 개는 첫 번째 판 이후로 업데이트되었지만 에디션 간 평균 시간은 10.4 년입니다.
Caleb

83
기본 프로그래밍 원칙은 새로운 "주중의 맛"언어 또는 프레임 워크가 있기 때문에 변경되지 않습니다.
Robert Harvey

26
원시 컴퓨터 공학 졸업생이 복잡한 소프트웨어 시스템을 구축 할 것을 기대하는 것은 원시 토목 공학 졸업생이 현수교를 설계하는 것을 기대하는 것과 같습니다. 학교는 당신에게 당신이 긴 슛을 알아야 할 모든 것을 가르쳐주지 않는, 그것은 비록 훌륭한 소프트웨어 엔지니어로 방법을 학습하는 방법을 가르쳐해야하고,이 오래된 그들이 수십 년 전에 그랬던 것처럼 책은 지금 말할만큼이 - 끝났어 맨 먼스 미신의 20 주년 에디션 이후 십육년 출판되었으며, 원래는 1975 년에했다대로 오늘 마찬가지로 관련이
마크 부스를

10
이 책들은 영원합니다. 그러나이 책 들만으로 자신을 제한하고 더 새로운 것을 무시할 프로그래머는 실제로 쓸모 없을 것이다
gnat

4
당신은 일종의 질문을하고 있습니다 : 책이 좋으면 쓸모가 없습니다.
quant_dev

답변:


92

이 책은 개발 원칙에 관한 것입니다. 이러한 원칙은 본질적으로 언어에 구애받지 않으며 심지어 패러다임에 구애받지 않는 (OOP, 함수형 프로그래밍, 명령형 언어)에도 적용됩니다.

소프트웨어는 항상 데이터를 가져 와서 처리 한 다음 다시 출력하는 것이므로 개발 이론과 좋은 방법을 설명합니다. 페이스 북, 트위터, 3D, 회계 처리 과정, 철도 교통 관리, 로켓 발사 등

"How to learn XXXXX in YY days"XXXXX는 언어이고 YY는 언어 에 관한 책입니다 . 여기서 YY는 결국 (그리고 때로는 실제로 매우 빠르게) 쓸모없는 숫자입니다. 시대에 뒤쳐진.

스티브 맥코넬 (Steve McConnell)이 작성한 코드 컴플리트 (Code Complete )는 아마도 이것을 깨닫게 한 책일 것입니다. 그리고 실용주의 프로그래머는 완전히 내가 소프트웨어 개발의 한 비전을 변경했습니다. 그러한 책을 읽음으로써 당신은 매일 직면하는 문제의 95 %가 이미 해결되었으며 우리 중 95 %가 여전히 바퀴를 재발 명하고 있음을 알게됩니다.

소위 "클라우드"는 소프트웨어 개발의 미래가 아니라 개발 된 소프트웨어를 사용하는 방법입니다.

과대 광고 / 헛소리 유행에 빠지지 말고 소프트웨어 장인 기술을 향상시킬 수있는 방법에 집중하십시오.

다른 훌륭한 영혼들이 우리에게 발명하고 배운 것을 배우는 데 집중하십시오. 왜냐하면 그것은 훌륭한 개발자가되기위한 유일한 방법이기 때문입니다.


6
좋은 예술가는 위대한 예술가 훔치기를 복사합니다
hafichuk

16
... 진정한 예술가가 배송합니다. :-)
kindall

9
그럼에도 불구하고, 우리가 몇 번이나 말하더라도, 사람들은 여전히 ​​12 일 안에 자바 스크립트 만 필요하다고 생각합니다.
스펜서 Rathbun

2
훌륭한 아티스트는 복사하고 훌륭한 아티스트는 코드를 복사하고 깨끗하게 유지합니다! (학교에서 다른 아이들과 함께 일하면서 두통이 생겼습니다. 다른 모든 아이들과 함께 일했기 때문에 프로젝트를 엉망으로 만들었습니다 ...)
HTDutchy

@SpencerRathbun (IMHO)에서도 Javascript는 PHP와 같은 다른 언어보다 밀기울이 더 많이 소비됩니다. 그러나 bazillion "Learn Javascript in 15 seconds"과 bazillion의 절반 만"Learn PHP on 17 secsonds"
Clement Herreman 11

80

그 책은 모두 아주 오래된 것 같습니다. "

Psychology-Computer-Programming (1971)-1970 년보다 많은 프로그래머가 프로그램을 설계하는 방법과 실수, 피하는 방법에 대한 심리학이 그 어느 때보 다 중요합니다.

소프트웨어 도구 (1976)-웹이 프레임 워크, 유틸리티, 스크립트 및 플러그인의 모음이되면서 소프트웨어 도구의 아이디어는 결코 관련성이 없었습니다.

편집 :의 일반적인 질문을 해결하기 위해-오래된 프로그래밍 도서는 관련이 있습니까?

소프트웨어 엔지니어링의 일반적인 원칙은 크게 바뀌지 않았으며 새로운 기술 OO, TDD 등이 있습니다. 그러나 일반적으로 사용자와 문제는 변경되지 않았습니다. 문제를 나누는 방법에 대한 생각은 지금과 같습니다. 항상 그렇습니다.

이 오래된 책들은 일반적으로 해당 분야의 전문가들에 의해 작성되었습니다. 현대의 많은 프로그래밍 서적은 최신 유행어가 아직 최신 상태 일 때 2000 페이지의 문을 열어야합니다.

더 이상 사용되지 않는 언어 및 기술에 관한 책은 관련이 없을 수 있습니다. 목록에 Vax 어셈블러 설명서가 없습니다. 그러나 'C'는 여전히 많이 사용되며 'C 프로그래밍 언어'는 'C'에 대한 최고의 책일뿐만 아니라 간결한 자습서를 작성하고 언어에 대한 참조를 작성하는 방법의 모델입니다.

새로운 알고리즘이 있습니까? 예. 그러나 모든 오래된 알고리즘은 여전히 ​​관련이 있으며 새로운 알고리즘의 대부분은 당신이 만나지 못할 모호한 영역에 있습니다. 최근에 더 나은 종류 나 FFT를 만든 사람은 없습니다. 다른 사람들이 더 잘 설명하려고 시도했지만 올해의 알고리즘 책이 CLRS보다 더 좋은 이유는 없습니다.

추신. 멋진 새 iWhatsit은 1977 년에 개발 된 BSD를 실행합니다. 이제 아이들이 잔디밭에서 내립니다!


28

이 책들은 모두 아주 오래된 것 같습니다. 요즘과 그 책이 쓰여진 시점에 차이가 있다고 생각하지 않습니까?

IMHO 아주 좋은 책이 수십 년 동안 인기를 유지한다는 것은 놀라운 일이 아닙니다. 그러나 나는 당신이 열거 한 각 후보자들에게 무언가를 말할 수 있다고 생각합니다.

Code complete: 2nd edition = may, 2004

실제로 "Code complete"의 첫 번째 버전은 1993 년이되었으므로이 버전은 실제로 "클래식"입니다. 현재 가장 인기있는 언어 (C / C ++ / Java / C # / Objective-C / D / ...)를 포함하는 C 계열의 거의 모든 프로그래밍 언어에 적용되는 예제를 사용하는 기본 코딩 스타일에 관한 것입니다. 예,이 책은 최신 정보입니다.

Introduction to algorithms (Cormen, Leiserson, Rivest, Stein)

글쎄, 나는 실제로 그 책 (내 알고리즘 교과서는 "Sedgewick"에서 나온 것)을 읽지 못했지만 학습 알고리즘과 알고리즘 구성은 실제로 언어에 구애받지 않습니다. 물론,이 기술은 요즘 표준 라이브러리에서 많은 기본 알고리즘을 찾았 기 때문에 지난 몇 년 동안 다소 과소 평가를 받고 있지만 IMHO 모든 전문 프로그래머는이 분야에 대한 기본 지식이 있어야합니다.

The Pragmatic Programmer

이것은 장인으로서의 프로그래밍에 관한 아주 좋은 책입니다. 텍스트 편집기, IDE, 버전 제어 등을 사용하여 프로그래머가 수동 작업으로 프로그래밍을 수행하는 한 언어에 구애받지 않고 매우 최신입니다.

Structure and Interpretation of Computer Programs: = September 1, 1996

이 책은 Scheme을 사용하여 다른 프로그래밍 패러다임의 차이점을 가르쳐 주지만 개인적으로 가장 좋아하는 책입니다. 나는 추상화를 만드는 데 초점을 맞춘 다른 책을 모른다. 그리고 추상화를 만드는 것은 평범한 프로그래머와 최고의 프로그래머 사이의 차이를 만드는 핵심 능력입니다. 지난 수십 년 동안 바뀌지 않았으므로 실제로이 책은 시대를 초월한 것입니다. 또한, 기능 언어 및 언어 요소가 최근에 인기를 얻었으므로 IMHO는이 책에 제시된 아이디어가 르네상스를 얻었습니다.

The C Programming Language

글쎄,이 책은 다른 네 책만큼 영원하지 않을 수 있습니다. 그러나 C는 위에 나열된 모든 인기있는 언어의 "어머니"와 같은 것이기 때문에이 책을 읽는 것이 좋습니다. 현대의 "C"서적은 더 나을 것이라고 생각하지 않습니다. 그리고 C를 C에 대해 더 잘 아는 사람이 작성한 C ++ 코드의 유지 보수 프로그래밍을해야한다면이 책은 필수입니다.

마지막으로 기술에 국한되지 않고 더 많은 "현재 현실"을 고려한 책을 요구했습니다. 그렇다면 "현재의 현실"이란 무엇이며 "비 기술적"측면에서 무엇이 바뀌 었습니까? 이 목록이 완전하거나 올바른 우선 순위를 가지고 있다고 말하지 않고 지난 10 년 동안의 몇 가지 요점이 있습니다.

  1. 더 많은 레거시 코드가 있습니다 (특히 Fortran 및 Cobol뿐만 아니라 C ++ 및 Java에도 더 많은 레거시 코드).
  2. 단위 테스트와 TDD가 더 좋아졌습니다.
  3. 사용 가능한 훨씬 더 많은 오픈 소스 코드가 있습니다.
  4. OO는 점점 더 많은 비평가를 받았습니다

(웹이나 앱 개발에 대해서는 아무것도 언급하지 않았습니다. 왜냐하면이 기술에 특정한 것으로 생각하기 때문입니다).

주제 1과 주제 2, 특히 2008 년의 "Clean Code" 2004 년의 "레거시 코드로 효과적으로 작업하기 "에 관한 좋은 책이 있습니다.


5
C 프로그래밍 언어 시대를 초월합니다. 그런 증류 된 책은 드물다. 나는 그것을 위해 다시 읽었습니다 ... 모르겠어요, 나는 카운트를 잃었습니다 (나는 13 살 때 처음 읽었습니다). 나는 여전히 그것을 고맙게 생각합니다. 오히려, 나는 지금 훨씬 더 감사합니다.
Francesco

3
병렬 컴퓨팅이라는 목록에 # 5를 추가하겠습니다. 정확히 새로운 아이디어는 아니지만 요즘 전례없는 규모로 진행되어 새로운 문제가 발생합니다. 그러나이 모든 것은 여전히 ​​오래된 것들과 동일한 기초 위에 세워져 있으며 OP가 여전히 그 기초를 이해하지 못한다는 느낌이 들었습니다.
Mike Baranczak

2
@Mike : 지난 10 년 동안 병렬 컴퓨팅이 점점 더 주목을 받고 있다는 데 동의합니다.
Doc Brown

2
@ 독 브라운 (Doc Brown) 자신의 관점에서 며칠 안에 1885 년, 1955 년, 1985 년, 2015 년을 방문한 문학의 시대를 초월한 견해에 대한 견해가 있습니까?
칼라 마네

13

"Code complete", "pragmatic programmer"및 "SICP"에 대해 언급 한 것 중에서 회사에서 시작하여 더 높은 수준으로 올라가고 자하는 모든 새로운 개발자를위한 권장 읽기 목록에 있습니다.

컴퓨터 과학의 기본 과학은 바뀌지 않았기 때문에 오래전부터 사용되지 않습니다.


10

나는 그 책을 모두 읽지는 않았지만 Code Complete와 The Pragmatic Programmer를 소유하고 있습니다. 이 책들은 더 이상 사용되지 않습니다. 그것들은 약간 녹슨 단락이있을 수 있지만 대부분의 내용은 오늘날에도 여전히 관련이 있습니다.

컴퓨터 과학 및 프로그래밍의 발전진화 과정입니다. 새로운 추상화가 오래된 것 위에 소개되고 있지만 이러한 새로운 것들은 오래된 것을 쓸모 없게 만듭니다.

유추 ... 외상 외과 의사 또는 심장 이식 전문 외과 의사로 공부하든 인체의 작동 방식, 세포 화학, 장기 시스템, 가슴을 여는 방법 및 신속하게 여는 방법을 알아야합니다. 내시경 장비와 덜 침습적 인 기술을 발명했다고해서 출혈을 멈추는 것은 기본을 배우기위한 갈고리가 아닙니다. 그것은 당신이 더 배워야한다는 것을 의미합니다.


그래 그레이의 해부학 (텔레비전 쇼가 아닌 실제 책)은 1918 년에 쓰여졌으며 의대생들은 여전히 ​​그것을 사용합니다.
HLGEM

7

"구름"은 요인이 아닙니다. "구름"은 실제로 나열된 대부분의 책보다 훨씬 오래되었습니다. 그 책의 대부분은 핵심 원칙에 관한 것이며 실제로 자주 바뀌지 않습니다. 프레임 워크와 라이브러리는 항상 변하지 만 코드를 어떻게 구성해야하는지 크게 변하지 않습니다. 마찬가지로 포인터는 여전히 포인터이기 때문에 다른 일을 시작하지 않습니다. 귀하가 나열한 유일한 언어 별 책은 C에 관한 것입니다.이 경우 오래된 책은 새로운 것보다 훨씬 유용합니다. 왜냐하면 작업하려는 C 코드가 개발 된 기간에 더 가깝게 쓰여졌 기 때문입니다.


6

당신이 인용 한 목록은 더 이상 사용되지 않습니다. 책이 유용하지 않을 정도로 주제가 바뀔 때만 책은 쓸모가 없습니다. 프로그래밍의 성격과 C 언어는 출판 이후 거의 변하지 않았습니다.


6

당신이 깨달아야 할 것 중 하나는 본질적으로 시대를 초월한 근본적인 원칙과왔다 갔다하는 경향이 있다는 것입니다.

근본적인 원칙은 본질적으로 컴퓨터 과학이 많은 시간을 소비하는 경향이있는 지루한 이론이며, 세상이 바뀌더라도 계속 유효합니다. 이 같은 것들을 반대로 "윈도우 3.11에서 Win32는 사용 방법" 이다 아주 오래된 시대에 뒤 떨어진.

사물을 원근법으로 표현하기 위해-지오메트리의 표준 텍스트는 2 천년입니다. 대학 수준까지 가르치는 대부분의 수학은 적어도 300 세입니다. CS 서적이 오래되지 않은 이유는이 분야가 아직 새롭기 때문입니다.


책 1의 유클리드 제안 1은 제공된 정의, 공리 및 가정에서 입증 될 수 없습니다. 요즘부터 배우는 것은 좋은 선택이 아니며 밀레니아가 구식으로 간주 될 수 있습니다.
David Thornley

1
@DavidThornley Euclids Elements가 지오메트리의 정식 텍스트가 아닌 경우 무엇입니까?

6

일부 책은 소프트웨어 개발 실무에 매우 근본적인 아이디어를 논의하기 때문에 영원합니다. 항상 적용됩니다.

예를 들어 Mythical Man Month 를 예로 들어 보자. 이 책을 읽고있을 때 나는 1975 년에 쓰여졌다는 사실을 잊어 버렸다. 도서. 다른 모든 것이 여기와 지금 적용됩니다. 나는 여전히 9 살이 된 Martin Fowler의 Enterprise Application Architecture패턴 사본을 여전히 보관하고 있으며 , 현재까지도 계속 적용 할 수 있습니다.

제가 가장 좋아하는 책은 Peter Coad의 UML (1999)을 사용한 Java 모델링 (1999 년)입니다. 비록 C # 개발자이고 UML을 피할 수 있지만 기술과 개념이 더 나은 코더가되기 때문입니다.

우리는 1 세대 개발자들로부터 배워야합니다. 왜냐하면 우리가 지금 걸어 가고있는 땅을 밟았고 그들의 열심히 얻은 지혜가 오늘날 우리가하고있는 / 학습에서 시작하는 데 도움이 될 수 있기 때문입니다.


MMM-팀이 버그를 지속적으로 수정하는 부분이 마음에 들지만 버그 수는 일정하게 유지됩니다. :)
JoelFan

5

지난 20 년 동안 소프트웨어의 핵심 원칙은 변하지 않았습니다. 스택, 트리 및 연결된 목록은 이전과 동일하게 작동합니다. "XOR"은 여전히 ​​같은 것을 의미합니다. 바이트는 여전히 8 비트입니다.

"멀티 플랫폼 개발"이 새로운 아이디어라고 진지하게 제안하고 있습니까? 왜 C가 발명되었다고 생각합니까?

"클라우드"는 마케팅 용어입니다. 그것은 특정 종류의 것을 의미했지만 과다 사용으로 인해 기각되었습니다. 요즘에는 네트워크를 통해 원격 서버와 통신하는 무언가가있을 때마다 마케팅 담당자는 "클라우드"레이블을 붙입니다. 따라서 의미가없는 단어이기 때문에 그것에 대해 이야기 할 필요가 없습니다.

나는 당신의 61 세의 교수를 모른다. 그래서 나는 그를 보증 할 수 없다. 반면에, 당신은 당신이 생각하는 것만 큼 똑똑하지 않습니다. 교수의 말을 들어 보면 무언가를 배울 수있을 것입니다.


"어리 석음으로 나이가 들지 않습니다. 많은 현명한 젊은이들이 새끼들처럼 죽었습니다." -리차드 프라이어


2
"반면에, 당신은 당신이 생각하는 것만 큼 똑똑하지 않습니다." 나는라고 생각하면 스마트, 나는 그런 질문을하지 않았을 것입니다.
Olivier Pons

4

보다 오래된 오래된 책은 다음과 같습니다.

  • 컴퓨터 프로그래밍의 기술, vol. 1-3 by D. Knuth. 이것들은 1968 년에서 1981 년 사이에 출판되었습니다! 우리는 더 이상 진공관을 사용하지 않습니다! 이 책의 모든 것은 절름발이입니다. 파이썬과 루비에 대한 토론은 어디에 있습니까?

  • 컴퓨터와 다루기 어려움 : 1979 년 MR Garey와 DS Johnson의 NP-Completeness 이론 가이드. Super lame! 이 모든 문제는 아마도 지금까지 해결되었을 것입니다.

지난 3 년 동안 책을 파이썬에 중점을두고 쓰지 않았다면 읽을 가치가 없습니다.


공평하게도 TAoCP가 의사 코드에 어셈블러를 사용한다는 사실은 적어도 현대 언어에 더 가까운 의사 코드를 사용하는 최신 알고리즘 책이 임베디드를 위해 글을 쓰지 않는 우리의 90 % 이상에게 더 유용하다는 것을 의미합니다. 시스템.
Peter Taylor

-1 : 매주 또는 두 번 누군가가 Knuth가 설명 한 것 또는 다른 것을 처리하기 위해 알고리즘을 요구하는 것을 봅니다. 그냥 재미로 이름 1981 년보다 새로운 정렬 알고리즘을 병렬 종류의 답변을 원하십니까? Knuth에는 데이터를 병렬로 정렬하는 방법에 대한 페이지 가 있습니다. 파이썬 서적에 대해서는 옳을 수도 있지만 "주중의 풍미"서적과 엔지니어링 공예 서적에는 큰 차이가 있습니다.
sarnold

5
분명히 일부
풍자극

1
<Sarcasm> "코멘트"</ Sarcasm>
NWS

1
2020 년에 계획된 2011 년과 5 권에서 출판 된 The Computer of Computer Programming Volume 4A에 대한 언급을 포함한다면이 답변이 더 나아질 것이라고 생각합니다 !
마크 부스

3

그 책들은 쓸모없고 고전적입니다.

인용하자면 Kaplansky를 , " 현재합니다 (disjointness는 일시적 일 수 있다는 것을 기억) 작업중인 문제와 떨어진 새로운 것을 배우고 매일 시간을 보내고, 그리고 주인을 읽어 . "


3

코드 가독성과 사용을 변경하는 진보가있을 때 (LINQ가 떠오를 때),이 책이 오래되었다고해서 독자에게 훌륭한 교훈을 제공하지 않는다는 것은 아닙니다.

그들이 사용하는 프로그래밍 언어는 유행에서 벗어 났지만, 프로그래밍 언어에 대한 이론은 오늘날에도 여전히 유효합니다. 이 책의 대부분은 기본을 잘 다루는 데 도움이되며 기본은 그다지 바뀌지 않았습니다.


2
그들이 사용하는 프로그래밍 언어는 대부분 'C'입니다. 유행에 빠졌지 만 사용이 크게 증가했습니다.
Martin Beckett

3
LINQ가 : 어디에서 오는지 당신은에 대한 당신의 눈을 열 수도 SICP를 읽어야합니다
요리스 Timmermans에게

1

컴퓨터 과학 산업은 여전히 ​​젊습니다. 30 년 전에 쓴 책은 여전히 ​​가치 있고 완전한 이해를 위해 필요하다고 생각합니다. 추상적 개념은 때때로 소화하는 데 시간이 걸립니다.


1

일부 사소한 부분은 모든 책에서 더 이상 사용되지 않지만 99 %는 여전히 큽니다.

알고리즘 서적은 천천히 노화됩니다. 알고리즘은 수학이며 수학은 빠르게 변하지 않습니다. 물론 특정 상황에서 우수한 새로운 알고리즘에 대한 연구가 여전히 있습니다 (예 : 40000+ 자리의 긴 숫자를 곱하기위한 Furer의 알고리즘 (2007) Schonhage-Strassen ). 그러나 기초를 배우기위한 소개 (분할 및 정복) 알고리즘에 대해 현명하게 생각하는 법을 배울 수 있습니다.

K & R의 학습 표준 C는 여전히 최고의 소스입니다. 환경 설정 방법에 대한 섹션을 신뢰할 것인지 확실하지 않습니다.

SICP는 훌륭한 책이며 훌륭한 언어 인 lisp를 가르치면서 현대 CS의 기초를 가르치고 있습니다. 그러나 lisp는 오늘날 가장 유용한 언어는 아닙니다. 다른 사람들은 lisp가 자신의 비밀 무기라고 주장하지만 Java 또는 python과 같은 언어를 배우면 먼저 정렬 또는 링크 된 목록 또는 배열 또는 큰 O 표기법을 구현하는 방법을 배울 필요가없는 매우 나쁜 프로그래머가되고 비효율적 인 일을 끝내게됩니다.

Code Complete 또는 Pragmatic Programmer 중 일부는 C에서 무언가를 수행하는 방법에 주로 초점을 맞추거나 최상의 솔루션을 사용하여 권장 솔루션을 제공하므로 최신 언어 (예 : python / ruby ​​/ C ++ 11)로 프로그래밍하는 경우 관련성이 떨어집니다. 당시 사용 가능한 도구 (git / bzr / hg / svn과 같은 최신 도구가 아닌 버전 제어를위한 CVS / RCS). 그러나 버전 관리가 어떻게 필요한지, 그리고 완벽하고 자체 문서화되어야하는 방법에 대해 생각하고 그것이 절대적으로 필요한 이유의 논리를 살펴 보는 것이 여전히 좋습니다.

또는 기본 유닉스 편집기 + 유닉스 도구에 대한 IDE에 대한 PP의 권장 사항-find / awk / locate / grep / sed를 사용하는 방법을 배우지 말아야하지만 좋은 IDE는 종종 많은 시간을 절약 할 수 있습니다. 예를 들어, emacs는 구문 강조 또는 간단한 코드 완성을 수행 할 수 있습니다. 그러나 좋은 IDE는 입력 할 때 함수 선언으로 도구 설명을 제공하거나 코드를 분석하고 사용하지 않는 변수를 표시하고 코드 섹션을 쉽게 접을 수 있다고 말합니다.


1

현대 컴퓨팅과 그 책이 쓰여졌을 당시의 현재 사이에는 차이가 없습니까? 우리가 배워야 할 내용이 바뀌 었다고 생각하십니까? 지난 20 년간의 발전을 고려해서는 안됩니까?

예, 그렇습니다

그렇다고해서 그 책들이 쓸모없는 것은 아닙니다. "현대 컴퓨팅"은 엄청나게 넓은 용어입니다. 그러나 C 프로그래밍 이 포함되어 있으므로 "C 프로그래밍 언어"는 여전히 관련 서적입니다. 알고리즘 이 포함되어 있으므로 "알고리즘 소개"는 여전히 관련 서적입니다. 등등.

멀티 플랫폼 개발에 대한 현재의 강조 멀티 플랫폼 개발 (폰갭 참조)이 오늘날 우리가 배우는 내용을 바꾸어야합니까?

가장 인기있는 모바일 플랫폼을 예로 사용하기 위해 App Store에있는 대부분의 앱은 80 년대 초의 언어 인 Objective C로 작성되었습니다.

"구름"이 유행이거나 미래라고 생각하십니까?

우리의 현재입니다.

학생들이 대학을 졸업하면 실제 개발자 여야하며 즉시 일할 수 있어야합니다.

그러나 그것은 무엇을 의미합니까?

학교가 특정 직업에 대비하기에는 너무 많은 언어, API, 프레임 워크, 플랫폼, 도구, 협업 전략 등이 있습니다 . 학교는 기초를 놓음으로써 알고리즘, 데이터 구조, 코드 구성, 분해 전략, 일부 도구 등에 대한 기계 작동 방식의 기본 작업 모델을 제공합니다.

"실제 개발자"는 모든 것을 아는 사람이 아니며, 이런 종류의 작업을 수행 할 수있는 능력을 가진 사람, 이론과 실천에 기초가 있으며 배우는 방법을 알고있는 사람 입니다. 교육은 결코 끝나지 않기 때문입니다.


1
'배우는 방법'의견에 +1-그것은 직업 훈련을 전염시키지 않고 대학을위한 것입니다.
DaveE

1

자, 저는 훨씬 더 이론적 인 답변을 제공 할 것입니다. 내 의견으로는이 책은 프로그래머로서 우리가하는 일의 기초이며이 모든 새로운 틀은이 같은 오래된 기둥에 세워져 있습니다.

여기 내 두 센트가 있습니다. 실제로 내 것이 아니라, 세인트 아퀴나스와 그 앞에서 아리스토텔레스에서 배웠습니다.

An abstraction is useless to someone who doesn't understand the particulars.

폰 노이만 이후 컴퓨터의 역학은 변하지 않았습니다. 마찬가지로, 훌륭한 프로그래머가되기 위해 배워야 할 세부 사항은 폰 노이만 모델이 더 이상 사용되지 않을 때까지 동일합니다. 조립은 컴퓨터의 언어입니다.

C는 Windows와 Unix의 모국어입니다. 배우거나 새로운 거래를 찾으십시오. JAVA 또는 C #으로 직접 간 사람 중 하나라면 좋은 프로그래머가 될 수 있지만 C 기간을 배우면 훨씬 더 나은 프로그래머가 될 것입니다.

알고리즘과 데이터 구조는 컴퓨터 프로그램의 기초입니다.

다른 모든 것들은이 핵심 분야의 추상화입니다. 올바르게 사용하면 추상화가 훌륭합니다. 진지하게 모든 프로젝트의 75 %에 C #을 사용합니다. 그러나 시간이 걸리지 않고 작동 방식과 기능없이 작동하는 방법을 이해하지 못하면 어리석게 만듭니다. 훨씬 더 나은 접근 방법이 있고 피할 수있는 버그가있을 때 속담 한 정사각형 구멍에 맞게 소프트웨어를 만드는 데 끝없는 시간을 할애합니다. 소프트웨어 개발은 ​​반드시 숙달되어야하는 도구이며, 마지막 날에는 도구가 거의 변경되지 않습니다. 이것이이 책들이 매우 중요한 이유입니다.

이 자바 및 C # 전용 프로그래머 인 tsk는 스타 트렉의 에피소드를 본 적이 없다고 생각합니다.


1

멘토로부터 다음과 같은 말을 들었습니다.

"좋은 조언은 더 이상 좋은 조언이 아닌지 알 수 있는 이유 가 있습니다." 따라서 책 용어에서 X에 대해 Y를 수행하는 이유를 설명하는 책은 해당 조언이 더 이상 유효하지 않은 경우 알려줍니다. 언어 X의 충돌 과정과 같은 "항상 이렇게, 그냥해라"책은 그리 좋지 않습니다.

"24 시간 만에 유닉스 배우기"라는 제목의 책을 ​​보았는데,이 책의 두께는 약 8cm 정도였습니다.

오늘 유행하는 것은 내일 비웃을지도 모른다는 것을 기억하십시오. 다음은 모두 한때 주류 (어제 유행)로 간주되었지만 현재는 그렇지 않습니다.

  • 이동
  • 단일 항목 단일 출구
  • 헝가리 표기법
  • 폭포 접근

그리고 한 번 완전히 혐오되었지만 이제 받아 들여지는 몇 가지가 있습니다.

  • 문제를 해결하기위한 도구로서의 재귀 (초기 기본 시대에 급진적)
  • malloc / new를 사용하여 런타임에 메모리 할당
  • C ++ STL 사용
  • 실시간 시스템을위한 가비지 수집 언어

이유를 알면 오래된 가정이 새로운 현실로 대체 된시기를 알 수 있으며 조언도 마찬가지입니다.

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