태그 : 프로그래밍

당신을 프로그래밍 전문가로 만들어 주겠다

프로그래밍 책이나 개발 커뮤니티 절대 뒤질 필요 없습니다. 매뉴얼만 숙지하면 됩니다.

일단 프로그래밍 전문가가 되기 위해 배워야 할 언어들이 있습니다.

프로그래밍 언어로 절대로 Lua나 PHP를 이야기해서는 안됩니다. 이런 언어들을 꼽는 것은 다른 프로그래밍 전문가들에게 무시당할 수 있습니다. 제일 자유도 높은 언어는 어셈블러입니다. 언어 문법 안 배워도 괜찮습니다. 사용 분야 안 알아봐도 됩니다. 그저 진짜 초고수들은 코딩은 무조건 어셈블러로 한다는 사실 정도만 기억하면 됩니다.

진짜 코딩 한번 한적 없는 신참이라면 자바보다는 배우기 쉬운 D 추천드립니다. 좀더 색다른 언어로 시작하고 싶다면 Erlang으로 시작해야 합니다. 이도저도 다 싫으면 아직도 수요가 많은 코볼 정도 추천 드립니다.

웹 분야에서 쓸 언어를 찾는다면 펄을 타겟으로 잡고 코드 읽기 어렵다고 까대며 JSP를 추앙하십시오. 닷넷은 조금 애매한 위치군요. 루비 추천드립니다. 루비 온 레일즈 말고는 별로 안 쓰이는 것 같지만 상관 없습니다. 루비 추앙하십시오.

쓰기 편한 언어에 대해 이야기한답시고 베이직 운운하는건 너무 식상합니다. 무조건 스몰토크 찍으십시오. OOP 디자인패턴 XP 이야기하면 대부분 스몰토크가 최고라고 인정하게 됩니다. 거기에 C와 델파이 따위는 시대의 흐름을 타지 못한 대학 교수들이나 가르치는 언어라고 한마디 덧붙여 주시면 금상첨화입니다.

스크립트 언어에 대해 누가 묻는다면 VBScript, Javascript 이런 것들은 꼽지 마십시오. 대충 bash 정도가 좋습니다.

그 중에서 파이썬이 가장 좋습니다. 파이썬은 들여쓰기만 잘 해주면 된다는 것만 아시면 됩니다. 걍 댓글마다 파이썬 탭 들여쓰기 덜덜덜 하시면 됩니다.

대충 이 정도입니다...

아..그리고 마지막으로... 컴퓨터 잘 고치고 싶어서 프로그래밍에 관심 가지게 되었다고 절대 고백하지 마십시오. 캐무시 당합니다...


며칠 전에 보고 웃겨서 두드리다가 바빠서 내던져뒀었는데;
어차피 뻘글인데 신경 써서 작성하면 무엇하리, 라는 느낌이 들어 그냥 올려둬봅니다. (-_-)

by nvu | 2009/06/26 00:13 | 트랙백(1) | 핑백(2) | 덧글(13)

드리밍 인 코드

드리밍 인 코드

스콧 로젠버그 지음, 황대산 옮김 / 에이콘출판
나의 점수 : ★★★★

알파 버전을 공개합니다. 공개하겠습니다.
안되잖아. 어... 공개가 안돼. 공개시킬 수가 없어. 안돼.

요리사들도 훌륭하고, 모든 재료가 완벽한데도 절대 식사 시간까지 완성되지 않는 신기한 요리.
시간만 질질 끌다가 하루가 다 가고 야식 시간 즈음에 완성되어 나오면 맛이 없더라도 오오오 하고 찬사를 발할 수 밖에 없는 바로 그 요리. (물론 요리가 걸작이어서...가 아니라 어쨌거나 밥이 나왔다는 것이 너무 기뻐서-_-)

어째서 소프트웨어 개발팀이라는 주방에서는 언제나 그런 요리가 나오게 되는건지 궁금해 했던 날이 있었습니다.
우리는 그에 대한 대답으로 언제나 말하곤 했죠.

"아니 한참 소고기를 썰고 있는데,
지배인이 와서는 손님이 치킨 매니아라서 닭고기를 넣어야 한다는거야!
지배인이 저러는데 어쩔 수 없잖아?
그래서 지금 병아리 기르는 중이얌~
시장에선 닭을 안 팔더라궁. ㅠㅠ"

드리밍 인 코드는 챈들러라는 아웃룩 킬러(...를 노리는) 프로젝트가 진행되면서 발생한 여러가지 이슈들을 나름 시간 순으로 나열한, 연대기 같은 느낌의 책입니다.
연대기 '같은' 이라고 한 것은 연대기...이긴 한데 중간중간에 다른 업계 이야기도 나오고 소프트웨어 공학 전반에 걸친 이야기도 나오고, 하는 등의 두서 없는 전개가 이어지기 때문이죠.

