-
정규 교육은 효율적인 숙련도 전달에는 유용하지만, 예기치 못한 문제 해결을 위한 직관을 개발하는 데는 한계가 있음
-
목적 있는 반복적 시행착오(알고리듬) 는 실전에서의 실패와 수정 과정을 통해 숙련도를 가장 크게 높이는 요소임
-
실제 예시에서는 Linus Torvalds, Margaret Hamilton 등 다양한 인물이 실패를 경험하고 극복하면서 뛰어난 능력을 갖추게 되었음
-
멘토링은 중요한 촉진제이지만, 자기 주도적 실험과 직접 경험이 궁극적 성장의 핵심임
- 부딪히고 깨지면서 직접 문제를 해결하는 목표 지향적 실험이 진정한 실력 향상의 기반임
최고의 소프트웨어 엔지니어를 만드는 힘: 목적 있는 시행착오
교실 신화
-
정규 교육은 가치 있는 지식 전수에는 유리하지만, 규모에 맞게 최적화된 과정임
- 복잡한 실무 경험을 잘 정제한 절차에 담아 한 학기 내에 완료할 수 있는 형태로 전달함
- 이 과정에서 실무에 필요한 기본 숙련도는 익힐 수 있지만, 예상 밖의 위기에서 문제를 직관적으로 해결하는 역량 구축에는 한계가 존재함
- 특별히 밤 3시에 실제 서비스 문제 발생 시, 교실에서 배운 레시피만으로는 해결에 부족함
직접 부딪히며 배우는 진짜 성장
모범 사례들
-
Linus Torvalds는 MINIX를 리라이트하며 Linux를 만들었음
-
Margaret Hamilton은 Apollo 프로젝트에서 직접 실시간으로 코드 문제를 수정하면서 현대적 신뢰성 개념을 창시함
- 수많은 오픈소스 메인테이너들도 자기 노트북을 스스로 망가뜨리고 다시 고치며 성장함
- 이들은 순차적 강의를 먼저 듣지 않았으며, 실패와 그에 따른 실제 영향 덕분에 깊은 실력을 얻게 되었음
왜 시행착오가 레시피를 앞서는가
-
피드백 루프가 즉각적임. 로그에서 크래시를 분석하는 과정이 퀴즈보다 훨씬 빠른 습득을 제공함
-
엣지 케이스는 실제 환경에서 자연스럽게 드러나며, 교재에서 상상 못하는 사용 사례를 만남
- 어렵게 해결한 문제는 기억에 깊이 남음. 근육 기억으로 자리잡음
- 기존 가이드가 없을 때 창의력이 폭발적으로 발휘됨
멘토십의 재조명: 보완제, 대체제가 아님
- 좋은 멘토는 피드백을 빠르게 해주고 시야를 넓혀주지만, 궁극적으로 실험과 경험의 주체는 본인임
- 코드 리뷰는 실험 결과를 공유함으로써 가치가 있지만, 직접 경험을 대체하지 않음
자기주도적 실험관습 키우기
- 스스로를 조금 불안하게 만드는 사이드 프로젝트를 시도함
- 모든 것을 계측해서 실패 시 분석 가능한 데이터를 확보함
- 프레임워크 제한 혹은 48시간 내 완성 같은 제약 조건을 두어 창의적 해결력을 기름
- 코드를 공개하면서 외부의 검증을 받음
- 주간 단위로 회고를 정리해, 실패 원인과 배운 점을 기록함
정리
- 멘토십, 강좌, 블로그 등은 촉진제 역할이지만 진짜 실력은 현장에서 치열하게 부딪히는 과정에서 쌓임
- 최고의 엔지니어는 자유롭고 목적 있는 시행착오를 반복하여 실질적 문제 해결과 성장을 이뤄냄
- 이 과정에서 얻은 경험이 미래의 자기 자신에게 가장 큰 자산이 됨