메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

한빛출판네트워크

더 나은 프로그래머 되는 법

지금 바로 실천할 수 있는 선배 개발자의 39가지 노하우 / 국내 개발자 8인 인터뷰 수록

한빛미디어

번역서

판매중

4.9점 (34명)
좋아요 : 13

더 나은 프로그래머로 거듭나는 법, 선배 개발자의 39가지 노하우 공개


* 구글, 마이크로소프트, 토스 등 국내 개발자 8인의 이야기 수록 

*  이 도서는 『훌륭한 프로그래머 되는 법』의 개정판입니다.

 

‘과연 내가 좋은 개발자일까?’, ‘더 나은 개발자로 성장하려면 어떻게 해야 할까?’, ‘이 방식으로 협업하는 것이 정말 효과적일까?’ … 여러분도 이 질문들에 대해 한 번쯤 생각해본 적이 있지 않은가? 빠르게 변하는 IT 시장 변화 속에서 개발자들의 성장 욕구가 높아지면서 그에 따른 고민도 함께 증가하고 있다. 더 나은, 더 훌륭한 프로그래머가 되고자 하는 모든 개발자를 위해 15년 경험을 바탕으로 구성한 선배 개발자의 39가지 노하우를 이 책 한 권에 모두 담았다. 코드 리뷰 및 작성 기술은 물론, 자기 관리, 협업 방법 업무 처리까지 모두 다루며, 개발자로서의 삶을 더 풍부하게 만들어줄 실용적인 조언들이 가득 실려 있다. 


개발자의 일과 삶 전반에 걸친 실용적인 조언을 제공하는 이 책은, 신입 개발자나 경험 많은 개발자,  취미로 개발을 공부하는 일반인까지 누구에게나 도움이 될 것이다. 더불어 현업에서 활약하는 국내 개발자 8인의 인터뷰를 특별 부록으로 담아 그들의 경험담과 함께 현실적인 조언도 함께 얻을 수 있다. 이 책을 통해 더 높은 수준의 전문성과 역량을 갖춘 프로그래머로 성장할 수 있기를 바란다.

 

피트 구들리프 저자

피트 구들리프

프로그래머이자 소프트웨어 개발 칼럼니스트이고, 음악가이며 작가다. 소프트웨어 업계에서 그는 특정 영역에 머무르지 않는다. OS 개발부터 오디오 코덱, 멀티미디어 애플리케이션, 임베디드 펌웨어, iOS 애플리케이션 개발, 데스크톱 애플리케이션 개발에 이르기까지 그의 손이 닿지 않은 곳이 드물다. ‘더 나은 프로그래머 되기’라는 칼럼을 매거진에 기고하고 있고, 다양한 소프트웨어 개발 서적의 저술에 참가했으며, 정기적으로 소프트웨어 개발 주제에 대한 발표를 진행 중이다.
최원재 역자

최원재

서울대학교에서 기계설계항공공학부를 졸업한 뒤, CJ올리브네트웍스에서 일하고 있다. 웹 애플리케이션부터 자바 서버 애플리케이션, 피처폰 애플리케이션, 윈도우 음악 스트리밍 애플리케이션, 대다수 스마트폰 OS 애플리케이션 등을 개발했었다. 이후 기술자 조직 관리, 디지털 전략 수립 등의 업무를 수행하며 다양한 분야에 관심을 두고 있다. 모든 IT 엔지니어들의 성장을 기원한다.

 

강전희 역자

강전희

컴퓨터공학과 인공지능을 공부했으며, 게임 회사를 거쳐 현재 티빙에 재직 중이다. AI, 빅데이터, 정보 보안, 온갖 Gadget과 업무 자동화 등에 관심이 많다. 국내 최초로 MCN 사업인 DIA TV를 런칭한 경험을 바탕으로 사업 개발, 광고 영업, 광고 데이터 분석을 해왔으며 현재 클라우드 엔지니어로 일하고 있다. 국내 FinOps 문화 정책과 클라우드 기술 공유를 위해 노력하고 있다.

안재덕 역자

안재덕

과거 CJ ENM, CJ올리브네트웍스 소속으로 오픈 API와 WEB 서비스, 기업용 ERP, 병원용 애플리케이션, 안드로이드 애플리케이션을 개발했다. 현재는 인터파크트리플 소속으로 라이브커머스 서비스, 티켓팅 서비스의 백엔드 개발의 리더로 업무를 진행하고 있다. 항상 새로운 언어와 환경에 최적화된 개발자가 되기를 희망한다.

남윤화 역자

남윤화

 

한국항공대학교에서 전자 및 항공전자공학 심화 과정을 전공했다. CJ올리브네트웍스에서 웹 개발을 하고 있다. 평소 프런트엔드, 백엔드, 인터페이스에 관심이 많으며 여전히 여러 분야에서 깊게 발 밑 땅을 파고 있다.

 

[1부 | you.write(code);]
1장 코드에 신경 쓰기
2장 정돈된 코드 유지하기
3장 코드 적게 쓰기
4장 코드 줄여 개선하기
5장 코드베이스의 망령
6장 경로 탐색하기
7장 똥통에서 뒹굴기
8장 오류 무시하지 않기
9장 예상하지 못한 것을 예상하기
10장 버그 사냥하기
11장 테스트하기
12장 복잡도 다루기
13장 두 개의 시스템에 대한 이야기

 

[2부 | 연습을 통해 완벽해진다]
14장 소프트웨어 개발이란
15장 규칙 가지고 놀기
16장 간결하게 하기
17장 머리 쓰기
18장 변하지 않는 것은 없다
19장 코드 재사용 사례
20장 효과적인 버전 관리
21장 골키퍼 있다고 골 안 들어가랴
22장 프리징된 코드의 신기한 사례
23장 제발 저를 출시해주세요

 

[3부 | 개인적인 일로 받아들이기]
24장 배움을 사랑하며 살기
25장 테스트 주도 개발자
26장 도전 즐기기
27장 부진 피하기
28장 윤리적인 프로그래머
29장 언어에 대한 사랑
30장 프로그래머의 자세

 

[4부 | 일 끝내기]
31장 ‘더 열심히’보다는 ‘더 현명하게’
32장 끝나야 끝나는 것
33장 교훈 얻기

 

[5부 | 사람의 일]
34장 사람의 힘
35장 생각이 중요하다
36장 말하기!
37장 선언문
38장 코드 찬가
39장 태도가 핵심이다


[특별 부록 | 국내 개발자 8인의 이야기]
-    미래 기술의 열쇠, 생성형 AI를 활용한 프로그래머(베어로보틱스, 염재현)
-    훌륭한 프로그래머이자 팀플레이어 되는 법(토스, 진유림)
-    개발자의 학습, 성장에 관하여(토스, 이소영)
-    개발자로서 지속적인 성장과 성공을 위한 전략(어센트코리아, 진나영)
-    결국 해내는 개발자(비마이프렌즈, 서지연)
-    개발자 커리어에서 한 번쯤 생각해보면 좋은 5가지(볼트업, 박순영)
-    글로벌 리더십을 가진 프로그래머 되기(구글, 서주영)
-    회사에서 나의 역할을 만들어나가는 법(마이크로소프트, 주한나)
 

코드의 완성을 넘어, 개발자로서 성공하는 법을 배우다

 

이 책에서 다루는 주제들은 소프트웨어 개발자로서의 삶 전반에 대한 것이다. 코드의 각 줄을 어떻게 작성할지, 소프트웨어 모듈은 어떻게 설계할지에 대한 내용뿐만 아니라, 높은 효율을 위한 실질적인 개발 기술을 소개한다. 또한 개발에 도움이 되는 효율적인 태도와 접근 방법, 그리고 프로그래머가 현재 소속된 소프트웨어 기업에서 성공적으로 살아가기 위한 절차적이고 조직적인 부분에 대한 비법과 조언을 다룬다. 마지막으로 국내 개발자들의 성공 스토리를 통해 선배 개발자들이 쌓아온 풍부한 경험과 노하우를 아낌없이 제공한다. 이를 통해 단순한 정보뿐만 아니라, 그들의 이야기를 통해 더 깊이 있는 통찰력을 얻게 되며 여러분이 앞으로 나아가야 할 개발자로서의 여정을 더욱 풍요롭게 만들어줄 것이다.

기술만 있다고 해서 한 분야의 전문가가 되진 않는다. 실제 현업을 겪으며 쌓이게 되는 노하우와 처세술, 그리고 그 시간을 버티고 이겨내는 마인드까지 갖춰진 후에야 비로소 타인의 인정으로 전문가가 될 수 있다. 프로그래머도 마찬가지다. 단순히 코딩을 할 줄 안다고 해서 좋은 프로그래머가 되는 것은 아니다. 책 <더 나은 프로그래머 되는 법>에서는 프로그래머가 코딩을 하는 코더를 넘어서서 더 나은 프로그래머가 될 수 있는 방법에 대해 다양한 주제로 이야기를 풀어나가는 책이다.

이 책은 <훌륭한 프로그래머 되는 법>의 개정판이다. 나는 프로그래머는 아니지만 꽤 유익하게 읽을 수 있었는데, 코드 작성법 뿐만 아니라 자기 관리, 일 처리 기법, 의사소통 기술에 대해 다루고 있어 꼭 프로그래머가 아니라도 IT업계에서 일한다면 누구나 궁금해할 법한 주제들로도 지면을 꽤 차지하고 있다.

정확히는 39개의 주제를 다루고 있는데, 각 주제는 크게 5개로 묶여져 있다. 각 주제는 저자의 경험을 기반으로 마치 선배가 후배에게 조언하듯이 개인적인 문체와 유머들을 섞어 표현하고 있다.앞에서 말한 것처럼 코드 관리나 테스트, 출시 준비 등 개발과 밀접하게 관계된 것부터 협업과 소통을 어떻게 하는 것이 좋은지 어떤 태도로 프로그래머라는 업을 짊어져야 하는지 다양한 주제를 아우르고 있다.

초보 프로그래머라면 <더 나은 프로그래머 되는 법>에서 기술 뿐만 아니라 시니어 프로그래머가 갖고 있는 생각과 고민에 대해 전반적인 부분을 들을 수 있는 기회가 될 것이고, 시니어 프로그래머라 하더라도 다른 시니어 프로그래머가 어떤 방향으로 이 일을 바라보고 있는지 알아봄으로써 유용하게 활용하게 있으리라 생각한다.

대부분의 문체가 무겁지 않고 직접 대화하듯이 풀어져 있어 읽는데 어려움은 전혀 없으나 실무와 자기 개발을 왔다갔다 하면서 훌륭하지만 때로는 겹치는 내용들이 여러 주제에 나뉘어 배치되어 있기도 하다. 프로그래머 뿐만 아니라 모든 직업이 그렇듯 자만하지 말고 항상 발전하기 위해 스스로 정진하라는 것이 자기 개발에서 일맥 상통하는 부분이라 그럴 수도 있겠다.

다만 그럼에도 <더 나은 프로그래머 되는 법> 각 주제마다 저자의 이야기와 별도로 생각해볼 만한 '생각해보기'와 '연습해보기'를 제시하는 것은 실제로 나에게 어떻게 적용해보면 좋을 지 고민해볼 만한 거리를 제공해준다는 점에서 좋았다.

업계의 고참인 시니어 프로그래머에게 배울 수 있는 것이 각 분야의 고급 기술도 있겠지만 이렇게 그들도 같은 인간으로서 어떤 고민을 안고 있고 어떻게 해결해왔는지 알 수 있다는 점에서 이 책 <더 나은 프로그래머 되는 법>은 가볍지만 마냥 가볍지만은 않은 책이다. 프로그래머 뿐만 아니라 관련 업계에서 종사하는 사람이라면 프로그래머의 시선에서 그들을 좀 더 이해할 수 있고, 다양한 주제로 본인에 대해 고민해볼 수 있는 기회가 있으리라 생각된다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

  만감이 교차하게 만드는 책이랄까. 그저 발갛게 빛을 내고 있는 숯에 바람을 불게 만든다고 할까. 이 책을 읽고 있으면 다시 열심히 해야겠다는 생각이 든다. 살아오면서 훌륭하게 코딩을 하지는 못했지만 더 나아지려고 노력은 분명했으니까. 우리는 코드보다 시퀀스가 더 중요한 메카트로닉스 쪽에 가까워 코드 자체도 보수적이었지만 이런 책을 볼 때마다 뭔가 두근댄다.

  개발자로서의 할 일과 자세 그리고 함께 일하는 방법 그리고 약간의 위로까지 담고 있는 이 책은 한빛미디어의 지원으로 읽어볼 수 있었다.

  사실 이런 책은 굉장히 딱딱하고 건조하다. 잘하기 위한 방법은 대체로 비슷하고 굉장히 엄격한 자기 계발서처럼 만능을 요구하기 때문이다. 누구는 날 때부터 코딩을 잘했을까 싶지만 하나씩 고치지 않으면 향상되지 않는다. 그럼에도 안타까운 것은 커다란 소프트웨어 조직에서 직접 겪을 수 있는 경험은 테스트 서버도 없는 작은 회사에서 공부만으로 해결되지는 않는다.

  이 책의 시작도 크게 다르지 않았지만 왠지 모를 유쾌함이 있다. 우린 서로 쓰레기 같은 코드를 내뱉고 있고 버그 사냥을 나선다. 똥통에 뒹굴기도 한다. 내가 남의 코드에 하소연할 때 다른 이도 나의 코드에서 헤매고 있을지도 모른다. 그저 나 스스로 잘하려고 노력하는 편이 낫다.

  언어는 굉장한 속도로 새로운 것들이 발표된다. 그것은 모두 자신만의 장점을 가지고 있다. 하나만 제대로 아는 것도 중요하지만 적어도 두 개 정도는 깊숙이 공부해 보는 것도 나쁘지 않다. 서로의 단점을 보완할 수 있을지도 거다. 반대로 어떤 프로그램이라도 의미는 있을 거다. AI가 판치는 지금의 세상에서도 어셈블러나 기계어를 배우는 것도 이해의 측면에서 괜찮은 선택이며 결국 누군가는 하고 있을 일이다. 새벽에 거리를 청소하는 청소부들처럼 눈에 띄지 않지만 꼭 필요한 존재다.

  여러 테크닉적인 글보다 자세에 대한 얘기가 좋았다. 물론 코딩하는 자세 같은 것도 있다. 조는 자세나 좌절하는 자세 밤샘하는 자세 같은 것도 있어 유쾌했다(미소를 짓지 않을 수 없다!). 그리고 개발자로서 프로그래머로서 살아가는 자세에 대한 얘기도 좋았다. 

  코딩이라는 것도 결국 언어다. 언어라는 것은 사랑할 때 즐겨 쓸 때 잘하게 된다. 코딩은 일이기도 하다. '더 열심히'하는 것보다 '더 현명하게'일할 필요가 있다. 내가 잘할 거라는 착각도 버리고 가져다 쓸 수 있으면 가져다 쓰고 살 수 있으면 사는 것도 방법이다. 비용 대비 실적을 얘기할 수 있는 건 결국 일이기 때문이다.

  소프트웨어로 산다는 건 끊임없이 공부해야 한다는 것과 같다. 순간순간 새로운 기술들이 쏟아지기 때문이다. 결국 이런 상황을 받아들이는 태도가 중요하다. 어쩌면 언어를 사랑하는 감정이 더 중요할지도.

  책은 프로그래머 자체의 삶에 대한 얘기며 더 나아가 조직에서의 프로그래머가 할 일을 얘기하기도 한다. 챕터마다 다른 얘기가 있다. 위로받고 싶다거나 멘털을 잡고 쉽다면 뒷 부부만 읽어도 될 듯하다. 시중에 나온 굉장히 빡빡한 문장으로 가득 찬 책들과 달리 여유가 있으면서도 할 말은 하는 책이다. 위트 있는 선배 같은 책이었다.

사내 개발 방법 통일화 및 프로그램 개발 방법 개선 및 운영을 위해 여러 책을 읽고 있는데 이번에는 "더 나은 프로그래머 되는 법" 책을 읽어 보게 되었습니다.

 

"더 나은 프로그래머 되는 법" 책은 5부 39개의 Chapter, Appendix 로 국내 개발자 8인의 이야기로 구성되어 있습니다. 각 Chapter의 내용은 개발하면서 바로 사용할 수 있는 주제로 구성되어 있습니다.
각 Chpater의 내용도 좋았지만 책을 읽으면서 특히 TIP 부분이 관련 Chapter의 핵심주제를 잘 설명하고 있고 핵심내용을 잘 정리하고 있어서 좋았습니다.
시간이 되어 다시 복습할때 빠르게 TIP 위주로 복습하는것도 좋은 방법일 것 같습니다.

 

TIP 에는 이런 내용이 언급되어 있습니다.
- 보이스카우트 규칙을 따르라. 어떤 코드를 건드리는 이전보다 나아지도록 하라.
- 디버거 사용법을 익힌 다음 필요할 때 사용하라.
- 좋은 프로젝트 계획을 통해 훌륭한 설계를 얻을 수 있다. 구조적인 완성은 순식간에 만들어 낼 수 없으며 충분한 시간을 들여야만 한다.
등등 개발자에게 필요한 TIP이 정리되어 있습니다.

 

그리고 "더 나은 프로그래머 되는 법" 책의 Chapter 마지막에는 해당 주제를 마치면서 생각해보기, 연습해보기, 참고 가 있어서 해당 주제에 대하여 어떻게 활용할 수 있을지 생각해 볼 수 있도록 구성되어 있습니다. 저도 해당 내용을 보면서 현재 진행중인 프로젝트나 운영중인 프로젝트와 경험들을 통해서 좀더 해당 내용을 고민해 보았고 개선 방향을 생각해 보게 되었습니다.
그리고 참고에서는 해당 Chapter와 연관 있는 다른 Chapter와 주제를 설명하고 있으며 연관있는 내용위주로 읽어보는 방법도 좋을 것 같습니다. 저도 참고에서 관련 Chapter를 따라가면서 하나씩 책을 읽어보았습니다.

 

"더 나은 프로그래머 되는 법" 책은 현재의 나를 다시 생각해 볼 수 있는 책이라고 생각됩니다. 현재는 이렇게 개발을 진행하고 있는데 앞으로 어떻게 개발할지 그리고 어떤 것을 고민하고 실천해야 할지를 정리할 수 있는 책이라고 생각합니다. 책의 내용 전부를 실천할 수는 없겠지만 조금씩 생각해보고 해당 주제의 몇가지를 실천해 본다면 더 나은 프로그래머가 될 수 있다고 생각해 봅니다.

 

마지막으로 "더 나은 프로그래머 되는 법" 책은 책에도 언급하였지만 개발을 하는 모든 사람에게 도움이 될 수 있다고 생각합니다. 개발을 하면서 경험했거나 경험할 수 있는 내용이 책에 언급되어있고 더 나은 프로그래머가 되기 위해서는 책에 언급한 내용을 실천한다면 다른 사람에게도 그리고 자신에게도 인정받는 개발자가 될 수 있다고 생각합니다.

 

39가지 노하우를 실천해 봐야 할 것 같습니다.


한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

더 나은 프로그래머 되는 법(한빛미디어, 피트 구들리프 저)

 


책 소개

저자 : 피트 구들리프(Pete Goodliffe)

제목 : 더 나은 프로그래머 되는 법

번역 : 최원재, 강전희, 안재덕, 남윤화

출판사 : 한빛미디어

출간 연도 : 2024. 04.

원문 제목 : Becoming a Better Programmer

페이지 : 총 516쪽

 

 

더 나은 프로그래머 되는 법 - 예스24

더 나은 프로그래머로 거듭나는 법, 선배 개발자의 39가지 노하우 공개구글, 마이크로소프트, 토스 등 국내 개발자 8인의 이야기 수록‘과연 내가 좋은 개발자일까?’, ‘더 나은 개발자로 성장

