왜 저와 같은 초보 프로그래머가 다음 프로젝트를 다루지 않고 다음에 배우어야 할 언어에 대해 묻습니까?
그의 ” 해커가되는 방법 “에세이 의 ” 프로그램 방법 배우기 “섹션 에서 Eric Raymond 가 언어를 배우는 순서 (프로젝트를 다루는 순서)에 대해 이야기 한 이유는 무엇입니까?
초보 목수는 “망치 사용 방법을 알고 있습니다 … 다음에 톱이나 수평을 사용하는 방법을 배워야합니까?”라고 묻습니까?
내가 (예 : 웹 응용 프로그램, 포커 분석 도구의 집합을) 태클에 관심이 거의 의미있는 프로젝트를 찾는거야 때문에 내가 배울 것을 요구 물어 충분히 의 언어의 다양한 (파이썬, C, HTML, CSS , Javascript, SQL) 및 프레임 워크 / 라이브러리 (wxPython, tkinter, Django)를 구현합니다.
감사,
마이크
답변
대부분의 사람들이 언어를 배우기 시작했을 때, 그들은 현재 또는 미래에 그 언어로 작성된 프로젝트를 다루고 싶어하기 때문에 그렇게 생각합니다. 그렇게하려면 시간이 걸리는 언어를 배워야합니다. 프로그래밍 언어는 도구와 비슷하지만 약 60 초 안에 망치를 사용하는 법을 배울 수 있지만 언어를 배우는 데 시간이 조금 더 걸립니다. 따라서 많은 사람들이 해당 언어로 작성된 프로젝트에 집중하기 전에 언어 학습에 집중합니다.
또 다른 메모에서, 나는 대부분의 사람들은 언어가 다음에 배울 것을 요청할 때, 그들이 진짜로 생각 하는 다음 학습 프로젝트 무엇을 생각하지만, 먼저 언어를 학습에 초점을 맞 춥니 다.
마지막으로, 특정 프로젝트 나 목표가없는 경우에도 언어 학습이 재미있을 수 있습니다 .
답변
-
많은 풀 타임 개발자의 동기는 더 고용 가능해야합니다.
-
더 고용 가능하다는 것은 보통 HR 스크리너의 장애물을 통과하는 것을 의미합니다 (나중에 실제 인터뷰의 장애물을 통과하는 것).
-
일반적인 HR 스크리너에는 일반적으로 이력서와 비교할 수있는 언어 체크리스트가 있지만 기술이나 프로젝트를 평가할 방법이 없습니다.
-
실제 면접에서의 성공은 대개 경험과 언어에 대한 깊은 이해보다는 언어의 운과 최소한의 기술에 달려 있습니다.
따라서 고위직에 지원하지 않는 한, 여러 언어로 평범한 것이 소수의 전문가보다 고용에 더 좋습니다.
답변
목수와 유사한 프로그래밍 선택에는 “다음에 어떤 응용 프로그램을 작성해야합니까?”가 있습니다. 또는 “다음에 어떤 시스템을 만들어야합니까?” 그것은 실제로 유효하며 거의 보편적으로 적용될 수있는 프로젝트와는 별개입니다. 다이어트를 바꾸거나 20 파운드를 잃을 수있는 프로젝트를 만들 수 있습니다.
그러나 질문에 대답하기 위해 언어는 이력서에 유용 할 수있는 사람의 도구 상자에있는 도구를 나타내는 아이디어라고 생각합니다. 어떤 사람들은 청구서를 지불하기 위해 프로그래머가되기를 원할 수도 있고, 그렇다면 어떤 다음 도구를 추가해야하는지 물어볼 수 있습니다. 몇 가지 다른 영역의 이름을 지정하십시오. 목수가 자신이 가지고있는 도구를 공개해야한다면 비슷한 관점을 가질 수 있습니다. 그러나, 대부분의 목수들은 요청이 매우 빠르면 얻을 수 있거나 접근 할 수 있다고 가정하는 일반적인 도구 세트가 있습니다. 사람들이 사용할 수있는 다양한 종류의 톱과 망치가 있습니까?
답변
어쩌면 적어도 일부 프로그래머에게는 해커 정신에 관한 것일 수도 있습니다. 해커는 Jargon 파일에서 다음 과 같이 정의 됩니다.
“최소한의 사용자 만 배우기를 원하는 대부분의 사용자와 달리 프로그램 가능한 시스템의 세부 사항을 탐색하고 기능을 확장하는 방법을 즐기는 사람입니다.”
따라서 해커의 영혼을 위해서는 프로세스, 개념, 도구 및 예, 무언가를 만드는 언어를 사용하여 최종 제품 자체를 배우고 “성취”하는 것이 중요합니다. 프로세스 자체에 대한 추가 정보.
다음의 새로운 일이나 도전에 대한 끊임없는 노력입니다. 완성 된 프로젝트는 느슨해져 그 매력을 빠르게합니다. 때로는 프로젝트를 완료하기 전에 (대부분?) 가장 큰 창의적 또는 기술적 과제가 정복됩니다. 새로운 정신적 도전에 배고픈 마음이 전진하면 많은 프로젝트가 포기됩니다.
특히 해커는 새로운 관점, 개념, 추상화 및 사고 방식, 정신적 해킹에 관심이 있습니다.
“프로그래밍에 대해 생각하는 방식에 영향을 미치지 않는 언어는 알 가치가 없습니다.” -앨런 펄리스
답변
오늘날 C, C ++, C #, Java, JavaScript, Python, Perl, Ruby, Visual Basic 등 다양한 엉터리 언어들이 있습니다. 함께.
현대 컴퓨팅에 널리 퍼져있는 광기가없는 Lisp 커뮤니티로 알려진 소규모 커뮤니티가 있습니다.
Lisp는 프로그래밍 가능한 프로그래밍 언어이므로 다른 언어 나 XML과 같은 다른 데이터 형식을 사용하지 않고도 아이디어를 표현할 수 있습니다. Lisp 기계에서 보았 듯이 하드웨어 레벨까지도 Lisp를 어디에나 적용 할 수 있습니다 .
답변
새로운 프로그래밍 언어를 배우는 것은 큰 투자이며, 나쁜 투자를하는 사람은 아무도 없습니다.
새로운 프로그래밍 언어를 배우는 것은 루프 구문을 작성하고, 클래스를 선언하고, 다른 모듈을 가져 오는 방법을 암기하는 것이 아닙니다 . 해당 언어로 관용적 코드
를 작성하는 방법을 알아야합니다. .
시간은 제한된 자원, 노력은 제한된 자원이지만주의 산만, 일일 스트레스, 청구서 및 일요일 스포츠 게임은 항상 존재하며 함께 살아야합니다.
프로그래머는 현명하게 투자하기를 원합니다.