3P by neo 5달전 | favorite | 댓글 1개

프로그래밍을 혼자서 10년 안에 배우기

  • 프로그래밍 학습에 대한 서두름이 왜 있는지에 대한 질문.
  • 서점에서 "24시간 안에 자바 배우기"와 같은 책들이 넘쳐나며, C, SQL, Ruby, 알고리즘 등을 며칠 혹은 몇 시간 안에 배울 수 있다고 주장하는 책들이 많음.
  • 아마존에서 2000년 이후 "가르치다, 혼자서, 시간"이라는 단어가 포함된 책을 검색했을 때 512권의 책이 검색됨. 상위 10권 중 9권이 프로그래밍 책임.
  • "혼자서 가르치다"를 "배우다"로, "시간"을 "일"로 바꿔 검색해도 비슷한 결과가 나옴.
  • 결론은 사람들이 프로그래밍을 배우는 데 서두르고 있거나, 프로그래밍이 다른 어떤 것보다 배우기 쉬운 것으로 여겨지고 있음.

"24시간 안에 C++ 혼자서 배우기"가 의미하는 것

  • 24시간 안에는 여러 중요한 프로그램을 작성하고, 성공과 실패로부터 배우는 데 충분한 시간이 없음.
  • 경험 많은 프로그래머와 함께 작업하며 C++ 환경에서 살아가는 것을 이해할 시간도 부족함.
  • 책은 깊은 이해보다는 피상적인 친숙함에 대해서만 말할 수 있음.
  • C++의 문법 일부를 배울 수 있을지 모르지만, 언어를 어떻게 사용하는지에 대해서는 배울 수 없음.
  • 언어가 프로그래밍에 대한 사고방식에 영향을 미치지 않는다면 배울 가치가 없다고 앨런 펄리스가 말함.

프로그래밍을 혼자서 10년 안에 배우기

  • 연구에 따르면, 체스, 음악 작곡, 전신 운영, 그림 그리기, 피아노 연주, 수영, 테니스, 신경심리학 및 위상수학 연구 등 다양한 분야에서 전문가가 되는 데 약 10년이 걸림.
  • 중요한 것은 의도적인 연습: 단순히 반복하는 것이 아니라, 현재 능력을 넘어서는 과제에 도전하고, 시도하며, 수행하는 동안과 후에 성능을 분석하고, 실수를 바로잡는 것.
  • 진정한 전문가가 되는 데는 평생이 걸릴 수도 있음.

프로그래머가 되고 싶다면

  • 프로그래밍에 흥미를 가지고, 재미있게 프로그래밍을 해야 함.
  • 다른 프로그래머와 대화하고, 다른 프로그램을 읽는 것이 어떤 책이나 교육 과정보다 중요함.
  • 대학에서 4년을 보내거나 대학원에서 더 많은 시간을 보낼 수도 있지만, 학교가 즐겁지 않다면, 개인적인 노력이나 직장에서 비슷한 경험을 할 수 있음.
  • 다른 프로그래머와 함께 프로젝트를 진행하고, 다양한 프로그래밍 언어를 배워야 함.
  • "컴퓨터 과학"에는 "컴퓨터"가 포함되어 있으므로, 컴퓨터가 명령을 실행하는 데 걸리는 시간을 알아야 함.
  • 언어 표준화 작업에 참여해보는 것도 좋지만, 가능한 빨리 그만두는 것이 좋음.
  • 단순히 책으로 배우는 것만으로는 충분하지 않음.

부록: 언어 선택

  • 어떤 프로그래밍 언어를 먼저 배워야 하는지에 대한 조언.
  • 친구들이 사용하는 언어를 사용하고, 간단하게 유지하며, 상호작용하는 방식으로 배우는 것이 좋음.
  • 첫 프로그래밍 언어로 Python이나 Scheme을 추천함.

부록: 책과 기타 자료

  • "책으로만 배우는 것은 충분하지 않다"고 강조하면서도 몇몇 책과 웹 페이지를 추천함.
  • Scheme과 Python을 사용한 프로그래밍 학습에 대한 책과 자료를 추천함.

GN⁺의 의견

  • 이 글은 프로그래밍 학습에 대한 현실적인 접근을 강조하며, 단기간에 전문가가 될 수 있다는 허위 약속을 경계함.
  • 10년 또는 10,000시간의 의도적인 연습이 전문성을 개발하는 데 필요하다는 연구 결과를 제시함으로써, 학습에 대한 장기적인 관점을 제공함.
  • 프로그래밍에 대한 깊은 이해와 실력 향상을 위해서는 다양한 프로젝트에 참여하고, 여러 프로그래밍 언어를 배우며, 컴퓨터 과학의 기본 원리를 이해해야 한다는 점을 강조함. 이는 프로그래밍 학습을 고려하는 초급 소프트웨어 엔지니어에게 유익한 조언을 제공함.
