구문을 잊어 버린 프로그래머


17

좋은 프로그래머는 코드를 작성할 때 혀 끝에 구문이 필요합니까? 온라인에서 간단한 물건을 찾기 위해 Google로 만들면 무엇을 만드나요? 그들은 좋은지 나쁜지 (어쩌면 어디를 찾아야하는지) 프로그래머는 좋은 기억력을 가져야합니까? 이것이 좋은 프로그래머에게는 특성입니까?


1
"간단한"방법에 따라. 일부 예 / 배경이 유용 할 것입니다. 프로그래밍중인 언어 / 환경과의 불일치 문제 일 수도 있습니다.
rwong

1
나는 그것이 좋은 프로그래머의 정의의 일부가 될 것이라고 생각합니다. 왜냐하면 빠르거나 효율적이기 때문입니다. 컨설팅 참조로 코드 라인을 작성할 수 없다면 적시에 어떤 일도 수행하지 않을 것입니다. 반면에 그것은 외워야 할 것이 아닙니다.
stonemetal

C ++에서, 나는 자주 사용하지 않는 포인터-함수 (멤버의 유무)에 대한 구문을 찾아야 만한다. 어쩌면 때때로 문법이 이상 할까?
Matthieu M.

답변:


25

프로그래밍에 대한 저의 철학은 그것이 "마음의 상태"이고 나머지는 "그냥 구문"입니다. (즉, 중요하지 않음)

즉, 간단한 것을 찾아 볼 필요는 없습니다. 최소한 정기적으로 사용하는 언어에는 해당되지 않습니다. 새로 고침이 필요하고 정보를 찾는 방법을 아는 것은 아무런 문제가 없습니다. 그러나 핵심 구문은 잘 알려져 있어야합니다. 그렇지 않으면 검색에 너무 많은 시간을 보내고 프로그래밍에 너무 적은 시간을 소비합니다.


8
정확히 말하면, 언어를 말하는 방법을 알아야하지만 사전이 큰 도움이됩니다. 종종 어휘를 갖기 전에 표현하고자하는 것을 알고 있습니다!
Kevin Cantu

@Kevin-정확히-그러나 당신은 또한 그들이 얼마나 자주 그러한 참조를하는지에 의해 누군가의 유창성을 판단 할 수 있습니다. 우리 대부분은 때때로 그것들을 사용하지만 언어를 말할 수 있다고 말했지만 지속적으로 사전을 참조 할 필요성을 느낀 사람에게 질문을 할 것입니다.
Jon Hopkins 14

@jon 정확하게. 말하기 / 쓰기 언어 비유를 계속하면 약간의 노력으로 언어에 대한 노출을 늘리고 어휘를 향상시킬 수 있습니다. 따라서 좋은 iPhone 플래시 카드 응용 프로그램을 읽고 지속적으로 검색하는 것에 대한 나의 욕심은 식욕입니다. 프로그래밍 언어와 마찬가지로 특정 관용구에 문제가있을 때 나는 그것을 보여주는 스 니펫을 만들고 쉽게 참조 할 수 있도록 가까이에 유지합니다. 물론, 나는 때때로 그러한 문제 영역을 다시 방문하도록 지적합니다. 시간이 좀 걸렸지 만 마침내 이런 식으로 성가신 스위치 문을 외 웠습니다.
George Marian

더 '고급'인 개발자도 벨트 아래에 여러 언어가있을 수 있으며 때로는 혼란스럽게 생각합니다. 나는 여전히 C #과 C ++ 사이의 다차원 배열 선언을 때때로 혼동하고 ( "arr [] [] 또는 arr [,]"였는지) 혼동해야합니다.
Steven Evers

28

그것은 당신이 의미하는 바에 달려 있지만 짧은 대답은 그렇습니다.

