여러 언어를 동시에 배우기 [닫기]


35

새로운 언어를 배울 때, 한 언어에 100 % 헌신하고 다른 언어로 넘어가거나 다른 언어를 배우는 데 "숙련"될 때까지 기다리는 것이 더 낫습니까?

중요하다면 현재 C ++을 배우고 있으며 Java와 Python도 알고 싶습니다.


12
100 % 유창함은 없습니다. Jon Skeet도 Eric Lippert도 C #을 100 % 알지 못합니다.
Job


3
언어를 배우지 말고 특정 프로그램을 구현하기 위해 언어를 사용하는 방법을 배우십시오. 즉, 프로그래머라면 동일한 결과를 얻을 수 있으므로 사용하는 언어가 중요하지 않습니다. 더 나쁜 것은, 한 언어를 내려 놓고 다른 언어를 "학습"하자마자, 어쨌든 이전 언어를 잊기 시작합니다.

두 언어를 모두 배우는 한.
Tulains Córdova

@Maxpm 당신은 한 번에 다중 언어 학습 경험을 어떻게 알 수 있습니까?
Rahul Patil

답변:


31

한 번에 여러 언어를 배우는 데 문제가있는 것뿐만 아니라 한 언어로 된 것이 다른 언어로있을 수있는 문제 영역을 해결할 수 있다는 점에서 직접 도움이 될 수 있다고 생각합니다. 예를 들어, 내 주요 언어는 C #이며 LINQ를 처리 할 때 SQL 형식을 사용했습니다 (괜찮아요, 전혀 노크하지는 않지만 "멋진 방법"처럼 보이지는 않았습니다). 솔직히 말해서 이해하지 못했고 내가 본 C # 문서가 명확한 정의를 제공하지 않았기 때문에 Lambdas에서 멀리 떨어져있었습니다. 그런 다음 나는 F #에 관한 책을 집어 들기 시작했고 그것을 배우기 시작했다.

다른 언어 (및 프레임 워크)를 통해 점점 더 많은 경험을 쌓았을 때 C # (및 ASP.Net)에서 더 나아졌습니다. 그렇기 때문에 한 번에 여러 언어를 배우는 것이 전혀 나쁘지 않다고 생각합니다!


1
전적으로 동의하며 C #으로 시작했습니다. 초급자의 관점에서 파악하기가 매우 어려웠던 점이 그 언어에서 많이 발견되었는데, 내가 이해했다면, 그들이 무엇을 위해 사용되었는지 또는 왜 사용되었는지 이해하는 것이 매우 어려웠습니다. 그 후 몇 가지 다른 언어에 대해 배웠으며 세계의 모든 차이를 만들었습니다. 특히 언어마다 다르기 때문에 각 언어에서 프로그래밍의 다양한 측면을 배울 수 있습니다.
fender1901

49

그것이 당신의 모국어라면, 프로그래밍 언어가 어떻게 작동하는지 이해하기에 충분히 배우는 것이 낫다고 생각합니다.

기초가 충분하면 원하는만큼 선택할 수 있습니다.


2
하나는 나는 당신의 제 4, 제 5, 제 6, 등 대 첫 번째 3 개 국어를 배우는 여부를 큰 차이하게 생각
keithjgrant

12

프로그래머에게 중요한 기술은 새로운 프로그래밍 언어를 배울 수있는 능력이라고 생각합니다. 따라서 나는 먼저 단일 언어를 배우고 다른 언어를 추가하려고 시도하는 경향이 있습니다.

모국어가 무엇이든 추가 언어 학습 과정은 다음과 같아야합니다.

  • 새로운 언어에 대한 좋은 구문 참조를 찾으십시오
  • 새로운 언어의 강점을 식별하고, 이미 알고있는 것처럼 새 언어로 코딩하지 말고 (강조로 프로그래밍)
  • 이전에 사용한 이전 언어와 매핑되지 않은 새 언어 영역을 탐색하십시오.
  • 코드 예제를 찾아서 검토하지 않고 동일한 것을 처음부터 코딩하려고 시도하고 구현이 예제와 어떻게 다른지 확인하십시오.

시간이 지남에 따라 언어를 축적함에 따라 자신이 알고있는 언어 간을 번역하는 데 도움이되는 내부 추상 의사 코드 언어가 형성됩니다. 이 내부 언어는 새로운 언어를 빠르게 배우는 데 사용할 프레임 워크입니다.


1
"새로운 언어의 강점을 식별합니다"는 +1입니다. 아주 좋은
Nick Burns

8

언어를 동시에 배우는 것은 꽤 정상적인 일입니다. 예를 들어 웹 프로그래밍. 서버 측 (php, java, .net, ruby, python ...), 클라이언트 코드 (java script 및 html), 데이터베이스 (sql)의 세 가지 언어를 다루고 있습니다.


프로그래밍 언어 도 html아닙니다 sql.
aeid

문자 L은 언어의 약자
보리스 파블로에게

7

