Profile Image
블로그를 옮겼어요.
프로그래머스의 길
서평
2022.03.19.

프로그래머스의 길, 멘토에게 묻다.
프로그래머스의 길, 멘토에게 묻다.

21년 9월, ‘개발자가 되고싶다.’ 혼자서만 생각했던 꿈을 실천해보기로 했다. 하지만 무엇부터 해야할지, 또 어떻게 시작해야할지 몰라서 인터넷만 뒤적이고 있던 찰나에 인프런 강의 중 비전공자 체대생에서 개발자로 전향한 분의 강의를 듣기 시작했다. 바로 한정수님 강의였다. 강의에서 추천한 책 중 한 권을 드디어 다 읽게됐고, 앞으로 내가 개발자가 되어서 두고두고 기억하고 싶은 말을 남겨보려고 한다.

현재 나는 부트캠프에 참여 중이고, 둘째 주를 시작할 당시, 주위에 잘하는 분들이 정-말 많아서 하루 하루 나와 그 분들의 성과를 비교해보고, 나 자신을 깎아내리고 있었다.

너-무 고민이 되어서, 정수님 인프런 강의에 질문을 올렸다. 답변이 언제 달릴 지 몰랐고, 작성 당시엔 어림잡아 ‘바쁘시니까 한 달 뒤쯤? 달리지 않을까?’ 하는 생각을 했다. 강의의 인기가 점점 높아지고, 질문들도 많이 올라오다보니 한명 한명의 답장을 남기기는 쉽지 않아보였기 때문이다.

근데 이게 웬걸,,,? 3일만에 답글 적혔다. 심지어 늦어서 죄송하다는 말씀을 하셨다.

답장은 내가 앞으로 어떤 마음가짐으로 방향을 잡아야할지 잘 제시해주셨다. 책의 내용과 비슷맥락이 많아서 답글을 이해하는데도 많은 도움이 됐다.

결론적으로 정수님의 답글 중 한 단락이 내 조급함을 내려놓게 만들어줬다.

개발자라는 직업은 사실 객관적인 기준으로 실력을 판가름하기 어려운 직업이라 생각해요. 때문에 비교 대상을 주변의 다른 개발자로 삼는 것보다는 ‘어제의 자신’과 비교하여 오늘 더 성장했는지, 더 나은 개발자가 되었는지 고민하시면 좋을 것 같아요-

밑줄 그은 문장은 정-말 너-무 많다.

내용이 정말 좋아서, 접어둔 페이지도 많다.
내용이 정말 좋아서, 접어둔 페이지도 많다.

지인은 책이 오래돼서 한 번쯤은 읽어보는게 좋다고 했으나 나에겐 두고두고 읽고 싶은 문장이 많았다.