지난 번의 '개떡'... 책도 그랬지만 이런 프로그래머의 에세이? 느낌의 개발론 류 책들은 어쩐지 챕터 서두는 간결한데 후반에는 주절대는 경향이 많은 것 같습니다. 그리고 이 책도 그 법칙에서 벗어나지 못하고 있다는 것은 좀 아쉬운 부분입니다. 공돌이 답게 요점만 간단히 적기 시작했는데 쓰고보니 원고량이 안되는거야, 그래서 유혹을 견디지 못하고 그만...!

내용 중간중간에 미주가 자주 붙어 있는데, 미주 가운데는 단순한 출처 만이 아닌 내용 자체를 부연 설명하는 경우도 꽤 있어서 미주 대신 각주로 달아주었더라면 더 읽기 좋았을텐데 하는(미주 표시 나올 때마다 책을 확 넘겼다 와야 한다-_-) 편집과 관련한 개인적인 유감(?)도 있었구요.

책 자체는 개발자들이 너무나도 공감할 만한, 그리고 위트 넘치는 내용과 문구로 가득하기 때문에, 그리고 번역도 깔끔하게 적당히 잘 된 덕분에 술술 넘어갑니다.

또 이 책의 저술 스타일도 마음에 드는데, 챈들러 프로젝트의 연대기가 철저한 3인칭 관찰자 시점에서 작성되었다는 부분입니다.
저자는 개인적으로 어떤 개발론을 지지한다는 것을 분명하게 표명하지 않고
그저 '이런 식으로 했더니 이렇게 망하고 저런 식으로 했더니 저렇게 망하더라. A는 이런 식이 좋다는 의견을, B는 이런 식이 좋다는 의견을 내놓았다.'라는 정도의 정리만 할 뿐이지,
'이렇게 해서 막장이 됐지만, 내 생각엔 이렇게 했더라면 잘 되지 않았을까 하는 아쉬움이...!?'
같은 종류의 의견까지는 제시하지는 않는 것이죠.

...그럴 의도는 아니었지만 아무리 생각해봐도 답이 안나와서 어쩔 수 없이 그랬을 수도 있지만. (-_-)

'난 이게 좋은거 같다,'하고 저자의 견해를 피력하는 여타의 개발서와는 달리, 그저 관찰자로서 개인적인 의견은 거의 밝히지 않는 형태로 내용을 평이하게 서술하는 효과로 인해, 독자가 독자 자신이 진행하고 있는 프로젝트를 투영시키면서 직접 생각해 볼 영역을 만들어줬다는 것이 너무나 마음에 듭니다.

그렇게 결코 성공했다, 고는 표현하기 힘든 챈들러 프로젝트의 삽질기를 쿠쿡 대면서 읽어가면서, 챈들러 프로젝트에 내가 진행하고 있는 프로젝트가 오버랩되면서 뜨끔 하는 느낌이 든다면 뭔가 일정이라든가 진행 방향 같은 것을 재정비해볼 수 있는 계기가 될 수도 있을테구요.

따라서 이미 아는 내용이겠지만 일반 개발자나 프로젝트 매니저들도 독파해 볼 만한 가치가 있다고 생각합니다, 아는 내용이 더 재밌으니까요.

왜 내가 만들라고 한 것이 이리도 지지부진한건지 궁금한 사장님들도 꼭 읽어보셔야 할 것 같아요.
사용된 용어도 대부분 잘 해설해주고 있는 편이고, 글의 난이도 또한 프로그래밍에 대해서 잘 모르더라도 이쪽 분야에 관심 있다면 그럭저럭 이해할 수 있는 수준이기 때문에, 불쌍한 개발자들을 이해하는데 약간이나마 도움이 되지 않을까나... 까나...


이 책에서 가르쳐주는 가장 중요한 사실은,
이 프로젝트를 진행하던 개발자들 대부분이 MS나 넷스케이프, 같은 곳에서 일한 경험이 있는 쟁쟁한 실력자들이었는데도
수시로 밥상이 뒤집어졌고 그에 따라 모두 일정을 못 맞추면서 허공에 삽질을 해대곤 했다는 것이죠.

따라서 그런 '쟁쟁한 실력자도 아닌 내가 일정을 못 맞추는 것 역시
당연한 일'이라는 것입니다.
아시겠죠 사장님? (쭃겨난다)


