음악과 함께 책 읽는 중….1부 프로그래머를 위한 원칙 5/252부 소프트웨어의 복잡성과 원인3부 단순성과 소프트웨어 설계4부 디버깅5부 엔지니어링 팀에서 일하기6부 소프트웨어 이해하기7부 나아지기
음악과 함께 책 읽는 중….
1부 프로그래머를 위한 원칙 5/25
p16
뛰어난 프로그래머가 되고자 하는 마음이 있어야만 뛰어난 프로그래머가 될 수 있다.
나도 마찬가지로 물이 제자리에 계속 머무르면 고이는 것 처럼, 자신의 방향으로 계속 나아가야한다고 생각하고 있어 공감이 갔다.
p19-21. 올바른 방법
“나는 이 문제를 올바른 방법으로 해결할 수 있다!” 올바른 방법이란 단순성을 유지하면서, 미래에 있을 기능 개선에 대한 유연성을 갖춘 코드
지금까지 프로젝트를 처음 시작할 때, “내가 잘 해낼 수 있을까?” 라는 의문을 항상 가졌던 것 같다. 그리고 이러한 고민에 상당한 에너지를 뺏겨왔다고 생각이 들었다.
고민을 위한 고민을 줄이고, 이러한 에너지를 “나는 엔지니어로서 올바른 방법으로 이 문제를 해결할 수 있다”에 집중하는 프로그래머로 성장하고 싶다.
올바른 방법을 찾는 방법
- 올바른 방법을 모른다는 핑계대지 말기
- 조금 더 공부해보고, 물어보고, 잠시 떨어져 있다가 돌아오면 충분히 해결할 수 있는 문제들이 많다.
당장 모른다는 핑계로
올바르지 않는 방법과 타협하지 않도록 주의!
- 올바른 방법에 대한 합의가 이루어지지 않을 때
- 사공이 많으면 배가 산으로 간다.
- 작업 분야에서 기본 법칙을 가장 잘 이해하고,
신뢰할 수 있는 시니어 엔지니어를 선발
하고, 해당 개발자가 기존 논의를 검토하고 합의하는표준적인 절차를 정하는 것
추천
- 지금 당장 결론을 내기에 시간적, 환경적 요인이 어려울 때
- 잠시 쉬고, 올바른 방법으로 해결 할 마음의 여유를 얻고 오기
“이 프로젝트는 올바르게 진행해야 해, 그러면 일단 쉬자, 그리고 다시 작업하자”
가 프로젝트를 성공으로 이끄는 책임감 있는 태도이다.
p23. 기본기
정보가 넘쳐나는 바다에서 끊임없이 싸울 때 가장 필요한 것은 “기본기” 이다.
가장 기본기를 잘 쌓아야, 단계적으로 다음 단계를 올라갈 수 있다.
빠르게 점프하는 것에 조바심을 가지지 않고, 1단계씩 올바르고 꾸준하게 성장하고 싶다.
- javascript → 바닐라js 애플리케이션 → 리액트, vue → …
- CS와 같은 코어지식이 부족한 만큼, 해당 부분을 다지고 가야겠다는 생각이 더욱 들었다.
2부 소프트웨어의 복잡성과 원인
p40
3부 단순성과 소프트웨어 설계
p44
설계관련 결정은 미래예측을 기반으로 내려서는 안된다. 예측한 모든 일은 확률 일 뿐 틀릴 가능성이 내포되어있다. … 예측이 아닌 현재 데이터, 현재 소프트웨어 시스템을 기반으로 결정을 내릴 때 올바른 방향으로 향할 가능성이 높다.
"미래를 예측하는 것은 상당히 어려울 뿐만 아니라, 정확하지도 않다. 대신 현재 가장 심플하게 해결할 수 있는 방법에 집중하라. 좋은 설계와 함께라면, 미래에 발생한 문제를 대처하는 것은 아주 쉬운일일 것이다.”