◈ 서론
5월의 월기장에서도 소개했던 한정수 님의
비전공자를 위한 개발자 취업 올인원 가이드 강의를 듣다가 이 책을 처음 알게 되었다.
이 책은 견습 프로그래머가 숙련 프로그래머로 성장하는 길을 안내하는 지침서라 소개되고 있다.
나 또한 국비지원 학원 수료 이후에도
개발 분야에서의 경력을 어떻게 시작하고 설계해야 될지 고민이 많이 되었기 때문에
진중한 마음으로 이 책을 구입하게 되었다.

읽은 기간 : 2021.05.28 ~ 2021.08.03
◈ 소감
'개발을 왜 하는가?' 를 넘어서,
'개발이라는 분야에 어떻게 파고 들 것인가?'에 대한 질문에 답변이 되어주는 책이었다.
개발자의 수요가 급증하고, 개발자가 되고 싶어 하는 사람들이 차고 넘치는 이 시기에,
덩달아서 개발이라는 분야에 발을 들인 나는 과연 어떻게 중심을 잡고서,
'좋은 개발자', '더 나은 개발자'가 되기 위한 양분을 어떻게 흡수해 나갈 것인가?
이 책은 이러한 질문에 효과적인 답변을 달아준다.
이 책은 견습생들이 겪고 있는, 혹은 겪게 될 문제들에 대해서
'상황 - 문제 - 해결책 - 실천 방안 - 관련 항목'으로 나누어,
해당 상황에는 어떤 선택을 해야 하는지, 문제를 보완하기 위해서는 어떻게 해야하는지 등을
아주 효과적인 방법으로 설명해준다.
그렇기 때문에 취업 이후에 어떤 고민이 생기거나, 어떤 문제에 봉착했을 때,
이 책을 다시 꺼내 읽어서 해결 방안을 모색해볼 수 있기 때문에
책의 재활용 가치가 뛰어난 아주 훌륭한 구성 방식이라고 생각한다.
이 책이 나에게 끼친 긍정적인 파급 효과가 있었다.
그 파급 효과는 바로, 내가 Code States라는 부트 캠프 교육 코스의 입소자가 된 계기가 이 책에 있다는 점이다.
이 책에서 소개하는 '소프트웨어 장인정신'은 내가 또다른 교육 코스에 참여하고 싶다는 열망에 불을 지폈다.
중세 유럽에서 보편화되어 있던 '장인 조합'에서는,
견습생이 보수가 거의 없더라도 장인의 밑에서 더 견습하는 시간을 갖는다.
물론 '무보수로 일하면서 경력을 쌓아야 한다'라는 맥락은 절대 아니다.
내가 주목하는 점은 바로, 나 자신이 내 실력이 보잘 것 없음을 겸허히 받아들이고
보수가 적더라도 배움에 더 목이 말라 있는,
더 뛰어난 기술자가 되기 위한 열망이 무엇보다 앞서 있는, 그런 상태가 되기를 원했던 것이다.
그리고 이 책에서도 강조하는 것처럼, 견습생이 성장하기 위해서는 멘토를 찾는 것이 중요하다.
그렇게 더 많은 내공을 쌓기 위해서, 훌륭한 멘토를 찾기 위해서 Code States에 입소하게 되었다.
이 책을 읽으면서 들었던 또 한가지의 생각은,
'과연 한국의 IT 업계에는 이러한 소프트웨어 장인정신이 잘 녹아있는가?'였다.
이전에 인프런에서 김영한 선생님의 강의를 들을 때,
선생님이 애자일 선언 이라는 것에 대해서 언급을 해주신 적이 있다.
맥락은 좀 다르지만, 더 나은 소프트웨어 개발을 위한 중요한 가치들에 대해 생각한다는 점에서
동일한 정신을 가지고 있다고 생각되는 선언문이다.
이처럼, 개발자의 정신 강령에 대한 언급을 해준다는 것 자체에서,
김영한 선생님이 몸담고 있는 '우아한 형제들'과 같은 몇몇 기업들은 이러한 '장인 정신'을
이미 실천하고 있을 것이라고 감히 유추해본다.
하지만 나부터 '소프트웨어 장인정신'을 가다듬을 필요도 있다고 생각한다.
나는 아직 '주니어 개발자'조차 되지 못한 '개발자 지망생'이지만,
숙련공이 되어가는 과정에서 이 '소프트웨어 장인정신'을 지키고자 노력해야 한다.
그리고 숙련공이 된다면, 내 지식을 아낌 없이 나누는 존재가 되어야 한다.
프로그래머의 길은 결코 나 혼자 걷는 길이 아니다.
내가 이 길을 즐겁게 걷고자 한다면,
결국 내 옆에서 함께 걷는 동료, 후배, 선배들과의 합을 맞추어야만 한다.
그들에게 조금이라도 더 도움을 주고, 지식을 나누고, 충분한 의사소통을 나눈다면
내가 가는 여정이 순탄해질 것이며, 행복하게 개발을 하게 될 순간이 올 것이다.
반면에 오롯이 나 혼자만 성장하기 위해 노력하고, 일에만 치중하게 된다면
설령 개발을 잘 해낸들 기쁘지 않을 것이며, 스스로를 치열한 경쟁의 구렁텅이, 그 끝으로 내몰게 될 것이다.
◈ 저장하고 싶은 문구들
어떻게 하든지, 일단 당신이 알고 지내는 가장 경험 많은 프로그래머에게 도움을 청하라.
즉시 도와줄 누군가가 있다는 사실은
문제 해결에 몇 분이 걸리느냐 며칠이 걸리느냐의 차이를 가져올 수 있다.
그렇더라도 그 사람에게 당신의 문제를 전부 해결해 달라는 듯이
의지해서는 안 된다는 것을 유념해야 한다.
- p. 64 ~ 65
첫 번째 언어를 깊이 파고 들 때 생길 수 있는 한 가지 위험은,
거기에 그대로 붙잡혀 버리는 것이다.
첫 번째 언어는 아마도 당신 경력 전체에서 모국어처럼 남을 것이다.
하지만 그 언어에 너무 익숙해져서 다른 언어를 배우지 못하게 되는 일은 없도록 해야 한다.
소프트웨어 개발에서 치우침 없는 이력을 쌓으려면 다양한 언어를 접하는 편이 좋다.
- p. 71
정말로 프로그래밍을 잘 하게 된다는 것은 일생의 과업이며,
지속적인 배움과 연습으로 이루어가는 대담한 계획이다.
- 론 제프리즈 외, 『Extreme Programming Installed』
-p. 112
일을 하는 것이 마냥 좋은 나날이 있을 것이다.
소프트웨어를 개발하면서 돈도 번다는 사실이 경이롭게 느껴져
혼자 낄낄거릴 때가 있을 것이다.
당신이 만드는 소프트웨어는 마음속으로부터 손끝을 통해 나와
물 흐르듯이 흐를 것이며,
그 기능과 설계는 보기에 아름다울 것이다.
이런 날들은 즐겁고도 비범한 날들이다.
달리 말해서, 평상시와는 같지 않다는 말이다.
-p. 122
초심자가 정규 교육 과정으로 시작하든 독학으로 시작하든 간에,
소프트웨어 장인정신의 길로 향하는 첫 걸음은
자신을 견습생으로 받아줄 장인을 찾는 것이다.
- 피트 맥브린, 『Software Craftsmanship』
- p. 158
독서 목록이란 실제로는 priority queue이므로,
결국 어떤 책들은 순위에서 너무 많이 밀려서
아마도 결코 읽지 않게 될 거라는 사실을 깨달을 것이다.
이것은 좋은 일이다.
이 패턴은 잠재적인 지식의 홍수 속에서
우선순위를 매기며 걸러내는 방법을 제시하는 것이 목적이기 때문이다.
-p. 234
가능하다면 소스 관리 시스템을 사용해서,
텍스트 파일을 하나 만들어라.
지금 현재 읽고 있는 모든 책의 목록을 타이핑해 넣어라.
이것이 당신의 독서 목록이며,
이 패턴의 가장 단순한 구현 형태다.
이제 당신은 이 텍스트 파일을 최신 상태로 유지하기만 하면 된다.
-p. 236
실무에서는 대형 프로젝트의 초반에 알고리즘 때문에 문제가 생기지는 않는다.
오히려 프로그래머가 더 이상 어떻게 진행해야 할지 모르게 되거나
현재 짜 놓은 프로그램이 부적합하다는 사실이 갑자기 명백해질 때,
하위 문제로 모습을 드러내곤 한다.
- 스티븐 S. 스키에나, 『The Algorithm Design Manual』
- p. 242
관점이 변화하면, 시스템이 여러 층위를 뚫고 문제를 쫓아가서
'모든 것이 뜻이 통하는' 수준의 지식을 얻으려는 태도가 생겨난다.
이를테면 싱글코어에서 멀티코어로 노트북을 바꾼 뒤에
자바로 짠 동시성 테스트의 동작이 달라질 수 있다.
어떤 이들은 그저 어깨 한번 으쓱하고서
이제 그 테스트는 예측할 수 없게 동작한다고 생각하고 말 것이다.
하지만 다른 이들은 동시성 라이브러리, 자바 메모리 모델, 물리적 하드웨어 명세 같은 것을 통해
CPU 수준까지 문제를 쫓아갈 것이다.
당신이 친숙해져야 하는 도구들로는,
실행 중인 프로그램의 속을 들여다 볼 수 있게 해주는 디버거들과
네트워크 트래픽을 볼 수 있는 통신 레벨 디버거들,
그에 더해서 명세서를 기꺼이 읽고자 하는 태도가 있다.
코드뿐 아니라 명세서를 읽을 수 있게 된다는 것은,
이제 당신에게 모든 것이 드러나게 되었음을 의미한다.
이렇게 해서 당신이 사용하는 라이브러리에 관해 호된 질문을 던질 수 있게 되며,
만약 거기에 대한 대답이 마음에 들지 않는다면
스스로 재구현하거나 표준을 좀 더 준수하는 다른 대안을 찾아서 옮겨갈 수 있게 된다.
-p. 245
'Book > Soft Skill' 카테고리의 다른 글
메리 생발 - 『기업의 성공을 이끄는 Developer Relations』 (1) | 2023.05.01 |
---|---|
조엘 온 소프트웨어 (0) | 2022.12.31 |
블라드스톤 페헤이라 필루 - 『한 권으로 그리는 컴퓨터과학 로드맵』 (0) | 2022.07.16 |
최원영 - 『비전공자를 위한 이해할 수 있는 IT 지식』 (0) | 2022.06.03 |
존 손메즈 - 『커리어 스킬』 (0) | 2022.04.11 |