선물 – 스펜서 존슨

책장을 보다가 “선물”이란 책을 집어들고 다시 읽어보았다. 스펜서 존슨의 책은 읽다보면 그래 뭐 맞는 얘기이지 하고 수긍을 하게 되지만 막상 머리속으로만 이해를 하게 되고 실천에 옮기지는 못하는 것 같다. 오늘 따라 “선물” 에 나오는 여러 글귀가 가슴에 와 닿았다. 요즘 내 얘기를 하는 것 같은 느낌도 들고 해서 다시 한번 정리 겸 옮겨 본다.

세상에서 가장 소중한 선물
귀중한 시간을 사용하는 세가지 방법

현재 속에 살기
행복과 성공을 원한다면
바로 지금 일어나는 것에 집중하라
소명을 갖고 살면서
바로 지금 중요한 것에 관심을 쏟아라.

과거에서 배우기
과거보다 더 나은 현재를 원한다면
과거에 일어났던 일을 돌아보라.
그것에서 소중한 교훈을 배워라.
지금부터는 다르게 행동하라.

미래를 계획하기
현재보다 더 나은 미래를 원한다면
멋진 미래의 모습을 마음속으로 그려라.
그것이 실현되도록 계획을 세워라.
지금 계획을 행동으로 옮겨라.

컵라면을 못먹는 편의점 “김포공항 훼미리마트”

추석연휴 마지막 날 비행기를 타고 제주에서 서울로 올라왔다.  김포공항에 도착해보니 배도 출출하고 해서 컵라면이나 간단히 먹을 생각으로 편의점에 들어갔다. 추석동안 먹은 느끼한 음식들 때문에서라도 얼큰한 국물이 땡겨서.

근데 컵라면 진열대에 희한한 문구가 쓰여 있었다.

사용자 삽입 이미지


훼미리마트 매장(공항)내에서는 컵라면을 드실 수 없습니다. 컵라면은 판매용입니다.”
컵라면을 살 수는 있는데 먹을 수는 없다고 한다.  결국 컵라면을 못먹고, 옆 푸드코트에 가서 비싼 3,500원짜리 라면을 먹었다. 공항내 다른 음식점들을 보호하기 위해서 공항관리공단에서 이렇게 한것 같은데.. 너무 어처구니가 없다.

공항내 음식점이 일반 식당보다 가격이 턱없이 비싸다. 하지만 다른 대안이 없어서 이용할 수 밖에 없다. 편의점에서 천원정도면 먹을수 있는 컵라면도 공항내에서는 먹을 수 없다는 이유로 3,500원짜기 라면을 어쩔 수 없이 사서 먹어야 한다. 비싼 공항이용료까지 내면서 말이다.

더 나은 프로그래밍을 위한 제언

요즘 “대한민국 개발자 희망보고서”를 읽고 있다. 현장의 얘기가 체계적으로 정리된 느낌과 함께  평소에 알고 있으면서도 실천하지 못하는 부분에 대해 내 자신을 다시 한번 일깨워 주고 있다. 그 중 코딩에 관한 가장 기본적인 얘기가 있어서 인용한다.


더 나은 프로그래밍을 위한 제언


제발 줄 좀 맞추자
프로그래밍을 잘 하는 사람과 그렇지 못한 사람의 차이는 바로 줄 간격을 맞춰서 프로그램을 짜느냐에 달려 있다고 나는 과감히 주장한다. 왜냐하면 그 동안 수많은 개발자를 보아왔지만 줄을 제대로 맞추지 않고 프로그램을 제대로 짜는 사람은 본 적이 없기 때문이다. 보기 좋은 코드가 디버깅하기 좋다. 제발 기본에 먼저 충실하자. 알고리즘과 자료구조에 대한 이해는 기본이다. 그런 다음에 기교를 발휘해도 늦지 않는다.

백문이 불여일타
“프로그래머가 되는 가장 좋은 방법은 프로그램을 작성해보고, 다른 사람이 작성한 훌륭한 프로그램을 공부하는 것이다.”
훌륭한 작가 중에서 책을 많이 읽지 않은 사람을 보았는가? 마찬가지로 좋은 프로그램을 만들기 위해서는 좋은 프로그램을 많이 보아야 한다. 무에서 만들어지는 것은 아무것도 없다. 책에 있는 소스나 공개 소스를 스스로 분석해보자. 그러나 이보다 더 좋은 방법은 직접 짜보는 것이다. 직접 짜보는 것만큼 훌륭하게 배우는 방법은 없다.

선설계 후코딩
항상 프로그래밍을 하기 전에 선설계 후코딩하는 습관을 들여야 한다. 생각하고 계획하는 프로그래밍을 하라는 말이다. 프로그래밍을 하다가 막히는 부분에 가서야 생각하는 것은 좋지 않은 습관이다. 프로그래밍 시간이 배로들뿐더러 수정에 의해 또 다른 문제가 야기될 개연성이 크다. 계획을 하되 머리속으로만 하지 말고 문서로 작성하여 기억이 유실되지 않도록 해야 한다.

친절한 주석씨
주석은 습관이다. 주석은 타인에 대한 배려다. 친절한 프로그래머가 되는 지름길은 주석을 잘 다는 것이다. 시간이 날 때 주석을 다는 것이 아니다. 주석은 프로그래밍의 일부분이라는 인식을 갖고 실천해야 한다. 주석을 달지 않으면 본인도 시간이 지나면 잘 기억이 나지 않는다.

3종 언어 세트
나의 경험으로 볼 때 프로그래밍 언어는 최소한 3가지는 익혀야 한다. 가급적이면 소프트웨어 프레임워크에 맞는 언어를 각각 익히는 것이 좋다. Client/Server, .NET, J2EE 프레임워크에 맞는 Powerbuilder, Java, C#을 예로 들 수 있다. 그렇지만 이 세가지 중에서 반드시 자신의 전공부야는 있어야 한다. 하나의 언어를 배우더라도 다른 언어에서 금세 응용할 수 있도록 충분히 이해해야 한다.

나만의 테크노트
자신만의 노하우를 반드시 정리하라. 가장 큰 재산이 된다. 일전에 프로젝트를 하면서 나만의 테크노트를 한 권씩 만들어 정리한 적이 있었는데 매우 유용했다. 그렇게 습득한 지식은 책에도 잘 나와 있지 않는다. 기록을 하지 않고 다시 복기하려면 엄청한 시간과 노력이 또 다시 요구된다. 테크 노트를 정리하는 일은 시행착오를 줄일 수 있도록 해 줄 뿐만 아니라 전문가로 가는 노하우를 하나씩 쌓아가는 기쁨도 느끼게 된다. Taeyo ASP & .NET 웹사이트가 성장한 배경을 살펴보라. 내일 당장 그대만의  테크노트를 한 권 장만하라.

코딩이 뭐길래
프로그래머는 절대 코딩만 하는 사람이 아니라고 누차 강조했다. 코딩 지상주의를 절대 경계하라. 어느 정도 코딩 실력이 올라가면 데이터베이스, 아키텍쳐 등의 유사분야의 영역에 대한 지식을 넓혀라. 때론 일반적인 지식도 필요하다. 큰 그림을 그릴 수 있어야 한다. 설상 프로그래머로 자신의 경력개발경로를 설계한다 하더라도 다른 분야에 대한 학습은 꼭 필요하다.