한 번에 여러 언어를 배우는 데 문제가 없습니다. 실제로, 당신은 진정한 언어를 절대 마스터하지 않기 때문에, 실제로 하나 이상의 언어로 작업 할 때, 아마도 두 언어를 모두 배우고있을 것입니다.

두 언어를 혼동하지 않도록 기본 사항을 이해하기 위해 한 언어에 집중할 수 있습니다. Java 및 C #과 같은 유사한 언어를 배우는 경우 특히 그렇습니다.


차이점 때문에 JavaScript / Python을 선택하는 것이 좋습니다. 예로서.
nick indiessance

6

나는 몇 년 동안 프로그래밍을 가르쳐 왔기 때문에 내 경험을 당신과 공유 할 수 있습니다. 나는 C #이 당신의 모국어라고 가정합니다. 그래서 전에 프로그래밍하지 않은 사람들에게 프로그래밍을 가르치는 경험이 유용 할 것입니다.

우선, 둘 이상의 언어를 배우는 것이 모든 노련한 프로그래머가해야 할 일이라고 말씀 드리겠습니다. 그러나 이것이 방금 시작한 경우 동시에 여러 언어를 배워야한다는 의미는 아닙니다.

수년에 걸쳐, 학생들은 언어가 마음에서 (최소한 첫 번째 언어), 때로는 조금 더, 때로는 조금 더 단단 해지는 데 약 1 년이 걸린다는 것을 보여주었습니다. 1 년에 둘 이상의 언어를 가르치려고하면 학생들은 언어를 섞어 개념과 언어를 혼동하는 경향이 있습니다. 학생들은 진전을 이루지 만 나중에 풀기 어려운 나쁜 습관이 많이 생깁니다. 혼자서 배우는 경우이 위험이 높습니다.

그러나 매우 다른 구문으로 두 언어를 가르치면 도움이됩니다. 두 프로그래밍 언어 실제로 다르게 보일 때 , 서로 오염시키지 않으면 서 서로 다른 실체로 보는 것이 도움이됩니다. (하나의 프로그래밍 언어가 다른 언어로 어려운 개념을 이해하는 데 도움이되면 좋습니다. 한 언어로 인해 다른 언어로 잘못된 코드를 작성하면 나쁩니다).

따라서 첫 해에 하나의 프로그래밍 언어를 고수하는 것이 좋습니다. 또는 두 언어가 매우 다르게 보일 경우 동시에 두 언어를 배우는 것이 좋습니다. 첫 번째 언어가 C #이면 C, C ++, Objective C 및 Java에서 멀리 떨어져 있습니다. 아마도 파이썬, 루비, 자바 스크립트 일 것입니다. C #을 Haskell, Scheme, F #, Erlang, Clojure 또는 Scala와 같은 기능적 언어와 결합하는 것이 좋습니다.


5

한 번에 여러 언어를 배우는 것이 실제로는 한 번에 하나씩 배우는 것보다 낫다고 생각합니다. 언어가 충분히 다르면 각 언어가 다른 언어와 분리되어 있기 때문입니다. 이전 단계의 "절대 초보자"단계를 거친 후에는 새로운 것을 시작하도록 그들을 비틀어보십시오. 이렇게하면 언어에 대해 배운 내용뿐만 아니라 새로운 언어를 배운 방법 을 유지할 가능성이 훨씬 높아집니다 . (일반화 된 언어 학습 기술은 나중에 프로그래밍 생활에서 매우 감사 할 것입니다.)

즉, 모국어를 배우려면 많은 시간과 에너지가 필요하며이 과정에서 다른 큰 프로젝트를 수행 할 시간이 없을 수도 있습니다. 당신이 C ++에 질려서 다른 언어를 시작하려고 생각하고 있다면-하지 마십시오! 미루는 것이 좋습니다. Java로 작성된 프로젝트에 대한 언급을 계속해서보고 다른 언어를 시작하려고 생각하고 코드를 쉽게 읽고 분석 할 수 없다는 것에 실망한 경우-하십시오! 이것은 언제든지 다른 언어를 배우는 좋은 이유입니다.


2

여러 언어를 동시에 학습하면 특정 언어를 배우는 데 시간이 더 오래 걸릴 수 있습니다 (실제로 말하지 않고 진행됨). 그러나 제 경우에는 내가 좋아하는 언어와 가장 좋아하는 코딩 스타일을 결정할 수있었습니다.

제 경우에는 C #으로 시작한 다음 Python과 F #을 시작했습니다. 나는 F #의 기능적 스타일을 정말 좋아해서 Scala와 Clojure를 시험해 보았습니다. 이제이 모든 언어를 배우기 때문에 Scala가 내가하는 일에 잘 맞는다는 것을 알게되었습니다. 또한 저는 OOP와 기능적 스타일에 대해 확신을 가지고 있으며 여러 언어를 유능하게 읽고 쓸 수 있습니다. 가지고있는 훌륭한 기술입니다.

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