인턴쉽 프로그램에 의해 저희 팀에 인턴사원 한 명이 있습니다. 이런 저런 얘기를 하다가, 정리를 한 번 하는 것도 좋을 것 같아서, 생각나는대로 써봅니다.

마우스보다는 키보드를 사용해보십시오

늘 사용하던 환경이 달라 보이며, 그런 환경에서도 동작하는 UI를 느껴보십시오. 유용한 프로그래밍 개념은 간단한 유틸리티로 작성되는 경우가 많고, 화려한 UI가 없는 경우가 대부분입니다. 그래픽 인터페이스는 사람을 피곤하게 만들어 계속 쉬고 싶게 합니다.

컴파일러나 프로그래밍 도구의 여러 옵션에 관심을 가지십시오

이 옵션들을 모두 이해할때까지 옵션이 적용될 상황을 만들어 보십시오. 그 옵션들이 왜 필요하게 되었는지 시간을 내어 검색해보면, 생각지도 못했던 개념들과 연결되어 있을 것입니다.

상상하는 프로그램의 흐름을 디버거를 이용하여 눈으로 확인하십시오

디버거는 당신의 친구입니다. 모든 프로그래밍환경은 디버거가 존재합니다. 이 디버거를 하나둘씩 익히면서, 내가 작성한 프로그램이 실제 잘 동작하고 있는지 슬로 모션으로 확인하는 것은 정말 중요합니다. 디버거가 뽑아내는 알 수 없는 값들은 마치 살아 있는 심장 소리를 청진기로 듣는 것과 같습니다.

사용하는 디버거의 원리를 이해하십시오

디버거는 개발자의 숨결이 녹아든 비밀도구입니다. 디버거야 말로, 시스템을 창조한 사람만이 만들어 낼 수 있는, 시스템을 완벽하게 이해한 사람만이 만들어 낼 수 있는 도구입니다. 이 도구를 이해한다는 것은 시스템의 일부가 되는 과정입니다.

하나를 깊게 팔 때, 관련된 옆동네 지식을 소홀히 하면 파내려 간 만큼의 벽을 쌓는 것입니다

지식은 연결되어 있지 않은 것이 없습니다. 될 수 있으면, 스쳐지나가는 정도라 할 지라도, 다른 분야의 같은 지식들이 무엇이 있는지 인사라도 하는 것이 좋습니다.

가장 궁극적인 로망은 컴파일되어 나온 바이너리를 이해하는 것입니다

이 바이너리의 비밀을 모조리 이해할때 파란하늘을 비로소 볼 수 있습니다. 어떻게 이 녀석이 살아 움직이게되는지 그것과 연관되어 있는 모든 것을 이해하는 것이 궁극적으로 소스를 작성하는 것의 종착역입니다.

화이삼..!
신고
  1. 은영 2008.04.02 10:54 신고

    차장님.. 글 넘 잘 읽었어요..ㅠㅠ
    항상 좋은 얘기 많이해주시고 격려해 주셔서 너무 감사합니다..
    차장님~~감동감동..ㅠㅠ

    지금은 심각하게 -_- 부족하지만,
    작은 것부터 열심히해서 나중에 차장님처럼 될래요 훗 ^.^/

    화이삼!! 화이삼 !! ㅋㅋ
    좋은 하루 보내세요 ~~ ^^

    • 최호진 2008.04.02 13:07 신고

      제목을 좀더 도발적으로 지을라다가... 쫌 참았어요

  2. 미유 2008.04.03 00:07 신고

    마우스보다는 키보드를 써보란 말에 빨콩이에 손을 올려버린 1人.......

  3. daybreaker 2008.04.05 07:10 신고

    오 좋은 글이네 하면서 읽고 있다가 바이너리에서 흠좀무......;;;;
    아마도 토끼군이라면 가능할 겁니다. 그녀석이 VC++ 컴파일러 특징 파악한답시고 간단한 코드들 컴파일해서 디스어셈블하고 놀던 걸 본 기억이...-_-;

  4. nthroot 2008.04.12 20:40 신고

    가끔은 내가 사람인지 디버거인지 구분이 안될때가 있어요..
    날씨가 더워지고 있어요~

  5. newschool 2008.04.17 16:25 신고

    Master~~~~ 퀴즈 정말 킹왕짱이세요. 감탄했습니다.

  6. whiterock 2008.04.28 17:10 신고

    프로그래머의 길은 멀고도 험하네요...아직도 멀었네요..ㅎㅎㅎ

  7. osten 2008.04.29 20:36 신고

    전 아직도 디버그 할때 마다 기능이라던가 옵션을 잘활용 못해서; 할때마다 다른분들에게 물어가면서 해서 민폐를 끼치고 있죠; 빨리 능숙해져야 제대로 먹고 살텐데 배울때 아예 디버거로 작업을 한 적이 없어서 정말 주변에 민폐 중입니다;

+ Recent posts