프로그래밍 지식을 유지하는 데 어떤 기술이 도움이됩니까? [닫은]


44

프로그래밍 관련 내용을 어떻게 기억하십니까? 몇 년 전에 지금 당장 실수를 겪었다는 느낌을 받았으며 그 원인을 알고 있다고 맹세 할 수 있었지만 지금은 그 사실을 잊었습니까?

얼마 전에 xsl의 문자열 구문 분석을 사용 했습니까?하지만 xsl에서 문자열 함수가 무엇인지 정확히 기억할 수 없으며 처음부터 시작해야합니까? 또는 과거에 반드시 사용했던 "일부 술어로 콜렉션 필터링"과 같은 Apache Commons의 일부 기능을 잊었을 수도 있습니다.

어떻게합니까? 블로그를 만들려고했지만 앱을 개발할 때 블로그를 업데이트하거나 내 경험에 대해 쓸 시간을 찾지 못했습니다. 또한 위키를 사용하는 것은 좋은 일이지만 블로그 주제를 변경하여 해당 주제에 대한 새로운 정보를 추가해야했기 때문에 위키를 깔끔하게 구분하는 것이 어렵다는 것을 알았습니다. 이로 인해 실제로이 주제를 블로그 대신 위키에 배치해야한다고 생각하게되었습니다.

프로그래밍 경험을 기억하는 데 도움이되는 시스템이 있습니까? 당신의 설정은 무엇입니까?


82
내 설정 : 1. google 2.bookmark 페이지 3. 북마크에 대해 잊어 버리십시오 4. goto-> 1.
e-MEE

4
개인 위키를 사용하십시오. 자신과 다른 사람들이 나중에 볼 수 있도록 해결 한 각 문제를 기록해 두십시오. 몇 달 동안 만하면 풍부한 정보를 얻을 수 있습니다. 나는 WikidPad와 그것의 아주 좋은를 사용합니다
Ubermensch

2
구글은 대답에 환상적이지만 메모리 기술에 대한이 질문을 실제로 다루지 않는다고 생각합니다. 물론 그것은 단지 주석입니다.
Michael Durrant

4
내 두뇌는 내 CPU와 캐시입니다. 나는 그것을함으로써 캐시에 물건을 넣었다. 내 지식의 나머지 부분은 오래된 소스 코드, 메모 및 stackoverflow.com과 같은 다른 곳에 있습니다.
Distortum

5
@ e-MEE : 당신이 묘사 한 상황이 종종 사용되지만, 나쁜 습관이며 그것에 의존 할 수 없습니다. 시간이 많이 걸리고 중복됩니다. 당신은 :) 바퀴를 개혁하지, 멋진 기능을 구축하기위한 시간을 사용할 수 있습니다
Claudiu 콘스탄틴를

답변:


64

잊어 버리는 것은 정상입니다. 과거에 당신을 도왔던 몇 가지 트릭을 기억하지 않는 것도 정상입니다. 이것이 인정해야 할 첫 번째 단계입니다. 그런 다음 추가 수정을 위해 지식을 "저장"할 수있는 몇 가지 방법이 있습니다.

  • 그것에 대해 시간과 블로그를 찾으 십시오 . 미래-당신은 현재 당신에게 매우 감사 할 것입니다.
  • 작은 데모로 작업하고 어떤 식 으로든 보관하십시오. 반드시이 아카이브를 여러 번 살펴보아야합니다.
  • 스택 교환 프로파일을 사용하십시오 . 추가 질문을 위해 흥미로운 질문 / 문제 / 문제 / 팁 / 트릭을 즐겨 찾기로 표시하십시오.
  • 계속 하고 프로그래밍하십시오. 프레임 워크의 특정 부분을 많이 사용할수록 더 잘 알고 기억할 수 있습니다.

5
지식을 새로 고치는 것처럼 "계속"부분에 +1하십시오.
tehnyit

포인트 1은 사무실의 에피소드를 생각 나게합니다 ...
JBRWilkinson

나는 당신의 대답을 높이기 위해 여기에 등록했습니다. 완벽한 것
마틴.

