프로그래밍 언어의 내부를 이해해야합니까?


11

나는 파이썬 초보자이며 지금까지 정말 좋아합니다. 내 생각에 매우 자주 떠오르는 질문 중 하나는 프로그래밍 언어의 내부를 이해해야하므로 (내 경우에는 파이썬) 아시다시피, 파이썬 자체는 C로 작성되었습니다.

그래서 내 질문은 :이 언어에 능숙하거나 유창하기 위해 프로그래밍 언어에 얼마나 깊이 빠져 들어야 하는가입니다. 이 질문을 "자연"언어와 비교합니다. 나는 모국어로 문법의 모든 세부 사항을 알지 못하지만 그 언어에서 아무런 문제없이 자신을 표현할 수 있습니다. 내가 언어에 유창하다고 말할 때입니다. 프로그래밍 언어에도 적용됩니까?


4
성능에 대해 걱정해야 할 때 내부가 중요해집니다.
로봇 고트

7
나는 CPython과 PyPy 내부에 대해 약간의 지식을 가지고 있지만, 80 %는 내 파이썬 프로그래밍에 쓸모가 없다 (또는 산만하게하는 것처럼 해롭다). 그래도 다른 20 %의 물건을 알게되어 기쁩니다. 성능뿐만 아니라 어리석은 오류 메시지를 이해하고 이식 할 수없는 행동을 피하기위한 것입니다.


2
아뇨. 분명히 그중 하나의 사본이 아닙니다.

1
"내부"의 의미에 따라 다르지만 전문 C # 및 Java 프로그래머가 CLI 또는 JVM에 대해 최소한 이해하고있는 것은 드문 일이 아닙니다.
user16764

답변:


8

당신은 알 필요가 없습니다 아무것도 해당 언어로 쓰기 프로그램을 위해 프로그래밍 언어의 내부에 대한을. 그러나 언어를 잘 이해하면 프로그램이 향상 될 것입니다.

  1. 데이터 구조 및 알고리즘에 대한 지식은 특정 작업에 가장 적합한 데이터 구조를 선택하는 데 도움이됩니다. 일부 언어는 이러한 데이터 구조를 내부적으로 보유합니다.

  2. 언어의 "문화"를 이해하면 "모범 사례"를 따르는 프로그램을 작성하는 데 도움이되므로 이해하기 쉽고 유지 관리 가능하며 성능이 향상됩니다.

  3. 해당 언어의 컴파일러 (또는 해당 언어의 다른 언어의 컴파일러)를 작성하면 언어에 대한 깊은 이해가 가능하며 평균 이상의 프로그램을 향상시킬 수 있습니다.

  4. 다른 언어 (특히 다른 패러다임의 언어)에 능숙하면 해당 기술과 도구를 기본 언어로 활용할 수 있기 때문에 기본 언어의 프로그래머가 더 좋아집니다.

결과적으로 컴퓨터에 프로그램을 작성하기 위해 컴퓨터에 대해 알 필요가 없습니다. 그러나 컴퓨터가 어떻게 작동하는지 알면 프로그램 작성에 더 능숙 해집니다.


7

나는 모국어로 문법의 모든 세부 사항을 알지 못하지만 그 언어에서 아무런 문제없이 자신을 표현할 수 있습니다. 내가 언어에 유창하다고 말할 때입니다. 프로그래밍 언어에도 적용됩니까?

간단히 말해서 그렇습니다. 자신을 잘 표현하고 다른 사람들을 잘 이해할 수 있다면 언어에 능통 한 것으로 간주됩니다.

즉, 유창하게 말하는 것만으로는 일부 직업에 충분하지 않습니다. 어떤 종류의 작가, 모범적 인 대중 연설 기술이 필요한 직업 및 언어에 중점을 둔 일부 학자들은 그 언어가 "유창한 것보다 낫다"는 것을 알아야합니다. 마찬가지로 일부 프로그래머의 전문 분야는 언어 내부에 대한 지식이 필요하지만 대부분의 사람들은 프로그래밍 언어를 알고 번호를 요청하거나 치즈 버거를 주문하는 것으로 충분합니다.


0

나는 다음과 같은 언어로 "숙련"을 정의합니다.

  • 대부분의 구문과 다른 사람들의 코드에서 찾은 새로운 기능을 연구 할 수있는 충분한 지식을 이해하십시오.
  • 모든 표준 라이브러리 및 / 또는 프레임 워크에 대한 실무 지식과 사용해야하는 새로운 사항에 대한 공식 문서를 찾고 읽고 이해하는 능력.
  • 언어에 대한 공통 숙어 및 명명 규칙을 이해하고 사용할 수 있습니다.

공지 사항은 언어가 작동하는 방법이다 없는 이 목록에 있지만, "학습 능력"의 많은이 있습니다. 내부에 대한 간단한 이해가 도움이 될 수 있지만 능숙 할 필요는 없습니다. 그러나 읽고있는 문서의 모든 참조를 이해할 수있을만큼 충분히 알고있는 것이 좋습니다.

예를 들어 VB.NET과 C #이 .NET의 IL (중급 언어)로 컴파일 된 다음 대상 프레임 워크 용으로 컴파일된다는 것을 알고 있습니다. 나는 IL에 대해 많이 알지 못하지만, 그것을 볼 때 그것을 인식하고 일반적인 의미에서 그것이 IL을 어떻게 처리하는지 이해합니다. "내부"가 동일하더라도 C #에는 능숙하지만 VB.NET에서는 능숙하지 않다고 생각합니다.

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