본문 바로가기

독서/프로그래밍

나는~! 누구? '나는 프로그래머다.'

사용자 삽입 이미지 사용자 삽입 이미지
사용자 삽입 이미지



나는 프로그래머다.


나는 왜 프로그래머가 되었을까?

내가 선택할 수 있었던 다른 많은 직업들도 있는데, 왜 하필 프로그래머일까?

확실히(?) 돈은 많이 못 벌고, 야근은 밥 먹듯이 하며, 나이가 들어도 공부를 계속 해야 된다.

그러나 '프로그래머'라는 직함을 가지고 일하면서, 나의 지치지 않는 열정과 꿈을 확인할 수 있었다.

다른 일을 하면서는 무엇인가 부족했다. 나는 목 말라했었다.

나는 원래(?) 돈에 그다지 욕심이 없으며, 프로그래밍 공부는 그 자체가 나에게는 하나의 놀이이다.

하지만 시간이 지나면서 나는 조금씩 불안했다.

지금 막 타오른 열정이 언젠가는 꺼질 것 같았다.

내가 할 수 있는 많은 일 중에 '프로그래머'라는 길을 정했는데 과연 옳은 선택인지 불안했다.

프로그래머로 직업을 정한 것을 아주 가끔(!) 후회도 했다.

역시 돈은 좋은 것(!)이고, 나이가 들어서도 계속 공부가 될지 의문도 들었다...

사실 이 책의 제목을 처음 보았을 때 나는 그 날 먹은 점심을 토할 것 같은 표정을 지었다.

왜냐하면 이 책의 머리말에 나오듯이 자기 생각이 강해서 다른 사람의 의견에 쉽게 수긍하지 않는 것은

'커피를 많이 마시는 것'만큼이나 프로그래머를 특징짓는 개성 중의 하나이기 때문이다.

그러나 이 책을 읽는 순간 그런 우려는 전부 우주 저 멀리 날아가 버렸다.

진짜 '열정'이 넘치는 7명의 프로그래머들의 이야기는 나에게 확신을 주었다.

만약 당신이 프로그래머라면 이 책은 당신의 일에 확신을 줄 것이다.

프로그래밍에 아름답게 미칠 당신을 상상하며....

- 2005. 03. 17. Jupi.



꽤 오래전에 '나는 프로그래머다'를 읽고 썼던 글이다... 내가 썼지만, 다시 읽어보니 영~~~~ 마음에 안 든다.

그래도 나름 그 때 기특했다고 생각한다.ㅋㅋ

'나는 프로그래머다.'라는 책을 최근에 들어 다시 읽어 보았다. 역시 나의 '열정'을 다시 불태워주는 책이다.^^

아참~! 이 자리를 빌어 별로 내키지는 않았는데, 이 책을 끝까지 강추해준 '꽃집총각'에게 감사의 말을 전하고 싶다.

그리고 다행히 나는 지금 출근한 이래 한번도 야근한 적이 없는 회사. 대우도 잘해주는 회사에 다니고 있다.

여전히 프로그래밍이라는 유희와 게임이라는 유희를 다 같이 즐기고 있다.


사실 오래전에 이 책에 대해 정리해 둔 적이 있다. 그 것을 조금 다듬어서 이 곳에 '기록'해 둘까 한다.

혹시 이 글을 읽는 분 중에 프로그래머가 아닌 분도 있을 것이다. 그렇더라도 제일 첫 챕터인 '임백준'씨의

글은 꼭 읽어보았으면 한다. 아마 '열정'이 불타오르는 분이라면 도움이 많이 될 것 이다.







아름다운 이름 - 프로그래머 : 임백준


1. 인생에 있어서 도전이란 결코 입맛에 딱 맞는 방식으로 찾아오지 않는다. 그것은 언제나

두 발을 전부 땅에서 떼서 허공에 몸을 완전히 맡겨야 하는 따라서 상당한 불편함과 두려움을

수반하는 방식으로 찾아온다.

(중략)

필요한 것은 앞뒤를 재고 따지는 '계산'이 아니라 최선을 다해서 허공에 몸을 맡기는 '용기'다.

때로는 그 것을 보고 사람들이 '무모하다','미련하다','철이 없다'라고 말하기도 할 것이다.

하지만 멋진 도전은 어느정도의 무모함을 동반하기 마련이다. '내가 이렇게 어려운 알고리즘을

이해할 수 있을까?', '이렇게 복잡한 프로그램을 만둘수 있을까?' 하며 스스로 위축되는 것이 아

니라 그 까짓 알고리즘보다 열 배, 백 배 크고, 복잡한 것도 만들 수 있다고, 믿어 버리는

'무모한' 용기가 필요한 것이다.


2. 한번 시작한 일은 혼신의 힘을 다해서 최선을 다하라는 것이다. 용기를 내서 몸을 허공에

던졌는데 그 다음 일을 수습할 수 없다면, 돌아오는 것은 '망신'과 '자신감의 상실'뿐이다.

중요한 것은 결과가 아니라 수습의 과정에서 최선을 다했는가 여부다. 최선을 다하지 못하고,

나태하거나 방심하여 실패를 한 사람은 스스로를 믿을 수 없게 되기 때문에 다시는 허공에

몸을 던지는 용기를 내지 못하게 된다.

내가 항상 도전하고, 항상 최선을 다하는 것은 물론 아니다. 때론 게으름을 부리고, 때론

넓은 길을 골라서 가려고 애쓴다. 하지만 젊을수록 그리고 창창한 미래가 앞에 놓여 있을수록,
 
'용기''최선을 다하는 자세'는 중요하다.