www.yes24.com

https://www.yes24.com/Product/Goods/126110870


 

책의 구성

5개의 부로 구성된 책은

  • 1부 you.write(code)
  • 2부 연습을 통해 완벽해진다
  • 3부 개인적인 일로 받아들이기
  • 4부 일 끝내기
  • 5부 사람의 일

을 주제로 총 39개의 챕터와 국내 개발자 8인의 이야기로 구성되어 있다.

 


 주니어 개발자로써 갖는 많은 생각 중 하나는 '자기 개발'과 '성장'에 대한 고민이다. 더 나아가기 위한 고민은 프로그래밍 언어의 사용으로 표현되는 코드와 코딩에 대한 더 좋은 코드를 작성하는 것으로 시작해, 업무의 능률 상승 및 팀에 긍정적 시너지를 도출하는 것, 마지막으로 하나의 프로젝트를 무사히 완수하는 것으로 이어진다.

 

 '더 나은 프로그래머 되는 법'은 개발자를 대상으로 하는 자기계발서이다. 지난 2015년 출간되었던 ' 훌륭한 프로그래머 되는 법(한빛미디어)'의 개정판인 이 책은 '소프트웨어 개발자'에 초점을 두고 '개발자의 삶'을 설명한다.

 

1부 | you.write(code) 에서는 개발자 업무의 시작점인 '코드 작성'을 설명한다. 코드를 적게 사용하고 오류를 고민하며, 코드 테스트에 대한 선배 개발자의 조언을 담고 있다. 특히 Chapter.11의 '테스트하기'가 기억에 남는데, 해당 파트는 테스트가 무엇이고 언제 실행하며, 무엇을 테스트 해야하는지를 자세하게 안내한다. "작성해야 할 만큼 중요한 코드라면 테스트해야 할 만큼 중요한 것이다."라는 언급을 통해, 테스트를 진행함으로써 문제점을 파악하고 코드 설계 개선에 대해 고민해 보아야 한다고 조언한다.

 

 

2부 | 연습을 통해 완벽해진다 에서는 소프트 개발 절차와 코딩 업무에 대한 접근 방법, 그리고 다른 개발자와의 협업에 대해 설명한다. 소프트 개발의 정의를 시작으로 프로그래밍 팀의 규칙에 대해 언급한 뒤 프로그래밍에 필요한 리펙토링과 버전 관리를 설명한다.

 

3부 | 개인적인 일로 받아들이기 에서는 좋은 프로그래머가 되기 위한 자세, 태도를 '개인'의 시점에서 설명한다. 어떻게 배울 것인지, 동기 부여에 대하여, 그리고 프로그래머의 삶에서의 '윤리'에 대해  설명한다.

 

4부 | 일 끝내기 에서는 가장 좋은 방법으로 훌륭한 코드를 만들어 내는 방법에 대해 설명한다. 해야 하는 것만 하며, 빠르게 진행한다. 우선순위를 설정하며 문제를 미루고 쌓아두지 않는 법을 안내한다.

 

마지막 5부 | 사람의 일 에서는 '협업'에 대해 설명한다. 다른 사람들과 효율적으로 일하는 방법과 다른 사람들에게 배우는 방법의 설명을 통해 더 나은 개발자가 되는 법을 안내한다.

 


마치며

 회사에서 제공하는 업무 가이드라인 혹은 신입(이직) OJT는 해당 업무를 중심으로 기술된다. 개발자의 시선 보다는 프로젝트의 수행을 중심으로 개발 업무가 설명되기 마련인데, 이에 반해 '더 나은 프로그래머 되는 법'은 '개발자'에 초점을 둔 '더 좋은 개발자'가 되는 방법을 설명하는 책이다. 개발자가 사용하는 언어인 '코드'로 부터 시작하여 개발자들의 '협업'으로 마무리 함으로써 개발자의 삶을 관통하는 실질적인 조언들로 주니어 개발자인 나에게는 많은 공감과 생각을 하게 하였다. (부록에 실린 국내 개발자 8인의 이야기 역시 현업의 선배 개발자의 경험담을 통해 훌륭한 프로그래머가 되기 위해 필요한 것들을 조언해 준다.)


 

 개발자로써 성장을 고민한다면 혹은 더 좋은 개발자가 되기를 생각하고 있다면, '더 나은 프로그래머가 되는 법'의 일독을 추천한다. 

 

 

 

  "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

더 나은 프로그래머 되는 법은 단순히 개발 기술을 향상하는 데 그치지 않고개발자로서의 전반적인 역량을 향상기 위한 지침서로서 가치가 있습니다이 책은 바로 실천할 수 있는 39가지의 노하우를 담고 있습니다개발자로서 중요한 주제를 통해 개발자들이 성장하고 발전할 수 있는 방향을 제시합니다.

 

개발자로서 성장하기 위한 핵심 테마 중 하나는 협업과 소통의 중요성입니다개발자가 혼자서 일하는 경우보다 팀으로 일할 때 더 많은 책임과 의무가 요구됩니다이에 따라 코드의 가독성과 이해하기 쉬운 문서 작성 등 협업에 필요한 능력은 단순한 기술적 능력만큼이나 가치가 있습니다이러한 소통 능력은 프로젝트의 성공과 팀의 효율성에 직결됩니다.

 

다음으로 코드의 품질과 안정성에 대해 강조합니다좋은 코드는 단순히 동작하는 것 이상을 의미합니다코드는 단순히 동작하는 것뿐만 아니라 유지보수와 확장 가능성을 고려해야 하며버그가 적은 안정적인 코드 기술도 필요합니다따라서 깔끔하고 안정적인 코드를 작성하는 능력은 어떤 개발자에게도 원하는 부분이라고 생각합니다.

 

더 나은 프로그래머 되는 법에선 지속적인 학습과 개발자로서의 학습과 성장을 강조합니다소프트웨어 개발 분야는 끊임없이 변화하고 발전하기 때문에개발자는 새로운 기술과 도구를 익히고 자신의 역량을 지속적으로 향상야 합니다이러한 지속적인 학습은 성장은 개발자가 더 나은 프로그래머로 성장하는 데 큰 도움이 됩니다.

 

이 책은 개발자의 일과 삶 전반에 걸친 실용적인 조언으로 충분히 발전할 수 있는 개발자가 되기 위한 39가지 노하우를 알차게 담아내고 있습니다프로그래머라면 한 번쯤은 고민해 볼 주제로 코드 작성법자기관리론의사소통 기술일 처리기법 등 개발자로서 한 번쯤은 고민할 주제를 볼 수 있습니다

 

그리고 주제별 각 장에서 배운 내용을 깊이 생각해 보는 생각해보기현업에 바로 적용 가능한 간단한 테스트를 할 수 있는 연습해보기각 장의 이해를 도와주는 은유와 재치는 있는 그림으로 쉽게 더 나은 프로그래머 되는 법을 읽어나 갈 수 있습니다이뿐만 아니라 국내 개발자 8인의 인터뷰가 담긴 특별 부록에선 그들이 경험한 삶에 대해 현실적으로 들을 수 있습니다더 나은 프로그래머 되는 법 39가지의 노하우를 통해 개발자들이 전문성을 향상고 성장하고 싶은 신입부터 중급팀 리더 개발자 등에게 추천합니다.

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

더 나은 프로그래머 되는 법

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
해서, 최대한 책을 펼쳐놓는 형태로 리뷰를 작성해 보려고 합니다.
그 중에 자신에게 맞는 부분이 있다면 책을 선택해 보시면 될 것 같습니다. ^^ 

✅ 이 책의 내용
소프트웨어 개발자로서의 삶 전반에 대한 것 
- 코드의 각 줄을 어떻게 설계할 것인지에 관해 다룬다.
- 더 낫게 일하기 위한 실질적인 기술을 소개한다. 
- 작업에 도움이 되는 효율적인 태도와 접근 방법들에 대해 서술한다.
- 프로그래머가 소프트웨어 업계에서 살아가기 위해 필요한 절차적이고 조직적인 부분에 대한 비법과 조언을 설명한다. 

✅ 대상 독자
- 취미로 개발을 공부하는 일반인
- 신입 개발자
- 경험 많은 개발자
- 업계 전문가
- 어떤 수준의 개발자에게도 도움이 될 것 

✅ 이 책을 읽기전에 갖추어야 하는 것 
- 더 나은 프로그래머가 되고자 하는 마음

✅ 이 책의 구성 
1부 you.write(code);
2부 연습을 통해 완벽해진다
3부 개인적인 일로 받아들이기 
4부 일 끝내기 
5부 사람의 일

- 생각해보기 
- 연습해보기

✅ 이 책을 읽기전에 들었던 이 책에 대한 생각 
- 더 나은 개발자가 되기 위한 태도와 생각방법에 대해 고민해 볼 수 있지않을까? 
- 다른 사람들은 어떻게 더 나은 개발자가 되기를 바라고 있을까?
- 더 나은 개발자가 되기 위한 궁극적인 방법에 대해 알 수 있지 않을까? 
- 개발자란 어떤 사람인가? 
- 개발자란 무엇을 하는 사람인가? 
- 개발이란 무엇이고, 어떻게 하는 것이 개발을 더 잘할 수 있는걸까?
- 개발을 더 잘한다는 건 뭘까?

✅ 이 책에 대한 한 줄 평
사람이 어떻게 성장하고 발전하고 학습해야 하는가에 대한 이야기 

✅ 이 책을 읽고나서 이 책에 대한 소감
평범한 프로그래머와 훌륭한 프로그래머의 차이는 바로 '태도'에 있다. 
프로다운 접근방식을 취하고 최고의 코드를 작성하려는 태도로부터 훌륭한 프로그래밍은 태어난다. 

이 책의 경우에는 생각하게 하는 질문들이 많은 게 좋은 것 같다. 
가령, 평범한 프로그래머와 훌륭한 프로그래머의 차이는 무엇인가? 

또한, 어떤 방법이 옳다고 이야기를 하기보다는 무엇을 할 것인가를 생각하고 
그에 맞는 방법을 상황에 맞게 선택하면 된다고 이야기한다. 

이 책의 가장 큰 장점은 생각을 많이 하게하는데 있다고 본다. 

그리고 개발적인 부분들도 있지만 읽다보면 자기계발적인 부분 
초보자 단계 -> 발전된 초보자 단계 -> 능숙한 단계 -> 능수능란한단계-전문가 단계등
학습모델에 대한 부분도 정리가되어 있어 자신이 학습이 어느정도 단계인지를 판단해 볼 수도있다. 

그리고 배움에 대한 이야기도 나온다. 배움의 가장 효과적인 방법 중 하나는 가르쳐 보는 것이라든가.
배우기 위해서 핵심은 실천이라든가 하는 것들이 나온다. 

이런 종류의 책중에 좋은 책들은 결국에는 사람이 어떻게 하면 발전을 할 수 있는가가 정리되어있다.
결국에는 무엇이든 사람이 하는 것에는 태도와 학습, 성장 이런걸 어떻게 할 수 있는지가 정리되어 있다고 본다.

이 책에도 개발적인 부분에서 생각해야 할 것들도 있지만, 꼭 그것만이 있는 것이 아니라
사람 자체가 무언가를 잘하기위해서 성장하기 위해서 나아가기 위해서 무엇을 중요하게 생각하고 실천해야 하는지가
잘 나타나있는 책이라고 생각한다. 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다"

 

책에서 다루는 내용

프로그래머가 이 책에서 마주하게 되는 것은 크게 3가지인 것 같다.
프로그래머는 프로그래밍 자체와 마주하고 팀원과 마주하고 나 자신이랑 마주한다.

프로그래밍을 하면서 업무상의 팁, 실천 방법을 다룬다.
그리고 개발 회사 안에서의 인간관계를 다룬다.
또한 나의 정신적인 육체적인 부분을 관리하는 태도에 대해서 다룬다.

각 장의 마지막에는 '생각해보기, 연습해보기, 쉬어가기, 참고 파트'로 구성되어 단순 직관적으로 책이 원하는 방향대로 직접 따라가보는 경험을 할 수 있다. 읽고 끝나는게 아니라 생각을 할 일이 있게 되기에 좋았던 것 같다.

 

1부 (you.wite(code);) & 2부 (연습을 통해 완벽해진다)

1부에서도 가장 밑바닥인 코드르 작성하는 기법부터 읽기, 설계하기 등등을 작성하는 방법이 나온다. 2부에서는 코드에서 한발짝 넘어가서 프로그래밍을 할 때 어떻게 연습을 할 지에 대해서 다룬다.
이 책이 정말 좋았던 점은 1부를 예를 들면 각 챕터가 '코드에 신경 쓰기', '정돈된 코드 유지하기'처럼 딱 보고 어떤 내용인지 인지가 된 채로 읽게 된다라는 점이다. 그 점에서 정말 좋았던 것 같고 흥미로운 챕터는 똥통에서 뒹굴기 였다. 알지못하는 코드의 늪, 어떻게 유지보수하면서 코드를 개선해서 무질서한 체계를 정리할 것인지를 다루는 내용이다.
순서도 더럽지만 정말 이해가 잘 가게 설명하고 있다. '똥냄새 맡기', '똥통 헤치고 나아가기', '똥통 조사 결과(확인)', '수렁에서 일하기', '똥치우기' ... 순이다.
내가 작성한 코드 조차도 오래되다보면 어떻게 해야할 지 감이 안오는데, 그 상황을 똥통으로 비유하여 읽다보니 공감도 가고 이해가 잘 됐던 것 같다.

 

3부 (개인적인 일로 받아들이기) & 4부 (일 끝내기)

3부는 프로그래밍을 넘어서 프로그래머 인생 그 자체를 얘기한다. 거창한 것 같지만, 효율적으로 배우기, 도덕성, 도전을 찾기, 건강을 유지하는 방법(!?)을 다룬다. 개인적인 프로그래밍의 '일'을 어떻게 받아들일지에 대한 마인드셋을 이야기한다고 보면 된다. 이후 4부에서는 그 일을 끝내기 위한 실질적인 방법론들, 일정을 어떻게 지키고 완수할 지에 대해서 다루게 된다.
건강을 유지하는 방법을 보면 정말 웃기면서도 재밌다. 챕터 명도 의도한 것 같다. 프로그래머의 자세이다.
컴퓨터에 앉는 기본 자세부터 상사의 감시에 대비하는 자세, 디버깅하는 자세, 곤경에 처한 자세 등을 다룬다. 당당하게 웃기려고 하는 부분들이 나와서 좋다. 특히 '설계 시의 자세'는 새로운 코드를 설계하거나 문제를 해결할 때 최대한 편안한 자세를 취하며, 주변으로부터 방해받지 않는 화장실 자세(변기에 앉기)를 하라고 한다.

 

5부 (사람의 일)

5부는 같이 일하는 사람들과의 관계에 대해서 다룬다. 우리는 같이 일해야한다. 일할 때에는 여러 수단이 쓰이는데 코드, 각종 문서, 그리고 직접 하는 말과 텍스트가 있다. 어떻게 의사소통을 할지, 어떤 태도를 가져야하는지, 우리는 사람이라는 것 등을 인지시키는 챕터다. 프로그래머의 심리를 깊숲이 다루는 몇 안되는 책이라는 추천사가 적혀있는데 앞의 3부부터 여기까지 오면서 그 얘기가 정말 맞다고 느낀다.

 

 

 

 

 

최근 협업할 일도 많고 나의 현 주소를 많이 깨닫고 있기 때문에 더 나은 개발자가 되고자 이 책을 선택했다.
사실 이 책의 내용들이 어디서 한번쯤 들어보았을 그런 조언의 내용들이지만 하나하나를 곱씹으면 정말 많은 도움이 될 것 같다.

시간이 지나고 까먹을 때마다 다시 읽기 너무 좋은 책이다.
가르치려는게 아니라 정말 프로그래머들을 생각해서 적어둔 위트있고 재밌는 책이라 읽을 때마다 또 새롭게 느껴질 것 같다.
코드를 어떻게 작성하는지 부터, 소통을 어떻게 해야하는지, 어떻게 다른 사람에게 접근할지, 자세는 어떻게 하는지 모든 것에 대한 백과사전 같다
자세도 바르게 하고 태도도 바르게 해야지

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 

팀이나 조직에 신입 개발자 또는 경력 개발자가 들어왔을 때 개발자로서 해야 하는 역할에 대해 조언을 해주고  싶을 때가 많다. 하지만 내가 경험한 경험이 정답이 아닐 수 있기에 나의 경험 위주로 개발에 대해 말하기는 어렵다는 것을 느낀다. 다행히 요즘 개발자의 역할이나 개발자가 갖추어야 할 자질, 그리고 개발자로서의 필요한 기본적인 지식 등 선배 개발자로서 다른 개발자에게 알려줘야 할 다양한 정보에 대해 잘 정리된 책들이 나오고 있는 것 같다. 이런 책들 중 괜찮은 책들을 선물하거나 필요하면 파트를 나누어 발표를 하고 있다.

 

궁극적으로 개발자로서 커리어를 쌓아가기 위해서는 지금보다 더 나은 개발자가 되기 위해 꾸준히 노력해야 한다. 이를 위해서는 누구나 공감할 수 있는 무엇인가가 필요하다고 생각한다. 단순히 개발 스킬을 향상시키는 것이 아니라 사람과의 관계, 시스템의 활용, 문제에 대한 접근방법 등 단순 지식만으로는 알 수 없는 깊이있는 무엇인가가 꼭 필요한 것 같다. 이런 측면에서 보면 이 책이 더 나은 개발자가 되기 위한 중요한 내용을 알려준다고 생각한다.

 

책의 앞부분에 소개되듯이 이 책의 주제는 소프트웨 개발자로서의 삶 전반에 대한 내용이다. 코드에 대한 부분뿐만 아니라 실질적인 기술들, 그리고 개발을 위해 필요한 효율적인 태도와 접근 방법들,  궁극적으로 소프트웨어 업계에서 살아가기 위한 필요한 절차적인 부분과 조직적인 부분에 대해 잘 알려준다. 이런 측면에서 보면 이 책은 신입 개발자뿐만 아니라 경험있는 개발자에게도 많은 도움을 줄 수 있는 것 같다. 경력 개발자들도 이 책을 통해 더 많은 것을 배울 수 있을 뿐만 아니라 후배 개발자에게도 의미있는 조언과 방향을 알려줄 수 있기에 더 유용하다고 생각한다.

 

이 책은 총 5개의 파트로 구성되어 있으며 세부적으로 총 39개의 장으로 이루어져 있다. 첫번째 파트에서는 코드에 대한 전반적인 부분을 설명한다. 정돈된 코드를 유지하는 이유와 방법, 코드를 간결하게 작성하는 방법 및 개선 방안, 문제점을 확인하고 버그를 찾는 법, 그리고 테스트와 복잡도에 대한 부분 등 코드 전반적인 부분을 다루고 있다. 두번째 파트에서는 소프트웨어 개발이란 무엇인지로 부터 출발해서 간결한 소프트웨어 개발과 코드 수정에 대한 방법, 그리고 코드 재사용 및 버전 관리에 대한 개념을 소개한다. 세번째 파트에서는 배움의 중요성과 테스트 주도 개발자에 대한 소개를 하며, 도전을 두려워하지 말고 다양한 도전을 통해 동기 부여가 중요하다는 점, 그리고 궁극적으로 개발자의 자세에 대해 잘 설명해 준다. 네번째 파트에서는 현명하게 개발하는 방법과 일에 대한 완료 개념에 대해 소개한다. 마지막 다섯번째 파트에서는 사람이 하는 일로서의 개발에 대한 설명을 한다. 생각의 중요성과 의사소통, 그리고 궁극적으로 태도에 대한 부분으로 마무리 짓는다.

 