프로그래머가 여기 저기에서 세미콜론이나 중괄호를 잊어 버리려고합니까? 확실한. 그들은 거의 사용하지 않기 때문에 스위치 구문의 구문을 찾을 것입니까? 글쎄요 ActionScript를 사용하면서 대신 Java처럼 작성합니까? 명확히. 새로운 언어로 입력하는 데 익숙해지는 데 다소 시간이 걸릴 수 있습니다 (특히 수년간 다른 언어로 작업 한 경우).

프로그래머가 IDE를 사용해도 구문을 이해하지 못하면 프로그래머가 실제로 우려해야합니다. 그 사람이 세미콜론이 무엇인지 또는 그 멋진 중괄호가 무엇인지 모른다면 더 많은 공부를해야합니다.


8
Heh, switch 문의 정확한 구문은 대개 나에게 슬퍼합니다.
George Marian

그것이 내가 루비를 선호하더라도 파이썬 스크립팅을 고수하는 것과 같은 이유입니다. 직장에서 파이썬으로 코딩해야하며 앞뒤로 너무 혼란 스러울 것입니다.
LennyProgrammers

switch statement 구문의 경우 +1 – 어떤 이유로 든 애매
모호함

5
우리가 알고있는 무수한 언어들과 때때로 구문이 혼합 될 수 있다는 것은 말할 것도 없습니다.
Josaph

@ dave 문제는 기호의 혼합이라고 생각합니다. 일반적으로 switch, 그 뒤에 괄호 안에 무언가, 여는 괄호, 그리고 괄호 안에 없는case 레이블이있는 레이블 , 콜론, 일반적으로 세미콜론으로 끝나는 문장입니다. 그리고 진술을 잊지 말자 . 노력과 의지력을 통해 마침내 그것을 외웠으며 때때로 가끔씩 다시 확인해야합니다. 그냥 확인하십시오. break
George Marian

10

그렇지 않다면 좋은 프로그래머가 일상적으로 유창한 언어의 구문을 찾아야한다면 정말 놀랄 것입니다. 물론 실제로 실제로 많이 사용되지 않는 경우도 있습니다. 유능한 프로그래머는 모르지만 일반적으로 유창한 프로그래머는 구문을 찾을 필요가 없습니다. 라이브러리에서 함수와 클래스를 찾아야합니다. :)


+1. 나는 C ++에 유창하다고 생각하고 매일 함수 이름과 인수를 찾습니다 . std::string예를 들어 나는의 모든 멤버를 암기하지 않을 것 입니다.
Kristo

8

언어를 정기적으로 바꾸거나 3 개 또는 4 개 언어로 동시에 작업하는 위치에 있다면 할 수있는 일이 많지 않습니다. 잠시 동안 나는 끊임없는 전환이 필요한 프로젝트를 진행하면서 자신을 "참조 프로그래머"라고 부르기 시작했다.


4
+1 완전히 동의합니다. 매듭 률로 언어 간을 이동하는 코더 (많은 프로젝트에 걸쳐 하루에 10 개 이상의 언어를 사용할 수 있음)는 유사한 언어, 특히 표준 라이브러리 기능에서 모호한 차이점을 기억하는 데 어려움을 겪습니다. 나이가 들어감에 따라 이것은 나빠졌습니다.
Orbling

이것은 내 문제이며, 때로는 기본 사항조차 기억할 수없는 많은 일을 진행하고 있습니다. 특히 나는 보통 컨텍스트를 사용할 수 있기 때문에 누군가가 근처에 for 루프 또는 함수를 작성했기 때문에 해당 구문을 복사합니다. 나는 최근에 구문을 배우도록 강요했지만, 그것을 암기하기 위해 연습에 의존하는 것만으로는 충분하지 않습니다. 나는 뇌에 문법을 갈기 위해 하나의 언어 (자바 스크립트)를 선택했다. 특히 화이트 보드 인터뷰 연습에서 많은 도움이됩니다.
Jemmeh

5

나는 15 년 이상 C ++을 작성 해 왔지만 여전히 간결한 문법적 구석을 알지 못합니다.
함수 템플릿을 명시 적으로 다시 인스턴스화하는 방법은 무엇입니까? 템플릿 템플릿 인수가있는 템플릿을 부분적으로 특수화하는 구문은 무엇입니까? 그리고 포인터 배열을 취하는 함수에 대한 포인터 배열에 대한 포인터를 반환하는 함수를 선언하지 마십시오.