Hacker News 의견
  • 한 사용자는 1999년에 "Sams Teach Yourself C++ in 24 Hours"라는 책을 구입했고, 계산대에서 일하는 사람이 그 책을 보고 웃으면서 어떤 기사에 대해 이야기해주었다고 함. 또 다른 때에는 16살 때 Borders에서 프로그래밍 책을 보고 있을 때, 누군가가 "The C Programming Language"라는 책을 건네주었는데, 이것이 인생을 바꾸는 계기가 되었다고 함. 이 사용자의 경력은 세상에서 프로그래밍에 관심 있는 개발자들이나 사람들을 만나면서 크게 형성되었다고 함.

      • 프로그래밍에 관심 있는 사람들과의 만남이 경력 형성에 큰 영향을 미침.
  • 다른 사용자는 자신이 청소년기에 처음으로 읽었던 에세이가 특별한 의미를 지닌다고 언급하며, 재독했을 때 말콤 글래드웰의 참조와 라따뚜이에 대한 언급을 보고 1998년에 게시된 이후로 기사가 업데이트되었다는 것을 깨달았다고 함. 원본은 아카이브에서 여전히 이용 가능하며 훨씬 짧다고 함.

      • 에세이가 시간이 지나면서 업데이트된 사실에 대한 언급.
  • 또 다른 사용자는 자신이 종종 책을 통해 배우는 편이지만, 이러한 태도가 수학이나 물리학과 같이 느리게 변화하는 비CS 분야에서 더 도움이 된다고 함. 최근에 읽은 양자 프로그래밍에 관한 O'Reilly의 책이 양자 회로에 대해 자세히 설명하지 않아 실제로 무엇을 하고 있는지 이해하는 데 도움이 되지 않았다고 비판함. 책은 단지 학습 도구일 뿐이며, 취미 프로젝트도 경험을 통해 더 효과적일 수 있다고 생각함. 책은 올바른 방향을 가리키는 데 유용하지만, 물론 자신의 필요에 맞는 책을 찾아야 한다고 함. 일부 사람들은 책 전체를 읽을 수 있을 때만 책을 펼치는 태도를 가지고 있지만, 이는 어리석은 태도라고 생각함. O'Reilly의 Generative Deep Learning 책을 주문했고, 이 책에서 무언가를 얻을 수 있기를 바라며, 경력에서 몇 가지 정보만 유지해도 이득이라고 생각함.

      • 책이 학습 도구로서의 역할과 취미 프로젝트의 중요성에 대한 의견.
  • 한 사용자는 페이지에 있는 오래된 Amazon.com 링크가 여전히 관련 결과를 반환하는 것에 깊은 인상을 받았다고 함. 이는 "Cool URIs don't change"라는 좋은 사례라고 언급함.

      • 오래된 링크가 여전히 유효한 것에 대한 인상.
  • 다른 사용자는 지난 16년 동안의 스레드 목록을 공유하며, 일 년이 지난 후에는 재게시가 괜찮고, 링크는 호기심 많은 독자들을 만족시키기 위한 것이라고 언급함.

      • 과거 스레드에 대한 목록 공유.
  • 또 다른 사용자는 의도적인 연습의 중요성을 강조하며, 단순히 반복하는 것이 아니라 현재 능력을 넘어서는 과제에 도전하고, 시도하며, 수행하는 동안과 후에 성능을 분석하고, 실수를 수정한 후에 반복해야 한다고 함.

      • 의도적인 연습의 중요성에 대한 강조.
  • 한 사용자는 5-6년 전에 본 비디오에서 프로그래머의 수가 증가하고 있고, 대부분이 5년 미만의 경험을 가지고 있다는 점을 언급한 것을 회상함. IT/웹이 우리 삶에 더 큰 영향을 미치면서 이러한 현상이 일어나는 것이 이치에 맞다고 함. 20년의 경험을 가진 이 사용자는 5년 미만 경험을 가진 사람들이 절대 알 필요가 없는 많은 정보를 알고 있지만, 경험은 여전히 유용하며, 덜 경험 많은 프로그래머들도 상상할 수 없는 많은 것들을 할 수 있다고 함.

      • 프로그래밍 경험의 가치와 새로운 프로그래머들의 역량에 대한 의견.
  • 다른 사용자는 1998년으로 표시된 글이 Clojure와 Go와 같은 언급을 포함하고 있어 아마도 업데이트되었을 것이라고 추측함.

      • 글이 업데이트되었을 가능성에 대한 추측.
  • 한 사용자는 프로그래밍을 배우는 것이 결국 예술의 경지에 이르면서 점점 더 예술적이 된다고 생각하며, 기본적인 것들은 2-3년의 전념이면 충분하다고 함.

      • 프로그래밍 학습에 대한 개인적인 견해.
  • 마지막 사용자는 프로그래밍을 스스로 가르치는 것이 중요하다고 언급하며, 이 직업은 지속적인 학습이 필요한 유형이라고 함. 5년 전에 배운 것이 오늘날에도 적용될 수 있지만, 현재 상황에 맞게 새로운 것을 배워야 할 수도 있다고 함.

      • 프로그래밍 직업의 지속적인 학습 필요성에 대한 의견.