많은 개발자들이 개발 스킬 향상에만 너무 신경쓰는 경우가 있는 것 같다. 하지만 개발은 단순히 스킬만으로 되는 것이 아니라 여러 사람이 모여 공통의 목표를 이루기 위해 서로 협업하고 목표에 다가가는 과정이다. 이를 위해서는 기술 못지 않게 의사소통과 동일한 목표를 가지는 것이 필요하다. 어떻게 보면 중요하지 않다고 치부할 수 있지만 기술보다 더 중요한 요소들도 많이 있다는 것을 느낄 수 있을 것 같다. 개발자로서 무엇을 배우고 성장해야 하는지 잘 보여주는 책이라고 생각한다.

 

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 

책 리뷰: “더 나은 프로그래머 되는 법”

 

“더 나은 프로그래머 되는 법”은 개발자로서 성장하고자 하는 모든 사람들에게 필수적인 안내서입니다. 이 책은 15년 경력의 선배 개발자가 전하는 39가지 노하우를 통해 프로그래머로서의 실력을 향상시키고자 하는 독자들에게 실질적인 도움을 제공합니다. 구글, 마이크로소프트, 토스 등 국내 유수의 IT 기업에서 활약 중인 개발자 8인의 경험담을 통해 현실적이고 구체적인 조언을 함께 제공합니다.

 

저자 피트 구들리프는 다양한 개발 경험을 바탕으로 더 나은 개발자로서 지녀야 하는 덕목에 대한 강력한 믿음을 책에서 보여주고 있습니다. 개발자로서 다양한 기술, 다양한 일, 다양한 사람, 다양한 회사를 만나며 머릿속에 언제나 맴돌았던 말은 ’과연 내가 좋은 개발자가 될 수 있을까?’라는 질문이었습니다. ‘이 기술을 익히면 문제를 해결할 수 있을까?’, ‘이 사람과 이런 방식으로 이야기하고 문제를 풀어가는 것이 가장 적합한 것일까?’ 또는 ’이 회사에서 일하면 내가 얼마나 만족할 수 있을까?’와 같은 질문들도 연이어 떠올랐습니다.

 

이 책을 읽으면서 저자가 강력히 주장하는 프로그래밍 업무상의 실천 방법, 프로그래밍이나 소프트웨어 개발 회사 안에서의 인간 관계, 정신적인 부분과 육체적인 부분을 관리하는 태도를 저의 경험과 연관 지어 생각하게 되었습니다. 그러면서 스스로에게 던져왔던 많은 질문에 대한 답을 어느 정도 찾을 수 있게 되었습니다.

 

이 책은 직접 도움을 얻고자 하는 사람뿐만 아니라 다른 이에게 도움을 주고자 하는 사람에게도 길잡이가 될 수 있습니다. 필자가 주장하는 더 나은 프로그래머가 되기 위해 지녀야 하는 덕목은 그 어떤 수준에 있든 간에 상관없이 지녀야 하는 것이기 때문입니다. 또한 더 나은 수준이란 언제나 존재하기에, 일정 수준에 도달한 프로그래머라 해도 더 나아지기 위해 머리로 기억하고 마음에 담아 잊지 않아야 하는 것이 있기 때문입니다. 이런 것을 주변에 전하고 서로가 서로를 자극할 때 멘토와 멘티가 모두 성장할 수 있기 때문입니다.

 

이 책은 총 5부로 구성되어 있습니다. 각 부는 프로그래밍을 할 때 실질적 실행 방안들을 자신의 것으로 만드는 방법, 프로그래머로서 프로그래밍 업무나 작업 환경을 받아들이는 자세, 팀이나 회사에서 프로그래밍 업무나 프로젝트를 마무리하는 과정, 프로그래머 혹은 프로그래머가 아닌 동료들과 함께 지내고 일하기 위해 필요한 가치관에 대해 자신의 경험을 바탕으로 설명하고 있습니다. 단지 설명에 그치는 것이 아니라, 그 설명을 바탕으로 독자 자신이 스스로의 경험에 빗대어 생각하고 마음속에서 받아들이기를 요구하고 있습니다.

 

이처럼 내용 면에서 프로그래머가 겪을 수 있는 다양한 주제를 다루고 있을 뿐만 아니라, 각 장 마지막을 ‘생각해보기-연습해보기-쉬어가기-참고’로 구성하여 형식적인 면에서도 자기 계발이라는 목표에 쉽게 도달할 수 있는 방향을 제시하고 있어 큰 도움을 얻을 수 있습니다.

 

대부분의 프로그래머들은 성향상 지적 유희를 즐기고 실제 문제를 해결해내고자 하는 의지가 충만합니다. 이러한 성향을 더 나은 방향으로 계발시킬 수 있는 실천적 방향을 이 책에서 제시하고 있습니다. 이 책을 읽는 모든 분과 그들 주변의 모든 분이 더 나은 프로그래머가 되기를 바랍니다.

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

지금 바로 실천할 수 있는 선배 개발자의 39가지 노하우

< 더 나은 프로그래머 되는 법 >

이 책은 총 5개의 큰 파트 안에 39개의 작은 챕터로 이루어져있다.

1장은 코드에 대해 이야기하고, 2장은 개발에 대해, 3장은 태도, 4장은 행동에 대해, 5장은 커뮤니케이션에 대해 다양하게 이야기해주고, 마지막은 국내 개발자 8인의 이야기를 수록하고 있다.

 

이 책을 읽으면서 항상 내가 갈구하는, 선배들은 어떻게 생각하고 행동하는가에 대한 포인트가 잘 담겨있다고 생각한다. 하나의 주제에 대해 선배 개발자로써 어떤 것이 잘못되었는지, 고쳐야 하는지 상세하게 이야기를 해주며 어떻게 고칠수 있을지 방향성에 대해 스스로 생각해볼 수 있는 '생각해보기' 챕터로 마무리한다. 이 생각해보기 챕터를 통해 내가 그동안 어떻게 행동했었는지, 만약 문제점으로 짚혔던 행동을 했다면 어떻게 개선할 수 있을지 고민할 수 있는 시간을 가질 수 있어서 좋았다. 아직 좌충우돌 사건사고가 많을 주니어 개발자들에게는 초반부터 올바른 길로 갈 수 있게끔 지도해주는 지도서가 될 수 있을 것이다. 중간중간에 쉬어가기로 그림을 넣어주는데, 개발을 하는 사람 입장에서 해석해보면 재미있는 요소들이 있어 좀 더 즐겁게 책을 읽을 수 있었다고 생각한다.

 

마지막에는 국내 개발자 8인의 이야기를 부록으로 담아두었는데, 나는 이 챕터에서 토스 이소영님의 이야기가 가장 맘에 들었다. 무엇을 학습할 것이고, 집중 영역을 정해야 하며, 가장 강력한 꾸준함의 무기를 갖추고, 마지막으로 이소영님을 지탱하고 있는 몇 가지 개발 습관들에 대해 이야기해주시는데 재밌기도 했으며 도움이 되는 포인트도 명확히 있었다. 나머지 7분들은 직접 책을 통해 확인해보시기 바라며, 주니어들의 행동 지침서가 될 수 있는 더 나은 프로그래머 되는 법의 서평을 여기서 마친다.

 

한빛미디어 (나는 리뷰어다) 활동을 위해서 책을 제공받아 작성된 서평입니다.

안녕하세요

이번에 서평 해볼 책은 '한빛미디어의 더 나은 프로그래머 되는 법' 책입니다.

책 앞 부분에는 깔끔하게 그림이 들어가 있고

뒷부분에는 전반적인 내용 요약과 추천사가 들어가 있네요

 

책 목차는 위와 같습니다 총 3개의 파트로 나눠져있고

39개의 챕터로 이루어져 있습니다.

소프트웨어 개발자 전반에 대해서 다 배울 수 있다고 생각이 드네요

 

책의 가독성은 깔끔합니다. 중요한 부분에 빨간 줄도 잘 쳐져 있고요

그리고 마지막에 마치며 부분에서 생각해 보기에 질문이 있어서 읽은 내용을 기반으로 해서

생각해 볼 수도 있습니다.

 

어떻게 하면 코드를 잘 작성하는지도 알려줍니다.

단순히 글로만 알려주지 않고 코드도 같이 보여주고 중요한 내용들을 하나씩 정리해서 알려줍니다.

 

테스트에 대해서도 알려줍니다.

테스트를 왜 해야 되는지부터 시작해서 좋은 테스트와 나쁜 테스트를 알려주고

테스트의 종류부터 해서 어떻게 하는지도 알려줍니다.

 

개발자의 학습에 대해서도 내용이 있습니다.

개발자의 기술뿐만 아니라 의사소통에 대해서 학습이 필요하다고도 알려주고

전반적으로 어떤 걸 학습해야 되는지 알려줍니다.

 

책의 마지막에는 국내 개발자 8인의 인터뷰가 수록이 되어있습니다.

8인마다 각기 다른 주제로 인터뷰가 있기에 다양한 내용들을 배울 수 있습니다.

 

 

개발자로 일을 하면서 개발자 삶의 전반에 대해서 배우고 싶으신 분들에게 추천을 합니다.

39개의 챕터가 있기에 꼭 다 읽지 않아도

본인이 필요한 부분만 읽어도 많은 인사이트를 얻을 수 있다고 생각이 드네요

 

 

"한빛미디어 서평단 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

안정화된 개발이란코드의 input 대비 ouput이 항상 일정함만을 의미하지 않는다진정한 의미에서 안정화된 코드란내가 아닌 다른 누군가가 나의 코드를 이용하여 신규 기능을 추가하거나 서비스를 개발할 때에도 안정적인 결과가 나오는 것을 안정화된 개발이라 한다.'

 

1인 개발자라면 솔직히 코드의 컨벤션이나 변수 명명 규칙함수 명명 규칙 따위 등에 대해서 크게 신경을 쓰지 않아도 된다어차피 나 혼자 볼 코드이고 나 혼자 유지 보수할 코드인데위의 것들에 대해서 그리 신경 쓸 이유가 있을까?

 

하지만 회사나 스타트업에서 다 함께 일을 하게 되면 위의 부분은 전혀 다른 이야기가 된다왜냐하면 더 이상 이 코드는 나만의 것이 아니기 때문이다정확히 말해서는 내가 이제껏 해왔던 개발 문화는 나만의 개발 문화가 아니게 되기 때문이다.

 

연차와 경력이 쌓이고여러 플랫폼을 오가며 개발을 할수록 개발자들은 자신만의 개발 철학과 문화를 형성하기 시작한다특히 기술 스택에 있어서 말이다다만이러한 기술 스택에 초점을 둔 성장에는 큰 문제점들이 있다가령 몇 가지 예를 들자면 협업이라는 관점에서 누군가 나의 코드를 유지 보수할 때누군가 나와 함께 코드 리뷰를 할 때누군가 기능을 추가할 때 참고하라고 내가 만든 기능을 문서로써 공개할 때그동안 다양한 기술 스택의 전문성을 쌓는 데에만 집중한 나머지 협업이라는 관점에서는 연차 대비 기대했던 협업이라는 관점의 점수는 낙제점을 받을 가능성이 높다.

 

이 책은 그동안 개발자들이 간과하기 쉬웠던 협업이라는 관점에 초점을 두어 '초보중급고급 개발자'들이 반드시 알아야 하는 내용에 대해서 친절히 가이드 한 책이다.

 

더욱이 실무자들이 자신들의 겪었던 경험을 토대로 집필한 책이기에 단순히 이론이 아닌실제로 언제든 우리가 대면할 수 있는 리얼 월드에서의 상황을 책에 고스란히 녹여냈다는 점에서 의의가 크다.

 

【책의 구성】 "더 나은 프로그래머 되는 법"의 구성은?

 

책의 구성은 간단 명료하다.

 

처음에는 이론과 배경에 대해서 설명하고 이후 저자들이 해당 챕터에서 독자가 좀 더 깊게 사유해 봤으면 하는 내용에 대해서 질문하고마지막에는 가상의 시나리오를 통해 독자 본인이 어떠한 상황에 놓였다는 가정하에 어떻게 해결할지 등에 대해서 고민하는 내용으로 마무리하고 있다.

 

이 책의 내용은 모두가 주옥같고 의미 있으며정말 필자가 주니어 개발자로 돌아간다면 한 달 간격으로 반복해서 읽었을 법한 내용으로 가득 차 있다.

 

반드시 읽어보시길 권장한다.

 


 

챕터 1~2 : 코드에 신경 쓰기정돈된 코드 유지하기

개발자에게 코드는 개발이라는 인생을 통틀어 때려야 땔 수 없는 인생의 동반자의 느낌이라 할 수 있다또한 코드는 개발자의 정신세계를 대변하는 언어이며 그의 철학을 녹여내는 수단이기도 하다.

 

그런 코드를 이용하여 우리는 프로그램이라는 집을 짓고그 프로그램에는 수많은 사용자가 오가며 흔적을 남기게 된다.

 

코드는 돌아가야 한다옛날에도 그렇고 지금도 그렇고 가장 중요한 부분이다아무리 아름답고 깔끔하고 위대한 철학이 담긴 코드더라도 그 코드가 바르게 동작하지 않는다면그 코드는 단순 단어를 나열한 무엇인가?에 불가하기 때문이다.

 

하지만 코드가 앞서 말한 것처럼 돌아가는 데에만 치중하게 되면 그 코드는 유지 보수의 관점에서 그리고 협업의 관점에서 에러투성이의아무도 이해할 수 없는 그런 사고뭉치로 전락해버리고 말 것이다.

 

그렇기에 우리는 인생의 동반자 코드를 모두가 함께 돌아가는 프로그램이 될 수 있도록 가꾸고 보듦는 법을 배워야 한다

 


 

챕터 3 : 코드 적개 사용하기

 

어떤 개발자는 코드를 길게 쓰는 것을 코드의 미학이라 생각하는 사람들이 있다. 보다 복잡하고 보다 이해하기 어렵고 보다 고상한 나만의 코드.. 필자는 그것을 "코드로 아트를 한다!"라고 종종 표현한다.

 

코드로 아트를 할 수 있다하지만 아트는 보는 사람마다 해석이 다르며이를 통해 세계관을 넓히고 세상의 경계를 허물기 위해서 하는 것이다.

 

하지만 코드는 아트가 될 수 없다코드는 서비스이며 서비스는 현실의 경계를 허물기 위해서 보단현실에서 일어나는 무엇인가의 문제를 효율적으로 해결하기 위한 것이기 때문이다.

 

이 챕터를 읽는다면 확실히 이런 부분에 대해서 왜 코드를 간결히 사용해야 하는지에 대해 이해할 수 있다.

 

【 더 나은 프로그래머 되는 법을 읽고 나서 】

 

개발자의 시장이 옛날과는 비교할 수없이 성장한 것이 요즘이다그만큼 개발자의 처우도 좋아졌고 개발에 임하기에 좋은 환경이 되었음을 의미한다.

 

다만개발에 임하기 좋은 환경이 된 만큼개발에게 필요되는 역량 역시 덩달아서 증가하고 있다특히 요즘과 같이 소프트웨어 한 개의 복잡도와 규모가 점점 거대해지는 시국 속에서 1인 개발자 혼자서 만드는 소프트웨어의 퀄리티는 굉장히 한정적일 수밖에 없다.

 

그 말은 즉이제는 프로그래밍을 함에 있어서 협업은 필수불가결의 요소라 할 수 있다는 점을 밑바탕에 깔고 시작해야 됨을 의미한다.

 

협업을 하기 위해서는 단순히 알고리즘을 잘 짜고문제를 본인의 인사이트와 뷰에서 쉽게 해결하기만 하면 안 된다누군가 나의 코드를 보았을 때, 그리고 누군가와 커뮤니케이션을 할 때이곳에서 발생하는 비용을 최소화하고 함께 이해하기 쉬운 코드를 만들기 위해 분투해야 함을 의미한다.

 

나만의 코드가 아닌우리 모두의 코드가 될 수 있도록 노력해야 하는 시대가 바로 지금인 것이다.

 

본 도서는 "한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

개발자로 일을 한 지 꽤 많은 시간이 지났지만 아직도 뭔가 많이 부족한 것 같고, 특히 최근에는 발전하는 것이 없다고 느낀 날이 많아서 현타가 오기도 하는 때가 많았던 것 같아요. 


 

 

업무에 쫓겨서 밀려들어오는 일만 처리하다 보니 더 효율적이고 좋은 방법을 공부하고 찾아내려는데 투자하는 시간이 많이 줄어들게 되었던 것이 아닌가 싶습니다. 바쁜 일이 좀 끝나면 아주 기본서부터 시작해서 강의와 책들을 다시 하나씩 섭력해 보려고 합니다. 아직 완전히 정독하지는 못했지만 오늘 소개할 책 『더 나은 프로그래머 되는 법』도 그중 하나입니다.

 

오랜만에 비 오는 날 카페에 앉아서 책 전반적인 내용을 천천히 훑어봤습니다. 예전에는 맞는 말이지만 공감하지는 못했을 내용들이라고 생각되는 것들이 지금은 많이 와닿습니다. 평소에 고민했던 것에 대한 답과 조언이 많이 담겨있었어요.


 

 

책 『더 나은 프로그래머 되는 법』의 대상 독자와 목차

5개의 큰 PART로 구성되어 있습니다. 이 책의 저자는 개발자를 포함해 업계 전문가들 전체에게 도움이 될 것이라고 자신 있게 말하고 있습니다. 상당히 실용적인 책이라고 생각됩니다. 

 

you.write(code); 

가장 밑바닥의 코드를 기반으로 코드 작성 시의 중요한 기법과 훌륭한 코드를 작성하는 방법들에 대해서 다룹니다.

연습을 통해 완벽해진다

더 나은 프로그래머가 되는 데 도움이 되는 중요한 프로그래밍 연습을 다루며 업무에 대한 태도와 접근 방법을 다룹니다.

개인적인 일로 받아들이기

효율적으로 배우는 방법, 도덕적인 행동과 자극적인 도전 그리고 번아웃을 피하고 육체적으로 건강해지는 방법을 다룹니다.

일 끝내기

일을 끝내기 위한 실질적인 방법, 목표에서 벗어나거나 일정을 지연시키지 않고 완수하는 방법을 다룹니다.

사람의 일

소프트웨어 업계에서 다른 사람들과 협업하는 방법을 다룹니다.

 


 

똥통 같은 코드를 처리하는 방법

늪과 같은 코드, 코드가 너무 촘촘해서 고치기도 어렵고 바꿔보려고 하면 많은 에러를 뱉어내는 것을 똥통으로 표현합니다. 실제로 내가 이런 코드를 작성해 내는 개발자가 중 하나일 수도 있지만... 어쨌든 우리 개발자들은 이런 코드를 발견하면 잘 처리하고 이겨내야 합니다. PART 1의 챕터 7에서는 똥통을 어떻게 잘 처리할 수 있을지 재밌게 다루고 있습니다. 실질적인 예가 없어서 아쉽기는 하지만 생각을 많이 하게 해주는 부분이었습니다. 

 


 

 

 

다른 직업군들보다 유독 더 많은 것을 공부할 수밖에 없는 것이 IT업계 그리고 특히 개발자들이라고 생각합니다. 공부하는 것을 더 좋아한다기보다는 하지 않으면 살아남을 수 없을 정도로 빠르게 변화하고 오래된 기술은 사양되는 경우가 많기 때문이죠. 파트 3에서는 우리가 어떻게 공부하고 무엇을 배우며 습득할지 실마리를 던져줍니다. 제가 얼마나 공부를 안 하고 있는지 반성하게 되는 파트였어요.


 



 

