프로그래머로서 Stackoverflow를 들어본 적이 없다면 한번 생각해 보시는 게 좋습니다. 프로그래머들이 가장 많이 읽어야 할 프로그래밍 책 중 하나입니다(사실 이 책은 프로그래밍 책으로 남겨두는 것만으로도 충분합니다!). ):
(홈페이지는 준이 강하게 삽입했는데, 위 사진은 패러디 사진이라 일부 네티즌들은 이전에 이해하지 못했어요, 특히 말하는 것) 아직 책을 읽지 않은 프로그래머들을 위해 한 권을 사야 할 때입니다. 아직 망설이고 있다면, 이 글을 참고해 왜 StackOverflow 없이는 할 수 없는지 알아보세요. 질문하는 지혜 기술 질문을 할 때, 유용한 답변을 얻을 수 있을지는 어떻게 질문하고 후속 조치를 취하느냐에 달려 있습니다. —— 에릭 S. 레이먼드 특히 기술적인 문제에 대한 명확한 설명이 생각만큼 간단하지 않을 때가 있습니다. 질문하는 것은 항상 과학이었지만, 안타깝게도 많은 사람들이 그것을 인지하지 못하거나 충분히 주의를 기울이지 않습니다. 또는 어떤 질문자는 아예 도움을 요청하지 않기도 합니다. 그래서 사람들이 답하지 못하거나 답하고 싶지 않은 온갖 질문들을 발견하게 될 것입니다: Java 정규식(regex) 문제인가요? SLA 응답 시간이란 무엇인가요? ATL 클래스와 일반 클래스 상속의 차이점은 무엇인가요? 위 문제가 종료되거나 수정되지 않도록, 이 끔찍한 문제를 직접 경험할 수 있는 사진을 여기 올려보세요:
SegmentFault의 미답변 질문들에서 이런 질문들이 많이 나오기 때문에, 많은 사람들이 질문할 지혜나 태도가 부족한 것 같습니다. 레이먼드와 릭 문은 질문하는 방법에 관한 고전적인 에세이 『스마트 웨이』(http://www.catb.org/~esr/faqs/smart-questions.html#translations)를 썼으며, 이 책은 여러 언어로 번역되어 널리 유통되고 있으며, 중국어판도 여기에서 찾을 수 있습니다. Stackoverflow와 Segmentfalut도 질문을 위한 제안을 제공합니다: 도움말 센터 > 요청 요청 방법 좋은 질문을 하려면 어떻게 해야 할까요? 어떤 종류의 질문을 환영하나요 Stackoverflow에는 너무 많은 고전적인 질문들이 있고, 우리는 질문하는 법과 답변자와 소통하는 법을 배울 수 있습니다. 스택오버플로우에서 질문을 읽는 데 익숙해지면, 무의식적으로 질문할 때 그 질문을 따라 하게 되고, 그 결과 무의미한 질문을 피하게 됩니다. 질문할 때 주의해야 할 가장 중요한 질문들 몇 가지는 다음과 같습니다: 검색 엔진이 만족스러운 답변을 내놓지 못하는 질문을 하세요(구글은 최소 네 페이지 이상 작성되어 있습니다). 스스로 해결할 수 없고 많이 시도해본 질문을 하세요 문제를 최대한 명확하게 설명하려고 노력하세요: 좋은 타이포그래피, 코드, 오류 표시, 사진 등입니다 질문을 다른 사람들에게 도움이 되도록 만드세요 질문에 대한 명확한 답이 있어야 하며, 너무 주관적이면 안 됩니다 다양한 스킴 많은 경우 우리는 해결책을 찾기를 바라지만, Stackoverflow에서는 종종 예상치 못한 이점이 나타납니다. 문제에 대한 다양한 해답을 볼 수 있고, 심지어 그 해답들 간의 비교도 볼 수 있습니다. 이제 Python에서 ls-l 같은 외부 명령을 호출해 디렉터리 아래에서 기사를 출력하는 방법을 알고 싶다고 가정해 봅시다. 파이썬 호출 시스템 명령어를 구글링해보세요. 첫 번째 질문은 Stackoverflow에서 관련 질문입니다: 파이썬에서 외부 명령을 호출하는 것. (http://stackoverflow.com/questio ... l-command-in-python) (구글 기술적 문제, 기본적으로 stackoverflow 관련 이슈가 표시됩니다). 그 다음 이 질문 아래, 누군가가 외부 명령을 호출하는 여러 방법을 요약합니다: os.system() os.popen() subprocess.popen() subprocess.call() subprocess.run() 각 방법도 소개되며, 자신의 적용 상황에 맞는 방법을 선택할 수 있습니다. 또 다른 예는 '파이썬으로 파일 존재 여부를 확인하는 방법?'이라는 질문입니다. (http://stackoverflow.com/questio ... exists-using-python)은 파일의 존재를 확인하는 다양한 방법을 설명합니다. 도구 사용 문제를 더 잘 공부할 수 있도록 도와주는 강력한 도구들이 많습니다. gdb 디버깅 도구나 파이썬의 timeit 모니터링 모듈을 알지만, 모르는 도구는 모를 수도 있습니다. 우리가 처음 도구를 알게 될 때, 너무 늦게 만난 것 같은 느낌을 자주 받곤 합니다. 하지만 당신이 좋아하는 도구들은 항상 구하기 어렵습니다. Stackoverflow에서는 모든 질문 답변이나 댓글에 좋은 도구가 있을 수 있으며, 항상 숨겨진 최고의 도구를 찾을 기회가 있습니다. 제가 찾은 훌륭한 도구들의 목록은 다음과 같습니다: TRUSS/STTRACE: 프로세스가 실행될 때 시스템 호출과 수신 신호를 추적하며, 프로세스가 생성한 시스템 호출(매개변수, 반환값, 실행 시간 등)을 추적할 수 있습니다. (질문에서: 왜 C++에서 stdin에서 줄 읽는 게 파이썬보다 훨씬 느리나요?) vprof: 실행 시간, 메모리 사용량 등 Python 프로그램의 특성을 분석하는 시각적 도구입니다. (질문에서: 파이썬을 어떻게 프로파일링할 수 있을까요?) 정규식(Regex 101): 정규 표현식의 의미를 이해하고, 정규 표현식을 디버깅하며, 간단한 실험을 할 수 있도록 도와주는 온라인 정규 표현식 어시스턴트입니다. (문제: 정규 표현식 학습에서) 다음은 Regex 101의 간단한 예시입니다:
사고 과정 많은 경우, 문제를 만났을 때 시작할 방법이 없고 어느 방향으로 생각해야 할지 모릅니다. 하지만 StackOverflow를 통해 구체적인 해결책을 쉽게 알 수 있고, 때로는 이 문제에 직면했을 때 다른 사람들이 어떻게 생각하는지도 알 수 있습니다. 예를 들어, 아래 say함수가 반환하는 문자열을 앞뒤에 더하는 데코레이터를 사용해 작업을 수행하고 싶다고 가정해봅시다. 그리고 예를 다음과 같이 정의할 수 있습니다. @makebold @makeitalic 데프 세이(): 돌아오세요"안녕하세요" 전화를 걸어 인사할 때마다 '안녕하세요'로 돌아옵니다. 하지만 makebold와 makeitalic을 어떻게 구현할지는 문제가 있습니다. Stackoverflow에는 직접 답을 알려주고 장식가 문서 링크를 보내주는 큰 전문가들이 있습니다. 하지만 또한 자신의 사고 과정과 장식가에 대한 이해를 자세히 설명해 주어 장식 메커니즘을 깊이 이해할 수 있도록 도와줍니다. 위 질문에 대한 답변으로, 3,000개 이상의 좋아요를 받은 답변이 있으며, 문제를 단계별로 해결하는 방법을 알려줍니다. 우선, 파이썬 함수의 특징이 무엇인지 알려주세요: 함수는 객체입니다 함수는 변수에 할당될 수 있습니다 함수는 다른 함수로 정의될 수 있습니다 한 함수는 다른 함수를 반환할 수 있습니다 함수를 매개변수로 전달할 수 있습니다 그다음 데코레이터가 무엇인지 설명하기 시작하세요: 사실 데코레이터는 캡슐레이터로, 원본 함수를 수정하지 않고 실행 전후에 다른 코드를 실행할 수 있게 해줍니다. 간단한 데코레이터 프로토타입은 손으로 구현한 뒤, 이어서 파이썬으로 데코레이터 문법을 도입합니다. 마지막으로, 장식자의 고급 용도, 예를 들어 장식자에게 매개변수를 전달하는 방법도 나열되어 있습니다. 전체 답변을 읽으면 데코레이터에 대해 더 깊이 이해하게 되고, 그를 이해하는 과정에서 어떤 사고방식을 쓰는지 알 수 있을 것입니다. 이렇게 생각하는 길을 따라가면 직접 인테리어 디자이너를 어떻게 활용할지 알 수 있습니다. 가능한 사각지대 질문이 없을 때는 가끔 stackoverflow를 방문해 투표가 더 많은 질문을 살펴보고, 다른 사람들이 답변한 내용을 확인할 수도 있습니다. 이 방대한 지식 기반 안에서 당신은 아마도 인지적 맹점들을 발견하고, 한 번도 주목하지 않았던 콘텐츠를 발견하게 될 것입니다. 다음과 같은 흥미로운 질문들을 발견했습니다: Python을 사용해 색상으로 터미널에서 인쇄할 수 있나요? 파이썬에서 메타클래스란 무엇인가요? Vim에서 가장 생산적인 단축키는 무엇인가요? 자주 참고할 수 있도록 고품질 파이썬 질문 목록을 여기 정리해 두었습니다. 우리가 너무 늦게 만난 게 후회돼 그렇다면 StackOverflow를 찾는 방법은 두 가지 제안입니다: 문제를 영어로 정확히 설명하세요 구글링해 보세요 기술적인 문제를 처음 겪는 사람이 아니라면, StackOverflow에서도 비슷하거나 비슷한 문제를 발견할 가능성이 큽니다. 곧 만나서 Stackoverflow에 일찍 반하면, 삶이 매우 편안하다는 것을 알게 될 것입니다.
|