12 Rules to Learn to Code
by Angela Yu
나는 대부분의 프로그래밍 튜토리얼들이 쓰여진 방법이 가진 문제점을 알고 있다.
아래의 "이것이 당신이 올빼미를 그릴 수 있는 방법입니다." 와 같은 튜토리얼들이 너무나 많다.
마치 프로그래머가 좋은 의도를 가지고 당신이 어떻게 모든 것을 해야 하는지 단계적으로 보여주는 것과 같다. 그러나 어느 시점에 그는 완수할 수 없는 임무에 승선한 것을 깨닫고 포기한다. 나는 저자가 고통스러울만큼 어려운 단계의 디테일을 시작으로, 중간에 "이제 클라우드 데이터베이스를 설정하기만 하면 됩니다."며 되돌아가는 튜토리얼을 본 적이 있다. 초보자를 위한 튜토리얼이니 참고해라!
이건 여러 문제들을 야기한다. 가장 흔한 문제는 학생이 튜토리얼의 코드를 그대로 베끼고 그 코드가 무엇을 하는지 어떠한 것도 알지 못한다는 것이다. JSON 을 파싱한 후 왜 추가 행을 덧붙이는가? 왜 이 딕셔너리를 이전에 만든 것과 다르게 만들고 있는가?
이런 유형의 튜토리얼은 "Flappy Bird" 나 "Candy Crush" 를 어떻게 만드는지 가르쳐준다고 약속하기 때문에, 이런 유형의 튜토리얼에 무릎을 꿇는 것은 굉장히 쉽다. 그러나 이와 같은 방법의 3분의 2에서는 여러분이 입력하는 코드는 말이 되지 않고 당신은 화면에 나타난 빨간 줄들만을 바라보기 시작할 것이다. 버그, 그것도 많은 양의 버그 말이다. 왜 이런 것일까? 전혀 모르고, 아무것도 동작하지 않는다. 마지막 남은 3시간은 코드를 복사하는 데 쓰이고 당신은 코딩이 짜증난다는 것 말고는 아무것도 배우지 못한다.
이런 함정에 빠지지 말라. 당신이 단 세 줄만으로 초보자에서 숙련자로 건너뛰고, "간단히" 라는 단어를 너무 자유롭게 남용하거나 코드에 대해 아무런 설명도 해 주지 않는 튜토리얼을 보게 된다면, 당장 멈추고 그 튜토리얼을 떠나라.
바다에는 수많은 물고기가 있다.
때때로, 저자는 그들이 뭘 하고 있는지 설명하기 위해 노력할 것이다. 그러나 당신이 여전히 그들이 하는 말을 알아듣지 못한다면 당신은 프로그래밍 실력을 올려주지 못할 숙련된 튜토리얼을 보고 있는 것이다. 무언가 대단한 것을 만들고 싶은 유혹이 들 수 있다. 특히 블로그가 누구나 할 수 있는 일이라고 약속할 때 말이다. 그러나 당신이 무슨 일이 일어나는지 알지 못한다면, 더 나은 기반을 구축함으로써 더 나은 도움을 받을 수도 있는 것이다.
코딩을 배우는 데 있어서 핵심은 램핑(경사로)에 관한 것이다. 당신은 계속해서 뻗어나가고, 지식이 이전의 지식 위에 구축되기를 원한다. 경사가 너무 가파르다면, 당신은 실패할 것이다. 경사가 너무 완만하다면, 지루함을 느낄 것이다. 알맞는 경사도는 사람마다 다르다. 이게 우리가 학생들이 우리의 튜토리얼에 자유롭게 속도 변경 기능을 사용하도록 권장하는 이유이다. 이 방법으로 당신은 개념에 친숙하다면 2배 빠르게, 개념에 낯설고 이해하고 흡수할 시간이 필요하다면 절반 느린 속도로 들을 수 있다.