언어 또는 이와 유사한 언어에 대한 컴파일러 / 인터프리터를 작성하지 않을 경우 언어 사양 / 표준 문서 (예 : Java 언어 사양 )를 읽을 가치가 있는지 궁금합니다 . 나는 그러한 책을 읽는 것이 그 누구도 처음으로 언어에 노출되어서는 안된다는 것을 이해하지만, 그 책의 자세한 내용을 배우는 좋은 방법이 될 수 있습니다.
귀찮게 해본 적이 있습니까?
언어 또는 이와 유사한 언어에 대한 컴파일러 / 인터프리터를 작성하지 않을 경우 언어 사양 / 표준 문서 (예 : Java 언어 사양 )를 읽을 가치가 있는지 궁금합니다 . 나는 그러한 책을 읽는 것이 그 누구도 처음으로 언어에 노출되어서는 안된다는 것을 이해하지만, 그 책의 자세한 내용을 배우는 좋은 방법이 될 수 있습니다.
귀찮게 해본 적이 있습니까?
답변:
기본적으로 하나의 간단한 질문으로 나옵니다. 언어에 대한 권위 있고 자세한 지식을 원하십니까? 아니면 잘 모르는 부분이 있다는 것을 깨닫고 언어를 충분히 사용하는 것을 알고 행복합니까? 당신이 전혀 모르는 부분?
기본적으로 거의 "언어 변호사"인 것처럼 보이는 사람들이 있습니다. 언어에 구석 구석이 있거나 모르는 사람이있는 한 휴식을 취할 수 없습니다. 또는 이해하십시오. 이러한 수준의 세부 사항에서 더 복잡한 언어를 배우는 것은 어느 누구에게는 불가능한 경우가 많기 때문에 이들 중 다수는 비교적 단순한 언어를 선호합니다.
대부분의 프로그래머에게있어 그것은 시간 낭비 일 것입니다. 언어를 (합리적으로) 잘 사용할 수있을만큼 충분한 언어를 아는 것은 매우 행복하고 생산적입니다. 그 외에도 그들은 단순히 신경 쓰지 않습니다. 언어는 도구이며, 도구를 목적에 충분하게 사용할 수있는 한, 모르는 다른 것들이 있다는 사실은 크게 관련이 없습니다.
못
하나는해야 결코 언어 사양을 읽을 수 없습니다.
시간 낭비입니다.
훌륭한 프로그래머는 임의의 코드를 입력하고, 스택 오버플로에 대한 질문을하고, IDE를 사용하여 매우 자주 충돌하지 않는 코드를 작성할 수 있습니다.
언어를 이해하는데 시간을 낭비하지 마십시오. 자동 완성 기능이 좋은 훌륭한 IDE를 찾으십시오. 많은 SO 질문을하십시오. 모든 사람이 필요합니다.
Java의 경우 언어 사양은 주어진 소스 구문의 의미에 대한 질문에 대한 명확한 답변을 제공하기위한 것입니다. 학습자로 읽는 것은 권장되지 않습니다. 대신 좋은 교사는 모든 함정과 실제 의미를 보여줍니다.
숙련 된 개발자에게는 Java Puzzlers가 어두운 구석에 대한 이해를 돕기에 정말 좋습니다.
아마도 그것은 단지 나이지만,이 질문은 의미가 없습니다. 사용하는 도구를 이해하는 것이 전문가의 특징입니다. 이해가 깊을수록 도구 사용 능력이 향상됩니다. 나에게 그것은 dilettante 또는 전문가 사이의 선택입니다.
새로운 언어를 배울 때마다 가장 먼저 찾는 것이 사양입니다.
ANSI C, C ++, Java, Scheme, Python 및 Javascript에 대한 사양을 읽었습니다. 나는 그 언어를 자주 사용하지 않기 때문에 대부분의 C, C ++ 및 Java 세부 사항을 잊어 버렸습니다. 사양을 읽은 후에는 언어를 더 잘 사용하는 방법을 알고 있었기 때문에 더 나은 프로그래머였습니다.
일반적으로 지금 당장 접하는 까다로운 순간을 이해하는 것이 유용 할 수 있습니다.
그러나 진지하게, 언어를 습득해야 자세한 사양에 익숙해지면 불행한 언어 일 것입니다. 일반적인 말과 마찬가지로 응용 프로그램에 대한 설명서가 필요하면 제대로 설계되지 않았습니다.
나는 보통 표준에 많은 주식을 넣지 않습니다. 간단한 사실은 표준이 예외를 제어 흐름으로 사용하지 말라고 지시하지 않는다는 것입니다. 싱글 톤을 사용하지 말라고 지시하지는 않습니다. 유지 관리 가능한 클래스 인터페이스를 디자인하는 방법은 설명하지 않습니다. 이유를 모르면 왜 응용 프로그램이 충돌하는지 알려주지 않습니다. 당신은 세계에서 가장 잘 정의 된 프로그램을 가질 수 있으며 여전히 끔찍할 것입니다.
제 생각에, 간단한 사실은 대다수의 프로그래밍 문제가 언어를 원하는대로하는 것이 아니라 올바른 것이 무엇인지 아는 것입니다. 기본 언어 기능을 아는 한 중요한 기능을 사용하는 방법이 될 것입니다.
나는이 언어로 프로그래밍하는 것이 당신의 일이고 진지하게 일을하고 싶다면 언어 사양을 읽으십시오. 특히 recently
많은 언어를 잃어 버렸지 만 Java 언어 사양과 같이 비교적 쉽고 빠르게 읽고 이해 할 때 제네릭을 사용하면 간단합니다.
그러나 아직 모르는 새로운 언어를 배우고 결국 습득 할 계획이라면 시간을 낭비하기 전에 해당 언어의 사양을 읽는 것이 매우 통찰력이있을 수 있습니다. 더 많은 C ++ 개발자가 C ++ Annotated Reference Manual을 읽고 이해하기 전에 많은 사람들이 그것을 사용하기 전에 그것을 이해하려고 시도했을 것이라고 확신합니다.