그래서... 쟁쟁한 실력자들이 뭉쳐 만든, 엄청난 개발기간이 소요된, 챈들러 프로젝트는 얼마나 잘 되었을까?
책을 읽고서 궁금해졌어요. 이 책 쓴 저자 아저씨도 잘 됐는지 모르겠으니 궁금하면 깔아 써보라고 했거든요.
어쩐지 깔아서 써봤어요.
뭐야 닭고기 요리라고 적어놓고 달걀 후라이를 내놨쟌!
(까지는 아니었지만서도 역시나~ 라는 느낌 -.-)

by nvu | 2009/04/16 02:38 | 트랙백(1) | 덧글(0)

Short Coding - 알고리즘 트레이닝으로 배우는 코드 단축기법

Short Coding - 알고리즘 트레이닝으로 배우는 코드 단축기법
Ozy 지음, 서수환 옮김/한빛미디어

전혀 관심 밖에 있었던 책인데, 무심코 감수자로서 고명하신 변태 프로그래머 '야/네/우/라/오' 선생님의 이름이 박혀 있는 것에 급뿜고서 보자마자 집어든 책. (야네우라오 선생님의 변태로서의 고명하심은 Windows プロフェッショナル ゲームプログラミング 책에 대해 이야기할 때 적었으니 패스)

아무튼! 변태 프로그래머 야네우라오 선생님이 감수한 책이라면, 감수했을 이유가 있다!
책의 내용이 분명 충분히 변태적일 것이다!!

그런 쪽의 변태적인 책은 아니었지만, 변태적이리라 기대한 책의 내용은 나름 기대에 부응했는데,
한빛미디어 측에서 설명하듯이, 이 책은 흡사 '코드 골프'로 대변되는, 어떻게 해서든 바이트수를 최대한 줄인 코드를 만드는 것이 목적이었기 때문이죠.

그렇기에 부제와 귀여운 표지에 낚여서, '이 책으로 알고리즘을 잘 익혀서 버벅대던 코드 좀 개선시키고 간결하고 깔끔한 코딩해야지~' 하는 마음으로 책을 산 사람은 좀 당혹해할런지도 모르겠습니다.

그런데 실제로도 책의 제목 때문에 그렇게 오해해서 읽는 사람들이 적지 않을 것 같다는게 좀 걱정인데,
이를테면 한빛미디어 쪽 책을 PR 하기 위한 연재물인 '전문가 Zoom In 2008년 7월자'로 적혀 있는 이 책에 대한 이야기를 봐도 그런 걱정이 기우는 아니...라는 느낌이 듭니다. 인용해볼게요.

커스터마이징을 제공하는 제품을 출시하는 경우 필요 이상의 기능도 고객의 요구에 따라서 추가되는 경우가 발생한다. 그에 따라 증가하는 코드의 양과 프로그램의 무게가 주는 해로움은 기능을 추가한 시점에서는 발견되지 않는 경우가 있다. 마치 몸안에서 자라나는 암세포 만큼 쌓이고쌓여서 결국엔 심각한 장애를 발생시키곤 했다. Short Coding은 건강한 코드를 생산하는 작업이다. 코드량을 줄여 건강하고 날씬한 코드를 만드는 일이다. 생성된 코드를 다듬고 다듬어 효율적이면서 직관적인 알고리즘을 만들어 내는 작업이니 어찌보면 리팩토링의 범주에도 들지 않겠는가? 저자는 실무와 동떨어져 있다고 얘기하지만 가독성을 심하게 해치지 않는 경우에 한해서는 제한적으로 적용함에 있어서 별 문제가 없을 듯 하다. 잊지 말아야 할 것은 코드의 가독성과 효율의 중심을 잘 잡는 것과 사용되는 언어의 특성을 이해해야 한다는 점이다. 세상에서 제일 짧고 멋진 프로그램을 만들어 보고 싶은가? 지금 도전하라. Short Coding과 함께!
하아아?

아니 책은 읽어 보셨는지요?

아저씨는 이 책에 박혀 있는 코드들을 보면서 건강하고 날씬한 코드라고 느끼셨나요?
저 딴 코드야 말로 구석에 박아놓으면 정말 해로움이 눈에 띄지 않는다구!
이게 뭔 코드야 라고 심각하게 고민하던 다른 사람이 코드 고치다가 결국엔 훨씬 더 심각한 장애를 발생시킨다구!

아니면 설마 처음엔 '아니 이런 괴이한 내용의 책을 한국에 수입해 출판하는 목적이 뭔가요 접접, 독도는 우리땅 대한민국만세 ...-_-;;', 하고 적으셨었는데 '그렇게 하면 책이 안팔리자나요 책 좀 팔리는 멘트를 적어주세요'하고 징징거리는 담당자의 성화에 못 이겨 나름 소설을 적으신... 것일지도 모르겠다(-_-);;; 농담입니다, 화내지 마세요. ^ㅅ^;;

