티스토리 뷰

임백준의 대살개문
임백준

 

'대살개문'은 작가가 근래에 기고했던 칼럼들을 정리한 책이다. 개발 문화, 개발자들에게 보내는 조언, 그리고 최근 이슈가 되고 있는 기술들도 언급하고 있다. 내 얘기 같고 우리 얘기 같아서 어느 순간 가슴이 뜨거워 지기도 했다. 정작 작가는 멘토라는 말이 불편하다고 하지만 개인적으로 이 책이 멘토의 조언 같아서 더 좋다. 언제가 될지 모르지만 벌써부터 다음 책이 기다려진다. 배우고 즐기고 해결하고 공유하자!

본문 중에서...

p6

개발자 문화가 뭐냐고 묻는 사람을 위해서 LESS라는 공식도 준비해두었다. Learn(배우고), Enjoy(즐기고), Solve(해결하고), Share(공유하라). 이렇게 네 가지 속성을 모으면 그게 개발자 문화다.

p45

자기 아이디어를 실현하려고 노력하다가 장렬히 실패한 과거를 대기업에 입사했던 기록보다 더 자랑스러워하는, 실패할 권리와 자유가 강처럼 넘쳐흐르는 사회를 꿈꾸어본다. 그런 문화가 형성되지 않는다면 '우리나라 개발자들의 수준'을 '세계 수준'에 비교하는 것은 의미가 없다.

p55

프로그래머에게 자격증은 모욕이다.

p67

순정한 40시간은 공갈빵 80시간보다 훨씬 더 생산적이다.

p70

그들이 원하는 컴퓨터와 소프트웨어 도구를 구입해주고, 해외에서 열리는 개발자 콘퍼러스에 참석시키고, 책과 자료를 구입하도록 지원해주어야 한다. 업계의 다른 개발자들을 초청해서 세미나를 열도록 하고, 사내 회의실에서 밋업과 같은 모임을 개최하도록 도와주어야 한다. 그들이 최첨단 기술 스택을 선택하도록 장려하고, 자신들의 선택을 마음껏 외부에서 이야기하도록 북돋워야 한다. 프로그램을 도구가 아니라 비즈니스의 핵심 목적으로 삼을 때만 가능한 이야기다.

p76

개발자가 즐겁지 않은 사회의 미래는 없다.

p82

프로그래밍하는 그대, 책상에만 앉아 있지 말고 거리로 나가라. 친구들을 만나고, 마시고, 토론하라. 그런 만남과 토론 자체가 프로그래밍이라는 행위의 일부다.

p92

불완전함은 인간이 가진 자연스러운 속성의 하나이기에 키보드를 두드리는 사람의 손끝에서 버그가 쏟아져 나오는 것은 자연스러운 일이며 현대 프로그래밍 방법론의 한계다. 그래서 버그가 있느냐 없느냐는 논의의 대상이 될 수 없다. 그것이 얼마나 자주 발생하는지, 그것으로 인한 피해가 어느 정도인지를 문제로 삼을 수 있을 뿐이다.

p112

프로그래머가 일할 때는, 그러니까 진짜로 집중해서 일할 때는 디테일속에 존재하는 신을 만나러 가는 것이다. 사용자들은 결코 볼 일이 없는 코드 자체의 완성과 아름다움을 위해서 (강요된 야근이 아니라) 기꺼이 밤샘한다. 카드로 쌓은 집처럼 조금만 건드리면 쓰러지는 허약한 구조물을 만드는 것이 아니라 망치로 두르려도 단단하게 견디는 건축물을 만든다. 프로그래밍이라는 행위가 갖는 기쁨과 흥겨움의 비밀은 이러한 밤샘과 집중 속에 존재한다.

p254

개발자가 새로운 언어나 기술을 접할 때 취할 수 있는 전략은 크게 두 가지가 있다. 하나는 손에 흙과 피를 묻히면서 '어떻게'에 초집중하는 방법이다. 눈앞에 닥친 문제를 해결하는 테크닉에 초점을 맞추고 배후에 존재하는 원리나 이론은 나중에 공부하거나 혹은 영원히 신경 쓰지 않는 전략이다.
또 하나의 방법은 선과 명상이다. 실제 명상을 이야기하는 것이 아니라 그렇게 보일 정도로 키보드를 두드리는 일보다 원리와 개념을 이해하는데 비중을 둔다는 것이다. '어떻게'가 아니라 '왜'와 '무엇'에 집중한다. 원리가 이해될 때까지 책을 읽고, 읽고, 또 읽는다.

p266

공유를 하면 즐거움의 참맛을 알게 되고, 배움에 살이 붙고, 문제를 해결하는 능력도 배가된다. 선순환이 일어난다. 그래서 개발자 문화의 진정한 핵심은 공유다. 배움과 즐김과 해결의 끝은 공유다.

p270

자기가 이미 하고 있는 분야, 혹은 잘 알고 있는 분야에 집중해서 우물을 파듯 최대한 깊이 들어가라. 들어가서 물이 아니라 원리를 퍼올려라. 그렇게 퍼올린 원리를 조금씩 다른 분야에 적용해보라. 하수는 자잘한 구현에 집중하고 고수는 언제나 원리에 집중한다는 사실을 기억하라.

p304

앞으로 프로그래머는 어느 하나의 언어에 안주할 수 없다. 패러다임을 달리하는 언어를 자유롭게 구사하지 않으면 살아남을 수 없는 폴리글랏 프로그래밍의 시대가 되었기 때문이다. 자신의 포트폴리오를 어떤 언어로 구성하는지는 각자의 몫이다. 하지만 앞으로 프로그래머가 어떤 언어에 대해서 얼마나 많이 알고 있는가 하는 것이 아니라 어떤 언어를 얼마나 빠르게 학습할 수 있는가 하는 것이 더 중요하다는 점을 기억하기 바란다.

 

참고

The Reactive Manifesto, http://www.reactivemanifesto.org/
Code Alliance, http://codealliance.org/
Catchfire, https://www.catchafire.org/

<창업국가>, 댄 세노르 외, 다할미디어, 2010년

My Lawn, http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html

The Grid, https://thegrid.io/

<NoSQL: 빅 데이터 세상으로 떠나는 간결한 안내서>, 마틴 파울러 외, 인사이트, 2013년

Akka, http://akka.io/
Lightbend Reactive Platform, https://www.lightbend.com/

Signs that you're a bad programmer
http://www.yacoset.com/Home/signs-that-you-re-a-bad-programmer

Signs that you're a good programmer
http://www.yacoset.com/Home/signs-that-you-re-a-good-programmer

<소프트 스킬>, 존 손메즈, 길벗, 2015년

앤드류 응 교수의 코세라 강의
https://www.coursera.org/learn/machine-learning

임백준의 '개발자를 위한 머신러닝'
https://mva.microsoft.com/ko/training-courses/-machine-learning-jump-start-10288?l=bweEISc6_4204984382

10 Philosophies for Engineers
http://softwareengineeringdaily.com/2016/02/12/10-philosophies-for-developers/

 

 

- James Song

댓글