프로그래머의 길, 멘토에게 묻다. 데이비드 후버&애디웨일 오시나이. p287
너도 나도 한다는 소프트웨어 개발인데, 정작 필요한 개발자는 없다!(풍요속의 빈곤)
컴퓨터공학과가 없는 대학이 없는데, 정작 제대로 된 개발을 가르쳐주는 곳이 거의 없다!
특히 IT에 오래 몸담고 있는 선배들에게 제일 흔히 들어왔던 말 한마디, “어디 괜챦은 친구 없냐?”(오히려 문제는 멘토 부재!)
소프트웨어 개발이란 것이 과학은 아니고 공학이라기에는 아직 어설프고 예술이라고도 할 수 없이 어정쩡한,…
소프트웨어 개발은 창의력을 바탕으로 하는 논리적 글쓰기?!
“나는 사람들이 프로그래밍에 대해서 생각하는 방식을 바꾸고 싶어.”
#현실은 신경 쓰지 말라
일단 상상할 수 있게 되자, 우리 목표는 조금씩 실현가능해 보이기 시작했습니다!
가장 강력한 패턴이란, 거듭해서 생산적인 방향으로 적용되는 그런 것들입니다.
“저 패턴은 알고 있었는데”(반쪽짜리 앎)
1)글로 쓰인 패턴은 더 완전하다
2)패턴들은 서로 연결되어 있다
마스터한다? 그냥 아는 것이 아니라 짐을 더는 방식으로 아는 것!!
“알지 못하여 그 사실도 모르는 자, 바보로다-그를 멀리하라!
알지 못하나 그 사실을 아는 자, 못 배운 자로다-그를 가르쳐라!
알고 있으나 그 사실을 모르는 자, 잠든 자로다-그를 깨우라!
알고 있으며 그 사실을 아는 자, 깨우친 자로다-그를 따르라!”
-이자벨 버턴 부인(아랍 속담)
#가장 뒤떨어진 이가 되라
팻 메시니 인용!
패턴? 특정한 맥락에서 어떤 문제에 되풀이하여 적용할 수 있는 해결방안!
소프트웨어 장인정신?
가장 적용하기 힘든 패턴? 나의 무지를 드러내는 것!
개선의 여지란 언제나 존재한다(실험정신!)
우리는 견습 개발자들을 양성하는 데 필요한 시간을 감수해야 한다. 왜냐하면 우리가 당면한 문제는 희소함이 아니라 풍부함에 있기 때문이다…오늘날 개발자들은 필요 이상으로 많지만, 좋은 개발자는 부족하다.-피터 맥브린,[Software Craftsmanship]
견습생을 넘어서면? 당신의 우선순위는 이제 자신이 아닌 다른 이들!!!
#잔을 비우다
“그대가 이미 가득 차 있는 잔을 가지고 내게 온다면, 어찌 그대에게 마실 것을 드릴 수 있겠소?”
이미 많은 경험을 쌓았을수록, ‘잔을 비우기’ 위해서는 더 많은 노력이 필요하다.
#첫 번째 언어
훌륭한 표기법은 두뇌로부터 불필요한 일을 덜어준다. 어려운 전문용어들? 오히려 그런 용어들은 언제나 일을 더 쉽게 만들 목적으로 고안되어 왔다-알프레드 노스 화이트헤드
새로운 언어? ‘다르게 생각하는 법’을 배운다
“언어를 혼자서 배울 수는 있겠지만, 전문가들과 교류하지 않으면 그 언어의 진수를 깨우치는 데 오랜 시간이 걸리게 됩니다.”
#흰 띠를 매라
“배웠던 것은 잊어버려야 한다”
‘알지 못하는 태도’
이미 잘 하는 것을 내려놓아야 한다!
“그렇게 바보 같을 수 있는 자유가 바로 그 천재들의 성공에 핵심적인 요인 중 하나”
#열정을 드러내라
조직? 구성이 어떠하든 평균 수준으로 회귀하려는 경향, 특히 새내기들이 그러기 쉽다!!!
“지식을 가진 것, 그리고 그 지식을 써서 소프트웨어를 만들어 내는 역량과 실무 능력을 갖춘 것은 다르다. 여기에 장인정신의 역할이 있다.”-피터 맥브린
#무지를 드러내라
학습하는 능력, 무지의 영역을 파악해서 이 영역을 줄이려 애쓰는 것!!
#깊은 쪽
“무참한 실패를 맛본 적이 없다면, 당신은 뭔가 가치 있는 일을 시도했던 적이 한 번도 없다고 봐야 한다.”-크리스토퍼 호킨스
판에 박힌 상태, 결국은 평범함으로 퇴보
위험이란 두려움으로 반쯤 감은 눈에 비친 기회의 다른 모습이다!
소심한 자들은 결코 볼 수 없는 문이 당신에게 열릴 것이다
무지란, 인지해서 맞선다면 나쁜 것은 아이다. 가장 나쁜 경우는 자기 무지에 대해 신경조차 쓰지 않는 것이다.
#긴 여정을 걷다
데이브가 더 많이 배워 가면서, 그가 가야 할 길이 얼마나 먼지 도 잘 알게 되었다(에코의 반서재!)
달인의 경지로 이르는 길을 한 걸음 닫을 때마다 당신의 목적지는 두 걸음 멀어진다(머리를 숙이는 벼)
#예술보다 기예
고객에게 가치를 제공하는 데 집중하라
“장인에게 굶주림이란 실패다.”
장인이 굶주린다는 사실 자체가 말이 안된다!
“나는 프로그래밍을 일종의 공예로 본다. 공예는 예술의 일종이긴 하나 순수 예술은 아니다. 장식적인 면이 가미될 수는 있겠지만, 공예는 어쨌거나 쓸모 있는 물건을 만드는 작업이다. 하지만 순수 예술은 오직 아름다움을 목적으로 무엇인가를 만드는 일이다.”-‘예술과 프로그래밍’에 대한 리처드 스톨만의 견해
아름다울 수는 있겠지만, 반드시 쓸모 있어야 한다.
실용성과 아름다움은 대립되기보다 상호 의존적이라는 사실을 이해해야 한다
리팩토링
시대를 초월한 책들은 당신을 또 다른 세상에 눈 뜨게 할 것이다
전장에 머물러라!(현장이 답이다!)
#가장 뒤떨어진 이가 되라(stay foolish)
“당신이 속하는 어느 밴드에서든지 제일 뒤떨어진 사람이 되도록 하세요”-Pat Methney(더 나은 팀을 찾아라!)
#바닥을 쓸어라
그들은 쉬운 일을 거드는 것부터 시작하고, 숙달되어가면서 점차로 더 크고 복잡한 작업으로 옮겨간다
가장 지저분한 일? 서로 하지 않으려고, 코를 막으면서 억지로 하지 말고, 창조적인 방식으로 문제 해결할 방도를 생각해 내라(호텔 청소부 아줌마의 혁신!)
#5 끊임없이는 학습
큰 성취를 이루는 사람들이란 지식을 너무 갈망하여 좋지 않은 여건에서도 그것을 탐구하는 이들이다. 여건이 좋을 때란 결코 오지 않는다!
마스터? 연습하는 것 자체를 좋아하는 사람. 능숙할수록 기본적인 동작을 더 즐기게 되는 선순환이 완성된다!
초심자는 강의가 아니라 실제로 해보면서 배운다
#”소스를 써라, 루크”
결국은 코드가 최종 결정자!
오픈소스! 소프트웨어 개발 분야의 문제점 중 하나? 교사가 부족하다!!!
#실패하는 법을 배워라
천재성? 기꺼이 실패를 인지하고, 변화하고자 하는 의지를 필요로 한다
독서목록, 꾸준히 읽어라, 고전을 공부하라, 더 깊이 파고들어라
#익숙한 도구 선별, 거기에 집중하라
아무리 바퀴를 굴려도 안에 빠지게 되는 바퀴 자국(rut)과 맞물리면 힘들이지 않고 갈 수 있는 홈(groove)은 다르다!
독서목록? 읽어야 할 책의 권수가 당신의 책 읽는 속도보다도 더 빠르게 늘어만 간다!
“고민이야. 취업을 잘 하게 하려면 학생들 머리는 좋지 않고 무얼 가르칠까?”-전문대 컴퓨터 교수 선배의 이야기