3
로그 / 일기의 값은 +1입니다. 벌채는식이 요법, 금융, 피트니스 등 대부분의 성공을 향상시킵니다. 기록을 작성하는 데 시간이 걸리지 않는 사람들은 통나무의 이점이 무언가를 찾는 것이라 생각하지만 실제 가치는 당신이 생각하도록 강요합니다 최근의 과거 사건에 대해, 그 사건을 비판적으로 고려하여 이야기로 구성하십시오. 이 과정은 기억을 돕고 작가가 미래에 대해 생각하게합니다. 대부분의 경우 통나무의 장점은 사실을 읽은 것이 아니라 창조 과정에서 개인적이고 실제적인 가치를 얻는 것입니다.
Quaternion

블로그가 최고입니다. 나는 내가하는 일에 대한 블로그를 유지하고있다-내가 겪고있는 문제에 관한 글 (그리고 내가 좋아하거나 흥미로워하는 일에 관한 글은 거의 없다). 이렇게하면 문제가 발생하면 (이 라이브러리를 어떻게 다시 설치합니까?) 블로그 게시물로 이동하여 진행합니다. 매력처럼 작동하며 실제로 누군가를 도울 수도 있습니다.
MatthewRock

20

내 열쇠는

종류


되풀이. 한 번은 도망 칠 수 있습니다. 100 번째 발생을 보는 것이 차이를 만듭니다!

손가락으로 기억 . 실제로 몇 번 입력하면 코드가 훨씬 잘 기억됩니다.

코드 라이브러리 -사용하고 본 코드를 개인적으로 숨 깁니다.

집중. 모든 사용자 이름 (수백 개)이있는 1 개의 파일을 1 PC에 보관합니다. 나는 그것에 보안을 적용합니다.

훈련 -당신은 시간이 없다고 / 자신의 블로그를 업데이트하기 위해 노력하는 등을 언급했습니다. 당신은 단지 열심히 노력하고 그것을해야합니다.

수락 -기술과 기술, 그리고 일주일에 배운 것들이 신선 할 것입니다. 3 년 전에 말한 항목 중 일부는 기억하기 어렵습니다. 뇌가 더 많은 공간을 확보함에 따라 정상입니다.

여러 감각 -때로는 니모닉을 사용하고 때로는 주요 개념이 독특한 방식으로 그려진 그림을 떨어 뜨립니다. 읽고 팟 캐스트를 듣고 비디오를보고 편집자에서 색상을 사용합니다. 내가 더 잘 사용할수록 좋습니다.

니모닉 (예 : CSS 경계 순서 Tarball (TaRBalL) TopRightBottomLeft) 또한 단어와 테마를 기억하기 위해 색상과 모양을 사용합니다. 더 기괴할수록 더 기억에 남습니다!

계속 사용 - '사용 또는 잃어버린'효과입니다. 모든 지식은 시간이 지남에 따라 사라집니다. 타임 ++ 페이드 ++

Stack Exchange Network-현재 여러 분야에서 Stack Overflow를 사용하여 현재 작업 / 프로젝트에서 사용하지 않더라도 다양한 기술과 기술을 '현재'및 '기억'하려고 시도하고 있습니다.

드롭 박스 - I 메모리 관련 항목 commnon 작은 파일을 보관

-나는 여전히 실제 책의 바보와 느낌을 좋아합니다. 또한 어디에서나 참조 할 수있는 여러 종류의 킨들과 다른 온라인 기술 서적이 있습니다. 분명히 내 기술 라이브러리는 디지털 일 때 어디서나 액세스 할 수 있습니다.

구글 효과 -이것을 언급하지 않으면 어떤 항목의 목록도 실제로 완성되지 않을 것입니다. 이것은 구글에서 찾을 수 있기 때문에 기억할 필요가없는 것에 관한 것 입니다. 이것은 또한 중요한 고려 사항입니다. 더 많은 사람들이 지식을 얻는이 방법에 더 익숙해 짐에 따라 주어진 사실을 실제로 암기해야 할 필요성이 줄어들고 있습니다. 그러나 이것은 현재 환경에서 수행하기 위해 심도있는 개념적 이해가 필요하다는 것을 점점 더 많이 알고있는 지식 근로자들에게 '기준을 높이고있다'. 물론 CME 를위한 것입니다 !

