어느 시점에서 언어를 “배웠다”고 말할 수 있습니까? (나를 위해) 프로젝트를

몇 년 동안 프로그래밍을하면서 루비에서 C ++에 이르기까지 모든 것을 가지고 놀았습니다. 기본 구문 (루비)을 배우는 것부터 언어로 능력을 확장 한 몇 가지 주요 (나를 위해) 프로젝트를 완료하는 것까지 모든 것을 해냈습니다. 이러한 다양성 (그리고 진정한 언어를 배우는 것이 결코 멈추지 않는다는 사실)을 감안할 때, 언제 언어를 알고 있거나 배운 적이 있다고 말할 수 있습니까?



답변

어느 시점에서 영어 나 프랑스어와 같은 언어를 “학습”했다고 말할 수 있습니까? 나는 대부분의 사람들이 당신이 언어를 사용하여 의사 소통 할 수있을 때 당신이 언어를 배웠다는 것을 받아 들일 것이라고 생각합니다. 모든 단어를 숙지하거나 모든 관용구를 이해할 필요는 없지만 사람들이 일상적인 대화에 사용하는 언어의 대부분을 아는 것이 좋습니다. 언어를 그 정도까지 “학습”한 후에는 매일 언어를 사용하면서 더 많은 것을 배우고 점점 더 많은 언어에 자신을 노출시킬 수 있습니다. 당신이 죽을 때까지, 당신은 여전히 ​​그 언어에 관해 알아야 할 모든 것을 알지 못하지만, 아무도 당신이 그 언어를 “학습”하지 않았다고 말하지 않을 것입니다.

제 생각에는 컴퓨터 언어가 있습니다. 유용한 프로그램을 작성할 수있을 때 C ++ 또는 Ruby와 같은 언어를 “알고”있다고 ​​말할 수 있습니다. 언어를 알고있는 정도를 수량화해야하는 경우 사람 언어에 사용하는 것과 동일한 용어를 사용하십시오. ” 조금 C ++을 알고 있습니다 “또는 ” 대화식 C ++을 알고 있습니다 “또는 ” C ++에 능숙합니다 ” 라고 말하면 긁어 모으기에 충분하거나 유용한 일을 수행하기에 충분하거나 전문가라는 것을 알 수 있습니다. 각기.


답변

누가 물어 보느냐에 따라 다릅니다

적절하게 구하는 사람은 자신이 “언어를 배웠다”고 말하는 사람에게 어느 정도의 기술이 기대되는지를 알고 있습니다.

기본적으로, 나는 사람들이 “X를 배웠습니까?”라는 질문에 대한 답을 판단하는 두 가지 고전적인 척도에 직면했습니다.

대부분의 얼간이에게는 포즈를 잡는
것이 까다로운 질문입니다. 이것은 이미 귀하의 질문에 대한 다른 답변에 의해 입증되었습니다.). 당신이 그것을 배웠다고 말하면 당신은 과제의 범위를 보는 데 실패하는데, 그것은 암묵적으로 “완벽”하고, 훨씬 더 나쁜 것입니다 : 당신은 겸손에 실패합니다.

대부분의 상사들에게, 당신은 그들의 문제를 해결할 수 있다면, “배운 것” 입니다. 당신의 코드가 컴파일되면 종종 기준이 이미 충족됩니다. 겸손하게 자신의 질문에 대답하면, 그는 또한 친척 일 수도있는 포즈를 취하는 사람에게 과제를 배정하게됩니다.

그래서 청중은 무엇입니까?


답변

저는 사람들이 “학습” 이라는 단어의 최종성에 초점을 맞추고 있다고 생각 합니다. 그것은 학습이 끝났다는 것을 의미합니다. 모두가 언급했듯이 프로그래밍 언어는 구어와 같은 살아있는 개체입니다. 예를 들어 C # 2를 완전히 익힌 사람은 LINQ, Lambdas, var키워드, 객체 / 컬렉션 이니셜 라이저 및 확장 메서드를 사용 하여 C # 3 을보고 이전 버전에서 배운 내용과 크게 달라진 것을 알 수 있습니다. C # 4 await, async키워드 및 기타 새로운 언어 구성 에서도 마찬가지입니다 .

그리고 우리는 여기서 구문을 이야기하고 있습니다. 우리는 대부분의 언어가 프레임 워크 와 짝을 이루고 있다는 것을 잊어 버립니다 . C #에는 .NET 프레임 워크가 있고 Java에는 루비, C ++, PHP 및 PERL과 마찬가지로 자체 프레임 워크가 있습니다. 언어의 틀을 어휘로 생각하면 언어 자체는 구문 일뿐입니다. 언어를 아는 것은 언어로 문장을 만드는 법을 아는 것을 의미합니다. 프레임 워크를 알면 언어로 자신을 잘 표현할 수 있습니다. 마지막으로 구문과 어휘를 알고 나면 “원어민”으로 코드를 작성하기 위해 숙어 를 배워야합니다 .

여러 수준의 학습이 있다고 말하고 싶습니다.

  1. Hello World (가장 기본적인 프로그램을 작성할 수 있습니다.)
  2. 능숙 (기본 프로그램을 작성할 수는 있지만 정기적으로 온라인 도움말을 참조해야 함)
  3. 유창함 (일부 참조가 필요한 고급 프로그램을 작성할 수 있습니다).
  4. 원어민 (최소한의 온라인 도움말로 고급 프로그램을 작성할 수 있으며, 코드는 다른 원어민의 코드와 구별 할 수 없습니다).

답변

언어를 배웠다고 거의 말할 수 없습니다. 그것은 당신이 그것에 대해 배우는 것을 의미합니다. 어리석은 일입니다.

구문 참조를 참조하지 않고 언어의 관용구를 맹렬히 어 기지 않는 코드를 작성할 수있을 때 언어를 사용하는 것이 좋습니다.


답변

이것은 의견 기반 요소에 가깝습니다. 모든 기술 용어에서 “학습”은 언어의 모든 것을 알고있을 것으로 예상되는 완전한 지식을 가지고 있음을 의미합니다.

그러나 프로그래밍 세계에서는 목표 / 작업을 완료하기 위해 언어로 유창하게 프로그래밍 할 수 있는지 여부가 더 중요하다고 생각합니다. 그것은 아마도 당신이 언어에 익숙하다면 의미 할 것입니다. 물론 몇 년이나 몇 년 동안 대학을 다니고 학위를 취득 할 수는 있지만, 그 사실 만 주목할 필요가 있습니까? 언어를 배웠다고 말할 수있는 시점을 정의합니다.


답변

당신이 그 결함을 알기 시작할 때. 일단 언어를 배우기 시작하면 일반적으로 지금 배우는 일에 바쁘거나 언어가 실패하는 곳을 알아 내기 위해 많은 시간을 소비합니다 (물론, 부정적인 관점에서 배우기 시작하지 않는 한 언어의 악화 정도는 아닙니다) 지금까지 가장 좋아하는 언어와 비교됩니다). 나는 당신이 언어가 실패하는 영역을 심각하게 알기 전까지는 당신이 진정으로 언어를 모른다고 말하고 싶습니다.


답변

이것에 대한 나의 개인적인 대답은

  1. 간단한 프로덕션 수준의 프로그램을 작성하기위한 기본 사항을 알고 있습니다.
  2. 나는 단순 해 보였지만 그렇지 않은 문제를 해결하기 위해 최소한 3 시간을 보냈습니다.

거기서부터 나는 그것을 학습이라고 부르지 않고 숙달이라고 부릅니다.