'독립적인 파트에서 일을 하다 보니'라는 핑계로 혼자만의 규칙을 가지고 코딩을 하는 경우가 많습니다. 그런데 이 규칙도 제대로 문서화되어 있지 않다 보니 자주 바뀌고... 알면서도 잘 안되는 버전 관리와 개발 규칙에 대해서 다시 한번 상기해 주는 내용도 책에서 잘 설명하고 있습니다. 


 

 

코드를 무조건 짧게 하는 것이 좋은 것은 아닐 수 있지만 단순해야 할 코드가 단순하지 않는 것은 문제가 있고 실수할 여지가 충분히 있겠죠. 아주 쉬운 예이지만 실제로 위와 같은 코드를 많이 발견하게 됩니다. 당장 다음 주부터 개발 중에 위 그림과 같은 부분이 없는지 살펴봐야겠습니다.


 

 

 

코드는 나 혼자만 보기 위해서 작성하는 것이 아님을 명심해야 합니다. 그리고 현재의 나뿐만 아니라 미래의 나를 같은 사람으로 보지도 않아야 합니다. 인간은 망각의 동물이란 것을 개발을 하면 할수록 확실하게 느끼게 됩니다. 유지 보수를 위해서 어떤 코드를 어떻게 작성해야 할지 고민이 많아지네요. 

 


 

 

이 책의 장점 중 하나는 위 사진과 같이 '생각해 보기'와 '연습해 보기'가 해당 챕터에서 배운 내용으로 꽤 구체적으로 되어 있다는 점입니다. 어떤 부분이 부족한지 무엇을 생각해야 할지 짚어줘서 더 많은 생각을 하게 만들어줍니다.

 


 

 

책의 마지막 Appendix에는 국내 개발자 8인의 이야기가 담겨있습니다. 업계의 선배들을 직접 만나보거나 이야기해 볼 수 있는 기회를 갖기는 정말 어렵지만 이렇게 책을 통해서 다양한 노하우들을 배울 수 있으니 좋은 것 같습니다. 짧은 내용이지만 같은 고민을 해 본 개발자라면 많은 부분을 공감하고 읽을 수 있을 겁니다. 

 


 

 

책을 곱씹어 보면 나의 개발자로서의 발전을 어떻게 진척시킬 수 있을지 고민하게 합니다. 이번 여름에는 한 단계 더 발전하는 시간을 책을 통해서 고민하고 공부해 봐야겠다는 생각이 많이 드는 하루입니다. 


 


 

다행인 점은 이 책을 읽는 (저를 포함한) 개발자들은 누구나 코드에 신경을 쓰고 있음을 증명한다고 생각합니다. 신경을 쓴다는 것이 더 나은 코드를 만들고 있다는 것을 의미하지는 않지만 말이죠. 

 

그럼에도 조금은 더 발전할 수 있지 않을까요?

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

클린코드와 개발자로서의 마음 가짐을 챙기는 지침서

 

 

제일 먼저 끌렸던 것은 제목이었다. 개발자 뿐만아니라 일을 하고 있는 모든 사람들은 어제보다 더 나은 사람이 되고자 한다. 특히 개발자는 더더욱 그럴 것이다. 당장 5분전에 작성한 코드는 레거시 코드가 되며, 변경과 확장에 용이한 코드는 무엇이며, 더 크게 나아가서 아키텍쳐는 어떻게 구성해야할지 항상 생각한다.

이 책은 경험 많은 시니어 개발자가 어떻게 하면 더 좋은 개발자가 될 수 있는지 친절하게 지침을 알려주는 가이드 북이다. 파트는 전체적으로 2개의 파트로 구성된다. 1파트는 소스 및 아키텍쳐 레벨에서의 지침 가이드, 2파트는 개발자로서 가져야 하는 마인드 가이드이다. 그리고 특별 부록으로 국내 개발자 8인의 인터뷰도 수록되어있다.

 

 

먼저 1파트는 클린 코드와 클린 아키텍쳐와 관련된 가이드이다. 사실 개발하다보면 나도 모르게 스멜코드를 작성하는 일들이 번번히 있는데, 이러한 가이드들을 보면서 항상 주의깊게 코딩해야한다는 사실을 더 확실하게 기억하게 된다. 어떻게 보면 기본적인 가이드이지만, 어떻게 보면 좋은 개발자가 되기 위한 근본이라 할 수 있는 파트이다.

또한 1파트의 후반부는 클린 아키텍쳐와 관련된 이야기가 나오는데, 아키텍쳐가 복잡해지면 어떠한 일이 벌어지는 지에 대해서도 상세하게 나와 어떠한 형식으로 아키텍쳐를 가져가야 하는지에 대해서도 친절하게 가이드 해준다.

 

 

나름 책이 가이드로써로만 쓰여진 것은 아니고 나름의 유머와 삽화로 독자가 지치지 않게 재미 요소를 넣은 것이 마음데 들었다. 소챕터가 끝날때마다 실습 및 삽화들이 나오는데, 이러한 삽화들이 책을 지루하지 않게 만드는 좋은 장치가 되었다. 

 

 

2파트는 개발자로서 가져야할 마인드에 대한 가이드이다. 개발자는 끊임없이 새로 나온는 것들에 대해서 학습하고 익혀 나가야하는 숙명이다. 어떻게 하면 개발자가 끊임없이 지식을 얻어낼 수 있는 지에 대해서 알려주는 문구들도 좋았다.

 

 

가끔씩 유머같은 내용들도 있는데 이러한 내용들이 너무 딱딱하지 않게 책을 만들어줘서 좋았다.

 

 

책의 마지막에는 국내 개발자 분들의 조언들이 담겨 있다. 꽤나 오래 개발일을 진행해오셨던 분들이 자신만의 경험담 및 개발자로서 가져야할 마인드를 알려주는데, 마치 커피챗과 같이 좋은 인사이트를 얻어갈 수 있어서 좋았다. 

 

 

이 책은 개발자로서 알아야할 클린 코딩과 클린 아키텍처에 대한 내용 및 개발자로서 가져야할 마인드에 대해서 때로는 직설적으로, 때로는 위트있게 재밌게 알려주는 가이드북이다. 혹시나도 어떻게 해야 좋은 개발자가 되는지에 대해서 내 사수와 같은 사람이 필요할 때 읽어보기에 좋은 책이다.

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

한빛미디어에서 출간된 <더 나은 프로그래머 되는 법>은 단순히 코딩 기술만을 가르쳐주는 책이 아니라, 독자들에게 프로그래머로서의 전반적인 삶과 태도를 성찰하게 해주는 책입니다. 이 책이 여타 '클린 코드'류의 책들과 가장 구별되는 점은 '코드' 자체에 집중하기 보다는 '사람'에 집중한다는 점입니다. <더 나은 프로그래머 되는 법>은 프로그래밍을 배운 사람이라면 누구나 한 번쯤은 들어봤을법한 '배움을 사랑하며 살기(Chapter 24)'와 같은 내용부터 프로그래머의 건강한 신체를 위한 '프로그래머의 자세(Chapter 30)'까지 단순히 업무 성과뿐만 아니라 프로그래머로써 일하는 개인의 건강과 행복도 중요하게 다룹니다.

 

데이터 과학자, 데이터 분석가로 일하면서 '데이터 분석하는데 코딩이 중요한가요? 빨리 분석 결과 내는게 중요하지'라는 말을 들을 때마다 간담이 서늘해질 때가 많습니다. '분석 결과'가 가장 중요하다는 명목 아래 아무런 고민 없이 작성된 코드가 역설적으로 잘못된 '분석 결과'를 만들어 분석가는 물론 팀과 회사에 부정적인 영향을 미쳤던 일을 수도 없이 봐왔기 때문입니다. 이 책 덕분에 오랜만에 어떻게 하면 정확한 분석 결과를 만들면서, 다른 팀원들과 협력하기 쉬운 코드를 작성할 수 있을지 다시 한 번 고민해볼 수 있었습니다.

 

이 책은 단순히 코드의 품질을 높이는 방법을 알려주는 것에 그치지 않고, 더 나은 프로그래머가 되기 위해 우리가 고민해볼만한 주제들을 던져줍니다. 이런 점에서 프로그래밍을 하는 모든 분들께 이 책을 추천합니다.


- 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. -

  프로그램을 작성하는 일을 하는 사람들이 아주 많은 요즘이다. 대학에서 다양한 내용을 배우고 회사에 취직해서 선배들로부터 업무를 배우고, 그에 맞춰 업무가 진행되는 방식대로 프로그램을 작성해 나간다. 영업과 제품 기획 부서에서 고객의 요구에 맞는 기획을 하고 새로운 프로젝트가 시작되면, 설계 부서에서 그에 맞는 구조 설계를 진행하고 등등.. 많은 부분은 회사에 짜여진 틀에 맞춰 진행이 된다. 이러한 과정 속에 프로그래머는 목표에 맞는 기능을 작성하기 위해, 기능에 맞는 목표, 그에 따른 기능 협의, 기능 설계, 상세 설계, testcast 설계, 코딩, UT, BT 등의 테스트 과정을 처리해 나가며 주어진 업무가 완료될 때까지 진행해 나간다. 이와 같은 업무 과정들이 숙달이 되고, 밀려드는 업무를 처리하는 것을 해치우고, QA에서 몰려드는 문제점, 완성 제품이 고객사에서 동작 중 이상 동작을 하여 이를 대응하는 비상 상황을 해결해 나가다보면 정신없이 시간이 흘러가게 된다. 이럴 때, 누군가의 조언이 필요하고 능력있는 선배에게 조언을 구하면 무언가 이러한 상황을 헤쳐나가는 데 도움이 될 것 같지만 실상 주변에 보면 선배들도 나와 상황이 다르지 않은 것을 느끼는 경우도 많고, 또 내가 만족할 만한 실천적인 조언을 들을 수 없는 경우도 많다.

 

  프로그램을 작성하면서 누구나 겪는 일들을 나열하면서 본 리뷰를  시작하였다. 이런 경우, 보통 다른 사람은 어떻게 프로그램을 작성할까? 큰 프로젝트를 성공적으로 진행할 때 어떤 기술이 필요할까? 와 같은 여러 고민들을 하게되고 여러 서적도 읽어보고 주위 동료, 선배들과 이야기하며 여러 현실적인 조언을 얻을 수 있다. 그러한 조언 중 나에게 도움이 되는 것을 얻을 수 있다면 좋지만 그렇지 않은 경우도 많다. 이 책도 그러한 조언들을 모아놓은 책이다. 책의 저자가 오랜 시간 프로그래머로서 일을 하면서 경험하고 느낀 것 생각한 것들을 5 가지 주제로 나누고 각 주제에 맞춰 여러가지 조언들을 이야기 형식으로 읽기 쉽게 설명해주고 있다.

 

  처음부터 차근 차근 책을 읽어나가다보면, 읽는 사람에 따라 조금씩은 다를 수 있지만, 많은 부분을 공감할 수 있을 것이다. 물론 아직 프로그래머가 되기 위한 과정에 있는 분들이라면, 피상적인 도덕책처럼 느낄 수 있을 수도 있겠지만, 수년간 개발을 해 보신 분들에게는 지금 하고 있는 일, 과거 진행해온 일들에 비추어 생각해 볼 수 있는 부분이 많을 것으로 생각된다. 

 

  이 책은 전체 다섯개의 주제에 맞게, 여러 가지 경우들을 하나 하나 챕터들로 나누어 설명을 하며 각 챕터들의 마지막에는 챕터의 요약하는 특이하지 않은 방식으로 구성되어 있다. 읽기 쉬운 산문 형식으로 진행된다. 엉클밥의 책과는 달리 상황 설명 및 코드를 이용하여 하나씩 짚어주며 이럴 때는 이렇게 와 같은 방식으로 설명을 하지는 않는다. 초반부에는 이해를 돕기 위해 이런 경우는 코드가 있었으면 더 좋지 않았을까? 라는 생각도 있었지만, 만약 그랬다면 오히려 책 전체의 흐름과 맞지 않았을 것이라 생각된다. 각 챕터의 의미를 관통하는 재미있는 그림을 제시하여, 이야기에 대해 다시한번 생각해 볼 수 있도록 하여, 굳이 코드와 같은 도구 없이도 해당 챕터의 내용을 이해할 수 있도록 해 두었다. 

Pasted Graphic.png

 

한권의 책을 여러 역자들이 번역을 하면 생기는, 일관성없는 번역에 대한 우려도 전혀 없었다. 역자 분들 각자의 스타일이 있게 마련인데, 이 책을 읽는 동안 그러한 부분을 느끼지 못한 것 역시 이 책의 장점이 아닌가 싶다.  책의 마지막에 국내 현업 개발자들의 이야기가 실려있는데, 이 부분도 책의 내용과 더불어 많은 도움이 되는 부분이라 생각한다.

 

  책을 다 읽고나서 이 책의 조언들을 이를 어떻게 활용하는 것이 좋을까? 생각할 수 있다. 너무 당연한 내용이지만 이 책의 가장 중요한 내용이라 생각이 되는, 책의 서문에 필자가 작성한 다음 내용을 언급하며 본 리뷰를 마친다.

 

      “읽는 순서보다 더. 중요한 것은 내용을 받아들이는 방식이다. 실제로 더. 나아지기 위해서는 읽은 내용을 직접 적용해봐야 한다”

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다

근래들어, 모든 IT 이슈들은 AI와 연관되는 것 같습니다. 대부분은 장밋빛 미래에 대한 이야기들이지만, 이면에는 다수의 직업이 AI 때문에 사라지게될 것이라는 예측이 자리잡고 있기 때문에 장밋빛을 장밋빛으로만 볼 수 있는 상황은 아닙니다.

게다가, 올해 초, 두바이의 국제회의에서 엔디비디아, 젠슨 황 CEO는 '아이들에게 더이상 코딩을 가르칠 필요가 없다'고 말해서 이목을 집중시켰습니다. 이 발언은 결국, AI의 장밋빛 미래를 장밋빛으로 보지 못하고 있었던 프로그래머들에게 또다른 충격을 던져줬습니다. '올것이 오고 있구나!' 뭐 이런 류의 탄식을 자아냈으니까요.

정말 AI가 프로그래머들을 대체하게 될까요?

제가 생각하는 결론을 먼저 말씀드리면, 절대 그렇지 않을 것입니다. AI는 프로그래머를 대체 할 수 없습니다. 코딩이라는 행동은 단순히 인간의 의도를 컴퓨터에게 이식시키는 것만 있는게 아닙니다. 세상에 있는 문제들을 컴퓨터에 이식할 만한 체계로 해석하는 사고가 전단계에 자리잡고 있어야 코딩이 가능하거든요.

IT업계 전설중에 한분인 프레드릭 브룩스는 자신의 저서인 <맨먼스 미신>의 20주년 기념판에 <은총알은 없다>라는 논문을 포함시켰는데요. "은총알"즉 소프트웨어 개발 분야의 모든 문제를 한번에 해결할 수 있는 해결책은 없을 거라는게 브룩스의 주장이었습니다.

브룩스는 그렇게 주장하는 이유로 소프트웨어 개발에는 "본질적 작업(essential task)"이 필요 하기 때문이라고 했습니다. 최초의 전자식 컴퓨터라는 에니악이 30톤짜리 거대한 본체를 움직이기 시작했었을 무렵부터, 소프트웨어 개발 환경의 개선은 언제나 "본질적 작업"에 해당하는 것보다 "부차적작업(accidental task)"에 집중되어 왔습니다. 하드웨어를 좋게 만들거나, 프로그래밍 언어를 진화시키는 것과 같이 말이죠. 그런 활동은 개발자가 코딩하는 환경을 좋게 만들어 줄수는 있지만, "본질적 작업"을 개선하는 데는 크게 도움을 줄수 없었습니다. AI도 마찬가지입니다. 프로그래밍 언어를 습득하지 않아도 코딩을 할 수 있을 만큼 진보한다고 해도 AI는 "본질적 작업"을 대체할 수는 없습니다.

<더 나은 프로그래머 되는 법>은 "본질적 작업"을 할 수 있는 프로그래머의 사고 체계를 연마하게 하는 다양한 조언들을 제시하는 책입니다. 제대로 된 코드를 작성하고 이를 유지하려면 개발자가 어떤 마음가짐으로 코딩을 해야 하고, 유지해야 하는지를 말하고 있습니다. 이는 "부차적 작업"의 행동양식을 변화하는 조언이자 이면에 있는 "본질적작업"을 더 잘하는 소프트웨어 개발자가 되게 하거든요.

정말 이렇게까지 코딩에 대해 깊이 생각하고 조언할 수 있을까 싶을 정도로 세세한 조언들이 나오는 책이라서 정말 인상 깊었습니다.

게다가 저자인 "피트 구들리프"가 본인의 첫 저서가 <코드 크래프트>라고 밝히는 부분을 읽으면서는 다소 충격을 받았습니다. 약 15년전쯤 제가 읽고 크게 감명을 받았던 책이었거든요. 지금까지 개발자로 살아가면서 가장 크게 영향을 미쳤던 책을 나열한다면, 아마 다섯손가락 안에 들을 만큼 훌륭한 저서였습니다. <더 나은 프로그래머 되는 법>을 읽으면서 크게 공감할 수 있었던 원인도 아마 <코드 크래프트>의 내용이 제 개인적인 일상과 생각에 영향을 많이 미쳤기 때문이 아닐까 싶더군요.

책의 뒤편에는 한국인 개발자들 8명의 조언이 함께 실립니다. 그중 제가 주목 했던 인터뷰는 염재현님의 인터뷰였는데요. 염재현님의 저서 <디스커버리 Go 언어>라는 책을 재미있게 읽었던 기억도 있고, 인터뷰에서 "생성형 AI의 시대에는 프로그래머들이 테스트 주도 개발을 해야 합니다"라고 주장하신 것 때문입니다.

이는 <더 나은 프로그래머 되는 법>에서도 공감했던 부분인데요. 테스트 주도 개발(TDD)은 소프트웨어 개발 프로세스의 일부 이전에 개발자의 사고 방식을 변화 시키는 방식이라고 생각하기 때문입니다. 테스트가 사고를 바꾼다고? 라고 반문 하실 수 있겠지만, 이건, <테스트 주도 개발>에서도 언급됩니다. <테스트 주도 개발>에 <리팩터링>의 저자인 마틴 파울러가 첨언한 이야기를 보면 TDD는 "공 한개로 저글링" 하는걸, 느끼게 해주는 방식이라고 합니다. 복잡한 논리의 전개가 코딩이라면, 그 논리 전개를 간단하게 해체 하는 방법이 TDD이고 그래서 "공 한개로 저글링"하는 것 같다고 표현한 것인데요.

다시말해 TDD는 개발자의 사고방식에 영향을 미치는 개발 기법인 셈입니다. 그리고 TDD를 꾸준히 진행하다 보면, "본질적 작업"을 잘 할 수 있는 사고 방식을 연마하게 되는 것이죠. 구들리프 역시 <더 나은 프로그래머 되는 법>에 TDD를 언급합니다. "25장 테스트 주도 개발자"에서 인데요. 테스트 주도 개발을 하는 게 "기술 연마"와 관련되어 있다고 말하고 있습니다.

"본질적 작업"은 소프트웨어 개발자의 고유 영역이고, 이 본질적 작업을 잘 할 할 수 있는 사고(생각)기술은 더 나은 프로그래머가 되는 실천법에서 습득해 갈 수 있습니다. 그 결과로 우리는 AI가 많은 사람의 직업을 빼앗는 중에도 살아남는 개발자가 될 겁니다.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

1. 좋은 코드

미련한 프로그래머는 컴퓨터가 이해할 수 있는 코드를 만들고, 

좋은 프로그래머는 사람이 이해할 수 있는 코드를 만든다. 126p

 

컴퓨터가 이해할 수 있는 코드를 만드는 일은 어려운 일이 아니다.