블로그

나만의 북마크 사이트.

  • 내 블로그와 북마크를 어떻게 업데이트합니까? 하루가 끝날 무렵 나는 그것이 훈련친절 이라고 생각합니다즉, 어느 정도의 헌신이 필요합니다. 그러나 어느 정도 학교에 가서 $ 100,000 (또는 $ 10,000)을 지불했거나 스스로 가르친 경우 헌신과 끈기의 의미를 알 수 있습니다. 이것은 다르지 않습니다. 멋진 점 또는 '멋진 요소'는 멋진 튜토리얼이나 기술 등이 포함 된 멋진 웹 사이트를 보거나 거친 가시성 문제를 극복 할 때 "그건 멋지다!"라는 것입니다. -이것이 느껴질 때 (또는 사용하는 캐치 프레이즈) "지금 블로그에 올리거나 북마크를 기록해야합니다." - 좋은 기회 당신이 그렇게 자신에게 이메일 또는 텍스트 또는 음성 메일, 또는 작업 목록에서 새 작업을 보내, 바로 그 순간에 당신의 블로그를 업데이트하는 PC에 아니에요있다 당신을 위해 일하는 무엇이든은-스스로에게 상기 시키도록! 예를 들어 내 안드로이드 폰에는 이것에 유용한 작업 앱이 있습니다.

당신의 사려 깊은 답변에 감사드립니다. 그는 블로그 업데이트에 대해 훈련을 유지합니까? 내가 가진 문제는 게으름이거나 다른 사람들이 이익을 얻을 것이라고 생각하지 않기 때문에 게시물을 올리지 않는다고 생각합니다.
Kyle Hayes

다양성 +1 실제로 작동하며 여러 번 경험했습니다.
Karthik Sreenivasan

카일 좋은 질문, 나는 대답을 업데이트했다. 그러나 내 대답은 여전히 훈련을 유지 하는 방법 보다는 업데이트를 유지 해야필요성 에 관한 것 입니다. 어느 시점에서 그것은 개인적인 동기 부여로 귀착됩니다.
Michael Durrant

7

작년 한 해 동안 Evernote 는 내가 할 수없는 프로그램이되었고 모든 것을 Evernote에 복사했습니다. 코드 스니핑, 스크린 샷, 연락처 데이터, 버전 기록 등 그래서 나는 많은 세부 사항을 기억할 필요가 없습니다. 나는 그것이 어딘가에 있다는 것을 알고 있습니다.

기본 버전은 무료입니다. 시도해보십시오!


1
그렇다면 에버 노트의 서비스가 다운되었거나 인터넷이없는 날 (예 : 이동 통신사가 누산 되었기 때문에) 어떻게 하시겠습니까? 중요한 지식을 저장하기 위해 "클라우드"에 의존하는 것은 권장하지 않습니다.
Mister Smith

나는 현재 Evernote를 사용하고 있지만 모든 것을 거기에 넣으면 태그 섹션이 매우 어수선 해져서 ​​덜 사용하게됩니다. 이것에 대한 좋은 트릭이 있다면 공유하는 데 많은 도움이 될 것입니다! 감사합니다!
빛나는 빛

@ danleadgy, 나는 태그에 동의합니다. 나는 정말로 걱정할 필요가없는 더 선택적이어야했다.
Kyle Hayes

Stack Overflow에서 이와 동일한 질문을 한 후에 Evernote를 사용하기 시작했으며 매우 잘 작동합니다. 프로그래밍 정보 외에도 방법 프로세스를 저장합니다. 예를 들어, 개발 기기를 처음부터 설정하는 방법 (OS 설치, 소프트웨어 설치, 구성). 그것은 매우 유용했습니다. 또한 모든 장치에서 동일한 정보에 액세스 할 수 있습니다. 따라서 한 컴퓨터 나 태블릿에서 읽고 다른 컴퓨터에서 작업 할 수 있습니다.
B Seven

