BOOKS
누워서 읽는 알고리즘
파란실버라이트
2018. 7. 20. 12:07
- 프로그래머의 생명도 방향전화 능력에 달려있다. 알고리즘은 그러한 방향전환을 가능하게 만들어주는 일종의 "메타 능력"이다. => 한국에서는 조금 그러한것 같다.
- 미국의 IT회사들은 특정기술이나 API에 정통한 사람을 찾지 않는다. 기본적인능력(문제를 해결할 수 있는 능력,즉 알고리즘)을 갖춘 상태에서 새로운 기술을 빠르게 습득해서 활용할 수 있는 사람을 찾는다 => 한국은 API에 능통해서 바로 쓸 수 있는 사람을 찾는 것 같다.
- 소프트웨어를 개발하는 사람에게 알고리즘은 취업이나 승진을 위해서 억지로 공부하는 대상이 아니라 퍼즐이나 수수께끼처럼 자체로 재미있고 신나는 놀이가 되어야 한다. => 코어개발이나 알고리즘을 개발하는 업무가 그렇게 맞지 않다.
- 단위 테스트를 얼마나 꼼꼼하게 수행하는지가 프로그래머의 진정한 실력을 드러내는 척도가 되기도 한다. => 동의 , 자동화 테스트는 반드시 필요하다. 그런데 회사는 시간을 주지않는다.
- 알고리즘을 만들어가는 과정 : 우선 문제 자체의 의미를 정확하게 파악하는 것이고 , 그다음으로는 실마리를 포착해서 한 걸음씩 전진하는 것이다. 고수는 언제나 한걸음씩 천천히 전진한다.
- 알고리즘을 작성하다 보년 프로그램의 실행 속도를 의미하는 '시간'과 메모리의 사용량을 의미하는 '공간'이 항상 대립하고 있다는 사실을 깨닫게 된다.
- 알고리즘을 창조하는 능력이 뛰어난 사람은 버그를 찾는 능력도 뛰어나고, 그 반대의 경우도 마찬가지다. 버그를 찾는 능력과 알고리즘을 창안하는 능력은 정비례하는 것이다.
- 실제 프로그래밍에서 발생하는 버그는 많은 경우에 특정한 알고리즘 자체가 품고 있는 논리적 결함보다는 프로그래머가 방어적 프로그래밍을 게을리해서 발생하는 경우가 더 많다. Ex NullpointException.=> 동의
- 버그를 찾는 일은 대부분 끈기와 집중역을 테스트하는 과정이다.
- 좋은 프로그래머는 소설도 읽고, 영화도 보고, 농구도 하고, 기토도 치고, 정치 토론에도 참여하고, 연예도 하고, 술도 마시는 열정적인 사람이다. 진정한 상상력은 삶의 속살을 이해할때 비로소 풍부해지기 때문이다.
- 훌륭한 프로그래머는 스스로의 실력에 취해서 팀워크를 해치는 사람이 아니라 자신의 실력을 깊게 고찰해서 부족한 점은 꾸준히 보강하면서도 강점은 신중하게 살려 나가는 사람이다. 그런 사람은 성실하게 때문에 다른 사람에 대한 존경심을 잃는 법이 없다. 프로젝트에서 정말 필요한 사람은 바로 그런 사람이다. 한편 사람에 대한 예의를 잃은 프로그래머는 아무리 실력이 뛰어나다고 해도 도움이 도지 않다. 그러므로 이렇 종류의 문제를 얼마나 '빨리'푸는가 하는 것은 사실 크게 중요한 것이 아니다. 앞에서는 문제를 빨리 풀수록 좋은 것처럼 말했지만, 실제로 중요한 것은 문제를 푸는 속도가 아니라 끝까지 포기하지 않고 문제를 해결하려고 하는 '프로'근성이다. 그런 정신이 투철한 사람은 일단 답을 구해 놓고도 쉽게 안심을 하지 않는다. 자기가 작성한 알고리즘이 과연 최선인지 여부를 끝까지 신중하게 고민하기 때문이다. '재능'은 각자 타고나는 일이므로 어쩔 수 없지만, 이러한 '프로'정신은 본인의 노력에 달려 있으므로 후천적이다.. '재능'과 '노력'중에서 더 중요한 것은 '재능'이 아니라 '노력'이라는 사실은 귀에 못이 막이도록 들어온 이이야기.=> GRIT 이야기가 생각난다. 동의 합니다.