이 세상에 는 C ++의 모든 구문 을 정말로 아는 사람이 최대 1 명에서 24 명 정도 인 것 같습니다 . 그리고 이들은 아마도 C ++ 컴파일러 프론트 엔드를 작성하여 돈을 벌고 있습니다.


4

인터넷 검색 "구문"에 대해 궁금합니다.

내 의혹 (그리고 두려움)은 (대부분의 IDE가 Google에 표시하지 않기 때문에 대부분의 IDE에서 프롬프트를 표시하기 때문에) 호출이 취하는 매개 변수에 대해 이야기하는 것이 아니라 실제 "X를 수행하는 방법"유형의 것입니다.

IDE는 이전에 필요했던 방식으로 정확한 이름과 매개 변수 목록을 기억할 필요가 없어 많은 사람들이 그것에 대해 조금 게으르지 만 괜찮습니다.

그러나 Google에 필요한 것이 있습니까? 나에게 그것은 일반적으로 구문이 아니며, 그것은 당신이 실제로 알지 못하거나 끊임없이 친숙한 것입니다.

물론 그것은 구글에 관한 것이 잘못되었다고 말하는 것은 아닙니다. 요즘 언어는 꽤 광범위 할 수 있으며 거의 ​​모든 사람들이 모든 것을 알지 못하지만 언어에 능숙하다고 주장하면 규칙이 아닌 Google이 예외라고 말하고 싶습니다 .

비교적 특이한 일을하거나 다른 일을 한 후에 언어에 녹슬지 않는 한, 언어를 "알고있다"고 주장하는 경우 10 % 이상을 인터넷 검색해서는 안됩니다. 기껏해야 아주 구체적 일 것입니다.

이것이 좋은 메모리를 갖는 것에 관한 아이디어와 관련하여, 실제로는 아닙니다. 그것은 당신이 (피상적으로 아는 것이 아니라) 실제로 알고있는 것에 대한 일종의 본능적 인 느낌에 관한 것입니다. 나는 레시피없이 Melanzane Parmigiana를 요리하는 방법을 알고 있다는 사실을 고려하지 않습니다. 좋은 기억이 있다는 신호입니다. 그 요리를 요리하는 방법을 이해 한다는 표시입니다 . 그들은 미묘하게 다릅니다.

게다가, 스스로에게 물어보십시오, 당신은 식당 주방에 가서 요리사가 끊임없이 요리 책을보고 있다고 생각하십니까? 아니면 해당 모델의 Hayes 매뉴얼을 통해 자동차에서 작동하는 정비공을 보시겠습니까? 내가 그런 것들 중 하나를 본다면 그 사람이 얼마나 좋은지에 대해 매우 불안 할 것입니다.


다운 투표에 대한 의견? 의견 불일치에 관심이 있습니다.
존 홉킨스

+1-Good call onsyntax != api
Jeremy Heiler

3

내 의견은 아니오입니다. 중요한 구문은 아니지만 문제를 해결하거나 목표를 달성하기위한 당신의 논리 여러 언어를 다룰 때 자연스럽게 언젠가는 정확한 구문을 기억하지 못합니다.


0

프로그래밍은 기본 시맨틱 브릭을 사용하여 무언가를 빌드하는 것에 관한 것이기 때문에 구문은 언어의 기본 시맨틱에 대한 견해 일뿐입니다. 언어가 사용하는 기본 개념을 이해하지 못하면 구문을 기억하는 데 아무리 중요해도 코드가 끔찍한 혼란이 될 것입니다. 한때 누군가가 말했듯이 "좋은 프로그래머는 통역사와 컴파일러를 가지고 있습니다." 실제 작업이 수행되는 위치가 아니기 때문에 구문에 대한 언급이 없는지 주목하십시오.

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