프로그래밍 할 수있는 모든 종류의 구문을 기억해야합니다. 이름을 기억하기에 좋은 기억이 없다면 프로그램을 배우기가 더 어려울까요?
프로그래밍 할 수있는 모든 종류의 구문을 기억해야합니다. 이름을 기억하기에 좋은 기억이 없다면 프로그램을 배우기가 더 어려울까요?
답변:
언어를 매일 사용한다면 언어의 구문은 생각보다 어렵지 않습니다. 결국 매우 쉬워집니다. 모든 다양한 라이브러리 기능을 기억하는 것이 훨씬 더 어려울 수 있으며 대부분의 사람들이 가장 일반적으로 사용하는 것보다 더 많은 것을 기억할 수는 없다고 생각합니다. 그러나 웹이나 책, 또는 " 당신을 위해 다른 모든 세부 사항을 기억합니다.
자연어 를
프로그래밍할 수 있으려면 모든 종류의 구문을 기억해야 할 것 같습니다 .
이름단어 를 기억하기에 좋은 기억력이 없다면프로그램을 배우는 것이 더 어려울 까요?
사람들이 언어를 가진 "자연적인"시설을 가지고 있다는 것은 사실이 아닙니다.
언어를 습득하기 위해 저수준 신경 하드웨어가 있다는 것은 사실이 아닐 수도 있습니다.
프로그래밍은 많은 자연 언어 규칙을 따르는 인공 언어를 사용합니다.
자연어 는 프로그래밍 언어보다 약간 더 융통성이 있습니다.
여전히 엄격한 문법. 규칙은 매우 있지만
말할 수 있다면, 말을 배울 때 기억했던 것보다 더 많은 것을 외우지 않고 프로그래밍하는 법을 배울 수 있습니다.
단기 기억에 대해 이야기하고 있다면 yes . 프로그래머는 문제를 프로그래밍 / 해결할 때 여러 비트의 정보를 동시에 저글링 할 수 있어야합니다.
장기 기억에 대해 이야기한다면 실제로 는 아닙니다 . 정보를 불러오는 데 크게 도움이되는 많은 설명서와 참조 + 도구가 있습니다. 확실히 이러한 장기 정보를 기억하면 더 빠른 개발자 (전체)가되지만 필수 조건은 아닙니다.
좋은 기억력은 절대적으로 필수적이지만 명백한 이유는 아닙니다.
특정 알고리즘, 라이브러리, 변수 이름 등에 대한 세부 사항을 기억하면 매우 편리하지만 중요하지는 않습니다. Google, DuckDuckGo, 매뉴얼 페이지, 언어 별 문서 및 스마트 편집기가있어 위의 모든 사항을 도와줍니다. 이 목발에 의존 할 필요가없는 경우에 도움이되지만, 때때로 목발이 필요할 경우 괜찮습니다.
메모리가 필수적인 곳은 작업중인 작업의 세부 사항을 활성 단기 메모리에 유지하는 것입니다. 설계, 데이터 흐름, 알고리즘, 데이터 구조 및 제품이 무엇이든간에 상호 작용하는 방식을 시각화 할 수 있으면 OK 프로그래머와 훌륭한 프로그래머가 분리됩니다. 당신이 그것을 적극적으로 할 때, 당신은 외발 자전거 타는 동안 엄청난 수의 공을 저글링하는 것처럼 느낍니다.
이것은 종종 영역에 있다고 합니다 . 중단, 어리석은 질문, TPS 보고서가 필요한 상사는 모두이 영역에서 충격을받습니다.
기억력이 좋을수록 구역에 들어가기가 쉬워지고 머무르기가 더 쉬우 며 중단 후에 다시 쉽게 들어갈 수 있습니다.
이런 종류의 기억에 문제가 있다면, 기억력이 좋을수록 프로그래머로서의 성공이 클수록 명상 기술과 기억 트릭을 배우는 것이 좋습니다.
나는 흐름을 거스 르고 yes 라고 말할 것이다. 좋은 기억은 프로그래머로서 훌륭한 자산입니다. 내 기억은 항상 프로그래밍 책임으로 보았으므로 핸디캡을 보완하기 위해 몇 가지 트릭을 선택했습니다.
해당 변수 (이전에 3 줄을 사용한 적이 있음)의 철자가 어떻게되었는지 기억할 수 있어야합니다. Intellisense (또는 편집기 나 IDE에있는 자동 완성 형식) 를 사용하는 방법을 배울 수없는 경우
이 프로젝트에서 마지막으로 작업했을 때 수행 한 작업을 빠르게 기억할 수 있어야합니다. 이것은 며칠 전일 수도 있고 점심 직전 일 수도 있습니다. 당신이 할 수 없다면, 물건을 쓰는 법을 배우십시오 . 노트를 옆에두고 TODO 항목과 현재하고있는 작업 및 현재 작업중인 코드가 어떻게 일치하는지 기억해야 할 사항을 작성하십시오.
디버깅 및 품질 관리가 어렵습니다. 이상적으로는 버그를 재현하거나 무언가를 디버깅 할 때 취한 단계에 대해 매우 상세한 노트북을 유지해야합니다. 이것은 내가해야 할 일이지만 여전히 어려움을 겪고 있습니다.
도움이 되었기를 바랍니다!
인터뷰에 대한 게릴라 가이드 (버전 3.0) 는 노트가 똑똑하고 작업이 완료되는 것이 프로그래밍의 중요한 포인트라는 일반적인 참조입니다. Smart에는 몇 가지 기억 기술이 포함되어 있지만 반드시 생각할 수있는 만큼은 아닙니다.
Intellisense 는 구문 측면에서 도움이 필요한 경우 구문에 많은 도움이 될 수 있습니다. 학습 한 내용을 의미있는 방식으로 빠르게 적용 할 수 있도록 학습 방법을 아는 것이 사소한 질문에 대답하는 것보다 중요합니다.
이름을 기억하는 것은 어휘를 기억하는 것과는 다른 과정을 기억하는 것과는 다른인지 기능이라고 생각합니다. 뇌 손상을 입은 사람들은 이름을 기억하는 능력을 완전히 제거하고 다른 방식으로는 완벽하게 잘 기능 할 수있는 사례가 있습니다.
그래서 저는 프로그래밍 언어 학습과 관련이없는 이름을 기억하는 능력을 말합니다.
그러나 논리적 패턴, 규칙 및 어휘를 기억할 수 있으면 도움이됩니다.
아니요. 도구의 메모리 깊이 (Intellisense, Google, 컴파일러, 코드 생성기)는 인간의 메모리에 비해 무한합니다. 따라서 좋은 기억력을 가진 프로그래머는 머리에 구멍이있는 프로그래머보다 훨씬 좋습니다.
프로그래머가 실제로 필요한 것은 추상화 레벨 사이를 전환 할 때 "피크 초점 속도"입니다. 더 빨리할수록 프로그래머로서 더 좋습니다. 일부는 500ms와 같은 심장 박동 속도를 가지며, 뇌에 첫 번째 혈파가 도달하면 집중됩니다. 일부는 약 2 시간 동안 흡연 주기로 반올림 한 시계를 가지고 있습니다. 어떤 사람들에게는 아침 샤워가 필요하기 때문에 약 24 시간이 걸립니다. 좋은 프로그래머와 나쁜 프로그래머의 차이는 1 년 전에 1:80 배로 선언되었으며 그 차이는 점점 커지고 있습니다.
나는 평범한 프로그래머가 업무를 수행하기 위해 알아야 할 많은 것들이 있다는 것에 동의합니다. 단순히 웹 사이트를 구축하기 위해 기본적으로 제어 해야하는 모든 단어, 구문, 기술을 생각하십시오 (프론트 엔드 : html, css, 백엔드의 javascript (일부 Js 프레임 워크를 jquery로 계산할 수도 있음), ajax, Php 또는 ASP 또는 ASP.Net, 데이터베이스, mySql 또는 SqlServer 또는 Oracle 또는 MongoDB 등을 잊지 마십시오. 언어, 패러다임, 신 택시, 패턴 등의 목록이 많이 있으므로 모든 것을 기억하는 것은 불가능합니다.
좋은 프로그래머를 만드는 것은 연습, 언어보다 알고리즘을 사용하는 관행, 그리고 가장 자주 사용하는 것을 기억할 것이라고 생각합니다. 나머지에는 항상 google = P가 있습니다.
훌륭한 기억은 두 가지 방법을 모두 삭감 할 수 있습니다.
한 번에 수십 비트의 정보를 저글링 할 수 있다면 프로젝트에 중요하지만 다른 사람들이 두려워하는 끔찍한 레거시 코드 조각을 이해하기가 훨씬 쉬워집니다. 그것을 터치합니다.
다른 한편으로, 프로젝트에 중요하지만 다른 사람이 다룰 수 없을 정도로 끔찍한 코드는 수십 비트의 정보를 저글링하는 놀라운 능력을 가진 누군가가 작성했을 것입니다. 훌륭한 기억력이 있다면 단순함의 우아함에 대한 감사를 기르기 위해 더 열심히 노력하십시오.
프로그래밍 언어의 구문을 배우는 데 큰 메모리가 필요하지 않습니다. 다른 사람들이 말했듯이 구문은 메모리에서 너무 많이 강화되어 빠르게 두 번째 본성이됩니다. 도로에서 어느 쪽을 운전해야하는지 잊어 버리셨습니까? 덧셈과 뺄셈을 나타내는 산술 기호는 무엇입니까? 그렇지 않은 경우, 선택한 언어 구문의 가장 일반적인 부분을 아무 문제없이 많이 익히고, 덜 자주 나오는 부분을 찾을 수 있습니다.
일부 라이브러리에는 수백 또는 수천 개의 함수, 클래스 및 / 또는 메서드가 있습니다. 모든 기능을 사용하는 법을 배우는 것은 불가능한 일처럼 외부인에게 보일 것입니다. 그러나 거의 항상 라이브러리에는 몇 가지 기본 구조가 있습니다. 똑똑한 프로그래머는 이러한 모든 기능을 기억하는 대신 라이브러리의 구성 및 수행 가능한 작업을 이해하려고합니다. 이 작업을 수행하면 필요할 때 필요한 기능을 쉽게 찾을 수 있습니다.
요컨대, 메모리는 이해하는 것보다 훨씬 덜 중요합니다.
때에 따라 다르지. Java 및 .NET에서 표준 라이브러리는 일종의 계층 구조이며 잘 문서화되어 있습니다. 따라서 네트워킹을 다루는 것을 알고 있다면 C #의 system.net으로 이동하여 필요한 특정 개체 / 호출로 드릴 다운 할 수 있습니다. 따라서 그런 점에서 세부 사항을 기억할 필요가 없습니다.
자신의 프로그램에서 모든 것은 당신이 물건을 조직하고 명명하는 방법에 관한 것입니다. Basic of old에서 a $, b $, c $ ... 또는 g $와 같은 이름을 사용하는 경우 행운을 빕니다. 이름, 성처럼 생각하는 방식으로 이름을 지정하면 훨씬 쉽습니다. 많은 언어에는 이름 지정 표준이있어 도움이됩니다. 예를 들어 Java에는 클래스의 특정 속성을 가져오고 설정하기위한 setX, getX 규칙 및 대문자 규칙이 있습니다. 따라서 사람이 이름을 알고 있다면 아마도 firstName이라고 불리며 getter / setter는 아마도 getFirstName과 setFirstName ... 일 것입니다.
또한 더 짧은 방법 / 기능은 한 번에 머리를 덜 유지하는 데 도움이됩니다. 올바른 이름을 사용하면 찾아 볼 필요가 없습니다. 예를 들어, 무엇을하는지에 대한 이름을 지정하고 getMaximumValue를 호출하는 하나의 프로 시저를 읽을 때 getMaximumValue를 읽을 필요가 없을 것입니다. 그러나 함수 / 메소드가 길고 중첩 될수록 더 나은 메모리 확실히 도움이됩니다.
빠른 읽기부터, 나는 프로그램을 작성하는 단일 작업이 아니라 일반적인 프로그래밍의 의미에서 메모리에 대해 이야기하는 사람을 보지 못했습니다.
메모리는 다음 두 가지에 유용합니다.
기본 시맨틱 / 라이브러리 기억하기 :
이것은 반복과 Google에 의해 쉽게 대체됩니다. IOW, 당신이 태어난 메모리의 양은이 문제를 극복 할 수 없을 정도로 엄청나게 낮아야합니다.
큰 프로그램에서 상황 기억하기 :
여기 트릭이 있습니다. 프로그램이 커질수록 (그리고 선임자가 됨), 결정은 시스템에 대한 지식의 양과 프로젝트 토론, 디버깅, 긴급 상황에 대처하는 등 푸시가 밀려 올 때 많은 문서 / 위키 항목이 도움이되지 않습니다. 팀 "마법사"가 유일한 옵션이 될 것입니다. 이것이 주요 엔지니어가 많은 가치를 가진 이유 중 하나입니다. 그들 대부분은이 시점에서 실제로 코딩하는 데 시간을 전부 소비하지 않을 수도 있고, 전체 그림으로 최신 상태를 유지하고 문제 / 개선에 적용하는 데 더 많은 시간을 소비합니다. 좋은 사람들은 여기저기서 많은 CR과 코딩 변경을 수행하고 새로운 개정판을 프로토 타이핑하여 연락을 유지합니다.
IOW, 당신은 # 1만으로도 합리적인 프로그래머가 될 수 있지만, 다음 Linus가 되려면 최소한 해결하려는 문제를 포괄 할만큼 충분한 메모리를 확보하는 것이 좋습니다.
관찰 한 바에 따르면, 작업 기억은 그 사람의 가치에 거의 비례한다고 말할 수 있습니다.
마무리해야 할 약간의 면책 조항 : Eidetic 메모리가 있지만 논리를 적용하는 데 지적 능력이 없거나 낮 으면 카메라보다 프로젝트에 적합하지 않습니다.
만나는 사람들의 이름을 기억하기 어려운 경우에도 여전히 훌륭한 프로그래머가 될 수 있습니다.
나는 항상 사람들의 이름을 잊어 버립니다. 나는 거의 10 년의 경험을 가진 선임 프로그래머입니다. 내 경우에는 내 끔찍한 청각 기억이 훌륭한 시각적 기억으로 보상됩니다.
그럼에도 불구하고, 훌륭한 프로그래머를위한 필수 요건은 추상화하는 능력입니다. 기억할 수있는 양이 많거나 적더라도 변수의 개념을 이해할 수없고 프로그램에서 변수를 사용하는 방법을 잘 모른다면 훌륭한 프로그래머가되지 못할 것입니다.
내 제안은 프로그래밍에 대한 짧은 코스를 시도하거나 Python 자습서를 완료하여 원하는 방식을 확인하는 것입니다.
그것은 당신이 프로그래밍이 당신이 관심을 가질만한 직업인지 아닌지에 대한 좋은 아이디어를 줄 것입니다.
나는 그렇습니다.
현재 저는 JAVA & C #을 배우고 있습니다. 모든 테스트는 비공개로 진행되므로 JAVA의 경우 시험의 모든 응용 프로그램을 메모리 코딩으로 100 % 사용할 수 있습니다.
더욱이 점점 어려워지고 있습니다. 나는 지금 니모닉과 같은 메모리 트릭을 사용하기 시작 해야하는 시점에 있습니다.
나는 높은 IQ, 좋은 일반 지식, 좋은 어휘, 다항주의, 높은 수학 지식, 터치 타이핑 및 좋은 기억은 프로그래머에게 모든 자산이라고 말합니다.
나는 타입을 만질 수 없거나 더 높은 수학 등을 할 수없는 매우 영리한 프로그래머를 알고 있습니다. 그들은 훨씬 더 나을 수있었습니다.