하지만 사람이 이해가 쉽게 코드를 짜는 일에는 노력이 필요하다.

 코딩을 할 때 컴퓨터가 이해하게만 짜게 되면 나중에 시간이 지나면

자기 자신조차 그 코드를 어떻게 코딩했는지 기억하지 못하게 되어

대체 이거 누가 짠 거야? 라는 말을 하기 때문이다.

쉽게 읽힐 수 있도록 코딩을 해야 한다는 말이 그래서 와닿았다.

 

2. 효과적인 배움

 배움의 가장 효과적인 방법 중 하나는 직접 가르쳐보는 것이다.-318p

가르치면서 배운다는 말이 있다. 그냥 하는 것과 가르치기 위해서 하는 것의

차이는 크다. 그것의 차이는 목적의식에 있다. 어떤 목적의식을 지니고 임하는가?

그것이 일반적인 배움과 효과적인 배움에 차이를 가져오게 된다.

 우리가 어떤 사실에 대해 이해하고 있다면 그걸 아주 쉽게 설명할 수 있다.

하지만 이해하고 있지 못하다면 설명할 수도 없고, 잘 알아듣지도 못한다.

설령 알아듣는다 하더라도 자기 것이 되지 못했기 때문에 잘못 알아듣는다.

 

3. 꾸준함

어느 한 분야를 잘하게 되는 과정에서 반드시 필요한 능력 하나만을 꼽으라면, 꾸준함이다.-477p

어느 한 분야에서 대가가 되기 위해서는 1만 시간의 노력이 필요하다고 한다. 아웃라이어 작가인

말콤 글레드웰의 1만시간의 법칙이다. 1만 시간을 굳이 채우지 않더라도 우리가 꾸준히 노력하고

훈련하면, 능숙한 프로그래머가 될 수 있다. 능숙한 프로그래머는 눈을 감고 타이핑을 해도 훌륭한

코드를 만들 수 있다. 물론 뻥이다. 

그만큼 꾸준하게 하는 것이 중요하다는 이야기다. 꾸준함은 강력한 무기가 된다. 꾸준하게

특정분야를 선정해 멈추지 않고 탐구할 때, 거기서 얻어지는 시너지 효과는 상당하다고 생각한다.

 

4. 책 자체에 대한 평가

조금 아쉬운 점은 새로운 내용은 없었고 다소 뻔하고 식상한 내용이 주를 이룬다는 점이다.

이미 아는 것을 다시 확인하는 기분으로 읽는 책이라 술술 읽히긴 하지만, 읽기 전과 읽은 후에

달라진 점을 말하자면 별로 차이가 없는 것 같다는 기분이 드는 것이다.

하지만 이런 책을 읽어보지 않았던 사람들에겐 도움이 될만하다.

프로그래머를 위한 자기 계발서로서 그 본질적인 목적에는 충실한 책이다.

 

 

“한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.”

 

선배 개발자의 39가지 노하우가 들어있는 <더 나은 프로그래머 되는 법>. 더 나은 방법으로 일하는 것에 고민이 많은 찰나에 이 책을 읽게 되었다. 저자는 '피트 구들리프'로 프로그래머이면서, 소프트웨어 개발 칼럼리스트이고, 음악가이며 작가라고 한다. 무척이나 다재다능하신 것 같다. (아마도) 현재 '더 나은 프로그래머 되기'라는 칼럼을 매거진에 기고하고 있으신 것 같다. 그 칼럼을 바탕으로 만들어진 것이 아닌가 생각한다. 그리고 또 하나 흥미로운 점은 이 책의 옮긴이는 4명이나 되는데, 사내 게임 길드로 시작하여 길드원들이 번역을 함께 해 만들어진 책이라는 것이다. 좋아하는 것을 하면서, 업무와 관련된 일로 확장한 좋은 예가 아닌가 싶다.

 

 

더 나은 프로그래머가 된다는 의미는 뭔가 추상적이다. 그럼에도 각자 더 좋은 사람이 되고 싶은 만큼, 더 나은 프로그래머가 되기 위한 방향에 대해 생각해 볼 수 있을 것이다. 책을 통해 생각해 볼 수 있는 더 나은 프로그래머가 되기 위한 길은, 문법에 대한 단순한 이해나 기본적 설계의 통달이 전부는 아니라는 것이다. 왠지 프로그래밍은 혼자만 하는 일로 생각되기 쉽지만? 생각보다 더 다양한 사람들과 유기적으로 소통한다. 그러기 위해서 일하는 방법이나 일을 대하는 태도, 그리고 코드에 접근하는 방법과 기법 등에 대해 더 많은 것을 알고 있어야 한다. 물론 이게 결코 쉽지는 않아 보인다. 무엇이든 관심을 갖고 노력하는 게 필요한 것 같다. 아무튼 이 책에서 다루는 주제들은 '소프트웨어 개발자로서의 삶 전반에 대한 것'이라고 한다. 코드를 어떻게 작성하면 좋을지에서부터, 일에 국한된 것이 아닌 삶을 어떤 마음으로 바라볼 것인지에 대한 것도 들어 있다. 경력자인 저자의 말이 정답은 아닐 거다. 사실 삶이라는 것 자체에 어떤 정답이 있는 것은 아니니? 하지만 경력자의 경험이니만큼, 수용할 것은 수용하면서 나의 경험도 만들어가는 게 좋지 않을까 생각해 본다.

 

 

대상 독자는 취미로 개발을 공부하는 일반인부터 신입 개발자나 경험 많은 개발자, 업계 전문가 등을 막론하고 누구에게나 도움이 될 것이라고 한다. 주니어라면 앞으로의 방향에 대한 고민과 어떤 태도로 업무를 해야 하는지에 대한 궁금증을 가지고 읽어볼 수 있을 것 같다. 나 또한 그런 마음과 더 나은 업무를 하고 싶다는 마음으로 읽었던 것 같다. 현실적으로 주변에서 이런 팁 같은 것을 얻기는 쉽지 않은 일이니 말이다. 아! 이 책을 읽기 전에 필요한 유일한 선행 조건이 있는데, 그것은 '더 나은 프로그래머가 되고자 하는 마음'이라고 한다.

 

 

이 책은 총 5부로 나누어져 있다.

1. you.write(code);

2. 연습을 통해 완벽해진다

3. 개인적인 일로 받아들이기

4. 일 끝내기

5. 사람의 일

1부에서는 코드베이스부터 이야기를 풀어나간다. 코드 작성 시 중요한 기법과 좋은 코드를 어떻게 작성할 수 있는지에 대한 팁 같은 걸 얻을 수 있다. 2부에서는 프로그래밍 연습에 대해서 다룬다고 한다. 더 나은 코드를 고안하는 데 도움이 되는 기법 같은 것에 대해 알 수 있다. 3부에서는 효율적으로 배우고, 번아웃을 피하는 법 등에 대해서 볼 수 있다. 4부에서는 목표에서 벗어나거나 일정을 지연시키지 않고 정해진 시간 안에 업무를 완수하는 방법에 대해 설명한다. 마지막으로 5부에서는 소프트웨어 업계에서 다른 사람들과 협업하는 방법에 대해 설명한다. 그리고 추가적으로 국내 개발자 8인 인터뷰 또한 뒤쪽에 수록되어 있다.

 

 

각 챕터의 제목 아래에는 해당 챕터와 관련이 있는 것 같은 명언도 적혀져 있다. 그리고 위에서 설명한 부분 중에 중요한 내용은 TIP으로 한 번 더 설명을 해주기 때문에, 같이 읽어보면 좋을 것 같다. 나는 읽다가 나중에 다시 읽고 싶은 부분에는 형광펜으로 밑줄을 그었다. 원래는 색연필로 했었는데, 다시 볼 때 생각보다 눈에 들어오지 않아 눈에 잘 들어오는 형광펜으로 바꿨다. 위에서 밑줄 그은 부분은 코드뿐만 아니라, 모든 것에 적용되는 말이 아닐까. 좋은 코드를 작성하려면 코드에 엄청난 노력을 들여야 하듯이, 뭔가 이루고 싶은 게 있으면 그만큼의 노력이 필요하겠지. 너무 당연한 말이지만, 때때로 그 당연한 말을 잊고 살기 때문에 적당한 타이밍에 복기해 주는 게 필요할 듯하다.

 

 

한 챕터가  끝날 때 [마치며] 부분이 있다. '생각해보기', '연습해보기', '쉬어가기', '참고'가 있어서 적당히 생각해 보며, 참고하기 좋으니 읽어보고 적용을 해보면 좋을 것 같다.

 

 

사실상 회사에서 하고 있는 현재의 프로젝트가 실직적인 나의 프로그래밍 첫 프로젝트였다. 그런데 시작하고, 1개월이 지났을 때까지도 다 함께 공유하는 코드 컨벤션 같은 게 없었다. 혼자만 하는 게 아니라, 여러 사람과 함께 하는 프로젝트이니 규칙 같은 게 필요하다고 생각했다. 그래서 깃 커밋을 할 때 컨벤션 같은 걸 찾아서 이렇게 했으면 좋겠다고 내가 제안하고 공유했었다. 물론 코드 컨벤션은 아니지만 그래도 같은 규칙을 공유하니 훨씬 보기 좋다는 것을 깨달았다. 혼자 하면 사실 누가 보는 게 아니라 크게 상관이 없겠지만, 협업을 하면 분명 중요한 것 중에 하나인 것 같다. 사람이 많아질수록 원래 규칙도 필요한 법이니 말이다. 특히나 코드 같은 경우에는 나도 나이지만, 시간이 흘러 또 다른 누군가가 유지 보수를 할 때를 대비하며 작성해야 하는 게 좋지 않은가 다시 한번 생각해 본다. 

 

 

정말 이 부분을 보고, 삭제한 소스들이 있어서 적어 본다. 6월에 예정된 것은 고도화 프로젝트이다. 1차 때도 참여하기는 했었는데, 그때 프로그래밍을 했던 건 아니다. 하지만 6월에는 1차 때 소스를 바탕으로 나도 프로그래밍을 하게 될 것 같아서, 깃에서 소스를 받아서 살펴보고 있는 중이다. 이 프로젝트 초반에는 버전 관리 없이 로컬로 소스를 관리했었는데, 그러다 보니 수정이 되었던 것도 이력을 확인할 수 없다는 게 조금 쉽지 않다는 것은 나의 넋두리다. 다시 본론으로 돌아와, 이전에 작업을 하시던 분이 로컬로 관리를 하시면서 기존에 있는 소스 파일을 복사해서 백업을 해뒀던 것이었다. 그래서 원본 파일 'Hello.java'가 이렇게 있는데, 그 아래에 'Hello.java.backup' 이런 식으로 파일이 하나씩 더 있는 것들이 있었다. 그걸 보고도 그냥 두고 있다가, 이 부분과 다른 챕터를 읽다가 어차피 삭제해도 이력 관리는 되고 있다는 것을 깨달아 그냥 과감히 삭제했다. 대신 커밋을 할 때는 기능을 추가하거나 수정한 것과는 별도로, 삭제한 소스 코드만을 따로 관리하는 게 필요했다. 아무튼 그렇지 않아도 소스 파일이 많은데, 이렇게 백업 파일까지 있으니 보기가 쉽지 않았었다. 이렇게 삭제를 하니 정말 몇 십 개를 삭제한 것 같은데, 패키지 내의 파일들이 훨씬 보기 쉬워진 것은 말할 것도 없다. 이번에는 단순하게 파일들만 삭제를 했지만, 앞으로 하고 싶은 건 현재 코드를 더 읽기 좋으면서도 유지 보수가 쉬워지는 방향으로 리팩터링 해보는 것이다. 잘 해봐겠다.

 

 

흔히들 프로그래머는 끊임없이 배워야 하는 직업이라고들 한다. 하지만 프로그래머만 그럴까? 어떤 업무에서 더 나은 방향으로 일을 하고 싶다면 누구든 배워야 한다고 생각한다. '이러해야 한다~'라고 해서, 모두가 다 그렇게 하는 것은 아니지만! 그럼에도 열심히 하면서 잘 하는 사람들은 그만큼 노력하고, 배우는 것을 보면 확실히 배워야 하는 건 맞는 것 같다. 그 배운 걸 잘 적용하고, 내 것으로 만든 후에 그것을 잘 설명할 수 있다면 그건 정말로 내 것이 되었다고 할 수 있겠다. 그렇다면 업무적인 것만 배우느냐? 아니다. 업무적인 것을 배우면서 취미로 배우고 싶었던 것도 배워보고, 관심이 있었던 것도 배워보면서 적당한 균형을 맞추면 된다. 지난번에 컨퍼런스 가서 느낀 건 진심으로 배움의 열정이 넘치는 사람에게서는 그 에너지가 뿜어져 나온다는 거다. 저자는 말한다. 배움은 노력하면 나아질 수 있는 분야이기도 하다고 말이다. 배우고 열심히 하면서, 어떻게 하면 잘할 수 있을지를 끊임없이 고민해 봐야겠다.

 

 

그리고 마지막으로 국내 개발자들의 인터뷰를 볼 수 있다. 지난번에 한 세미나 같은 걸 참여해서 들었는데, 거기서 발표하시던 분들 중 몇 명이 이직을 한 후에 좋은 사수를 만났을 때 폭발적으로 성장을 했다고 한다. 하지만 모든 회사에 좋은 사수가 있는 것도 아니고, 심지어 사수가 없는 경우도 존재한다. 그럴 때 필요한 게 이렇게 간접적으로나마 다른 개발자들의 경험을 글로 읽는 게 아닌가 싶다. 국내 8인의 개발자의 경험을 엿볼 수 있을 것 같다. 이미 이 길을 걸은 경험자들의 글을 바탕으로 본인만의 아이덴티티나 방향성 같은 걸 정하면 될 것 같다. 마지막으로 더 나은 프로그래머가 되는 법에 정답이 있는지는 모르겠지만, 더 나은 프로그래머가 되고자 하는 열망이 있다면 한 번 읽어 보며 스스로 생각해 보면 좋을 것 같다.

 

한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다.

더 나은 프로그래머 되는 법을 읽게 되었다. 일단 이제 프로그래머로 시작하거나 프로그래머가 되기를 원해서 노력하고 있다면 꼭 읽어 보기를 추천하고 싶은데 현직 프로그래머는 아니지만 계속 업계에서 일을 하고 있는 입장에서 보자면 프로그래머가 아님에도 도움이 되는 이야기들을 접할 수 있기 때문이다.

우선 각 장이 독립적으로 이루어져 있기 때문에 굳이 순서에 따라 읽을 필요는 없겠다. 개인적으로 번역서이지만 좋은 내용들이고 모두가 공감할 수 있는 좋고 바른 내용들이 적혀 있지만, 그럼에도 국내 개발자들의 이야기는 더 재미있었던 것 같다. 모두가 상호윈윈이 가능한 생각을 가지고 업무에 몰입할 수 있다면 좋을 것 같다는 생각이 드는 내용들이라 생각되었다.

책에서는 다양한 방법을 알려주고 있다. 특히 전반적으로 긍정적인 마인드를 가지고 '코드'를 대하라는 것을 느낄 수 있었고 각 장을 정리하는 곳에 등장하는 익살스런 일러스트도 보는 재미가 있다.

프로젝트를 하다 보면 똑같은 말을 하는 경우가 꽤 있다. 지금도..

이유가 어찌 되었건, 지금보다 좀 더 수준 높은 프로그래머가 되기를 원한다면 한번쯤 읽어보면 좋을 것 같다. 알지만 실행하지 않던 것들, 모르고 있던 것들, 주변에 전파시키고 싶은 것등 다양하고 유익한 내용으로 이루어진 책이다.

간결하게 하고, 머리를 쓰고, 변하지 않는 것은 없다. 개인적으로 좋은 코드를 작성하기 위한 세 개의 강력한 규칙이 무척 마음에 들었다. 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

페어 프로그래밍

현재 나는 부트캠프를 다니고 있는데, 여기서는 페어 프로그래밍을 진행한다. 두 명이서 같이 프로그래밍을 진행하다 보면, 어느정도 협업이 어떤 것인지 배울 수 있는 과정이라 생각하고, 소통을 원할히 할 수 있는 좋은 방법이라고 생각했다.

하지만 시간이 차츰 지나고, 페어 프로그래밍에 익숙해지며, ‘페어 프로그래밍’스럽지 않은 페어 프로그래밍을 하고 있다는 것을 이 책을 통해서 깨달았다.

코드에 정통한 누군가와 함께 일을 할 수 있다면 그 점을 활용하라.

질문하기를 주저하지 말라. 할 수 있다면 페어 프로그래밍을 하고, 자신의 작업을 검토해줄 것을 요청하라.

경험 많은 프로그래머에게 README 문서 리뷰를 요청하라. 이를 통해 자신의 지식이 얼마나 정확한지 확인할 수 있고, 새로 오는 사람들을 도울 수 있다.

페어 프로그래밍에 익숙해지며, 단순히 프로그램을 돌아가게 만들기 위해서 노력했었는데, 그 과정에서 굉장히 소홀히 했던 것 같다. 의논하면서 프로그래밍을 하는 것이 아니라, 각자 코드를 작성하는 부분을 나눠서 작성하듯이 말이다.

특히 ‘학습’이란 목표를 가지고 있으면서, 자기 만족을 위한 조금 더 예쁜, 멋진 코드를 작성하기 위해서 노력한다는 것은 목적에서 벗어난 행위가 아닌가 깨닫게 되었습니다.

 

설계를 위한 시간

어느정도 위 ‘페어 프로그래밍’과 연결되는 이야기이기도 합니다. 결국 우리는 시간에 쫓기며 살고 있으니깐요. 그게 혼자가 아니라 ‘함께’라면 시간 배분이 더욱 중요한 부분이 되겠죠.

제한된 시간이 있기 때문에, ‘완벽한 설계’와 ‘완벽한 코드’는 이상적인 이야기가 될 뿐이죠.

지나치게 많은 시간이 주어지면, 개발자들은 자신만의 엄청난 예술품을 만들려 할 수 있다. 언제나 준비만 될 뿐 결코 완전히 실현될 수 없는 예술품 말이다. 반면 약간의 압박은 놀라운 요소로 작용할 수 있는데, 긴박함을 인지함으로써 많은 일을 끝낼 수 있다. 하지만 시간이 너무 짧으면 적절한 설계가 어려워 날림으로 대충 만든 결과물을 얻을 수밖에 없다. 대도시가 그 적절한 사례이다.

훌륭한 프로그래머는 어느 정도는 위대한 예술가가 되어야 한다. 하지만 프로그래밍을 정말 예술이라고 부를 수 있을까? … 어떤 사람들은 중도적 입장에서 공예품 정도로 생각한다.

프로그래밍을 공부하기 전 상업적인 예술이라 할 수 있는 주얼리 공예를 했었던 사람으로써, 내가 프로그래밍을 하면서 느꼈던 동질감이 바로 이것인 것 같다. 상업적인 서비스를 만드느냐, 조금 더 발전적인 무언가를 만드느냐.

발전적인 프로그래밍을 하기 위해선 예술가적인 태도는 분명 필요하다. 하지만 우리에겐 한정적인 시간이 있고, 우리의 목표는 사용자들의 유용한 경험이란 것을 깨닫게 해주었다.

 

이 책에서 좋았던 점.

책을 읽으면서, 여타 다른 기술 개발 책들과 다르게, 에세이 형식으로 조금은 가볍게 읽을 수 있었던 책이었다. 특히나 나에게 와닿았던 이유는, 개발에서 개발기술의 역량이 차지하는 그렇게 크지 않다고 믿고, 오히려 협업 능력과 문제 해결 능력이 더욱 중요하다고 믿고 있기 때문인 것 같다.

지금 부트캠프를 다니면서, 기술적인 부분에 매몰되어 이런 본질을 놓치기 쉬운 환경에서, 이 책은 나에게 방향성을 잡아주었다.

