종이에 문제 해결 방법을 쓰십니까? [닫은] 종이 방법을 사용할 때 매우 효율적이라는

저는 신입생 컴퓨터 과학 학생이며 방금 파이썬으로 실제 프로젝트를 시작했습니다. 교수님이 수업에서 제안한 펜과 종이 방법을 사용할 때 매우 효율적이라는 것을 알았습니다. 그러나 문제를 적어서 종이에 알고리즘을 사용할 수 없을 때 나는 정말 느립니다. 실험실에서는 항상 과제를 기숙사로 다시 가져 가야합니다. 내가 거기에 도착하고 그것을 쓰면 나는 5 분 안에 전체 수업에 걸린 문제를 해결한다.

어쩌면 사람들이 실험실을 해결하기 전에 스트레스를 받기 때문일 수도 있습니다. 아니면 펜과 종이 방법 일 수도 있습니다.

나는 포럼을 탐색하고 누군가가 당신의 프로그램을 종이에 작성해야한다면 프로그래머가되어서는 안된다고 썼습니다. 실제 코드를 입력하기 전에 프로그램이 수행하는 작업을 확인하고 그 과정을 추적 할 때 훨씬 나아지기 때문에 정말 걱정입니다. 내가 뭔가 잘못하고 있습니까?

편집 : 명확하지 않아 죄송하지만 종이에 글을 쓸 때 실제 코드가 아닌 문제 해결 방법 (예 : 예제 작성, 값으로 테이블 만들기 등)을 의미했습니다. 나는 단지 아이디어를 얻기 위해 종이를 사용합니다.



답변

종이에 알고리즘을 먼저 적용하는 데 아무런 문제가 없습니다. 일상적인 코딩에는 그다지 중요하지 않지만,보다 복잡한 알고리즘의 경우 전문 프로그래머는 항상 종이나 화이트 보드에서 처리합니다. 학생에게는 모든 프로그램이 복잡합니다.

그러나 컴퓨터에서 알고리즘을 더 잘 설계하려면 연습 할 수있는 몇 가지 기술이 있습니다. 코드를 작성하는 것부터 시작하지 말고 종이에 주석과 같은 것을 작성하고 실제 코드 나 더 자세한 주석을 하나씩 확장하십시오.

예를 들어, 연결된 목록의 중간에서 요소를 삭제하는 경우 다음과 같이 시작할 수 있습니다.

// find the element
// point the previous element to the next element
//    How do I get a pointer to the previous element?
//        doubly-linked list?
//        another find?
//        keep track during the first find?
// delete the element

그런 다음 // find the element의사 코드가 더 많은 함수로 대체 하고 완전한 솔루션이 나올 때까지 계속 진행할 수 있습니다. 코드를 선형 방식으로 작성해야한다고 생각하지 마십시오.


답변

해봐! 우리가 생각 하고 솔루션을 설계 하는 것을 부르면 코드를 발파하는 것보다 프로세스가 훨씬 빠릅니다.

사람들은 자신 의 행동 방식이 더 좋다고 생각하고 시끄러운 사람들이 우리에게 말하기 를 좋아합니다. 그러나 모든 사람의 능력과 기술 혼합은 다릅니다. 그래서 당신을 위해 일하는 것을하십시오. 연습을하면서 머리에서 더 많은 디자인 작업을 수행하고 더 큰 문제에 종이를 사용할 것입니다.

주의해야 할 점은 시험에서 어떤 형태를 취하는 지입니다. 그들은 종이 위에 있습니까, 아니면 컴퓨터 기반입니까? 그들이 종이를 기반으로한다면, 당신의 길은 당신에게 유리할 것입니다. 그것들이 컴퓨터 기반이라면, 그것도 괜찮습니다 : 종이에 디자인을 한 다음 코드를 작성하십시오. 가장 잘 작동하는 것!


답변

종이에 제도 코드 (의사 또는 기타)가 본질적으로 잘못되었다고 생각하지 않습니다. 화이트 보드에 작성하는 것과 실제로 다르지 않습니다. 많은 사람들이 문제를 해결하는 방법을 논의 할 때 그렇게합니다.

