새로운 언어를 배울 때, 한 언어에 100 % 헌신하고 다른 언어로 넘어가거나 다른 언어를 배우는 데 "숙련"될 때까지 기다리는 것이 더 낫습니까?
중요하다면 현재 C ++을 배우고 있으며 Java와 Python도 알고 싶습니다.
새로운 언어를 배울 때, 한 언어에 100 % 헌신하고 다른 언어로 넘어가거나 다른 언어를 배우는 데 "숙련"될 때까지 기다리는 것이 더 낫습니까?
중요하다면 현재 C ++을 배우고 있으며 Java와 Python도 알고 싶습니다.
답변:
한 번에 여러 언어를 배우는 데 문제가있는 것뿐만 아니라 한 언어로 된 것이 다른 언어로있을 수있는 문제 영역을 해결할 수 있다는 점에서 직접 도움이 될 수 있다고 생각합니다. 예를 들어, 내 주요 언어는 C #이며 LINQ를 처리 할 때 SQL 형식을 사용했습니다 (괜찮아요, 전혀 노크하지는 않지만 "멋진 방법"처럼 보이지는 않았습니다). 솔직히 말해서 이해하지 못했고 내가 본 C # 문서가 명확한 정의를 제공하지 않았기 때문에 Lambdas에서 멀리 떨어져있었습니다. 그런 다음 나는 F #에 관한 책을 집어 들기 시작했고 그것을 배우기 시작했다.
다른 언어 (및 프레임 워크)를 통해 점점 더 많은 경험을 쌓았을 때 C # (및 ASP.Net)에서 더 나아졌습니다. 그렇기 때문에 한 번에 여러 언어를 배우는 것이 전혀 나쁘지 않다고 생각합니다!
그것이 당신의 모국어라면, 프로그래밍 언어가 어떻게 작동하는지 이해하기에 충분히 배우는 것이 낫다고 생각합니다.
기초가 충분하면 원하는만큼 선택할 수 있습니다.
프로그래머에게 중요한 기술은 새로운 프로그래밍 언어를 배울 수있는 능력이라고 생각합니다. 따라서 나는 먼저 단일 언어를 배우고 다른 언어를 추가하려고 시도하는 경향이 있습니다.
모국어가 무엇이든 추가 언어 학습 과정은 다음과 같아야합니다.
시간이 지남에 따라 언어를 축적함에 따라 자신이 알고있는 언어 간을 번역하는 데 도움이되는 내부 추상 의사 코드 언어가 형성됩니다. 이 내부 언어는 새로운 언어를 빠르게 배우는 데 사용할 프레임 워크입니다.
한 번에 여러 언어를 배우는 데 문제가 없습니다. 실제로, 당신은 진정한 언어를 절대 마스터하지 않기 때문에, 실제로 하나 이상의 언어로 작업 할 때, 아마도 두 언어를 모두 배우고있을 것입니다.
두 언어를 혼동하지 않도록 기본 사항을 이해하기 위해 한 언어에 집중할 수 있습니다. Java 및 C #과 같은 유사한 언어를 배우는 경우 특히 그렇습니다.
나는 몇 년 동안 프로그래밍을 가르쳐 왔기 때문에 내 경험을 당신과 공유 할 수 있습니다. 나는 C #이 당신의 모국어라고 가정합니다. 그래서 전에 프로그래밍하지 않은 사람들에게 프로그래밍을 가르치는 경험이 유용 할 것입니다.
우선, 둘 이상의 언어를 배우는 것이 모든 노련한 프로그래머가해야 할 일이라고 말씀 드리겠습니다. 그러나 이것이 방금 시작한 경우 동시에 여러 언어를 배워야한다는 의미는 아닙니다.
수년에 걸쳐, 학생들은 언어가 마음에서 (최소한 첫 번째 언어), 때로는 조금 더, 때로는 조금 더 단단 해지는 데 약 1 년이 걸린다는 것을 보여주었습니다. 1 년에 둘 이상의 언어를 가르치려고하면 학생들은 언어를 섞어 개념과 언어를 혼동하는 경향이 있습니다. 학생들은 진전을 이루지 만 나중에 풀기 어려운 나쁜 습관이 많이 생깁니다. 혼자서 배우는 경우이 위험이 높습니다.
그러나 매우 다른 구문으로 두 언어를 가르치면 도움이됩니다. 두 프로그래밍 언어 가 실제로 다르게 보일 때 , 서로 오염시키지 않으면 서 서로 다른 실체로 보는 것이 도움이됩니다. (하나의 프로그래밍 언어가 다른 언어로 어려운 개념을 이해하는 데 도움이되면 좋습니다. 한 언어로 인해 다른 언어로 잘못된 코드를 작성하면 나쁩니다).
따라서 첫 해에 하나의 프로그래밍 언어를 고수하는 것이 좋습니다. 또는 두 언어가 매우 다르게 보일 경우 동시에 두 언어를 배우는 것이 좋습니다. 첫 번째 언어가 C #이면 C, C ++, Objective C 및 Java에서 멀리 떨어져 있습니다. 아마도 파이썬, 루비, 자바 스크립트 일 것입니다. C #을 Haskell, Scheme, F #, Erlang, Clojure 또는 Scala와 같은 기능적 언어와 결합하는 것이 좋습니다.
한 번에 여러 언어를 배우는 것이 실제로는 한 번에 하나씩 배우는 것보다 낫다고 생각합니다. 언어가 충분히 다르면 각 언어가 다른 언어와 분리되어 있기 때문입니다. 이전 단계의 "절대 초보자"단계를 거친 후에는 새로운 것을 시작하도록 그들을 비틀어보십시오. 이렇게하면 언어에 대해 배운 내용뿐만 아니라 새로운 언어를 배운 방법 을 유지할 가능성이 훨씬 높아집니다 . (일반화 된 언어 학습 기술은 나중에 프로그래밍 생활에서 매우 감사 할 것입니다.)
즉, 모국어를 배우려면 많은 시간과 에너지가 필요하며이 과정에서 다른 큰 프로젝트를 수행 할 시간이 없을 수도 있습니다. 당신이 C ++에 질려서 다른 언어를 시작하려고 생각하고 있다면-하지 마십시오! 미루는 것이 좋습니다. Java로 작성된 프로젝트에 대한 언급을 계속해서보고 다른 언어를 시작하려고 생각하고 코드를 쉽게 읽고 분석 할 수 없다는 것에 실망한 경우-하십시오! 이것은 언제든지 다른 언어를 배우는 좋은 이유입니다.
여러 언어를 동시에 학습하면 특정 언어를 배우는 데 시간이 더 오래 걸릴 수 있습니다 (실제로 말하지 않고 진행됨). 그러나 제 경우에는 내가 좋아하는 언어와 가장 좋아하는 코딩 스타일을 결정할 수있었습니다.
제 경우에는 C #으로 시작한 다음 Python과 F #을 시작했습니다. 나는 F #의 기능적 스타일을 정말 좋아해서 Scala와 Clojure를 시험해 보았습니다. 이제이 모든 언어를 배우기 때문에 Scala가 내가하는 일에 잘 맞는다는 것을 알게되었습니다. 또한 저는 OOP와 기능적 스타일에 대해 확신을 가지고 있으며 여러 언어를 유능하게 읽고 쓸 수 있습니다. 가지고있는 훌륭한 기술입니다.