6

셜록 홈즈는 "사람의 마음은 다락방과 같다"고 말했다.

당신이 사진 기억과 그 안에 문제가 없다면, 모든 것을 기억하지는 못할 것입니다. 정보 문제 해결 기술로 구성된 개인 라이브러리 인 리소스 세트를 구축하십시오 .

답을 기억하지 못할 수도 있고 답을 어디에 기록했는지 기억하지 못할 수도 있습니다. 그러나 문제를 해결하는 방법을 알고 있다면 언제든지 답을 다시 찾을 수 있습니다. 다행히도 검색 및 재사용 가능한 방식으로 솔루션을 문서화하는 작업이 포함되기를 바랍니다.


4

글쎄, 아마도 내 사건은 특별하지만 ... : 76 세 이후 랩톱, 프로그램, 스크립트, 구성 등에 쓴 모든 소프트웨어 조각을 가지고 있습니다. 그래서 시간이 지남에 따라 고백해야합니다. 물건에 관한 메타 데이터를 기억하는 것입니다. 물론 많은 부분이 더 이상 관련이 없지만 어려운 부분은 실제로 구현하지 않고 아이디어를 가지고 있다는 것을 알았습니다. 따라서 메타 데이터는 기본적으로 어디에서 '아이디어'를 찾을 수 있는지에 대한 색인입니다.

요즘 새 잔디를 쳤을 때 새로운 측면을 사용하는 큰 코드베이스를 찾고 코드베이스와 함께 양질의 시간을 보냅니다. 나는 그것을 공부하고, 테스트 환경에서 작동하도록 노력한 다음, 새로운 도구 (라이브러리, 언어, 빌드 기술 등)로 편하게 해줄 수 있도록 노력한다. 이 프로세스를 통해 패턴, 아이디어를 예제에 매핑 할 수 있습니다. 나는 그런 미니 프로젝트를 몇 번하고 시간을내어 집에서 가장 느끼는 것을 참고로 삼을 수 있습니다. 일단 완료되면 결국 해당 코드베이스를 재사용하여 내 앱의 골격을 구축합니다.

개인 보관소가 실패하면 최근에 SO를 추가 한 인터넷에 접속합니다. 나는 gaagle 전에 SO에서 '새로운'개념 (개인의 관점에서 새로운)에 대한 히트를 얻을 것입니다. 사실, 나는 (현재) 거의 gaagle로 돌아 오지 않습니다. 거기에 대한 첫 번째 관련 답변은 일반적으로 SO에 대한 몇 가지 흥미로운 질문에 대한 링크입니다.


4

다른 사람들처럼, 나는 북마크를 사용하여 물건을 추적합니다.

나는 Delicious를 사용했지만 이제 Pinboard로 옮겼습니다.

그러나 나는 예전처럼이 방법을 사용하지 않습니다. 내가 겪는 모든 프로그래밍 문제는 작은 구글 검색처럼 보입니다. 그리고 작년 쯤에 나는 검색어 중 하나로 Stackoverflow를 사용하기 시작했습니다!

특히 어려운 문제에 대한 SO 질문에 답할 때마다이를 추적하는 것이 가장 좋아서 북마크의 또 다른 형태입니다.


나는 과거에도 맛있는 것을 사용했지만 그들은 그 프로젝트에서 엉망이되었습니다. 이제 북마크와 하이라이트에 Diigo 를 사용 합니다. Pinboard를 확인해야합니다.
jmq

3

"그림을 기억하고 미세한 선을 잊어라"

더 자세한 내용을 기억하지 않는 것이 절대적으로 정상입니다. 그러나 걱정해야 할 것은 중요한 것들을 잊어 버리는 것입니다. 버그를 수정 한 경우 최소한 문제의 개념에 대한 개념적인 아이디어가 있어야합니다.

북마크, 블로그, 노트북은 이러한 세부 사항을 모두 저장하기에 좋습니다. 그러나 궁극적으로 여전히 더 큰 "그림"을 기억해야합니다. 그렇지 않으면 이러한 "더 미세한"세부 사항을 다시 발견하는 것이 훨씬 더 어려울 것입니다.