3. 프로그래밍은 예술이라는 것. 자신의 일을 사랑하는 것. 삶을 알려고 노력하라는 것.

아름답게 미치라는 것여러분이 세상에서 작성하게 될 최고의 알고리즘은 다른 것이 아니라

바로 여러분 자신의 인생이라는 것.


그리하여 자신의 몸을 허공에 던지기를 두려워하지 말라는 것이다.

- '나는 프로그래머다' 중 임백준




세상을 움직이는 것은 인간이다. - 임베디드 프로그래밍 : 유영창


학부 과정에서 전산관련 학문을 배우는 학생들에게 당부하고 싶은 말은 지금 배우고 있는

지식을 시대에 뒤떨어진 것이라 여기지 말라는 것이다. 당장 자바니 웹이니 하는 세상에서

사용되고 있는 지식은 현업에 종사하다 보면 필수적으로 배우게 된다.그러나 어느 정도 시간이

지나면 학부 과정에서 이론으로만 배웠던 지식들이 필요하고 그 때 왜 그런 내용을 배웠는가를

깨닫는 순간이 올 것이다. 그 때는 자신의 머리 속에 잠자던 지식들이 되살아나게 될 것이며, 그

지식들은 다른 관점에서 프로그래밍에 대한 생각을 하게 하는 원동력이 될 것이다. 경험적으로

다시 말하지만,

"절대로 학교에서 배운 지식은 죽은 지식이 아니다!" - 유영창


기계는 거짓말을 하지 않는다.

취중버그 : 술 먹고 프로그램을 작성시 생기는 버그, 보통 문법오류나는 정도의 사고, 소스파일 날리지만 않으면 괜찮음.

피로버그 : 가능성이 있는 오류지점에 막아야 할 방어코드를 나중에 해야지하고, 미루다가 발생(귀차니즘 버그)
나중에 미룬 일은 없어지는 것이 아니고, 결국 더 많은 시간을 요구하게 된다.

졸음버그 : 어디를 고쳤는지 기억이 안남. 어떤 소스에 사고를 쳤는지 모르므로, 프로그램은 폭탄과 같음. 언젠가는 터짐. 효과도 없는 밤샘작업X. 소스버전관리 철저히~!

복사버그 : 예전에 쓰던 소스를 복사한 후 수정하면서 발생. 미처 수정안 한 부분때문에 발생. 수정된 내용에 대한 기록을 수시로 하고, 모듈별로 관리.

자기모순 버그 : 자신이 작성한 프로그램소스가 절대로 틀리지 않았다고 생각하여 생기는 버그 -> 자만심.  실력에 관련없이 발생~!




IT의 최전방 - 기업전산실 : 김종호

이 책에 실린 다른 저자들의 글을 읽어보지는 못했지만, 그들도 시작을 하면서 혹독한

신고식을 겪었음이 틀림없다. 그런 어려운 신입 생활이 있었기에 오늘의 그들이 있지 않았겠는가?

이제 프로그래머의 길에 첫 발을 디디는 초보 프로그래머에게 한 마디 하고 싶다.

"처음의 고생을 불평하지 마라. 평생 밑천이 된다." - 김종호


프로그래머로서 '고객' - 불평하는 고객을 더 잘 모셔라.
1. 자신의 고객이 누구? 내부고객도 고객, 더 고객개념에 충실
2. 불평불만이 많은 고객 -> 좋은 관계 유지를 위해 불평불만 안 하는 고객보다 시스템에 더 도움이 됨
-> 시스템에 이로운 고객

'성당과 시장'
사용자들을 공동 개발자로 생각하면, 코드가 다른 어떤 방법보다도 빠른 속도로 개선되며 효율적으로 디버깅 할 수 있다.

(중략)

충분히 많은 베타테스터와 공동 개발자가 있으면, 거의 모든 문제들은 빨리 파악될 것이고, 쉽게 고치는 사람이

있기 마련이다. 덜 형식적으로 말하면, '보고 있는 분이 충분히 많으면, 찾지 못할 버그는 없다.' 나는 이 것을

'리누스의 법칙'이라고 부른다.

- '성당과 시장' 에릭 S 레이먼드



무결점에 도전하는 사람들 - 데이터아키텍트 : 이춘식

Know What : 뜨거움에 대해 진짜로 아는 것

Knowing about what : 그냥 지식으로만 아는 것 -> 시험시 고득점 But 실제 적용은 어려움

Knowing은 지식으로 알고 경험하여 마음까지 느껴져 그에 대해 행동으로 나올 수 있는 참 지식의 단계 -> 일단 내용에 대해서 Knowing about하시고, 실제로 일을 하시면서 Knowing하시는 내용을 정리 -> 참 지식으로 발전


사고의 전환점을 돌파하기 위해서는 자신을 규정하는 잘못된 자아관을 버려야 한다. '나는 여기까지가 한계야',

'저 부분은 다른 전문가가 하는 영역이야','내가 어떻게 저 영역까지'라고 생각하는 자아관을 버려야한다.

자꾸 자신의 능력을 스스로 규정하고, 발전의 가능성을 차단하게 되어 성장할 수밖에 없다.

-> 사고의 전환점은 적극적인 사고, 자신감


상대방과 대화에서 상대방의 이야기를 이해하고, 받아들일 준비가 된 상태(오픈 마인드)

자신만의 세계에 빠져 버리거나 폐쇄적인 사고에 묶여 허덕이게 되는 경우
-> 기술력만을 들어내는 폐쇄적인 마음
-> 특히 자신이 만든 프로그램에 대해 비판 또는 수정을 요구할 때