그렇다고 해서 이 책이 단순히 추상적인 이야기들로 구성되어 있다고 생각하진 않는다. 챕터마다 수록된 질문들을 통해 추상적인 개념들을 스스로 구체화 할 수 있게 해주고 있다.

나에게 ‘더 나은 프로그래머가 되는 법’이란 책은 본질을 상기시켜준 책이라고 생각한다.

우리는 많은 사람들이 사용하길 바라는 ‘서비스’를 만든다. 우리의 목적은 코드를 잘 짜는 것이 아니다. 그걸 항상 명심하자!

이책은 단순히 개발자로서의 기술적인 능력을 향상시키는데 그치지 않고, 

더 좋은 프로그래머로 성장하기 위한 39가지의 노하우를 담고 있습니다.

현업에서의 경험들을 토대로 커뮤니케이션, 팀 협업, 문제 해결 방법등 다양한 영역에서의  조언들을 제시하기에

개발자로서 경험이 없는 신입 직장인 부터  한단계 더 나아가고 싶은 개발자분들에게 큰 도움이 될것입니다.

끊임없는 동기부여와 든든한 격려가 가득합니다.

마치 좋은 선배와 커피 한 잔 하는 자리에서 선배가 알려주는 팁을 듣는 느낌이랄까요.

드라마 '슬기로운 의사 생활'에서 응급실 봉쌤과 함께 커피마시 '봉쌤 살롱' 같은 분위기예요.

교수 5인방이 궁금한 펠로우들이 몰려가는 곳, 커피만 사면 5인방의 연애사, 가정사, 본모습까지 알 수 있었던 곳.


코딩을 하다가 궁금한 게 있을 때, 뭔가 잘 풀리지 않거나 지지부진할 때, 물어보고 싶은 게 있지만 정작 알려줄 수 있는 사람이 옆에 없을 때 펼쳐볼 책 가운데 하나입니다.


코딩, 연습, 일, 사람

소프트웨어 개발하는 일의 본질을 알려줍니다.

개발이 단순히 떠오르는 아이디어를 코드로 그냥 쏟아내는 건 아니라 건 개발자라면 누구나 어렴풋이 압니다.

문제는 그다음인데요. 어떻게 무엇을 해야 하는지 갈피를 잡기 어렵습니다.

해야 할 것도 많고, 하고 싶은 것도 많은 데다가 이것들이 모두 얽혀있기 때문입니다.

한꺼번에 풀어 보려고 덤비다가는 제풀에 지치기 십상입니다.

하나씩 어떻게 풀어나가야 하는지 알려줍니다.


목차에서 고르기

순서대로 봐도 되고, 목차를 훑어보고 끌리는 내용부터 봐도 됩니다.

각 장 마지막에 참고할 다른 장이 있어서 다음 읽을 내용을 선택하여 따라갈 수 있습니다.

큰 흐름은 있지만 반드시 따라야 할 정해진 순서가 있는 게 아닌 것과 비슷합니다.

그때그때 필요한 내용을 알아가면 되는 것과 같은 이치입니다.

다만, 알아야 할 것에서 한걸음 더 나간다면 더할 나위 없겠지요.

 

시작하라, 배우라, 무엇보다 더 나아짐을 즐기라!

 

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

이 책은 좀 특별합니다. 

더 나은 프로그래머 가 되려면, 개발 Skill을 늘려야 할까요? 다양한 언어를 잘 다루어야 할까요? 

조금 연차가 쌓이고, 경험이 많아지고 요즘 ai를 통해서 코드 생성 및 활용도가 높은 상황에서

우리는 어떻게 접근해야 좋은 프로그래머가 되는지 고민이 되는 시점이라고 생각합니다.

 

이 책은 그런 부분에서 개발서적 중에서 좀 특별하게 다가오는 책입니다.

 

이 책을 먼저 리뷰하신 베타리뷰어의 글을 보면, 특별한 멘트들이 적혀있습니다.

 

"어떠한 것들을 갖추고 배워야 하는지 알려주는 멘토 같은 책"
"프로그래머의 심리에 대해 깊숙이 다루는 몇 안되는 책"

 

심리라는 부분에 대해서 매우 새로웠습니다.

일반적인 개발가이드 및 온보딩, 신입개발자들에 대한 가이드 책등은 많이 있습니다.

이책은 어떠한 부분이 그렇게 다가오는지 살펴보려고 합니다.

 

 

 

 

■ 책의 구성

· 총 5개의 Chapter로 구성되어 있습니다.

[1부 | you.write(code);]

[2부 | 연습을 통해 완벽해진다]

[3부 | 개인적인 일로 받아들이기]

[4부 | 일 끝내기]

[5부 | 사람의 일]

 

각 항목별로 개별적으로 구분되어져 있기 때문에, 각각 관심있는 부분부터 읽어보시도 무방합니다.

목차를 보시면 3부, 4부, 5부의 목차를 보면 기본에 출간된 책과 다른 느낌을 받으실 수 있습니다.

특히 5부의 내용은 베타리뷰의 의견처럼 심리에 대한 부분을 다루고 있어서 특별하게 생각됩니다.

 

■ 1부 | you.write(code);

기본적으로 코드에 대한 부분을 설명합니다.

코드 작성, 읽기, 설계, 견고한 코드에 대한 부분을 설명합니다.

 

· 어떻게 보면, 당연한 사항인데 평소에 고민을 안해보면 놓칠수 있는 부분이 좋았습니다.

주석에 대한 부분이 있는데, 처음에는 보기 좋은데, 나중에 관련 소스를 변경하게 된다면, 불편함을 가질수 있는 부분입니다.

 

 

생각해보면 해당 주석은 처음에는 귀엽고, 보기 좋지만, 나중에 주석을 추가하게 되나면, 맨 뒤에 * 을 맞추는 불편함이 추가적으로 필요해서

반대로 생각하면 안좋은 불편함을 가지게 됩니다.

 

· 명명 (이름짖기)

개발하면서 제일 어려운 부분이 이름짖는 부분입니다. 클래스, 변수, 메소드 등등 

특히 우리가 알고 있는 영어 단어들이 한정적이기 때문에 다양성이 부족하게 됩니다. 또 보통 한번 사용하게 되는 이름을 반복적으로

사용하는 경우가 많은데, 우리는 기준이 필요하고 그러한 기준을 세울수 있다면 앞으로의 개발자로써 좋은 프로그램의 밑바탕이 됩니다.

 

· 다양한 기준

코드 줄여 개선하기 : 이거는 글만 보면 모두 당연하게 생각하지 않을까? 

테스트 하기 : 무조건 하는 것인 필요하다고 생각한다. 하지만 테스트를 언제 해야 할지, 어떻게 하는게 좋을지 기준이 있는가?

기술적인 부채 등등 다양한 관점으로 코드를 작성할때, 도움이 많은 생각을 하게 됩니다.

 

 

■ 2부 | 연습을 통해 완벽해진다

코딩 업무에 대한 건전한 태도와 접근 방법을 살펴보고, 더 나은 코드를 고안하는데 도움이 되는 기법을 전반적으로 설명합니다.

14장 소프트웨어 개발이란
15장 규칙 가지고 놀기
16장 간결하게 하기
17장 머리 쓰기
18장 변하지 않는 것은 없다
19장 코드 재사용 사례
20장 효과적인 버전 관리
21장 골키퍼 있다고 골 안 들어가랴
22장 프리징된 코드의 신기한 사례
23장 제발 저를 출시해주세요
 

 

설명되어지는 부분은 기술적인 부분 보다는 조금 이론적인 부분 및 접근법에 대해서 언급을 합니다.

이러한 이론적인 부분을 설명하는 방식을 약간 에세이, 기고글처럼 풀어나가는 기법이 인상에 깊습니다.

다시 한번 어떻게 접근해야 할지 생각할수 있는 요소가 많습니다.

 

 

■ 3부 | 개인적인 일로 받아들이기

효율적으로 배우는 방법, 도덕적으로 행동하는 방법, 자극적인 도전을 찾아내는 방법, 번아웃을 피하는 방법, 육체적으로 건강해지는 방법등을 살펴봅니다.

 

3부의 내용을 읽어보고, 특별한 것이 없고 "나는 잘하고 있는데..." 라고 생각이 들고

책에서 언급하는 사항중에 많은 부분이 당연하다고 생각이 들면 좋은 프로그래머로 성장을 하고 있다고 생각하면 될것 같습니다.

 

· 세부적으로 하나하나에 대해서 실행 아이템에 대해서 구체적인 요소들이 설명되어 지는 부분이 많이서 

조금 더 구체적으로 기준을 세우는데 도움이 됩니다.

 

 

 

 

■ 4부 | 일 끝내기

목표에서 벗어나거나, 일정을 지연시키지 않고 정해진 시간 안에 업무를 완수하는 방법에 대해서 알아봅니다.

 

누구나 궁극적으로 업무를 빨리 마치고, 그리고 그 업무는 원하는 요구사항을 잘 수행하고 오류없이 동작되기를 원합니다.

그리고 정해진 시간에 마무리 하여서, 여유를 가지고 싶습니다.

 

· ‘더 열심히’보다는 ‘더 현명하게’

너무 와닿는 멘트입니다. 열심히 도 좋지만, 현명하게 라는 단어가 더 선호하는 단어입니다.

 

해당 내용은 다른 분야에서도 적용해도 되는 내용입니다.

이러한 부분은 경험이 있는 분들도 있고, 개인차가 있다고 생각이 듭니다.

책을 통해서 생각에 대한 Remind되는 점을 느낄수 있습니다.

- 해야 하는 것만 해라.

- 우선순위를 설정하라

- 정말 필요한 것은 무엇인가

- 문제를 미루고 쌓아두지 말라

- 자동화하라

- 작고 간결하게 유지하라

등등 많은 부분이 있다 이러한 당연한 이야기 이지만, 실제 우리는 어떻게 기준을 잡고 접근하는지 살펴볼수 있는 부분이다.

 

 

■ 5부 | 사람의 일

다른사람과 협업하는 방법에 대해서 소개한다.

 

34장 사람의 힘
35장 생각이 중요하다
36장 말하기!
37장 선언문
38장 코드 찬가
39장 태도가 핵심이다

 

5부애서 나오는 내용입니다.

코드적인 부분이 없지만, 이러한 부분에 대해서 고민을 하고 자신만의 올바른 기준이 있어야지

더 나은 프로그래머가 되는 소양이라고 생각하는 좋은 내용입니다.

단순히 코드적으로만 동작되는 소스작업이 좋은 프로그래머가 아니라는 생각을 가지게 합니다.

여러사람이 함께 모여서 하나의 목적을 가진 개발 SW제품이 나오기 때문입니다.

 

추가로 이 책의 가장 큰 장점은 각 항목마다 있는, "생각해보기" 부분이라고 생각이 듭니다.

각 질문마다 가만히 나 자신에게 질문하고, 어떠한 답변을 할수 있을지 생각을 해본다면,

다양한 생각들이 정리가 되고, 어떠한 것이 나의 머리속에 기준으로 잡고 있는지 생각해볼수 있는 경험을 

하실수 있습니다.

 

 

 

 

한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

Intro

2024년 두 번째 기술책이다. 최근 다양한 책들을 접하고 프로젝트도 하고 있기에 시간이 부족하여 완독이 어려워지고 있다. 그럼에도 불구하고 이 책은 읽기 쉬울 것 같기도 하고 '더 나은 프로그래머가 되기 위해서는 어떤 걸 더 해야 할까?'라는 궁금증이 생겨 읽게 됐다.

Book Review

반성하게 되는 책

이 책은 프로그래머로서 어떻게 성장해야 하는지에 대해 다루고 있다. 책을 읽으면서 나는 이런 부분을 놓쳤구나, 이런 부분을 더 신경 써야겠다는 생각이 들었다. 책을 읽으면서 반성하게 되는 부분이 많았다. '나는 코드에 신경을 쓰고 있는가?', '내가 쓴 코드를 다시 보는가?', '테스트 코드를 작성하는 것이 중요한가?' 등. 이런 부분들을 다시 한 번 생각해보게 되었다.

선배가 알려주는 책

책을 읽으면서 선배 프로그래머가 하나하나 알려주는 느낌이 들었다. 프로그래머로서 어떻게 생각하고 행동해야 하는지 등의 노하우. 그런 노하우를 배운 느낌이 들었다. 나는 분명히 지금 회사에 다니고 있지도 않고 선배도 없는데 선배가 생긴 듯한 느낌. 책에서도 '마치며' 부분에 '생각해보기'가 있는데 거기에 적힌 질문 외에도 생각해볼 만한 것들이 많았다. 나중에 기회가 된다면 다른 사람들과 이 책으로 간단하게 스터디를 해보고 싶을 정도이다.

대상 독자

프로그래머로서 성장하고 싶은 사람이라면 읽어보면 좋을 것 같다. 특히 신입, 주니어가 읽으면 좋은 책이지 않을까 싶다. 학생도 좋다. 나도 학생이니까. 이 책을 읽으면서 반성하고 더 나은 프로그래머로 성장하고 싶은 사람이라면 추천한다.

더 나은 프로그래머 되는 법의 저자인 피드 구들리프는 단순 코드 작성법 뿐 아니라 협업 기술 등 전반적인 성장이 필요하다고 제안합니다.

이런 필요를 채우기 위해 이 책을 발간하게 되었는데요.

책은 개발에 관심 있는 독자라면 누구에게나 도움이 되도록 구성되어 있습니다.



경험이 많은 시니어 개발자도 책을 통해 새로운 인사이트를 얻을 수 있고요.

신입 개발자는 팀 일원으로서 팀에 기여하기 위해 어떤 것들을 갖추고 배워야 하는지 알려주는 책입니다.



이 책은 각 장마다 독립적인 주제를 다루기 때문에 필요에 따라 원하는 부분을 선택해서 읽으시면 되도록 구성이 되어 있습니다.

책은 5개의 큰 이야기 줄기를 갖고 있는데요.


1부에서는 코드에 대한 이야기로 코드 작성 시 중요한 기법과 함게 가장 훌륭한 코드를 작성하는 방법에 대해 설명해 줍니다. 

아무래도 신입 개발자가 선호하는 부분일 것 같은데요.




2부에서는 코딩 업무에 대한 태도와 방법을 소개하고 더 나은 코드를 고안하는데 필요한 기법을 설명해 줍니다.


3부에서는 코더 개인의 이야기를 담았는데요. 꼭 필요한 내용으로 채워집니다. 효율적으로 배우는 방법, 도덕적으로 행동하는 방법, 자극적인 도전을 찾아내는 방법, 번아웃을 피하는 방법, 육체적으로 건강해지는 방법입니다.

?
4부는 프로젝트를 정해진 시간 안에 완수하는 방법을 설명하고요.

마지막 5부에서는 소프트웨어 업계에 있는 다른 사람들과의 협업하는 방법에 대해 소개합니다.




부록에는 국내 개발자 8인의 이야기가 담겨있습니다.

한국을 대표하는 개발자들이 중요하게 여기는 것이 뭔지 궁금하지 않으세요.

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

 

어쩌다 보니 바쁘단 핑계로 서평을 몇번 건너 뛰어서 이번엔 시간 좀 되겠지 했는데...

왠걸? 정신없는 와중에 거의 마감일이 다 되어서야 책을 열어 보게 되었다.

 

책 표지에 이렇게 적혀 있다. "지금 바로 실천할 수 있는 선배 개발자의 39가지 노하우"

내가...올해...20년 차던가....뭐 중간중간 좀 놀긴 했지만....어쩌면 이젠 선배의 선배가 되어도 이상하지 않을....

 

개인적으로 이 책은 여러가지를 생각하게 해 주는 것 같다.

 

먼저 지금 내가 선배로서 같이 일을 하는 후배 개발자들에게 어떤 얘기를 해 줄수 있을까? 라는 관점이다.

지금도 틈틈히 회사에서 또는 강의실에서 현역에게, 학생들에게 다양한 얘기를 해주고 있기는 하다.

주로 내가 경험담을 가지고 이런 저런 얘기를 해주는데 내용을 정리 하거나 정형화 해서 해 주는 얘기가 아니다 보니 아무래도 부족하다는 느낌이 들 때가 많다.

그리고 경험하지 못한것에 대한 얘기는 결국 이론적인 설명에 불과해서 전달이 잘 안되는 듯 하다는 느낌이 들때도 많다.

그런 의미에서 이 책은 선배 역할을 잘 해줄 수 있는 그런 책인 듯 하다.

 

처음 시작 하는, 그래서 모든것이 의문이고 두렵기만한 신입에게 책은 학교에서 배워왔을 코드를 다루는 것 부터 시작한다.

그리고 그 코드에 대한 기본적인 내용이 책의 1/3 정도를 차지 한다.

그만큼 처음 시작 하는 개발자를 위해 많은 배려를 하는 책이란 생각이 든다.

 

그 다음은 내가 수업때 학생들에게 자주 해 주는 말중에 하나와 비슷한 맥락인듯 하다.

"몰라서 어려운게 아니라 알고 있지만 익숙하지 않아서 어려워 보이는거야"

"계속 하다 보면 익숙해 지고 그러면 더이상 어렵지 않을거야, 대신 귀찮아 지지..."

실습할때 학생들이 어려워 하면 이런 애기를 자주 해준다.

연습...특히 생각 하는 방법에 대한 연습...

파트2는 그런 내용으로 이야기를 풀어 가고 있다.

 

파트3도 수업때 종종 하는 얘기랑 이어 지는것 같다.

"안타깝지만 우린 계속 공부해야해..."

새로운것이 나올때 마다 어떻게 하면 좋은지 물어오는 학생들에게 주로 해주는 대답이다.

개발자의 길을 택한 이상 어쩔수 없이 또는 좋아서(믿거나 말거나?)..뭐 여러가지 이유로 공부를 놓진 않은듯 하다.

아직 계속 공부 해야 한다는걸 받아 들이기 힘든 후배들에게 책은 잘 설명 하려고 노력하고 있다.

(이건 뭐...어떻게 해도...즐겁게 받아 들이기가....)

 

그 다음은 일을 잘 마무리 하기 위해 필요 한 것들을 이야기 하고 있다.

특히 개발은 그 특이성 때문에 정말 깔끔하게 끝! 하고 정리 하는게 모호할 때가 많은것 같다.

그런 경우를 만들지 않기 위해 어떻게 해야 하는지 설명하고 있다.

특히 일을 어렵게 하는 경우가 종종 있는데 그러지 않기 위해서 어떻게 해야 할지도 이야기 하고 있다.

나도 어디선가 들은 말인데 종종 "개발자는 게을러야 해" 라는 얘기를 한다.

정말 게을러야 한다는게 아니라 충분히 생각하고 코드를 작성해서 효율성을 높이라는 의미에서 해주는 말이다.

여기선 그런 내용들을 다루고 있다.

 

마지막은 사람에 관한 이야기를 하고 있다.

결국 사람이 필요로 하는걸 사람이 만들고, 혼자 할 수 없으니 여럿이 함께 하는것이니,

일을 잘 하기 위해서는 의사소통이 매우 중요하다 할 수 있다.

마지막은 그런 사람과 사람사이의 의사소통에 대한 내용을 다루고 있다.

 

이 책은 이제 막 개발자로서 시작하는 사람들에게 많은 도움을 줄 수 있을것이다.

그리고 그런 사람들에게 조언을 해주고 싶은 선배 개발자들의 혀끝에서 맴도는 말을 대신 해 주는 역할도 할수 있을것 같다.

설명이 구체적이고 각 챕터마다 마무리 정리내용을 넣어 두어서 쉽게 읽히면서도 생각해 볼 수 있게 해준다.

또 꽤 오래 일한 사람들에게는...구체적으로 설명하기 힘들지만 몸에 배어있는 것들을 글자로 다시 정리해볼 수 있는 기회를 만들어 주기도 하는 책인 것 같다.

 