2

자신의 말로 물건을 표현하면서 자신의 메모를 유지하십시오. 당신의 목표 청중은 당신 입니다. (그러나 블로그 게시물은 실제로 명확하고 잘 편집되어 시간이 많이 걸립니다.) 좋은 기사 / 블로그 게시물을 찾으면 URL을 기록하되 여전히 자신의 말로 설명하십시오.

작고 짧은 단일 주제 파일의 큰 계층 구조를 유지합니다. 파일은 대부분 자유 형식이지만 Markdown을 사용하도록 전환하고 있습니다. grep / find를 사용하여 검색하십시오. DropBox에 폴더를 보관하므로 항상 사용할 수 있습니다.


나는 이것을 이와 같은 파일로 사용했지만 Evernote는이 유형의 데이터에 대한 좋은 저장소라고 생각했습니다.
Kyle Hayes

1

모든 사람이 자신에게 익숙한 자신의 스타일을 가질 수 있습니다. 나에게 있어서는 범주별로 지식을 분리합니다.

  • 서적

  • 조항

  • 컬렉션 (단단한 단락으로 제한된 흥미로운 것을 발견했습니다-실제로 정보를 복사하고 때로는 주석을 달았습니다)-예 : OODevelopment, Generics 등

  • 재사용 가능한 코드 (텍스트 및 스 니펫)-각각 좋은 트리 구성으로 별도의 파일에 있습니다. 예를 들어 DataValidation 노드에는 각각 별도의 파일에서 서로 다른 데이터 항목을 검증하는 많은 기술이 포함됩니다.

  • 완성 된 프로젝트

  • 개인 비디오 자습서 (때로는 너무 많은 단계가 포함 된 경우 작업하는 방법에 대한 비디오를 녹화합니다).

  • 연결

각 주제를 적절한 트리 구조로 주제별로 위의 내용을 구성합니다.

때로는 겹치는 것들이 있지만 원하는 것을 찾을 수 있습니다.

또한 Google 데스크톱을 사용하면 텍스트 나 파일을 찾는 것이 매우 빠릅니다.


기꺼이 나누고 싶다면 나무를 보는 것이 흥미로울 것입니다.
Kyle Hayes

@KyleHayes, 샘플을 제공 할 수도 있습니다
NoChance

0

OneNote를 사용합니다. 나는 서로 다른 프로그래밍 언어를 가지고 있으므로 각 언어마다 다른 섹션과 다른 유형의 노트에 대해 다른 탭을 가지고 있습니다.

이제 Stack Exchange도 사용하기 시작했습니다.


-1

메모리와 "스토리지"사이의 균형을 유지해야합니다. 메모리에 너무 많은 정보 나 잘못된 정보가 있으면 == 문제가 있습니다.

내 규칙:

너무 아름답게하지 마십시오! 문서의 글꼴 크기가 다양하더라도 중요한 내용을 작성하십시오. :)

지나치게 과장하지 마십시오. 자신의 생각을 키우려면 10 단계 트리 구조가 필요하다는 것을 스스로에게 확신 시키십시오

-무엇을 기록 할 시간을 보냈다. 같은 문제에 대한 5 가지 해결책을 찾을 수 있습니다. 당신이 그 (것)들을 전부 쓰는 순간 당신은 느슨하게합니다. 정말 당신을 도울 1-2를 적어 둡니다. 지금은 시간이 없다고 스스로에게 말하지 마십시오. 다소 이상하지만 적용됩니다 : "시간을 얻는 데 걸린 시간"

나는 20 년 후에 존재하고 다양한 플랫폼으로 자신을 마이그레이션하고 싶지 않기 때문에 이러한 것들을 "제품"에 넣는 것을 좋아하지 않습니다.

그래서 뭐 할까?

최소한의 노력으로 정보를 얻을 수있는 모든 것.