비 CS 수업에 대한 수필 초안을 종이에 먼저 쓰고 나서 타이핑합니까? 사실, 나는 몇 년 전에도 여전히 대학생 이었지만 신입생이 지난 후에는 초안 작성이 훨씬 쉬워지고 동일한 아이디어가 적용되기 때문에 모든 초안을 화면에 쓰도록 강요했습니다. 코드 작성

Word와 같은 텍스트 편집기에 있더라도 알고리즘을 입력하는 것이 좋습니다. 더 많이할수록 종이와 펜에 의존하지 않는 편이 더 편합니다. 그리고 타이핑 기술이 다소 부족하여 실제로 좌절의 근원이라면 타이핑 코스를 수강하십시오! 미래의 경력을 위해 최선을 다할 것입니다.


답변

나는 실제 코드 를 종이에 넣지 않지만 사소한 것이 없으면 거의 항상 화이트 보드 또는 노트북에서 시작합니다. 나는 보통 스케치합니다.

  • 알고리즘 / 프로세스 / 제어 흐름
  • 데이터 구조
  • 관계
  • 구성 요소 (이 문제를 어떻게 분해합니까)

일반적으로 스케치, 의사 코드 및 영어의 조합입니다.

이렇게하면 코딩을 시작할 때 시각화하기가 더 쉽다는 것을 알았습니다. 또한 코드를 시작 하기 전에 결함이 발견 되어 끊임없는 스크롤과 창 호핑 대신 내 앞에있는 모든 것을 볼 수 있습니다. 뿐만 아니라, 일단 작성된 후에는 다른 작업을 수행 할 때 내 마음 뒤에 물건이 형성되도록 할 수 있습니다. 또한 비선형 방식으로 작업하여 아이디어가 나에게 닿을 때 종이에 아이디어를 전달한 다음 필요한 지점에 도달하면 아이디어를 다시 찾을 수 있습니다.

종이에 무언가를 투입하는 것은 기억력 유지에 큰 도움이됩니다. Field Notes 브랜드 노트북 의 태그 라인 은 다음과 같습니다.

나는 그것을 기억하기 위해 그것을 쓰지 않고 나중에 그것을 기억하기 위해 그것을 쓰고 있습니다.

종이에 물건을 적는 것에 더 집중된 접근법을 취한 후, 잠시 후에 휴대 전화에서 ToDo 앱에 항목을 작성하더라도 전자 메모를 작성하는 것보다 생각이 머리에 훨씬 더 잘 들어 맞는 것을 발견했습니다. IOW, 종이 / 화이트 보드에 코딩을 계획하면 아이디어가 더 좋아집니다.

또한 내가 작성한 것을 문서화 할 때 편리한 참조 기능을 제공합니다.


답변

문제를 해결하고 솔루션을 구현하는 코드를 작성하는 것은 서로 다른 두 가지 활동입니다.

언어에 익숙하지 않다면 코드 자체에 많은 시간을 할애하지만 좋은 솔루션을 찾는 데 충분하지 않습니다. 종이, 화이트 보드 또는 천장에서 시작하는 것이 그와 관련하여 도움이된다면, 반드시 그렇게하십시오.

(개인적으로, 나는 내 마음에 솔루션을 구축하려고 노력하면서 컴퓨터에서 내리고 서클을 돌아 다니는 것을 발견했다)


답변

당신은 에이스 인터뷰를 할 것입니다! 종이나 화이트 보드에 코드를 작성하게합니다. 나는 정반대입니다. 펜으로 괄호를 쓰거나 잘라내어 붙여 넣기를 시도하는 것은 너무 지루합니다!

아빠는 COBOL을 프로그래밍 할 때 많은 종이를 사용했습니다. 나는 그것이 당신의 사고 방식 일 뿐이라고 생각합니다.


답변

우리는 The Basics of Programming이라는 두 학기 수업을 가졌습니다. 학기 중반 시험과 시험은 모두 종이로 진행되었습니다. 컴파일 오류가 발생하면 심각한 점수를 잃게됩니다. 거대한 컴파일 오류가 발생하면 실패한 것입니다. 그러나 우리가 코드를 살펴보고 비교적 짧은 시간에 버그가있는 줄을 찾을 수있는 능력을 개발했다고 생각합니다.