오래전 퇴근후에 같이 소주 한잔 하며 이런 저런 얘기를 해주던 선배들이 생각나는 밤이다.

[북리뷰-IT] 더 나은 프로그래머 되는 법 (한빛미디어, 2024)

 

저는 은행 IT 부서에서 20년 이상 개발자로 일하며 다양한 프로젝트를 진행해 온 경험을 가지고 있습니다. 

끊임없는 변화와 발전을 추구하며 전문성을 다져왔고, 현재는 은행 코어뱅킹 시스템의 핵심 개발을 담당하고 있습니다.

 

이번에 한빛미디어에서 출판된 "더 나은 프로그래머 되는 법"이라는 책을 읽을 수 있었던 소중한 기회를 얻었고,

현재의 나를 다시 한번 리마인드하며 놓치고 있던 부분들을 채워주는 좋은 계기가 되었습니다.

 

이 책은 Pete Goodliffe의 원서 "Becoming a Better Programmer"의 개정판으로,

15년 경력을 가진 개발자가 다양한 분야에서 쌓은  풍부한 경험과 지식을 바탕으로 실용적인 조언들이 가득 담겨 있습니다.

 

[북리뷰-IT] 더 나은 프로그래머 되는 법 (한빛미디어, 2024)

 

 

책의 주요 내용

"더 나은 프로그래머 되는 법"은 개발자로써 바로 실천할 수 있는 39가지 노하우를 크게 5파트로 소개하고 있고,

구글, 마이크로소프트, 토스 등 국내 개발자 8인의 이야기도 수록되어 있습니다.

 

각 장은 간단하고 완결된 하나의 주제를 다루므로, 원하는 장부터 선택해서 읽어도 전혀 무리가 없습니다.

또한 프로그래머가 개발하면서 겪을 수 있는 다양한 주제를 다루고 있고, 나아가야 할 방향을 제시하고 있어 큰 도움을 얻을 수 있습니다.

각 장별로 생각나는 몇가지를 적어봅니다.

 

PART 1 you.write(code)

 

  • 1장 코드에 신경 쓰기
    • 좋은 코드를 작성하려면 코드에 신경을 써야하고, 훌륭한 프로그래머가 되려면 시간과 노력을 투자해야 합니다.
    • 다른 동료들이 쉽게 파악하고 이해할 수 있도록 의도가 드러나는 코드를 작성해야 하며, 유지보수가 가능하고 정확해야 합니다.
  • 2장 정돈된 코드 유지하기
    • 자신만의 코드 레이아웃을 만드는 올바른 방법을 익혀야 합니다.
    • 불필요한 아스키 아트는 동료의 유지보수를 힘들게 합니다.
    • 깔끔하게 코딩을 하고 싶다면, 먼저 생각부터 깔끔하게 정리해야 합니다.
    • 기능 변경과 모양 변경을 동시에 하지 말아야 합니다. 
  • 3장 코드 적게 쓰기
    • 중복된 코드는 공통 함수로 만들고, 일부 다른것이 있다면 매개변수를 달리해서 사용해야 합니다.
    • 공통 라이브러리의 사용은 코드 작성 시간을 절약해줄 뿐만 아니라 잠재적 결점으로부터 작성자를 보호해줍니다.
    • 주석 처리로 코드를 제거하지말고, 확실하게 지우세요. 형상관리로 언제든지 복원가능하니까요.
    • 변수의 선언 부분과 정의 부분을 같은 위치에 써야, 코드 이해에 대한 노력을 최소화 합니다.
  • 4장 코드 줄여 개선하기
    • 코드 리뷰 과정에서 코드를 줄이고 개선할 수 있는 부분을 적극적으로 찾아야 합니다. 코드 중복을 제거하고, 불필요한 조건 분기문을 줄이며, 코드를 단순화해야 합니다.
    • 미래에 필요할지도 모르는 기능이라도 코드를 제거하는 것이 안전합니다.
  • 5장 코드베이스의 망령
    • 오래된 코드를 다시 살펴보는 것은 코딩 기술 등을 향상시키는데 도움을 줍니다.
    • 프레임워크나 RDBMS등 개발환경이나 라이브러리가 버전업 됨에 따라 기존 코딩을 단순화 할 수 있습니다.
  • 6장 경로 탐색하기
    • 코드를 파악하는 가장 좋은 방법은 이미 코드를 파악하고 있는 사람의 도움을 얻는 것입니다.
    • 시스템의 실제 구조는 이상적 설계와 다를 수 있습니다. 문서가 아닌 코드를 믿으세요.
    • 코드를 배우는 가장 좋은 방법은 수정해보는 것입니다. 그런 다음 실수를 통해 배우세요.
  • 7장 똥통에서 뒹굴기
    • 나쁜 코드를 수정하는 데 시간과 노력을 들여야 하는지 신중하게 판단하세요. 지금 그대로 놔두는게 실리적일 수도 있습니다.
    • 수정으로 인해 기존 기능에 문제가 생기지 않음을 보장할 수 있는 모든 수단을 사용해야 합니다. 충분히 세심하게 검토하고 검증해야 합니다.
  • 8장 오류 무시하지 않기
    • 코드에서 발생할 수 있는 모든 오류를 무시하면 안됩니다. 은행 시스템에서 발생하는 오류는 심각한 결과를 초래할 수 있기 때문에 모든 오류를 철저하게 해결해야 합니다. 오류 로그를 분석하고, 오류 재현 시나리오를 작성하고, 오류를 근본적으로 해결해야 합니다. 자꾸 미루다 보면 처리하기 어려워집니다.
  • 9장 예상하지 못한 것을 예상하기
    • 코드 작성 시 가능한 모든 코드 경로를 고려해야 합니다. 나중에 오류나 장애시 대응하려 하지 마세요. 그렇게 할 일을 미루다 보면, 이후 그와 같은 경로 자체가 있음을 잊어버리게 되고 코드는 버그로 가득 찰 것입니다.
  • 10장 버그 사냥하기
    • 테스트하지 않은 코드는 버그의 번식지나 다름없습니다. 테스트는 표백제 역할을 합니다.
    • 은행 시스템은 완벽한 시스템이 아니기 때문에 버그를 찾아 해결하는 능력이 중요합니다. 테스트를 철저히 하고, 코드 리뷰를 통해 버그를 찾고, 정적 분석 도구를 활용하여 버그를 예방해야 합니다.
  • 11장 테스트하기
    • 코드를 작성하면서 테스트를 같이 작성해야 합니다. 테스트 작성을 미루면 그만큼 테스트 효과가 줄어듭니다.
    • 높은 신뢰성을 확보하기 위해 테스트가 필수적입니다. 단위 테스트, 통합 테스트, 시스템 테스트 등 다양한 수준의 테스트를 수행하고, 테스트 자동화 도구를 활용하여 테스트 효율성을 높여야 합니다.
  • 12장 복잡도 다루기
    • 복잡도는 블롭(소프트웨어 컴포넌트)과 라인(컴포넌트 사이의 연결)에서 비롯되기는 하지만, 대부분 기과한 소프트웨어를 만든 사람이 원인입니다. 설계 패턴을 적절하게 활용하고, 코드 모듈화를 통해 시스템 복잡도를 줄여야 합니다.
  • 13장 두 개의 시스템에 대한 이야기
    • 나쁜 구조로 인한 문제는 코드 내부에 한정되지 않습니다. 외부와도 연계되어 개개인과 팀,업무 처리 과정, 일정 산정 모두에 악영향을 미칩니다.
    • 소프트웨어 구조는 불변의 것이 아닙니다. 필요하다면 변경하고, 변경 가능하게 만들려면 구조를 간결하게 유지해야 합니다. 간결성을 빼앗는 변화에 저항하세요.
    • 요구 사항을 파악하기 전까지 구조 설계를 하지 마세요. 추측하지 마세요.

 

 

PART 2 연습을 통해 완벽해진다

 

  • 14장 소프트웨어 개발이란
    • 좋은 소프트웨어 개발은 머리속에 떠오른 첫 번째 코드를 뱉어내는 카우보이식 코딩이 아니다. 신중하고, 심사숙고하며, 정확한 노력의 산물이다.
    • 좋은 프로그래머는 자신이 모든 것을 알지 못한다는 점을 인정하고 겸손한 자세로 일해야 한다.
  • 15장 규칙 가지고 놀기
    • 은행 시스템은 규정과 컴플라이언스를 준수해야 하기 때문에 개발 프로세스에서 규칙을 준수하는 것이 중요합니다. 코딩 규칙, 문서화 규칙, 테스트 규칙 등을 준수하고, 규칙 위반 사항을 발견하면 개선해야 합니다.
    • 모호하게 구두로 전해지는 팀의 규칙에 의존하지 마세요. 무언의 규칙을 명백하게 만들고 코딩 문화를 다스려야 합니다.
  • 16장 간결하게 하기
    • 간결한 코드는 설계하는 데 많은 노력이 필요합니다. 다만 간결한 코드가 곧 과도하게 단순한 코드를 의미하지는 않습니다.
    • 딱 필요한 만큼의 코드만 작성하세요. 무엇이든 추가하는 것은 복잡함이 되고 짐이 될 것입니다.
  • 17장 머리 쓰기
    • 실수를 인정하고 코딩에 있어서의 잘못된 결정을 인정하세요. 그로부터 배우면 됩니다.
    • 용기를 가지고 머리를 사용하세요. 코드를 비판하고 개선할 방법을 결정할 권리가 자신에게 주어졌을을 깨달아야 합니다.
  • 18장 변하지 않는 것은 없다
    • 은행 시스템은 기술 변화에 따라 지속적으로 업데이트되어야 합니다. 새로운 기술을 배우고, 최신 트렌드를 파악하고, 시스템을 개선하기 위한 노력을 지속해야 합니다.
    • 코드 수정에 필요한 것은 무모함이 아니라 용기와 기술입니다.
    • '좋은 코드'는 자신의 책임입니다. 당신에게는 변화와 개선을 일으킬 수 있는 힘이 있습니다.
    • 때때로 광범위하게 코드를 수정하는 것보다는, 자주 조금씩 검증할 수 있는 수정을 하는 편이 더 낫습니다.
    • 자동화된 테스트는 코드 수정에 대한 확신을 심어줄 수 있는 귀중한 안전 도구입니다.
  • 19장 코드 재사용 사례
    • '복사/붙여넣기' 코딩은 지양하세요. 복제된 코드(복제된 버그)로부터 고통받지 말고, 로직을 공통 함수와 공통 라이브러리에 넣으세요.
    • 주의 깊게 조사하지 않은 채 인터넷에서 찾은 코드를 프로젝트에 복사하는 일이 없도록 하세요.
    • 다른 사람의 코드를 무시하지 마세요. 자신의 것보다 이미 존재하는 라이브러리를 사용하는 편이 나을 수도 있습니다.
  • 20장 효과적인 버전 관리
    • 버전 관리 도구를 반드시 사용해야 합니다. 버전관리 도구야 말로 개발의 중추입니다. Git, SVN 등 버전 관리 시스템을 활용하고, 버전 관리 규칙을 준수하며, 코드 변경 사항을 명확하게 기록해야 합니다.
    • 버전 관리 도구에 소프트웨어 프로젝트를 구성하는 모든 파일을 저장해야 하나, 불필요한 파일은 포함하지 마세요.
  • 21장 골키퍼 있다고 골 안 들어가랴
    • 팀간의 의사소통이 건전하지 않으면 코드도 건전해지지 않습니다.
    • QA 배포 버전을 신중하게 만들지 않는 것은 테스터들을 존중하지 않는 것입니다.
    • QA의 오류보고서를 개인적으로 받아들이지 마세요. 개인적 모욕이 아닙니다.
    • 좋은 소프트웨어를 만들려면 QA팀과 건전한 관계를 조성해야 합니다. 품질은 모두의 책임입니다.
  • 22장 프리징된 코드의 신기한 사례
    • '코드 프리징'은 애매한 용어입니다. 아무리 코드가 변하지 않길 바라지만 코드는 반드시 변경되기 마련이니까요.
    • 유일하고 참된 '코드 프리징'은 납득할 만한 출시가 이루어진 시점을 가르킵니다. 이는 곧 코드에 더 이상의 변경이 가해지지 않게 된 시점입니다.
  • 23장 제발 저를 출시해주세요
    • 소프트웨어는 항상 새로운 체크아웃에서 빌드해야 합니다. 기존에 사용하던 빌드의 일부분을 재사용하는 일이 절대 없도록 해야합니다.
    • 최종 결과물을 테스트하지 않았다면 출시해서는 안됩니다.
    • 은행 시스템은 엄격한 출시 프로세스를 거쳐야 합니다. 출시 전 테스트를 철저히 수행하고, 출시 일정을 계획하고, 출시 후 시스템을 모니터링해야 합니다.

       

PART 3 개인적인 일로 받아들이기
 

  • 24장 배움을 사랑하며 살기
    • 은행 IT 개발자는 지속적인 학습을 통해 전문성을 발전시켜야 합니다. 새로운 기술을 배우고, 개발 관련 서적을 읽고, 컨퍼런스에 참여하여 지식을 쌓아야 합니다. 배움을 즐기는 것을 배워라!
    • 목적을 가지고 자신만의 지식 포트폴리오를 관리하세요.
    • 어떤 주제를 잘 배우기 위해 남에게 가르쳐보세요.
  • 25장 테스트 주도 개발자
    • 자신의 머리로 코드에 항상 집중하고, 어이없고 위험성 높은 오류를 파하도록 해야합니다.
    • 은행 시스템 개발에서 테스트 주도 개발(TDD)은 중요한 방법론입니다. TDD를 통해 테스트 케이스를 먼저 작성하고, 테스트 케이스를 통과하는 코드를 개발하여 코드 품질을 높일 수 있습니다.
  • 26장 도전 즐기기
    • 새로운 기술에 도전하고, 어려운 문제를 해결하고, 끊임없이 노력하여 전문성을 발전시켜야 합니다.
    • 다른 플랫폼이나 패러다임을 무시하지 마세요. 자신이 알고 있는 것을 다시 작성하도록 노력하고 다른 플랫폼이나 다른 종류의 프로그래밍 언어를 사랑하세요. 결과를 비교하고 차이를 확인해보세요. 
  • 27장 부진 피하기
    • 기술 향상을 위해 시간과 노력을 투자하세요. 가치 있는 투자이고 보답을 받게 될 것입니다.
    • 지속적인 동기 부여를 유지해야 합니다. 목표를 설정하고, 성과를 평가하고, 긍정적인 태도를 유지하여 지속적인 성장을 이끌어낼 수 있습니다.
  • 28장 윤리적인 프로그래머
    • 읽을 수 없거나 불필요하게 '뛰어난' 코드를 작성하는 방법으로 자신이 없어서는 안 될 사람이라는 것을 부각시키지 마세요. 
    • 대접 받고 싶은 대로 대접하세요.
    • 피곤에 절은 프로그래머는 누구에게도 쓸모가 없습니다. 초과 작업을 하지 마세요. 자신의 한계를 인정하세요.
  • 29장 언어에 대한 사랑
    • 훌륭한 프로그래머들은 다양한 언어와 방법론을 알고 있는 만큼 문제 해결의 범위가 넓습니다. 이는 좋은 코드를 작성하는데 도움이 됩니다.
    • 자신의 언어를 사랑하고, 즐길 수 있는 언어로 작업하세요.
    • 하루아침에 언어를 마스터하려 하지 말고, 작업하는 동안 좌절하지 마세요.
  • 30장 프로그래머의 자세
    • 자신을 돌보며, 일하면서 좋은 자세를 유지하세요.

       

PART 4  일 끝내기

 

  • 31장 '더 열심히'보다는 '더 현명하게'
    • 직접 만들기보다는 이미 있는 코드를 현명하게 재사용하세요. 더 중요한 일에 시간을 투자하세요.
    • 우선순위가 가장 높은 일에 집중하세요. 가장 긴급한 작업 혹은 가장 가치가 높은 작업은 무엇입니까?
    • 특정 작업을 자주 해야 할 경우 컴퓨터가 대신하도록 스크립트를 자동화하세요.
    • 개발자는 효율적인 업무 방식을 가지고 일해야 합니다. 시간 관리, 우선순위 설정, 집중력 향상 등을 통해 업무 효율성을 높여야 합니다.
  • 32장 끝나야 끝나는 것
    • 커다란 작업을 더 작고 잘 아는 일로 나누세요. 더 정확하게 진행 상황을 판단할 수 있습니다.
    • 필요 이상으로 많은 작업을 수행하지 마세요. '완료' 상태까지만 작업하세요. 그런 뒤에는 중지하세요.
  • 33장 교훈 얻기
    • 문제에 직면했을 때, 이를 해결하기 위한 한가지 이상의 접근법을 고려해야 합니다. 그런 다음 작업에 착수해야 합니다.
    • 개발 프로젝트에서 발생하는 문제와 실패로부터 교훈을 얻어야 합니다. 실수를 분석하고, 개선점을 찾고, 다음 프로젝트에 반영해야 합니다.

 

 

PART 5  사람의 일
 

  • 34장 사람의 힘
    • 훌륭한 프로그래머들 주변에 의도적으로 머물으세요. 전문가(키맨)이 누군인지 항상 파악하고 있어야 합니다.
  • 35장 생각이 중요하다
    • 다른 사람이 코드를 읽고 품평하리라는 것을 알고 나면 좋은 코드를 짜고 싶은 마음이 더 커집니다.
  • 36장 말하기!
    • 코드는 다른 사람들과의 의사소통입니다. 명백하고 애매모호함이 없어야만 다른 사람들이 코드를 유지보수 할 수 있습니다.
    • 더 많은 주석을 단다고 반드시 코드가 더 나아지는 것은 아닙니다. 의사소통에 충실한 코드는 추가적인 주석이 필요 없습니다.
    • 적절한 사람들과 적절한 단어를 사용하도록 신경써야합니다.
  • 37장 선언문
    • 개발 방법론, 최신 경향, 선언문, 유행에 대해 알아두고, 납득할 만한 개발 선언문을 지지하되, 맹목적으로 따르거나 독단적으로 다루지 마세요.
  • 38장 코드 찬가
    • 보통, 소프트웨어 개발과 관련해 까다로운 부분은 기술적인 측면에 있지 않고, 결국 사람이 문제입니다.
  • 39장 태도가 핵심이다
    • 당신의 태도가 당신이 프로그래머로서 얼마나 나아갈 수 있는지를 결정합니다. 더 나은 프로그래머가 되고 싶다면 더 나은 태도를 목표로 하세요.
    • 어려움에도 굴하지 않고, 도전을 두려워하지 않고, 끊임없이 노력하여 목표를 달성해야 합니다.

 

 

책의 장점 및 특징

 

1. 다양한 주제의 커버리지

코드 작성부터 자기 관리, 협업 방법, 업무 처리에 이르기까지 개발자로서의 삶을 풍부하게 만들어주는 실용적인 조언들로 가득합니다. 이로 인해 독자는 다양한 주제에 대한 깊이 있는 이해를 얻을 수 있습니다.

2. 현업에서의 경험 공유

현업에서 활약하는 국내 개발자 8인의 인터뷰를 통해 그들의 경험담과 함께 현실적인 조언도 얻을 수 있습니다.

이는 독자에게 실제 개발 환경에서의 경험을 공유하고, 그들이 겪은 문제와 해결책에 대해 배울 수 있는 기회를 제공합니다.

3. 저자의 전문성