예를 들어 phpBB를 설치하고 직접 작성하십시오. 무료로 검색 기능을 사용할 수 있으며 간단한 SQL 문으로 데이터를 추출하여 파일에 넣을 수 있습니다. 보관을 위해 파일로 생각을 내보내는 cronjob을 가질 수 있습니다. 따라서 다른 시스템에 배치해야하는 경우 최소한의 노력으로 준비가되었습니다.

다른 문제는 아무도 당신이 찾은 링크가 내일 작동한다고 보장하지 않는다는 것입니다 (5 년 후 상상). 따라서 정보를 복제하십시오.

-브라우저 확장 기능이있는 비디오를 다운로드하여 phpBB 게시물 (또는 워드 프레스 또는 기타)에 첨부하십시오.

그것을 직시하십시오 : 당신은 프로그래머이며 다른 사람들을 위해 앱을 만듭니다. 자신을 위해 간단한 것을 만들고 최고의 고객이 되십시오.

내 2c


-1

짧은 답변:

연습, 연습, 연습.

그렇지 않은 답변 :

걷는 방법을 어떻게 기억하십니까? 말하는 방법을 어떻게 기억하십니까? 이러한 기술은 정확히 동일하지 않으며, 초급자에게는 최소한 백과 사전 지식이 필요하지는 않지만 동일한 것을 사용합니다. 메모리.

초보자에게는 프로그래밍을 시작할 때 프로그래밍이 불가능한 큰 주제로 보일 수 있지만 기본 사항을 익힌 후에는 다른 주제와 같이됩니다.

내가 알아 내 자마자, 나는 물건을 더 작고 작은 덩어리 (나만의 개인 추상화 버전)로 나누기 시작했습니다. 그렇게하면 기억하기 어려운 것처럼 보이는 것이 더 쉬워집니다 (적어도 저에게는 그렇게합니다).

글을 적어두면 생각보다 많은 도움이됩니다 (교육 분야에서 일한 결과, 이것이 보존에 큰 긍정적 인 영향을 줄 수 있음을 알고 있습니다). 특히 그대로 복사하는 것이 아니라 자신의 말로 표현할 수 있다면 더욱 그렇습니다. 만약 당신이 그것을 이미 알고있는 것으로 바꾸거나 말로 표현할 수 있다면 더 좋습니다.

예를 들면 : C #에서 String 개체는 변경할 수 없습니다. 이것은 프로그램에 문자열 객체의 내용을 변경하도록 지시 할 때마다 실제로 발생하는 것은 원래 문자열이 파괴되는 것입니다 (기술적으로 가비지 수집기의 가장 낮은 수준에 배치됨). 대리석 조각을 만들 때 예술가가 실수를 할 때와 똑같이 – 조각을 변경할 수 없으므로 파괴되고 새로운 조각품이 만들어집니다.

좋은 예는 아니지만 내가 얻는 기본 사항을 보여줍니다.

품질 문서도 도움이됩니다. 내 프로그래밍 101 강사가 한 번 나에게 붙어 있다고 말한 것 :

댓글을 자세하게 작성하십시오. 어리석은 점이 아니라 프로그래머가 아닌 사람이 이해할 수있는 의견을 쓸 수 있어야합니다. 그렇게하면 프로젝트의 다른 사람이 완벽하게 이해할 수 있다는 것을 알게됩니다. 시스템을 구현하는 데 몇 달을 소비하지만 출근길에 끔찍한 사고가 발생한 경우를 상상해보십시오. 다른 사람에게 작업이 할당됩니다 (특히 크런치 시간이 가까울 경우). 코드에서 수행중인 작업을 파악할 수 없으면 생산이 중지됩니다.

좋은 책은 훌륭한 자료이기도합니다. 한 다른 교사가 책에 색인이없고 책이 많지 않다면 구매할 가치가 없다고 말했습니다.

Google은 놀라운 리소스가 될 수 있지만 복사 붙여 넣기 코더는 알고 있습니다. 설명없이 코드 블록을 제공하는 사이트를 피하십시오. 나는 작은 코드 블록에 대한 전체 기사를 읽는 것을 선호합니다. 그러면 코드 블록의 의미, 코드 작동 방식 및 프로그래머가 왜 그렇게 작성했는지 알 수 있습니다.

희망이 도움이

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