그나마 누군가의 표현처럼 파블로프의 개들처럼 프로그래머들은 심플하면서도 효율 좋은 것에 침을 흘리며 달려드는 경향이 있다...는 얘기대로, 가장 끝 문장의 세상에서 제일 짧고 멋진 프로그램을 만들어보고 싶은가?
라는 프로그래머들을 도발하는 끝맺음은 확실히 '어머 이건 꼭 사야 해'하는 느낌을 가져다 주긴 하지만, 이 책을 표현하는데에 있어서는 저런 서평은 맞지 않다고 봐요... ... 아, 아닌가, 하긴 어쩐지 읽기 힘들면서도 짧은 코드 보면 뭔가 괜히 멋져보이고 반할 것 같고... 나도 한번 쯤 저런 코드로 열심히 달려서 나 없으면 프로젝트 디버깅 못하게 만들고 싶기도 하고 할 때가 ...

잘못했습니다.


어쨌든 단도직입적으로 제가 이 책을 평해드리겠습니다.

이 책은

변태책입니다.

소스 코드양을 변태적으로 1바이트라도 더 압축하는데 목숨을 건

변태책입니다.

컴파일러들의 특성들을 교묘히 해킹하는

변태책입니다.

얼마나 변태적이냐면 감수자조차

변태입니다.

감수자랑 친한, 쓴 사람도

변태입니다.


혹시 주변에 이걸로 알고리즘 트레이닝을 해봐야지, 하는 사람이 있다면 뒷통수를 강하게 후려쳐주세요.
혹시 주변에 이걸로 알고리즘 트레이닝에 성공했어, 하는 사람이 있다면 주변에 이력서 돌리세요. 이 사람 뽑지 말라고... -_-;;
혹시 직장에서 이 책을 읽고서, '나 오늘부터 건강하고 날씬한 코드 짜기로 했어 데헷~ ^-^*' 이라고 말하는 직장 동료가 있다면 바로 키보드를 빼앗고 해운대 앞바다로 피서를 보내주세요. -_- (더 심한 표현을 쓰고 싶었지만 참는다)

이렇게나 적었음에도 불구하고 이 책으로 '알고리즘 트레이닝'을 하겠다고 하신다면 당신은 변태변태 변태, 라고 얘기할 수 밖에 없어요 ㅜㅜ

그렇다면! 이 책이 코드 짧게 쓰기 변태가 아니고서야 일독의 가치조차 없는 책이냐!
책을 본 순간 '어휴 변태 냄새 나요 저리 치우세요', 라고 단정적으로 이야기할 수 있는 책이냐!
하면 꼭 그런 것만은 아닙니다.

일단 컴파일러들이나 환경에 따른 편법들 같은 잡스러운 자료들로부터, 평소의 흔히 보던 프로그래밍 스타일과 전혀 다른 느낌의 코드(이것도 변태 코드)들을 책 전반에 걸쳐서 두루 볼 수 있다는 것, 그리고 평범한 코드가 어떻게 그런 변태 코드로 바뀌어나갈 수 있는지 함께 추리할 수 있다는 면이 참신합니다. 설명도 C 계열 언어를 어느 정도 알고 있다면 쉽게 이해할 수 있도록 쓰여져 있구요.
평소에 그렇게나 아름답던 나비가 어떻게 이렇게나 징그러운 애벌레로 변태하는지 궁금해하셨던 적 없으신지요? 이 책을 보세요!

초반에 너무 변태책이라는 것을 강조했지만, 한빛미디어 쪽의 책을 PR하는 수단이 너무 마음에 안들어서(...) 그냥 그랬던 것이고, (아니 코드 변태들을 위한 책이라고 하면 어디가 덧나나요... 덧나긴 하겠다-_-;;;) 그저 프로그래밍의 재미를 만끽하게 해줄 수 있다는 면에서, 프로그래밍에 어느정도 익숙한 사람이라면 지적 유희용, 발상을 전환시키는 비타민 같은 느낌으로 훑어볼 수 있는 책입니다.

처음엔 이게 뭥미 하는 느낌으로 다가오는 코드들을 보고서 '어휴 변태 냄새 ㅉㅉㅉ'하다가도, 개중에 나오는 여러가지 기법들과 해설에 감탄하며 '이런 편법을 쓰다니 역시 변태'라고 하다가, 마침내 '우왕ㅋ 이거 쓴 사람 변태지만 진짜 천잰데?! 이딴 천재 변태를 봤나...!!'
라고 외치게 만드는 멋진 변태 책, Short Coding이었습니다.


어휴 쓰고보니 또 한빛미디어 책이야ㅜㅜ


PS: 내용은 적당히 가려 읽어주세요.

by nvu | 2008/08/05 13:40 | 트랙백 | 덧글(9)

◀ 이전 페이지          다음 페이지 ▶