저자 Pete Goodliffe는 프로그래머이자 소프트웨어 개발 칼럼니스트, 음악가, 그리고 작가로서 다양한 경험을 바탕으로 이 책을 저술하였습니다. 그의 경험은 OS 개발부터 오디오 코덱, 멀티미디어 애플리케이션, 임베디드 펌웨어, iOS 애플리케이션 개발, 데스크톱 애플리케이션 개발에 이르기까지 다양하며, 이러한 경험을 바탕으로 '더 나은 프로그래머 되기'라는 칼럼을 매거진에 기고하고 있습니다.

4. 독립적인 장 구성

이 책의 각 장은 독립적인 주제를 다루므로, 독자는 필요와 관심에 따라 원하는 부분을 선택적으로 읽을 수 있습니다. 이는 독자가 자신의 필요에 따라 책을 읽을 수 있게 해주며, 특정 주제에 대해 깊이 있게 공부할 수 있는 기회를 제공합니다.

특히, 각 장을 읽을 때 '생각해보기'와 '연습해보기'를 대충 훑어보거나 그냥 넘어가지 말고,

본래의 내용을 넘어 더 깊이 생각해보고, 자신의 경험과 주제를 엮어낸다면, 우리도 훌륭한 프로그래머가 될 수 있을 꺼라 봅니다. ^^

 

[북리뷰-IT] 더 나은 프로그래머 되는 법 (한빛미디어, 2024) - 생각해보기, 연습해보기


이 책은 개발자의 성장과 발전을 위한 필수 도서로, 모든 개발자에게 꼭 추천하고 싶습니다. 

이 책을 통해 개발자로서의 여정이 더욱 풍요롭고 성공적이길 바랍니다.

이 책을 읽고 나면 '더 나은 프로그래머'가 되는 길을 찾을 수 있을 것입니다.

이 책을 읽는 모든 개발자에게 행운이 함께하기를 바랍니다.

더 높은 수준의 전문성과 역량을 갖춘 프로그래머로 성장하세요 ^^ 

 

 

"한빛미디어 서평단 <나는리뷰어다> 활동을 위해서 책을 제공 받아 작성된 서평입니다."

 

 

#북리뷰  #책  #도서리뷰  #서평  #더나은프로그래머되는법  #프로그래밍  #코드리뷰  #자기관리  #협업방법  #업무처리  #개발자의삶  #소프트웨어개발  #개발노하우  #개발자성장  #PeteGoodliffe  #한빛미디어  #OReillyMedia  #프로그래밍서적  #코드작성  #프로그래밍스킬  #개발자경험  #개발자인터뷰  #개발자조언  #프로그래밍학습

 

 

프로그래머라면 누구나 "어떻게 하면 더 나은 프로그래머가 될 수 있을까?"라는 질문을 한 번쯤 해보았을 것입니다.
『더 나은 프로그래머 되는 법』은 이 질문에 대한 실질적인 답변을 제공하는 책입니다.

IT 시장은 빠르게 변하고 있으며, 이에 따라 개발자들의 성장 욕구와 고민도 함께 증가하고 있습니다.
이 책은 15년 경력의 선배 개발자가 전하는 39가지 노하우를 통해, 더 나은 프로그래머로 성장할 수 있는 구체적인 방법을 제시합니다.
또한, 구글, 마이크로소프트, 토스 등에서 활약 중인 국내 개발자 8인의 인터뷰가 수록되어 있어 현실적이고 구체적인 조언을 얻을 수 있습니다.

저자 피트 구들리프는 이 책을 통해 개발자로서의 기술적 역량뿐만 아니라, 프로그래머로서의 태도와 접근법, 그리고 인간적인 면모까지 성장하기를 바랍니다.
코드를 잘 작성하는 것만이 아니라, 올바른 윤리와 태도를 지니고, 팀원들과 원활히 소통하며, 지속적으로 배우고 성장하는 것이 중요하다고 강조합니다.
이러한 종합적인 접근을 통해 더 나은 프로그래머로 거듭날 수 있기를 바라는 마음이 담겨 있습니다.

이 책은 독자가 각 장에서 배운 내용을 복습하고 깊이 생각해볼 수 있도록 돕습니다.
총 5부로 구성되어 있으며, 각 부는 프로그래머로서 고민해볼 만한 주제를 심도 있게 다룹니다.
각 장의 마무리 단계에서 질문을 던져 독자가 자신의 경험을 바탕으로 배운 내용을 다시 한번 되돌아보게 합니다.


| 자신의 경험을 바탕으로 각 장에서 배운 내용을 깊이 생각해보기
각 장마다 독자가 자신의 경험을 돌아보고, 배운 내용을 더 깊이 생각해볼 수 있도록 유도합니다.
이를 통해 독자는 책에서 얻은 지식을 자신의 경험과 연결 지어, 보다 실질적인 이해와 성장을 이끌어낼 수 있습니다.


| 더 나은 프로그래머가 되기 위해 현업에 바로 적용 가능한 간단한 테스트 제공
각 장에서는 더 나은 프로그래머가 되기 위해 현업에서 바로 적용할 수 있는 간단한 테스트를 제공합니다.
이 테스트들은 독자가 실제로 배운 내용을 어떻게 활용할 수 있는지 점검하고, 바로 실천해볼 수 있는 기회를 제공합니다.

| 이해를 돕기 위해 다양한 은유와 재치있는 그림 제공
이 책은 독자의 이해를 돕기 위해 다양한 은유와 재치있는 그림을 활용합니다.
이를 통해 복잡한 개념도 쉽게 이해할 수 있으며, 재미있게 학습할 수 있습니다.
이러한 시각적 요소들은 독자의 기억에 오래 남아, 실질적인 학습 효과를 극대화합니다.

이 책의 특별 부록으로, 국내에서 활약 중인 개발자 8인의 인터뷰가 포함되어 있습니다.
이들은 구글, 마이크로소프트, 토스 등 다양한 기업에서 활동 중인 전문가들로, 그들의 경험과 조언을 통해 더 나은 개발자로 성장하는 데 큰 도움을 받을 수 있습니다.


모로 가도 서울만 가도 되고, 조금 늦더라도 원하는 방향으로 갈 수 있는 여러 가지 방법을 모색하면 되지요. 
_ 이 책의 마지막 페이지 中 주요 문장


실용적인 조언과 구체적인 방법론
이 책은 단순한 이론서가 아닙니다. 저자의 15년 경력에서 비롯된 실질적인 조언과 구체적인 방법론을 통해, 현업에서 바로 적용할 수 있는 유용한 내용을 제공합니다.
코드 작성, 자기 관리, 협업 방법 등 개발자로서 필요한 모든 주제를 다루고 있어, 개발자의 삶을 더 풍부하게 만들어줍니다.

다양한 경험담과 현실적인 조언
국내 개발자 8인의 인터뷰가 포함되어 있어, 각자의 다양한 경험담과 현실적인 조언을 들을 수 있습니다.
이를 통해 독자가 더욱 구체적이고 현실적인 문제 해결 방법을 배우는 데 큰 도움이 됩니다.

누구에게나 유익한 책
이 책은 신입 개발자부터 경험 많은 개발자, 그리고 취미로 개발을 공부하는 일반인까지 누구에게나 유익한 내용을 담고 있습니다.
빠르게 변하는 IT 시장 속에서 더 나은 개발자가 되고자 하는 모든 이들에게 큰 도움이 될 것입니다.


『더 나은 프로그래머 되는 법』을 통해 더 높은 수준의 전문성과 역량을 갖춘 프로그래머로 성장하시길 바랍니다.
이 책을 통해 더 나은 프로그래머로서의 길을 열어보세요!

본 포스팅은 한빛미디어 <나는 리뷰어다>  활동을 위해서 책을 제공받아 작성된 서평입니다. ​ 

어떻게 하면 더 나은 프로그래머가 될수 있을까?를 고민하다 이 책을 선택했다면,

단지 그 고민과 생각만으로도 더 나은 프로그래머가 되기 위한 준비는 끝났습니다. 

이제 이 책을 읽고 깨달은 내용을 적용하기만 한다면 더 나은 프로그래머에 한걸음 더 가까워져있을 것입니다.

 


 

이제 막 사회에 뛰어는 사회초년생이거나,

업무를 하면서 자괴감에 빠지는 신입이거나,

'내가 지금 잘하고 있는게 맞는건가?' 싶은 주니어이거나, 

업무에 치여 성장에 대한 리프레쉬가 필요한 시니어이거나 

앞으로 어떻게 더 성장해야할까 고민하는 모든 개발자들에게 굉장히 유용한 책입니다.

 

이 책은 단순히 코드 스킬향상으로 좋은 프로그래머가 되는것 뿐만 아니라

알잘딱깔쎈 하게 일하는 방식과 마인드 세팅, 그리고 의사소통까지

더 나은 개발자가 되기 위해 한번쯤은 고민해봤을법한 유익한 내용들을 담고 있습니다.

 

저도 신입때 일하던 모습들이 스쳐지나가면서 공감되는 부분들도 많았는데요.

아직도 깨지고 부딪히며 배우고 있지만, 이 책을 덕분에 더 일찍 깨달은 것이 많았습니다.

지난 실수들이 떠오르면서 지금의 나와 비교해보니 '나 꽤나 많이 성장했구나'를 느꼈고, 

이럴땐 이렇게 일해야겠구나 하면서 '앞으로 주니어로서 성장할게 많구나'도 느꼈습니다. 

 

심지어 중간중간 한줄요약 부분과 생각해보기, 적용해보기 부분이 있는데요.

바로 업무에 적용해 볼수 있는 액션 아이템이 많아서 유익함이 두배로 느껴졌습니다. 

심지어 매 챕터마다 마무리 되는 유머러스한 이미지들은 피식 웃음짓게 만들기도 한답니다.

 

때로는 뼈때리는 직설적인 조언으로, 때로는 그래도 괜찮다는 따뜻한 위로로 선배같은 역할을 해주는 책입니다.  

주변에 나와 같은 길을 먼저 앞서간 선배가 없다면 이 책이 그 역할을 대신 해줄 것 같아요. 

 

책의 목차는 아래와 같이 구성되어 있습니다. 각 챕터마다 읽었던 내용을 링크해두었습니다.

저처럼 주변에 개발자 선배를 찾기 어려워 고민이 많으신 분들에게 추천드리며 . 

각 챕터의 제목마다 직접 읽고 깨달은 내용을 링크해두었습니다! 

 

1. you.write(code);

첫 챕터를 읽고나선 당장이라도 내 코드를 뜯어고치고 싶었다...

특히 기능 변경 과 모양 변경을 다른 커밋으로 두라는 이야가 인상깊었다.

같은 커밋으로 처리하다가 모양 변경 때문에 기능이 제대로 동작하지 않은 경험을 했기 때문이다.

그밖에 코드를 정리는 법과 TDD기반 개발을 위해 테스트를 잘하는 법이 굉장히 유용했다. 

 

2. 연습을 통해 완벽해진다

두번째 챕터는 개발에 대한 마인드에 대한 내용이다. 

코드 내부구조 수정을 할때 늘 잘못될지도 모른다는 두려움이 때문에 수정을 안한다는 내용이 너무 공감되었다. 

용감한 수정이 필요하다. 그러기 위해서 자동화된 테스트코드가 두려움을 줄여줄수 있다니..! 

 

3.개인적인 일로 받아들이기

세번재 챕터는 개발이라는 '일'에 대한 내용이다. 

특히 훌륭한 프로그래머는 안전지대를 주의해야하는데, 나는 그러지 못한것 같아서 반성하기도 했다. 

그리고 이런 나를 위해 안전지대 밖으로 밀어내고 변화시킬 수 있는 방법까지 제안해준다.

 

4. 일 끝내기 

네번째 챕터는 개인적으로 하이라이트다. 현명하게 일하는 방법에 대한 내용으로 굉장히 유익했다.

내가 신입때부터 일해왔던 방식을 돌이켜보면서 직접 혼나가며 경험하고 깨우쳤던 내용들이 모두 있다.

이제 막 사회에 발을 뛰어든 사회초년생이나 신입 개발자가 미리 알고 있다면 분명 일잘하는 알잘딱깔쎈 뉴비가 될수 있을것이다! 

 

5. 사람의 일

다섯번째 챕터는 사람과 의사소통에 대한 내용이다. 

개인적으로 의사소통을 잘하는 사람은 배려심이 좋은 사람이라고 생각한다. 그만큼 상대방의 이해수준과 기술적인 수준까지 고려해서 말을 전달하는건 쉽지 않은 일이다. 그래서 결국 태도가 중요하다건 말하기 입이 아플 정도이다.  

 

부록. 국내 개발자 8인의 이야기

마지막으로 부록으로 국내 개발자 8인의 이야기가 담겨있다. 

이 업계에서 최소 10년이상 몸 담고 있으신 분들의 경험과 그들이 생각하는 더 나은 프로그래머에 대한 생각이 담겨있다. 

공통적으로 꾸준함이 중요하다는 이야기가 있었다. 억지로 꾸준히 하려고 하는건 어려운데, 그냥 하고싶고 재미있는건 꾸준히 된다는 말이 굉장히 공감이 되었다. 생각해보니 나도 그냥 하다보니 어느샌가 꾸준히 하고 있는것 처럼 말이다.

 

"훌륭한 프로그래머 되는 법"의 저자가 쓴 "더 나은 프로그래머 되는 법. Becoming a Better Programmer" 이라는 책은 11년차 개발자가 된 현시점에서도 공감이 많이 되는 부분이 많다.

 

 

더 나은 사람이 되어야하는 것처럼 더 나은 프로그래머가 되어야하는 이유는 분명하다.

 

"프로그래머를 장인, 건축가, 예술가로 생각하기 때문이다. 무언가를 창조하는 사람은 보다 더 나은 방향을 고민하고 적용해야한다. 누군가를 위한 창조는 그 누군가를 바라봐야한다."

나의 생각

 

이 책을 보면서 가장 웃겼던 포인트는 바로 이 그림이였다. 과거의 최선이 현재의 최선이 아닌 것처럼 주니어때 만든 코드를 내가 다시 고치면서 "왜 이렇게 만들었지?"라는 반문을 스스로 하게 되더라.

 

책의 구성은 코드베이스부터 시작해서 코딩에 대한 태도와 접근 방법, 개인적인 부분의 내용 그리고 업무 일정 그리고 협업에 대한 이야기까지 전반적인 이야기를 다루고 있다.

프로그래머가 단순히 코딩만 하는 존재라고 생각하지 않는데, 그런 포인트들을 요소요소 다 다루고 있어서 "더 나은 프로그래머"라는 지향점을 잘 나타내고 있다고 생각이 들더라.

 

 

"더 열심히"보다는 "더 현명하게" 라는 소주제처럼 그 말을 나는 10년 넘게 들었다. 그 이야기를 팀장으로써 팀 막내에게 이야기하고 있다. 열심히보다는 잘! 현명하게! 라는 말이 쉽지만 실제로 하기엔 쉽지 않다.

혼자 고민하고 부딪치는 부분과 함께 일하는 부분까지 다양한 부분에서 인터렉션 해야하는 프로그래머의 삶은 생각보다 쉽지 않다. 오늘도 이렇게 책을 읽고 후기를 적으면서 내 스스로 강점은 키워나가고 약점은 완화시켜야할 포인트를 찾아간다.

 

 

소프트웨어 개발은 내가 좋아하는 예술과도 유사성을 가지고 있는데.. 저 말이 너무 와닿았다. ^^

 

 

개발만 한다고 전부가 아니라 해당 기능이 잘 동작하는지, 기존 기능과 영향이 없는지 영향도까지 전부 고려가 필요하고 정상적인 값, 비정상적인 값까지 넣어보고 다양한 케이스를 고려한 단위테스트부터 통합테스트까지 진행이 필요하다.

집을 건축할때도 단순히 짓는게 아니라 자재에 대한 검사도 필요하고 철근이 안 들어갔는지 감리도 필요한 것처럼 개발 또한 다양한 관점에서 고민이 필요하고 개발이 진행되어야 한다.

 

 

이것도 정말 중요한 말인데, "Keep It Simple, Stupid!" 단순하게 하는 게 정말 중요하다.

변수 하나도 단순하게, 코드도 단순하게 그리고 알기 쉽게! 이게 어려운 일이지만 이런 부분을 지향해야한다. 그래야 보다 더 나은 생산성을 가져다 준다.

개발을 하게 되면 남이 만든 코드를 처음에는 많이 보고 수정하게 된다. 연차와 경험이 쌓이면서 처음부터 본인이 개발을 전담으로 맡아서 하는 파트가 생기고 그게 점차 늘어나게 된다. 그 과정에서 코드를 잘 설계해놓아야 다른 사람의 시간도 절약시킬 수 있다.

 

 

자세까지 신경쓰는 저자의 생각에 박수가 저절로 나왔다. 일을 10년간 하면서 거북목이 심화되어 승모근이 매번 힘들어하고 요근래에 몸이 안 좋아서 정형외과 물리치료를 꾸준히 받았다. 지금도 필라테스를 하고 있지만 운동과 함께 제일 중요한건 자세가 아닐까 싶다. 오래 건강하게 꾸준히 일하기 위해선 역시 평소에 잘해야한다!

 

 

마지막 책의 내용중에선 국내 개발자 8인의 이야기가 인상 깊었다. 해외 유명 빅테크부터 시작해서 국내 테크 업계까지 백엔드부터 프론트엔드 등 다양한 개발자들의 진솔한 이야기를 부록으로 담아냈다.

"지금 바로 실천할 수 있는 선배 개발자의 39가지 노하우"라는 책의 부제목처럼 이 책이 담아낸 내용은 내공이 있는 개발자의 여러 경험과 노하우가 아닐까 싶다. 다만 그걸 주니어때는 이해를 못하지만 어느정도 경력이 쌓이면 자신만의 습관 때문에 비효율적, 비생산적인 부분이 있을 수 있다.

사람은 익숙해지면 그것을 고치지 않는다는 말이 있지만 개발자, 프로그래머는 더 나은 방향으로 업무에 임해야하고 그것을 바탕으로 조금 더 나은 프로그램, 제품, 서비스를 만들어야한다고 생각한다.

더 나은, 더 좋은, 더 많이 사용하는, 더 가치 있는 개발자가 되고 싶다. 꼭~~

"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."

30년 커리어를 놓고 봤을때 이제 3~4년차 정도인 짧은 나의 경력을 돌이켜보면 배움을 사랑하진 않았지만 도전은 즐겼었던 것 같다. 그 덕분에 어떻게든 밥은 먹으면서 살고있다. 책을 읽고난 후 생각해보건데 “도전은 즐겼기에 이 정도까지는 왔구나”라는 것이 “나”라는 사람의 한계였던 부분인 듯 싶다. 그렇기에 지금까지야 나름의 노력을 통해 어떻게든 버텨왔다면 앞으로는 이 책에서 말하는 “배움을 사랑하는 태도”와 “태도가 핵심이다”라는 부분을 잘 견지해야겠다.

프로그래밍 기법은 프로그래머의 성향에 따라 다양하게 나타나는데요.

좋은 프로그래밍이란 간결하고 후임자가 잘 알아볼 수 있게 코딩하는 것입니다.

프로그래밍에 대한 노하우는 본인의 경쟁력과도 같은 것이라서 잘 노출하지 않는데, 좋은 프로그래머가 되는 방법을 지난 오랜 기간의 경력을 기반으로 서술해간 점이 좋았습니다.

프로그래밍을 이제 시작하는 사람부터 지금의 프로그래머에겐 본인의 프로그래밍을 해 나가는데 되돌아 보는데 유익한 책으로 소개해 드립니다.

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원이 주문하신 경우 무료배송

무료배송 상품을 포함하여 주문하신 경우에는 구매금액에 관계없이 무료로 배송해 드립니다.

닫기

리뷰쓰기

닫기
* 도서명 :
더 나은 프로그래머 되는 법
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
더 나은 프로그래머 되는 법
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
더 나은 프로그래머 되는 법
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?

자료실

최근 본 책0