밑줄 친 문장들

  1. 아마 당신도 현실을 신경 쓰지 말라 패턴을 시도해 본 적이 있을 겁니다. 만약 그렇지 않다면 한번 시도해 보기 바랍니다. 가장 강력한 패턴이란, 거듭해서 생산적인 방향으로 적용되는 그런 것들입니다. 패턴이 유용해지기 위해서 꼭 새로울 필요는 없습니다. 사실 새롭지 않은 편이 더 낫지요. 이미 정리된 패턴의 이름만 알고 있다 해도 역시 큰 도움이 됩니다. 패턴을 식별함으로써 당신은 매번 똑같은 이야기를 반복하지 않고도 거기에 대해서 논의 할 수 있게 됩니다.

  2. 부숴도 괜찮은 장난감의 첫 버전을 완성하는 데 가장 적용하기 힘들었던 패턴은, 근처 개발자들 자리로 가서 숙련된 펄 프로그래머와 시스템 관리자들에게 나의 무지를 드러내는 것이었다. 그렇게 창피를 무릅쓸 가치는 충분했다. 내 프로그램의 짜임새와 유닉스 파일 권한에 대해 몇 가지 간단한 조언을 들을 수 있었기 때문이다. 그 조언 덕에 나는 내 장난감을 신속히 마무리했고, 어브와 스티브는 아주 흡족해 했다.

  3. 흰 띠를 매는 것은 당신이 어떤 전문적인 기술을 익혔든지 간에 초심으로 돌아감을 나타낸다. 열정을 드러냄은 초보가 흔히 맞닥뜨리는 좌절, 혼란, 의욕 상실과 같은 장애물을 뚫고 전진할 수 있게 해주며, 또한 첫 번째 언어를 과감하게 파고들 수 있도록 할 것이다. (중략) 다음에 학습할 내용에 집중하기 위해서, 그 분야에 대한 당신의 무지를 드러내라 그리고 무지에 맞섬으로써 지식을 습득해 나가는 모습을 당신 팀과 고객이 지켜보도록 하라. 마침내 당신에게는 큰 일을 맡을 기회가 주어질 텐데, 그 기회를 통해서 깊은 쪽으로 뛰어든다면, 수영을 할 수 있게 되거나 바닥으로 가라앉거나 둘 중 하나가 될 것이다. 왠지 두려운 생각이 들 수도 있겠지만, 당신이 경력을 쌓는 동안 이런 종류의 위험을 감수하는 데는 이보다 더 나은 시기가 없다.

  4. 첫 번째 언어를 배우는 과정을 더욱 향상시킬 수 있는 방법 하나는, 실제 문제에 그 언어를 적용하는 것이다. (중략) 규모가 작고 미리 잘 고안해둔 그런 예제만 가지고 공부하는 것은 어차피 한계가 있다. 게다가 실무에서 언젠가 마주치게 될 문제에 당신이 배운 것을 적용할 때 얻는 이점을 잃어버리게 된다. 이런 과정을 개선하는 기본적인 방법은 피드백 루프를 만드는 것이다.

  5. 흰띠를 매라 패턴 중, 위로 오르기 위해서는 당신이 이미 잘 하는 것을 내려놓아야 한다. 그리고 골짜기로 미끄러져 내리기도 하면서 단단히 디디고 선 곳을 떠나야 한다. 만약에 이미 잘 하는 것을 내려놓지 않는다면, 꾸준히 진전할지는 몰라도 고지에는 결코 오를 수 없을 것이다.

  6. 열정을 드러내라 패턴 중, 궁극적으로는, 열정을 드러내는 것이야말로 견습생이 맡아야 하는 몇 안되는 책무 중 하나다. 심도 있는 지식이나 엄청난 생산성으로 기여하지는 못하더라도, 팀에 열정을 불어 넣고 모든 것에 대해서 질문하는 것이야말로 당신의 본분이라 할 수 있다. 당신은 지금 팀의 발전을 위해 유용한 제안을 할 수 있는 신선한 관점을 지닌 독특한(그리고 일시적인)위치에 있는 것이다.

  7. 무지를 드러내라 패턴 중, 무지를 드러내는 가장 확실한 방법은 질문하는 것이다. 이것은 말처럼 쉽지 않은데, 특히 질문 받는 쪽에서 당신이라면 당연히 알 거라고 생각하는 경우에는 더욱 그렇다. 거기에 굴하지마라! 물론 당신은 자존심에 상처 입지 않고 어느 정도 우회해서 필요한 지식을 얻을 수도 있다. 하지만 가장 가깝게 질러가는 길을 택함으로써 숙련공으로 가는 여정이 단축될 수 있다. (중략) 무지를 드러내면서, 당신은 팀 사람들에게 자신의 학습 능력도 보여주게 되는 것이다. 그리고 그 사람들도 가끔은 질문에 대답하는 과정에서 자기가 가진 지식을 새로이 명확하게 할 수도 있다.

  8. 전장에 머물러라 패턴 중, 연습을 중단하는 그 시점부터 퇴보하기 시작한다. 당신이 프로그램을 짜지 않는 하루하루마다 숙련공으로 가는 길은 점점 더 멀어져 간다.

  9. 재능 있고 열심히 일하는 견습생이라면 그가 이룬 작은 성공에 자족하지 말아야 한다. (중략) 또한 자기가 제법 능력 있다는 생각 같은 것은 떨쳐버리고, 지금껏 긴 여정에서 얼마 되지 않는 거리를 걸어왔을 뿐임을 깨달아야 한다. ‘평균적인 프로그래머’보다 나은 사람이 되는 것이 당신의 목표는 아니다. 당신의 목표는 자기 능력을 평가하고 어제의 자신보다 더 나아질 수 있는 방법을 찾는 것이다. 우리 모두는 같은 길을 가고 있으며, 우리 자신을 다른 사람과 비교하는 것은 그렇게 해서 서로를 더 발전시키는 경우라야 의미가 있다.

  10. 가장 뒤떨어진 이가 되라 패턴 중, 주변을 당신보다 뛰어난 개발자들로 채워라. 당신이 가장 뒤떨어지는 멤버가 되며, 그안에서 더 성장할 여지가 있는 팀을 찾아라. (중략) 팀에서 가장 뒤떨어진 구성원인 당신이 다른 누구보다도 더 열심히 해야 한다는 것을 보여주고 있다. 당신의 목표는 가장 못한사람으로 머무르는 것이 아니라 밑바닥부터 시작해서 위로 올라가는 것이기 때문이다. 그러려면 팀의 다른 사람들과 같은 수준이 될 때까지 의식적으로 개선할 방법을 찾으며 더 뛰어난 개발자들을 모방해 가야 한다. 이렇게 팀에서 배우려는 의식적인 노력이 없다면, 여러 위험에 직면하게 될 것이다.

  11. 부숴도 괜찮은 장난감 패턴 중, 예를 들면 당신만의 위키나 캘린더, 주소록 등을 만드는 것이다. 당신이 만든 프로그램은 아마 해결해야 하는 문제에 비해 과하게 만들어졌을 것이며, 기존 프로그램으로 쉽사리 대체될 수 있는 것이다. 하지만 이런 프로젝트들이야말로 실패가 용인되는 장소다. 여기서 당신은 새로운 아이디어와 기법을 시험해 볼 수 있으며, 그 결과가 참담한 실패로 끝날 수도 있다. 하지만 그 실패로 상처 입을 사람이라고는 당신 자신뿐이다.

  12. 소스를 활용하라 패턴 중, 다른 사람들의 코드를 찾아서 읽어라. 당신이 매일 사용하는 도구나 애플리케이션부터 시작해 보라. 견습생으로서 당신을 주저하게 만드는 것 중 하나는, 당신이 의존하는 도구들을 만든 사람들은 왠지 당신과 다를 것 같고 더 특출하며 훌륭할 거라 믿는 일이다. 그 사람들의 코드를 읽고서 당신은 그들처럼 프로그래밍하는 법을 배우게 되고, 더 중요하게는, 당신을 둘러싼 인프라를 만들어 낸 사고 과정이 어떤 것이었는지 이해하게 된다. 오픈소스 프로젝트를 들여다볼 때는 가장 최신 버전의 소스를 다운로드해서, 과거 이력을 조사하고 차후의 진행을 따라갈 수 있도록 하라. 소스 트리의 구조를 살펴보고, 파일들이 왜 그런 식으로 배치되었는지 알아내 보라. 개발자들이 코드를 그런 식으로 모듈화한 이면에 무슨 이유라도 있는지 찾아보고, 당신이라면 어떻게 했을지 비교해보라.

  13. 더 깊이 파고들어라 패턴 중, 당신은 자기 코드를 유지보수 하면서도 계속 난관에 봉착하는데, 당신이 공부했던 튜토리얼들이 실은 필요한 절차도 대충 건너뛰었으며 복잡한 이슈를 단순화했었다는 사실이 드러났기 때문이다. 수많은 도구들에 대한 피상적인 지식만 있다면, 미묘한 버그가 발생하거나 깊은 지식이 필요한 일을 할 때 늘 어쩔 줄 몰라 허둥대야 한다는 것을 알게 되었다. 기존 웹 서비스를 확장한 몇 주 정도의 경력을 상호 운용적이며 고도의 확장성을 갖춘 대규모 시스템 유지보수 중에 나온 이슈에 대해 깊이 있게 아는 것과 구분하지 않았기 때문에, 사람들은 종종 당신의 이력서에 오해의 소지가 있다고 비난한다.

© 2025 Geuni, Powered By Gatsby.