ld20***
2023-09-24

이 책은 소프트엔지니어이자 컴퓨터 과학 교육 연구자, 전문 제빵사인 바우테르 흐루네벨트가 펴낸 책입니다.
사람들에게 영감을 주고 가르치는 일에 열정을 쏟으며 11년간 엔터프라이즈 소프트웨어 엔지니어로 일했습니다.
많은 소프트웨어 프로젝트가 실패하는 걸 목격하면서 그는 이런 질문을 하게 된다. 과연 무엇이 좋은 스포트웨어 엔지니어를 만드는가? 결국 이 질문은 2018년 회사를 그만두고 엔지니어링 분야에서 비 기술적 기술에 대한 연구를 수행하는 계기가 되게 됩니다.
책의 구성
창의성(creativeity) 이라는 용어가 다소 혼란스러울 수 있습니다. 따라서 창의성이라는 단어의 기원과 그 의미, 창의성을 측정하는 방법 등을 논의하는 1장은 창의성을 향한 길잡이 역활을 합니다.
2장부터 8장까지는 각각 창의성과 관련한 핵심 주제를 제시하고 심도 있게 탐구합니다.
9장은 코딩의 맥락에서 창의성에 대한 마지막 정리로 마무리하며, 이 책에서 배운 내용을 프로그래머로써 일상 업무에 통합하는데 도움이 될 만한 몇가지 생각할 거리를 제공합니다.
2장부터 8장까지는 읽기를 도중에 멈추고 생각할 기회를 제공하는 연습문제 (EXECISE) 가 곳곳에 등장합니다.
변화를 촉발할 수 있는 방식으로 연습 문제를 설계하고자 최선을 다했다고 하니 꼭 풀어보시기 바랍니다.
창의성이란 정확히 무엇일까?
어떤 것을 보고 다른 사람이 창의적이라고 말한다면 그것은 창의적입니다.
참 쉽죠? 창의성은 사회적 판단 (social verdict) 입니다.
여러분의 프로그래밍 노력이 창의적인 결과물로 이어졌는지는 여러분 자신이 아니라 여러분의 동료들이 결정합니다.
창의성은 사회문화적 현상이기때문입니다.
창의적인 개발자로 살아야 하는 주된 이유
첫째. 간단히 말해서 고용주가 요구하기때문입니다.
창의력이 요구되는 이유는 바로 문제 해결 때문입니다. 기존의 방법이 실패할 때 창의력을 발휘하는 것이 해결책이 될 수 있습니다.
예를 들어 웹 애플리케이션이 초당 수천건의 요청을 처리하는 데 어려움을 겪고 있다면 메시지큐, 로드 밸런싱, 캐싱, 코루틴 등을 검토해 보는게 좋습니다.
팀원 중 누구도 이런 방법을 제시하지 않는다면 계속 제자리걸음을 할 가능성이 높습니다.
창의적인 프로그래머는 이런한 틀을 깨뜨립니다.
문제 해결만으로 충분하지 않을 때 창의적인 감각에 의존해 문제를 발견해야 할 때도 있습니다.
셋째. 창의성을 발위해야 하는 이유는 창의성은 재미와 같기 때문입니다.
창의적인 프로그래머는 자기 일을 깊게 즐깁니다. 그들은 깊이 파고들고 안전지대를 벗어나고 특이한 아이디어를 연결하고 다른 사람들과 다양한 접근 방식을 논의하고 흐름에 동참하는 것을 좋아합니다.
요컨대 창의적인 프로그래머는 창의적 충동을 받아들입니다. 그들은 움베르트 에코가 말한 호모 파베르가 됩니다.
창의적 프로그래머의 일곱 가지 테마
기술 지식
커뮤니케이션
제약 조건
비판적 사고
호기심
창의적 마인드셋
창의적 기법
이 책은 창의적인 프로그래머가 되기 위한 여러가지 방법들을 알려주고 있습니다.
이제는 프로그래머에게 기술적인 능력뿐만이 아니라 창의성까지도 요구하는 시대가 되었습니다.
시대가 요구하는 능력에 부합하기 위해서는 이제 프로그래머들도 창의성을 갖추어야 할 것 같습니다.