2015년 8월 10일 월요일

코딩단의 쿠키 - 공부도 요령이지!




새로운 공부를 하는 데 있어서 내가 중요하게 생각하는게 몇 가지가 있다.

* 우선 내가 아는 것과 연결시키려고 애쓰지 않는다. 

새로운 언어나 기술을 공부하다보면 유독 기존의 어떤 기술과 비교하는 경우가 많은데, 이 방법은 처음 접하는 사람들에게는 좋을수 있지만, 제대로 공부하는데에는 방해가 된다.

오히려 새로 배우는 것이 전혀 다른 내용이라고 생각하고, 접근하다가 기존의 기술과 통하는 접점을 찾는 것이 더 즐거운 일이 되는것 같다.


예를 들어 C언어의 포인터와 Java의 레퍼런스는 분면 거의 유사한 개념이지만, 처음부터 Java의 레퍼런스를 포인터로만 본다면 십중팔구 혼란스러운 부분이 생길 수 있다.

반면에 포인터와 별개로 레퍼런스 개념을 보다보면 결국 두 언어 모두 포인터를 사용하는 언어라는 사실을 느낄 수 있는 것과 같다.




물론 이렇게 되기 위해서는 다른 방식보다 약간의 인내와 노력이 더 필요하지만, 나중에 여러 기술을 가로지르는 공통의 '원리'를 깨달을 수 있기 때문에 발전하는 데 있어서 중요한 추진력이 되는 것 같다.




* 눈에 보이는 결과가 중요하다. 

사람이란 감정의 동물이다. 아무리 좋은 기술이라고 해도 자신이 만들 수 있는 결과가 없다면 공허하고, 지치게 마련이다.

프로그래밍을 처음 했을 때 'Hello World'에 감동했던 그 순간을 기억해야 한다. 작지만 한 발짝 앞으로 나가는 느낌. 그 느낌을 지속적으로 느끼는 일이야말로 지치지 않는 힘이 된다.


* 따라할 때는 철저하게 따라하라. 

가끔 라이브러리나 프레임워크를 이용하는 코드를 만들었는데 제대로 실행되지 않는다고 투덜되는 사람들의 코드를 보면, 서둘러 자신이 원하는 결과를 보기 위해서 코드를 마음대로 고쳐서 사용하는 경우가 많다.

처음 해보는 기술이라면 반드시 자료와 동일한 코드를 작성하는 것이 좋다. 이 작업이 시간이 더 걸릴것처럼 보이지만, 실제로는 정반대인 경우가 많다.

돌아가는 모습을 확인해야 나중에 어디를 수정해서 사용할 수 있는지 판단할 수 있기 때문에, 자신이 잘 아는 분야가 아니라면 철저하게 자료의 코드를 그대로 작성하는 것이 좋다.


* 개발도 과정이 필요하다. 

어떤 기술을 이용해서 개발하는 데 있어서 단계를 미리 결정하는 것은 중요하다. 예를 들어 구구단을 만들 때에도 처음부터 2중루프를 돌리면 배우는 사람들은 이해하기 힘들수 밖에 없다.

처음에는 단일 루프로 번호가 바뀌는 것을 보여주고, 그 다음에 다시 변수를 하나 추가하고, 그 다음에 그 변수에 루프를 적용하는 등의 작지만 단계를 가지는 형태의 개발이 중요하다.

잘하는 개발자와 못하는 개발자들을 보면 자신만의 이러한 단계를 빨리 수립하는 차이가 있다. 잘하는 개발자들을 보면 자신이 만들어서 확인하려는 목표가 확실하다.




댓글 없음:

댓글 쓰기