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

한빛출판네트워크

한빛랩스 - 지식에 가능성을 머지하다 / 강의 콘텐츠 무료로 수강하시고 피드백을 남겨주세요. ▶︎

크리에이티브 프로그래머

프로그래밍에 창의성을 더하는 7가지 사고력

한빛미디어

번역서

판매중

  • 저자 : 바우테르 흐루네벨트
  • 번역 : 차건회
  • 출간 : 2023-08-28
  • 페이지 : 316 쪽
  • ISBN : 9791169211369
  • 물류코드 :11136
  • 초급 초중급 중급 중고급 고급
4.8점 (33명)
좋아요 : 44

소프트웨어 개발에 반짝이는 창의성을 더하다

 

 

프로그래밍은 작곡이나 비즈니스 창업 또는 마케팅 캠페인 기획과 마찬가지로 창의적인 행위입니다. 여러 기술이나 능력이 그렇듯 창의성도 연습을 통해 익히고 개선할 수 있습니다. 이 책은 창의성을 활용해 더 효과적인 문제 해결, 더 높은 생산성, 더 좋은 소프트웨어로 전환하는 실용적인 방법을 상세히 설명합니다. 

 

소프트웨어 엔지니어링과 관련한 창의성의 7가지 측면인 기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법을 차례로 살펴봅니다. 이 책을 다 읽고 나면 다른 분야에서 창의성과 관련해 발견한 통찰력을 소프트웨어 개발에도 적용할 수 있습니다. 다채로운 연습 문제는 각 장의 핵심을 짚어주고 배운 내용을 더 명확하게 이해할 수 있도록 합니다. 특히 독창적인 프로그래밍 문제 해결 테스트는 여러분이 프로그래밍을 할 때 얼마나 창의적으로 문제를 해결하는지 평가하는 데 도움을 줍니다.

 

 

 

 

 

크리에이티브(700).jpg

바우테르 흐루네벨트 저자

바우테르 흐루네벨트

소프트웨어 엔지니어이자 컴퓨터 과학 교육 연구자, 전문 제빵사다. 사람들에게 영감을 주고 가르치는 일에 열정을 쏟으며 11년간 엔터프라이즈 소프트웨어 엔지니어로 일했다. 몇 년의 경험을 쌓은 후 교육, 코칭, 온보딩에 참여했다. 많은 소프트웨어 프로젝트가 실패하는 걸 목격하면서 그는 이런 질문을 하게 된다. 과연 무엇이 좋은 소프트웨어 엔지니어를 만드는가? 이 질문은 결국 2018년 회사를 그만두고 학계로 다시 합류하는 계기가 되었다. 이후 소프트웨어 엔지니어링 분야에서 비기술적 기술에 대한 연구를 수행했다. 이 주제에 관한 그의 저술은 광범위하다. 그의 학술 논문 목록은 https://brainbaking.com/works/papers(모든 논문은 오픈액세스)에서 확인할 수 있다. https://brainbaking.com에서 블로그를 운영하고 있다.

차건회 역자

차건회

현재 미국 로스앤젤레스의 Shell Recharge Solutions에서 자바 백엔드 테크 리드로 일하고 있다. 자바, 스프링 부트, 메시지 큐, 일래스틱서치, 레디스 등 자바 백엔드의 전반적인 기술 스택 및 성능 향상에 관심이 있다. 옮긴 책으로는 『프로그래머의 뇌』, 『좋은 코드, 나쁜 코드』, 『몽고디비 인 액션』(이상 제이펍)이 있다.

CHAPTER 1 창의성을 향한 여정

_1.1 창의성이란 정확히 무엇일까?

_1.2 왜 창의성일까?

_1.3 다양한 수준의 창의성

_1.4 더 창의적이 되기 위한 로드맵

_1.5 이 책의 구조

 

CHAPTER 2 기술 지식

_2.1 입력이 없으면 창의적인 결과물도 없다

_2.2 지식 수집하기

_2.3 지식 내면화

_2.4 지식을 행동으로 옮기기

_2.5 워크플로 예시

_2.6 요약

 

CHAPTER 3 커뮤니케이션

_3.1 협업 팀워크

_3.2 집단 지리학

_3.3 시간 내 창의적인 작업

_3.4 창의적인 흐름이 방해받을 때

_3.5 요약

 

CHAPTER 4 제약 조건

_4.1 제약 기반 사고

_4.2 내재적 제약 조건

_4.3 부과적 제약 조건

_4.4 스스로 부과한 제약 조건

_4.5 스위트 스폿 찾기

_4.6 실제 제약 조건으로 작업하기

_4.7 요약

 

CHAPTER 5 비판적 사고

_5.1 창의적인 비판적 사고

_5.2 창의적인 프로세스

_5.3 창의성은 목표가 아닌 수단

_5.4 일반적인 비판적 사고 오류

_5.5 지나친 자기비판

_5.6 타인의 비판적 사고가 중요한 이유

_5.7 요약

 

CHAPTER 6 호기심

_6.1 호기심은 창의력의 원동력

_6.2 커져 가는 호기심과 방랑벽

_6.3 호기심에 대한 끈기 유지하기

_6.4 호기심에서 동기 부여까지

_6.5 다중 잠재력

_6.6 우연한 발견

_6.7 재미에 대해

_6.8 요약

 

CHAPTER 7 창의적 마인드셋

_7.1 올바른 창의적 분위기 만들기

_7.2 딥 워크의 흐름

_7.3 인터럽트!

_7.4 창의적인 통찰력 도출

_7.5 기업의 창의적인 마음가짐

_7.6 요약

 

CHAPTER 8 창의적 기법

_8.1 창의적인 도구 상자 채우기

_8.2 선택: 아티스트의 도구 상자

_8.3 선택: 작가의 도구 상자

_8.4 선택: 프로그래머의 도구 상자

_8.5 요약

 

CHAPTER 9 창의성에 대한 마지막 생각

_9.1 누구나 창의적일 수 있다는 것을 기억하세요

_9.2 진화하는 창의성의 관점

_9.3 창의적이지 않아야 할 때

_9.4 더 읽어 보기

 

찾아보기

프로그래밍에 창의성을 더하는 7가지 사고력

 

제목에서 알 수 있듯이 『크리에이티브 프로그래머』는 창의력을 발휘하여 문제 해결 능력을 높이고자 하는 모든 수준의 프로그래머를 위한 책입니다. 이 책을 구입함으로써 여러분은 이미 창의적인 잠재력의 가장 중요한 부분, 즉 ‘새로운 것을 배우고자 하는 호기심’의 문을 연 셈입니다! 앞으로 이어지는 장에서 그 호기심을 계속 이어갈 충분한 정보를 얻을 수 있기를 바랍니다.

 

이 책은 특정 프로그래밍 언어나 기술에 대한 사전 지식이 필요하지 않습니다. 대신 인지 심리학의 세계로 깊이 들어가 창의적인 프로그래머가 된다는 게 무엇을 의미하는지 알아볼 것입니다. 이전에 프로그래밍을 해본 적이 있다면 책의 내용을 이해하는 데 도움이 되겠지만 필수 요건은 아닙니다. 이 책에 수록한 몇몇 짧은 코드 예제는 특정 언어로 작성되지 않았으며 어디까지나 창의적 개념에 대한 용례로 사용되므로, 광범위한 프로그래밍 언어나 디자인 패턴 지식이 필요하지 않습니다.

 

창의성에 대한 이러한 접근 방식은 기술 분야에 종사하는 비개발자에게도 충분히 매력적일 수 있습니다. 기술 분석가라면 새로 알게 된 개념을 통해 많은 도움을 받을 수 있으며, 엔지니어링 관리자라면 팀을 더 창의적으로 잘 지원하는 방법을 배울 수 있습니다. 약간의 노력만 기울인다면 대부분의 기법은 다른 영역에도 얼마든지 적용할 수 있습니다. 이 책을 읽다 보면 실제로 관련 사례를 찾아볼 수 있을 것입니다.

- 서문 ‘이 책에 대하여’ 중에서

* 대상 독자

  • 슬기로운 프로그래밍 생활을 원하는 모든 개발자
  • 센스 있고 창의적인 개발자가 되고자 하는 모든 개발자 지망생
  • 프로그래밍에 관심 있는 누구나

* 주요 내용

  • 창의성에 관한 과학적 이해
  • 창의성을 프로그래밍으로 전환하는 방법
  • 창의적인 개발자가 되는 데 도움이 될 조언과 연습 문제
  • 팀에서 더 효율적으로 작업할 수 있는 혁신적인 커뮤니케이션 기법
  • 복잡한 문제를 다루기 위한 창의적인 문제 해결 기법

* 추천사

흥미로운 역사적 일화와 구체적인 실습 예제뿐만 아니라, 프로그래밍 주제를 넘나들며 더 깊이 읽을 수 있는 논문, 서적, 에세이의 광범위한 참고 문헌이 환상적으로 어우러져 있습니다. 저는 이 책을 읽으면서 저자의 교훈을 즉시 적용하기 위한 수많은 낙서와 메모로 책의 여백을 가득 채웠습니다. 그가 제공하는 연습 문제가 그만큼 매력적이고 고무적이라는 증거입니다!

_ 펠리너 헤르만스, 『프로그래머의 뇌』 저자 겸 암스테르담 자유 대학교 교수

 

아름답게 쓰인, 완벽히 설득력 있는 책입니다. 저자가 글에서 전달하고자 하는 연구와 통찰, 순수한 기쁨에 감명 받았습니다.

_ 다니엘 테르호르스트-노르스, Dan North & Associates 수석 컨설턴트

단순히 코드를 작성하고 논리에 맞추는 것과 계산하는 것은,

초등학생도 보고 따라서 할수는 있다.

그렇지만 좋은 아이디어를 가지고, 문제 해결 능력을 갖추는 것은 누구나 할 수 있는 일이 아니다.

코드와 문법에만 얽매이지 말자.

 

 

 

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

 

크리에이티브 프로그래머

저자: 바우테르 흐루네벨트

번역: 차건회

 

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

 

IT직종에 종사한지 40년째가 되었고, 35년째 강사로 활동하고 있지만 초기에는 개발자로 생활을 하였다.

개발이라는 것이 초기에는 요구자가 원하는 것을 충족할 수 있도록 개발하면 되었지만 현재는 다르다.

사용자들의 요구사항이 다르기 때문에 개발자로서 어려움이 참으로 많다.

본 책은 제목에 나와 있듯이 창의성을 더하는 방법을 설명하고 있다.

창의적 기법, 커뮤니케이션, 기술지식, 제약 조건 비판적 사고, 창의적 마인드셋, 호기심 등 7가지 항목을 기반으로 사고력을 증진시킬 수 있도록 설명하고 있다.

본 책자의 표지그림에 모든 것이 나와 있다.

이러한 책자가 과거에도 있었다면 얼마나 좋았을까 하는 아쉬움을 갖게 해주고 있다.

특히 저자에게 감사함을 표하고 싶다.

 

창의성을 검색하면 다음과 같은 내용이 나온다.

창의성(創意性, 문화어: 창발성, 영어: creativity)은 새로운 생각이나 개념을 발견하거나 기존에 있던 생각이나 개념들을 조합하여 새로이 생각해내는 특성이다. 창조성(創造性)이라고도 하며 이에 관한 능력을 창의력(創意力), 창조력(創造力)이라고 한다. 창조력은 의식적이거나 무의식적인 통찰에 힘입어 발휘된다. 창의력에 대한 다른 개념은 '이을 수 없는 점을 잇는 것'이다.

 

과학적인 관점에서 보면, 창조적인 사유의 결과물은 항상 독창성과 "함께" 적합성을 지닌 것이다. 창의성과 창의적인 행동들은 심리학, 인지과학, 교육, 철학 (특별히 과학 철학), 신학, 사회학, 언어학, 경영학, 경제학 등의 여러 학문 분야에서 연구되어왔다. 그 결과로 창의성에 대한 여러 정의와 접근 방식이 생겨났다.

- 위키백과-

 

실로 복잡하다.

창의성이란 새로운 것을 창조하는 것, 세상에 없는 무엇인가를 새로 만들어내는 것이라고 표현할 수 있다.

이때 어떻게 만들어내냐 하는 것이 중요하겠다.

프로그램도 마찬가지다. 사용자들이 편리하도록 유용하게 사용할 수 있도록 만드는 것이 중요하다.

초보 개발자에게도 기존의 개발자들에게도 아주 유용한 내용으로 수록되어 있는 본 책자를 적극 권하고 싶다.

저자: 바우테르 흐루네벨트

번역: 차건회

 

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

 

IT직종에 종사한지 40년째가 되었고, 35년째 강사로 활동하고 있지만 초기에는 개ㅁ발자로 생활을 하였다.

개발이라는 것이 초기에는 요구자가 원하는 것을 충족할 수 있도록 개발하면 되었지만 현재는 다르다.

사용자들의 요구사항이 다르기 때문에 개발자로서 어려움이 참으로 많다.

본 책은 제목에 나와 있듯이 창의성을 더하는 방법을 설명하고 있다.

창의적 기법, 커뮤니케이션, 기술지식, 제약 조건 비판적 사고, 창의적 마인드셋, 호기심 등 7가지 항목을 기반으로 사고력을 증진시킬 수 있도록 설명하고 있다.

본 책자의 표지그림에 모든 것이 나와 있다.

이러한 책자가 과거에도 있었다면 얼마나 좋았을까 하는 아쉬움을 갖게 해주고 있다.

특히 저자에게 감사함을 표하고 싶다.

 

창의성을 검색하면 다음과 같은 내용이 나온다.

창의성(創意性, 문화어: 창발성, 영어: creativity)은 새로운 생각이나 개념을 발견하거나 기존에 있던 생각이나 개념들을 조합하여 새로이 생각해내는 특성이다. 창조성(創造性)이라고도 하며 이에 관한 능력을 창의력(創意力), 창조력(創造力)이라고 한다. 창조력은 의식적이거나 무의식적인 통찰에 힘입어 발휘된다. 창의력에 대한 다른 개념은 '이을 수 없는 점을 잇는 것'이다.

 

과학적인 관점에서 보면, 창조적인 사유의 결과물은 항상 독창성과 "함께" 적합성을 지닌 것이다. 창의성과 창의적인 행동들은 심리학, 인지과학, 교육, 철학 (특별히 과학 철학), 신학, 사회학, 언어학, 경영학, 경제학 등의 여러 학문 분야에서 연구되어왔다. 그 결과로 창의성에 대한 여러 정의와 접근 방식이 생겨났다.

- 위키백과-

 

실로 복잡하다.

창의성이란 새로운 것을 창조하는 것, 세상에 없는 무엇인가를 새로 만들어내는 것이라고 표현할 수 있다.

이때 어떻게 만들어내냐 하는 것이 중요하겠다.

프로그램도 마찬가지다. 사용자들이 편리하도록 유용하게 사용할 수 있도록 만드는 것이 중요하다.

초보 개발자에게도 기존의 개발자들에게도 아주 유용한 내용으로 수록되어 있는 본 책자를 적극 권하고 싶다.

 

창조성의 정의부터 어떻게 하면 창조성을 키울 수 있는 지 다양한 방법을 알려주는 책이었다.

7가지 사고력(기술 지식, 커뮤니케이션, 제약 조건, 창의적 기법, 창의적 마인드셋, 비판적 사고, 호기심)으로 프로그래밍의 창조성을 키울 수 있다고 저자는 주장한다.

<크리에티브 프로그래머>를 읽어서, 고인물이 되지 않기 위해 노력해야겠다. 

 

 

창의성을 다룬 책 답게 창의성의 정의를 창의적이지 않은 방법으로 기술하지 않아 간만에 창의적으로 창의성을 생각해 볼 수 있어 뜻 깊은 시간이었다.

프로그래머가 창의성을 키우는 방법과 창의성을 기술에 적용하는 방법을 다룬 책이다. 창의성 주제를 다룬 책 답게 이 책의 가장 마지막 페이지에는 저자가 본 도서를 요약한 마인드 맵이 수록되어있는데 이 책을 한 눈에 바라볼 수 있는 방법이기도 하다.마인드맵

마인드 맵이라는 것이 사람의 신경망의 구조와 닮은 부분이 많아 이해하기 쉽다. 그림에서 보듯 이 책에는 창의적 프로그래머에게 필요한 7가지의 큰 그림이 있다.

시계 방향으로 바라보면 크게 기술 지식, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 커뮤니케이션, 창의적 기법 등의 7가지 주제로 이뤄져있다는 것을 예상할 수 있다.

개인적으로는 이 책을 읽기 전에 이 마인드 맵을 먼저 읽기를 권하고 싶다. 최대한 저자가 어떤 주제를 이야기 하려는 것인지, 7가지 주제에 세부적으로 그려져 있는 메시지들은 무엇을 말하고자 하는 것인지 독자 스스로 그간의 경험을 바탕으로 최대한 유추해보고 시간을 들여 고민도 해 본 후 책을 읽어나간다면 더 재미있게 읽을 수 있을 뿐만 아니라 저자가 던지는 메시지의 본질을 더 잘 캐치해 낼 수 있을거라 생각한다.

그리고 난 후 스스로의 경험과 융합하여 7가지의 동그라미를 파괴도 해보고 재구성도 해보고 연결고리를 바꾸는 작업도 유의미할 것 같다. 그간 유사한 도서를 많이 읽고 개인적인 경험으로 정리해 본 바 인간의 뇌는 한 방향으로 깊이있게 뻗어나가는데는 특화되어있지만 첫 출발점이 되는 7가지 동그라미를 즉각적으로 떠올리는 데에는 다소 취약한 것 같다.

하지만 그 취약한 부분은 인간 누구에게나 갖고 있는 맹점이 되기 때문에 이를 어떻게 재구성하는지에 따라 그동안 보지 못한 독창적인 솔루션이 될 수도 있고 그런 부분에서 또 한가닥의 창의성을 얻을 수 있지 않을까?

말미에는 내가 이 책을 읽고 재구성한 나름의 첫번째 동그라미도 소개하겠지만 리뷰 취지에 맞게 간단하게나마 이 책을 소개해볼까 한다. 앞서 소개한 7가지 주제는 사실 서로 연관되어 있는 듯 하다.

책의 구성이라는 제약에 맞게 유사한 주제를 헤쳐모여 한것이기에 굳이 순서대로 읽을 필요도 없고 눈에 띄거나 읽고 싶은 부분을 먼저 읽어도 저자가 전달하고자 하는 메시지를 이해하기에는 영향이 없어 보인다.

그렇기에 스스로 생각하는 이 책은 크게 프로그래밍과 관련된 부분과 관련되지 않은 부분 즉, 일반적인 창의성에 관련된 주제로 나눌 수 있을 것 같다.

전자에 해당되는 주제 중 하나는 커뮤니티 스멜과 같은 주제이다. 클린 코드나 실용주의 프로그래머 등 프로그래머들이 고전처럼 취급하는 명저들에 언급되었던 코드 스멜과 유사하지만 그동안 주목을 받지 못했던 주제이기도 하다.

창의성도 결국은 사람들의 모임에 종속될 수 밖에 없기에 커뮤니티를 망하게 만드는 냄새 또한 중요하다. 아래 그림에 잘 정리되어 있지만 성공적인 팀을 빌딩하고 운영해 나가는 데 꽤 중요한 부분이다.커뮤니티스멜

또한 본 도서의 메인 주제는 아니지만 프로세싱 언어에서 파생되어 나온 P5도 눈여겨 읽은 부분이다. 프로세싱은 주류 언어는 아니지만 마치 프로그램 언어와 비 프로그래밍 도구 어느 중간에 위치한 표현력 좋은 도구이다.P5

이 언어나 도구를 사용하는 각기 다른 나름의 목적이 존재하겠지만 나의 경우는 창의성을 키우는데 많은 도움을 받았던 도구인데 이 책에도 소개되어있어 사실 조금 놀랐다.

생각을 시각화 하다보면 스스로의 생각에 갇힌 틀과 실제로 구현된 세계간에 생각보다 큰 갭이 존재한다는 것을 깨달으며 놀라곤 했기 때문이다. Nature of Code라는 책에서 프로세싱 언어를 처음 접하고 심심할 때마다 즐기곤 했는데 이 책에도 같은 생각이 담겨있어 꽤 반가웠다.

이 책은 창의성 주제를 다룬 책 답게 창의성을 정의하는데 집중하거나 다른 창의성들을 모아놓은 창의적이지 않은 방법으로 창의성을 기술하지 않는다는 점이 가장 마음에 드는 부분이다.

읽다보면 다소 두서나 체계가 없다는 느낌을 자주 받을 수 있는데 정말 다양한 각도에서 창의성의 본질을 설명하고자 노력한 것 같아 만족스러웠다. 잠시 책을 접어두고 저자가 언급한 주제를 정리하고 생각하다보면 내가 지금 어떤 주제에 소속되어있는지 감을 잡기 힘들 정도로 나를 이쪽 세계에 빠드렸다가 저 쪽 세계에 빠뜨리곤 한다.

창의성과 대우 문제 문제도 흥미롭다. 창의성이 좋으면 한번에 혹은 쉽게 눈에 들어오지 않는 업계의 본질도 드러나기 마련이다. 아래 그림에 보상받지 못하는 지식이 특히 그런 부분이다. 내가 남보다 대단하다고 생각함에도 왜 인정받지 못하는지에 대한 질문에 이 그림보다 완벽한 설명이 있을까?과잉자격

그런가 하면 창의성이 주제인만큼 프로그래밍과는 크게 관련없어 보이는 창의성 본연의 성질에 대한 고찰도 다양하게 담겨있다. 스스로의 지식을 어떻게 표현하고 정리할 수 있을지 그 체계를 담아내기 위한 고찰도 그런 분이다.지식체계

인간의 뇌의 기가막힌 기능 중 하나도 망각이기에 결국 망각을 저장하고 다시 불러오는 부분에 대한 고찰도 중요하다. 개인적으로도 그 IO 과정에서 지식의 표현 형태는 변경되기에 그 사이에 손실이나 잡음 증폭이 존재할거라 생각해왔는데 그 부분에 대한 학계의 깊은 연구가 쉽게 요약정리 되어있어 매우 만족스럽게 읽은 부분이기도 하다.

가끔 머리를 식혀주는 퀴즈들이 등장하는 것도 재미있는 부분이다. 읽다보면 다른 프로그래밍 도서는 내가 읽고 있는 현재의 위치를 파악하는 것이 중요할 때가 많은 데 이 책은 다른 프로그래밍 도서와는 달리 지금 내가 어디에 위치하고 있는지 파악하기 어렵다. 대신 정신없는 만큼 재미는 있다.퀴즈

아무튼 책 소개를 위해 프로그래밍에 관련된 주제와 그렇지 않은 주제로 나눠 인상적이었던 주제를 몇가지 소개했지만 결론은 창의성이라는 주제에 대해 오오트 구름처럼 불투명해 보일지라도 감으로나마 정리는 해두면 좋겠다는 생각이다.

개인적으로 고찰해 온 것들과 경험에서 비롯된 것들 그리고 이 책을 읽으며 떠올렸던 내용들을 종합하여 창의성에 도움이 되는 몇가지 방법을 간략히 정리해보며 리뷰를 마친다.

  • Min-Max 어떤 일이든 어떤 사고든 미래에 대한 예측이든 그 바운더리 즉, Min - Max가 어디인지 그 끝을 쫓아보는 것이 좋다. 이 책에 등장하는 제약이라는 주제도 비슷한 맥락이다.

  • 절대 위치와 상대위치 객체의 위치를 파악하려고만 하지 말고 주체 혹은 관찰자의 위치를 바꿔보는 것이 문제나 현상의 본질을 이해하는 데 큰 도움이 된다. 폴 세잔의 사과처럼 다양한 시각에서 대상을 바라보고자 노력한다면 남들이 보지 못하는 본질을 얻을 수 있다.

  • 추상과 구체 어떤 현상이나 물체의 본질을 알고 싶다면 매우 추상적인 관점에서 바라볼 필요도 있고 혹은 반대로 매우 미시적인 관점에서 바라볼 필요도 있다. 멀리서 본 전깃줄은 1차원이지만 가까이서 본 전깃줄은 3차원이다. 우주의 세계와 양자의 세계는 닮았다. 비슷한 법칙이 작용하면서 동시에 상반된 법칙이 공존한다.


한 줄 요약 : 《크리에이티브 프로그래머》를 읽고, 연습하며 갇힌 사고에서 벗어나자



 

어느 한 분야에서 일정 기간 이상 반복되는 경험을 하다보면 생각과 행동이 굳어진다.

내 경험에서 대표적인 예는 Java 같은 개발 언어, 스프링 프레임워크 같은 기술 스택만을 사용하는 것이다.

직접 알고리즘을 개발/구현해야하는 상황을 만나면 긴장한다.

어떤 예외 상황을 만나게 될지 알 수 없기 때문이다.


낯선 업무라고 해도 진행하다보면 업무 루틴이 만들어지고 그 후엔 쳇바퀴 도는 삶을 사는 느낌을 받았다.

이런 갇힌 생각에서 탈출해야한다고 생각이 들던 차에 《크리에이티브 프로그래머》를 읽어볼 기회가 생겼다.

《크리에이티브 프로그래머》는 소프트웨어 엔지니어링과 관련한 7가지 창의성 측면을 다루고 있다.

  - 기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법


소프트웨어 엔지니어이자 컴퓨터 과학 교육 연구자, 전문 제빵사(!!!)로 일하고 있는 저자 '바우테르 흐루네벨트(Wouter Groeneveld)는 11년간 소프트웨어 엔지니어로 일하던 중 '과연 무엇이 좋은 소프트웨어 엔지니어를 만드는가?'하는 고민을 하게 됐고, 학계에서 연구활동을 하던 중 《크리에이티브 프로그래머》도 저술했다.


이 책은 앞에서 언급한 소프트웨어 엔지니어링과 관련한 '7가지 창의성' 측면을 다루고 있다.

  - 기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법

9개의 장(chapter) 중 창의성 7개 측면 측면이 각 1개의 장으로, 창의성에 대한 소개(1장)과 더 생각해 볼 것(9장)으로 구성되어 있다.

《크리에이티브 프로그래머》는 창의력을 발휘하여 문제 해결 능력을 높이고자 하는 모든 수준의 프로그래머를 위한 책이지다. 하지만 특정 프로그래밍 언어나 기술에 대한 사전 지식이 필요하지 않아서 개발자와 협업하는 모든 사람을 위한 책이기도 하다.

그리고 책 내용 중간중간 'EXERCISE'라는 코너가 있어서 책을 읽으며, 읽고난 후 실천해볼 주제들을 제안해준다. 이 내용도 매우 유용하다.


《크리에이티브 프로그래머》를 읽고 난 후 기억에 남는 장은 2장(기술 지식), 4장(제약과 보상), 5장(비판적 사고), 6장(호기심), 9장(추천도서)이다.


2장(기술 지식)

창의성을 발휘하려면 먼저 입력(input)을 해야 한다.

입력이 없으면 창의적인 결과물도 없다.

그 이유는 입력(기술 지식)이 있어야 그 지식을 바탕으로 생각을 비틀어보면서 창의성을 발휘할 수 있기 때문이다.
다만 쌓아놓고 읽거나, 소화하지 않는 '수집가의 오류(The Collector's Fallacy)'에 빠져서는 안된다.


4장(제약과 보상)

환경이 풍족하기만 하다면 창의성을 발휘하기 힘들다.

더 나은 것을 생각하기보다 풍족한 환경 안에서 답을 찾으려고 하기 때문이다.
한 프로젝트를 오래 진행했더라도 그건 프로젝트에 대한 경험이 쌓였을 뿐 프로젝트를 만들 능력이 있는 것은 아니다.
스스로를 제약해서 창의성을 발휘할 수 있는 환경을 만들고, 충분한 보상을 하며 선순환을 만들자.


5장(비판적 사고)

일상 생활, 업무 중에 쉽게 빠지는 다양한 편향 상황에 대한 소개와 예시가 있다.

소크라테스가 말했듯이 '무엇을 모르고 있는지' 알아야 한다.

이건 소프트웨어 공학에서 공부했던 'PDCA(Plan, Do, Check, Act)'와 일맥상통하는듯하다.

Plan: 계획하고

Do: 행동하고

Check: 부족한 부분을 확인하고

Act: 개선한다.

오른쪽 그림 출처: boardmix


6장(호기심)

이 장에선 창의성을 기르기 위해선 호기심을 가져야 한다고 설명한다.

한 문장으로 '안전지대를 벗어나자'

안전지대를 벗어나 문제상황을 해결하기 위해 호기심을 갖고 다양한 사고를 함으로써 창의성이 자랄 수 있다.

이 장을 읽으면서 생각이 난건 책 《나는 고작 한번 해봤을 뿐이다》가 떠올랐다.

고작 한 번이지만 그 한번을 통해 새로운 영역에 안전지대를 만들 수 있기 때문이다.


9장(창의성에 대한 마지막 생각)

이 장에서 기억에 남는건 '더 읽어 보기'라는 책 추천 코너였다.

그 중 읽어본 책 중 기억에 남는건 한 줄 코멘트를 적어봐야겠다.


《실용주의 사고와 학습》: 《크리에이티브 프로그래머》의 6장, 7장과 주제가 딱 맞는 책

《생각에 관한 생각 프로젝트》: 생각이 생각을 만들며 오류에 빠지는 답답한 상황을 잘 설명해준 책

《모든 것이 되는 법》: '이것도 하고 싶고 저것도 하고 싶어!' 고민이 들 때 읽었던 책. 수많은 생각이 날 때 어떻게 생각을 정리하고 그것을 현실로 만드는지 설명해준 책

《훔쳐라, 아티스트처럼》: 제목이 자극적이어서 읽었던 책. 요약하자면 '생각은 줄이고, 빠르게 실천하고, 거기에 1을 더해 나만의 작품을 만들자'



《크리에이티브 프로그래머》를 읽으며 반복되는 창의성을 일깨울 수 있는 좋은 자극제가 됐다.

작년 이맘때 쯤 잠깐 진행했던 작은 목표를 다시금 시작해봐야겠다는 생각이 든다.



"한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다."
리뷰를 위해 한빛미디어에서 책을 제공받았지만 주관적인 생각을 그대로 적었습니다.


크리에이티브 프로그래머

이번달에 접하게 된 책은 '크리에이티브 프로그래머 라는 제목의 책입니다.

제목부터 프로그래머라면 한번은 읽어보고 싶다는 생각이 들 것 같은데요.

실제로도 책을 읽고 나서도 책을 읽기전에 기대했던 것들을 많이 알게된 느낌입니다.

 

크리에이티브라는 단어의 뜻과 어떻게 하면 창의적인 프로그래머로서 성장할 수 있는지 알려주는 좋은 책입니다.

책은 창의성이 무엇이지에서 부터 이야기를 하면서 시작하고 있습니다.

우리는 일반적으로 크리에이티브한 프로그래머라고 하면 개발을 엄청 잘하고 특별한 개발자라고 생각하지만

실제로 꼭 그렇지는 않다는 내용으로 시작하고 있습니다.


주요 내용은 아래와 같습니다.

- 창의성에 관한 과학적 이해

- 창의성을 프로그래밍으로 전환하는 방법
- 창의적인 개발자가 되는 데 도움이 될 조언과 연습 문제
- 팀에서 더 효율적으로 작업할 수 있는 혁신적인 커뮤니케이션 기법
- 복잡한 문제를 다루기 위한 창의적인 문제 해결 기법


정말 다양한 이야기가 적절한 구성과 함께 어우러져 있어어 재밌는 책을 읽듯이 읽어나갈 수 있었습니다.

또 다양한 연습 문제와 기법들을 통해서 창의성을 더하기 위해 바로 실행할 수 있는 액션 아이템들이 많아서 좋았습니다.

프로그래머에게 모두 추천하고 싶은 책입니다.

 

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

 

 

개발에 있어 필요한 역량은 다양한데요. 그중 '창의성'이 가장 중요한 역량으로 꼽히지 않을까라고 생각해요. 프로그래밍 또한 창의적인 행위의 결과물이라고 볼 수 있는데, 이 창의성은 꼭 타고나는 것만이 답일까요? 사실 전 창의력이 좀 부족한가라고 스스로 그렇게 생각하고 있었는데요. 한빛미디어에서 출판된 <크리에이티브 프로그래머> 도서를 읽고 창의성도 연습을 통해 익히고 개선할 수 있다는 걸 깨달았어요.

 

<크리에이티브 프로그래머> 도서는 창의력을 발휘하여 문제 해결 능력을 높이고자 하는 모든 수준의 프로그래머들을 대상으로 쓰여 있는데요. 그래서 개발자가 아니더라도 이쪽 분야에 관심이 있거나 아니면 공부하는 중인 분들이 읽어봐도 충분히 잘 읽히는 책입니다. 창의적인 개발자가 되는데 필요한 부분의 창의성을 어떻게 향상시키는지 이 책을 통해 배울 수 있었어요.

 

창의성이 정확히 무엇인지부터 시작해서 저자가 알려주고 싶은 개발과 관련한 창의성의 여러 기법들을 참고 자료와 참고 그림 등을 통해 학습할 수 있는 게 이 책의 장점! 창의적이라는 게 뭐지?라고 물으면 제대로 대답하기 쉽지 않은데, 그게 뭔지를 알고 창의성을 어떻게 발휘하는지에 대해 아주 자세히 나와있더라고요.

 

 

각 장의 요약 부분과 중간중간 시도해 볼 수 있는 가이드를 제시해 주는 연습문제가 있어 창의성을 이렇게 연습해서 기르면 되겠구나!를 알 수 있었어요. 내가 창의적인 개발자가 될 수 있을까? 아 나는 창의력이 부족한 것 같아 이게 내 한계인가?라는 걱정들이 있었다면, 개발자로써 더 높은 생산성을 목표로 한다면 꼭 한번 읽어보면 좋은 도서인 것 같습니다.

 

 

** 본 리뷰는 한빛미디어 <나는 리뷰어다> 리뷰어 활동으로 도서만을 제공받아, 리뷰어의 주관적인 견해로 작성된 리뷰입니다. **

 

 



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

세줄요약

1. 프로그래머로서의 창의성에 대한 정의

2. 창의성을 갖추기 위한 조건: 기술지식, 커뮤니케이션, 제약조건, 비판적사고, 호기심

3. 창의성을 키우기 위한 방법: 창의적마인드셋, 창의적기법

​​

후기

프로그래머란 무엇일까에 대해서 생각하곤 합니다. 개발자?, 코더?, 엔지니어?

그렇다면 훌륭한 프로그래머란 무엇인지도 곰곰히 생각해봅니다.

훌륭한 프로그래머에 대한 정의는 사람마다 달라서 꼭 집어서 무엇이라고 말하기는 힘들 듯 합니다.

다만, 훌륭한 프로그래머가 되기 위한 전제 조건 중 하나가 바로 창의성이라고 생각합니다.

이 책은 프로그래머로서 갖추어야할 창의성에 대하여 정리한 책입니다.

프로그래머로서의 창의성은 무엇인지 정의하고, 창의성을 갖추기 위한 조건 및 방법에 대하여 서술합니다.

프로그래머  출신의 매니저로서 프로그래머를 보곤 하면 매우 다양한 사람들이 보입니다.

- ctrl+C, ctrl+V만 주구장창 하는 사람

- 깊은 지식 없이 시행착오를 겪으면서 개발하는 사람

- 단순히 기능 구현만 하는 사람

오랫동안 다양한 프로그래머를 보면서 느낀 점은...

결국 프로그래머로서 성공하는 사람은 꾸준한 공부, 리팩토링, 그리고 창의성을 가진 사람이더군요.

특히나 어려운 문제에 대한 해결을 위해서 창의력은 필수입니다.

그 창의력을 키우기 위한 책입니다.

한국 사람들은 창의력이 부족합니다. 아니, 창의력이 부족하게 성장해왔습니다.

그렇기에 현업에서 보면 창의력을 가진 프로그래머를 보기 힘듭니다.

프로그래머로서 성장을 원한다면 창의력이 필수라 생각합니다.

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

 

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

 

성장하는 개발자는 뭘까

기술은 결국 능숙해진다. 시간이 해결해줄 것 같다.

그런데 기술적인 측면 외에 개발자가 되고 더 성장하려면 여러 요소가 엄청엄청 중요하다.

 

리드를 해야한다면 리더십

팀원들과의 화합, 소통 문제

여러가지 개발 방법론, 협업 방법론 등등을 받아들이고 이해하기

새로운 기술을 배워야한다면 습득 속도 (러닝커브를 극복하는 시간)

등등 너무 많다. 하다못해 몸관리도, 말하는 방법도 어떤 일을 하든 중요한 일이지 않나

 

그 안에서도 가장 모호한 개념이 있다.

'문제 해결력'

난 이게 너무 모호하다고 생각한다. 너무 중요한 요소이고 사실 어렴풋하게 알고 있다.

알고리즘 문제를 기깔나게 풀면 문제해결력이 좋은 것 같다.

개발을 할 때 정해진 정답(예를 들면 게시판)이 아니라 다른 부분을 기깔나게 해결하면 문제해결력이 좋은 것 같다.

생각지도 못한 문제를 발견했을 때 어떻게든 해결해낸다면 문제해결력이 좋은 것 같다.

의외로 이 답은 '창의력'에 있는 것 같다.

 

창의력이 뭘까

많은 개발자 채용글에서 '창의적인', '문제해결력' 어쩌고 저쩌고 하는 글을 보게 된다.

그래서 창의적이다라는 말이 뭘까.

 

창의적이다 라는 말은 수백가지 정의를 갖고 있다고 한다.

그렇지만 저자가 생각하는 '적당한' 창의적이다는 말의 정의는 "다른 사람이 그 것을 보고 창의적이다라고 생각한다면 창의적인 것" 이다.

사회적인 것이다. 내가 아무리 나 혼자서 엄청난 것을 발견했고 발명했다고 생각할지라도 다른 사람들이 인정해야한다. 내가 아니라 주변 사람이, 조직에서, 분야에서 창의적이라고 한다면 창의적인 것이다.

그리고 상대적이라고 볼 수 있다. 우리팀에서 완전 창의적이라 생각한 무언가가 이미 다른 어딘가에서도 하고 있거나 식상한 것일 수 있는 것이다.

 

그리고 이 책에서는 7가지 챕터로 창의력을 끌어올리려면 어떻게 해야하는 지 알려준다.

창의력은 기술처럼 성장가능하다. (눈물)

 

창의적인 사람이 되기 위해 필요한 고려사항

창의적인 사람이 되려면 고려해야하는 것으로 7가지가 있다.

 

기술지식

커뮤니케이션 (협업)

제약조건

비판적 사고

호기심

창의적 마인드셋

창의적 기법

그 중에서 몇가지만 내가 느낀 점을 작성하고 서평을 마무리하겠다.

 

기술지식

입력이 없으면 창의적인 결과물은 없다.

잊지 않으려면 배운 지식을 어딘가에 기록해야한다.

그리고 그저 공부를 하고 어딘가에 쌓아놓는 것이 아니라 '검색'이 가능한 '시스템'을 구축해야한다.

이 책에서는 정원가꾸기로 비유를 한다.

정원은 나무 심기로 끝나지않고 새롭게 추가되고 가지치기도 하고 죽은 것은 없앤다.

임시적인 메모, 써놓고 덮어놓는 노트가 아니라 끊임없이 들춰보고 업데이트하는 정원이다.

 

나는 요즘에 옵시디언이라는 노트 앱을 활용하고 있다. 체계적으로 공부한 내용을 기록하는 것은 노션이든 메모장이든 가능하다.

옵시디언의 장점은 '그래프' 인 것 같고 자주 그래프뷰로 보게된다. 노트를 종종 다시 들춰보다보면 다른 연결고리가 보일 때도 있고, 수정하는 부분, 제거하는 부분이 생긴다. 꾸준한 가드닝이 아닐까

 

커뮤니케이션, 비판적 사고

협업. 창의성은 개인이 단독적으로 만들어내는 것이 아니라 아이디어를 다같이 다듬는 사회적인 과정이다. 다듬기 위해서는 타인의 피드백이 필요하다.

 

그리고 아이디어를 떠올린 이후에 아이디어를 덜어내고, 다시 생각하고, 다듬는 데에 비판적 사고가 필요하다.

 

지식을 통해 발산했다면 모든 사람들과 비판적 사고를 다 마쳐서 수렴을 해야한다. 실행하기 위해선 수렴을 해야한다.

 

후기

그 밖에도 여러 가지 너무 좋은 얘기가 많다.

 

문제를 해결하기 전에 있는 제약조건이 오히려 창의성을 촉발한다는 것이나 사람의 호기심이 창의성까지 가는 좋은 동기가 된다라는 것도 알 수 있다.

 

창의적인 마인드셋을 통해 아하 모멘트를 늘리는 방법, 창의적인 결과물을 만들기 위한 여러가지 기법들 등 실용적인 내용까지도 알차게 있다.

 

창의적인 사람이 되면 좋다는 것을 누가 모르겠나 싶다. 그런데 개발자라면 어떻게 해야 창의적인 사람이 되는 지, 내 지식은 어떻게 쌓고, 관리하고, 어떻게 꺼낼 것인지 알 수 있었다.

 

얼마전 까지는 책을 읽으면 그저 읽기에 바빴다. 휘발되고 어딘가에 기록하고 끝나는 일이 많았다. 그런데 요즘등어 책을 읽을 때는 그래서 이 책에서 어떤 것을 뽑아서 나에게 적용할 지에 대해 고민하게 된다. 책을 읽은 시간이 그냥 놀아서 얻는 재미보다 알차야한다는 생각 때문이다. 그 의미에서 이 책은 어떻게 하면 내가 공부한 내용을 유지할 수 있는지도 알려주고 여러가지 개발을 할 때 적용할만한 내용이 많기에 너무 좋은 책이라고 느꼈다.

개발하면서 가장 고민이 되는 순간들이 많이 있습니다. 나은 개발자로 발전하기 위해서 하드 스킬, 소프트 스킬 어느 부분을 보강해야 하는 항상 고민합니다.

 

이번에 소개할 크리에이티브 프로그래머 책은 소프트웨어 엔지니어뿐만 아니라 어떤 일을 해결하고자 하는 모든 사람에게 창의성에 관한 새로운 시각에 대해서 알려줍니다. 제목에서 있듯이, 소프트웨어 개발과 관련 있는 독자라면 매우 즐겁게 읽을 있는 책입니다.

 

크리에이티브 프로그래머는 7가지의 서로 다르지만, 밀접히 얽혀 있는 주제를 다룹니다. 책에서 설명하는 개념이 창의적 사고의 시각점으로 있으며, 계속해서 유용한 지침으로 있습니다.

 

1장은 창의성을 향한 길잡이 역할로 현재 우리가 알고 있는 창의성이라는 용어가 많은 의미와 혼란스러울 있는 점을 감안해서 창의성이란 단어의 기원과 의미, 창의성을 측정하는 방법을 논의합니다.

 

창의적이란 단어를 가장 설명한 글은 어떤 것을 보고 다른 사람이 창의적이라고 말한다면 그것이 창의적이라고 합니다. 창의성은 사회적 판단인데요. 프로그래밍 노력이 창의적인 노력이 창의적인 결과물로 이어졌는지 자신이 결정하는 아닌 주의 동료, 사용자가 결정하는 것입니다.

 

창의성은 사회문화적 현상 때문에 자신의 결과물이 창의적이라고 스스로 결정할 없다는 점입니다. 1장에서는 창의성 의미에 대해 더불어 창의적인 개발자로 살아야 하는 주된 이유, 창의적 프로그래머의 일곱 가지 테마, 창의적 프로그래밍 문제 해결 테스트(CPPST) 등에 대해서 알아볼 있습니다.

 

각각의 장에서부터 창의성과 관련한 핵심 주제인 기술 지식, 커뮤니케이션, 제약조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법에 대해 심도 있게 살펴봅니다. 주제만 보아도 있듯이 주제별로 서로 밀접하게 연결되어 있는데요. 중요한 맥락을 놓치지 않는다면 원하는 주제별로 자유롭게 읽어도 무방하다고 생각합니다.

 

마지막 9장은 코딩의 맥락에서 창의성에 대한 내용을 정리하고 있습니다. 프로그래머로서 일상 업무에 통합하는 도움이 만한 가지 생각들이 정리되어 있습니다. 그리고 전에 장에서 주제별로 내용에 대한 도움이 도서까지 추천하고 있습니다.

 

또한, 주제별로 생각할 기회를 제공하는 연습문제가 곳곳에 등장합니다. 어떤 문제들을 쉽게 실행할 있지만, 다른 문제들은 많이 생각하거나 휴식을 충분히 취한 문제에 도전하시길 바랍니다. 책의 많은 예제는 소프트웨어 개발에 기반한 내용이지만, 창의성에 관한 저자의 설명은 심리학, 사회학 학문의 제반 분야에서 깊이 있게 연구된 학술적 내용에 기반하는 만큼 일반적인 영역에도 적용될 있습니다.

 

 

크리에이티브 프로그래머 책을 읽다 보면 우리가 알고 있던 창의성은 잘못된 선입견을 품고 있다고 느낄 있는데요. 창의성은 타고나는 , 지식보단 지혜에 가깝다고 생각한 적이 있습니다. 그로 인해 창의성을 배우고 접하는 도전하지 못하는 분이 많을 거라고 예상합니다. 이상 선입견 없이 창의성을 제대로 바라볼 잇는 크리에이티브 프로그래머를 추천합니다.

 

새로운 것을 배우고자 하는 호기심이 듬뿍 있는 독자분, 소프트웨어 프로그래밍 혹은 IT 전반에 관해 관심이 있거나 이제 코딩을 시작하는 코린이, 개발자와 협업하는 모든 분에게 도움이 것입니다.

 

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


이 책의 부제는 ‘프로그래밍에 창의성을 더하는 7가지 사고’이다.
창의성이라는 것이 단순히 지식을 주입해서는 기르기 힘든 것이기에 어떠한 방식으로 내용이 구성되어 있을지 궁금했다.
단순히 개발적인 지식을 알려주는 책이 아니어서 더욱 더 저자의 의견에 동의할 수 있는 책이라고 생각이 드는 가운데에서도 특히 소개되는 책들의 상당 수가 이미 인상 깊게 읽은 책들이어서 신기했다.
소프트웨어 엔지니어는 반복적인 작업을 자동화로 편리하게 변경하고, 새로운 것을 아무 것도 없던 상태에서 만들고, 그것을 개선한다.
이런 과정에서 창의성은 필수적이며, 그것이 하루 아침에 쌓을 수 있는 능력은 아니다.
이 책에서는 다양한 예시, 책, 작가의 소개가 이루어진다.
그리고 그것은 모두 창의적 사고와 연결되어 있다.
예를 들어 4장을 키젠을 이야기하면서 창의성을 이끌어내는 방법을, 5장에서는 그럼에도 창의성은 목표가 아닌 수단이라고 이야기한다. 왜 이러한 제목이 붙었는지는 책을 읽으면 알 수 있다.
또한 ‘프로그래머의 뇌’, ‘실용주의 프로그래머’, ‘아티스트 웨이’, ‘그릿’ 등 흥미로운 책과 함께 창의성을 키워나갈 수 있는 현실적인 방법을 알려준다.
‘딥워크’, ‘ 쓰기의 감각’ 등에서 본 문장들 역시 등장하면서 반가움과 함께 책이 전달하고자 하는 바에 대해 더욱 확실하게 느낄 수 있었다.
책의 6장에 보면 ‘최고의 창의적인 프로그래머는 다재다능한 인재’라는 말이 등장하는데 정말 공감한다.
내가 앞으로 맡게 될 일에 대해 온전히 정확하게 예측한다는 것은 불가능하기에 다양한 것들을 할 수 있을 준비가 되어 있어야 하고, 이런 과정에 있어 창의력은 큰 힘이 된다.
물론 이에 겁을 먹고 어떠한 준비도 시작하지 못할 바에야 220쪽에 나오는 것처럼 그냥 토끼굴로 내려가면 된다.
이 책은 개발 관련 카테고리에 분류되어 있지만, 실질적으로 코드를 다루는 부분은 많지 않다.
그 대신 코드를 다루는 것 이상으로 어떻게 아이디어를 구현하는 코드를 구상할 수 있을지에 대해 알려주어서 더욱 흥미롭게 다가왔다.
다시 한번 읽으며 이 책과 함께 나의 창의성을 조금씩 늘려나가고, 더 멋진 사람이 되고 싶게 하는 책이다.
온전히 내용을 다 읽을수록 이 책의 진가를 발견할 수 있을 것이다.
***
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

 

 

책 표지부터 너무너무 산뜻해서 표지만 봐도 뭔가 재미있는 생각이 막 떠오를 것 같다.

이 책은 독일의 소프트웨어 엔지니어이자 컴퓨터 과학 교육 연구자,

전문 제빵사인 바우테르 흐루네벨트가 쓴 "크리에이티브 프로그래머'이다.

나를 홀린 이 그림은 이 책의 가이드가 되는 창의적인 프로그래머가 되기 위한 마인드 맵이다.

저자가 직접 그렸다고 하는데 빵도 맛있게 만드는 분이 그림까지 잘 그리는 다재다능한 분이시다.

저자는 창의적이 되기위한 로드맵으로

기술지식, 커뮤니케이션, 제약조건, 비판적 사고, 호기심,

창의적 마인드셋, 창의적 기법

이렇게 7가지 방법을 제시하고 있다.

1장 ~ 3장 까지는 창의성에대한 일반적인 내용이 나온다.

철학, 음악, 뇌과학 등등 다양한 분야의 예를 들어서 창의성을 키우는 방법에 대해 이야기 하는데

나는 이 부분이 잘 모르던 내용을 알게되어 굉장히 흥미로웠다.

창의성을 키우기 위해 지식을 관리하고(지식의 DB화) 지식을 행동으로 옮기는 방법에서

"잊고 싶지 않다면 무엇이든 적어놓아야 한다.'

라는 글을 보고 작은 수첩을 준비했다.

 

 

 

실행력 갑 의지 활활 나에게 약점이 있다면 그것은 바로 끈기이다.

저자는 빌게이츠와 폴 앨런의 얘를 들며 호기심도 끈기가 있어야 한다고 말한다.

에휴. 갈 길이 왜이리 긴 것인지...

4장 부터는 살짝 살짝 프로그램 코드도 보이고

프로그래머들을 위한 내용이 스물스물(?) 나오기 시작한다.

창의성이란 개인적인 역량이라고만 생각했는데

저자는 협업 속에서 집단적 창의성을 나오게 하는 다양한 방법 또한 알려준다.

이 책을 보면

내가 전에 읽었던 책에 대한 얘기도 많이 나온다.

예를 들어 '그릿', '실용주의 프로그래머', '몰입' 등등

저자가 프로그래머에게 제대로 된 창의성을 알려주기 위해

다양한 분야를 공부하고 연구하였는지 알 수 있었다.

그래서 이 책에 더더욱 믿음이 갔다.

그리고 2장 부터 8장까지 Exercise가 나온다.

이 Exercise는 나를 다시 한 번 돌아보게 하는 기회가 되기도 하고

책을 읽다가 잠시 멈춰 한 참 생각을 하게도 했다.

 

 

프로그램을 하다 뭔가 답답해지는 순간!

나는 이 책을 다시 펼치게 될 것이다.

 

그리고 내 옆에 있는 신입에게 이 책을 꼭 읽어보라고 강력추천! 하겠다.

 

 

우리 함께 할 수 있어!

크리에이티브 프로그래머.

 

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

흥미로운 제목 <크리에이티브 프로그래머>. 프로그래밍에 창의성을 더하는 7가지 사고력을 다룬 주제가 내 눈길을 사로 잡았다.

문제 해결 능력을 높일 수 있는 창의력은 어떻게 키울 수 있을까. 프로그래머를 위한 책이지만, 모든 업무 분야에서 창의성은 중요하기에 이 책을 읽어 보기로 했다.

크리에이티브 프로그래머

프로그래밍에 창의성을 더하는 7가지 사고력

 

01.jpg

 

02.jpg

창의성이란? 26쪽 요약

 

1)참신하고 독창적일 때

2)품질이 우수할 때

3)당면한 과제와 관련이 있을 때

어떤 것을 보고 다른 사람이 창의적이라고 말한다면 그것은 창의적입니다. 창의성은 사회적 판단 입니다.

 

창의적인 개발자로 살아야 하는 주된 이유 29~32쪽 요약

1)고용주가 요구하기 때문

2)동료의 의견이 중요하기 때문

3)창의성은 재미와 같다

창의적인 개발자로 살아야하는 주된 이유를 읽으며 생각에 잠겼다. 이유 3가지의 순서가 바뀌었으면 좋겠다. 고용주 요구에 부응하기 위해 창의적인 개발자가 되기보다는 나를 위해, 재미를 위해 창의성을 지녔으면. 그러다보면 동료에게 인정받게 되고, 고용주에게 인정받게 되지 않을까.

 

 

 

 

03.jpg

 

04.jpg

창의적 프로그래머 마인드맵

 

살펴보면 ‘창의적 기법, 커뮤니케이션, 기술지식, 제약조건, 창의적 마인드셋, 비판적 사고, 호기심’으로 이루어져 있다.

대부분의 창의적인 인재는 위의 요소들을 지니고 있는 것 같다.

 

 

 

창의적 프로그래머의 일곱 가지 테마

36-38쪽 요약

 

기술지식 - 자기 영역에서 일어나는 상황을 잘 파악하고 있어야 합니다.

커뮤니케이션 - 창의성은 결코 단독으로 발휘되지 않습니다. 아이디어를 다듬는 것응 사회적 과정입니다. 독창적인 면이 있는 아이디어를 훌륭한 아이디어로 다듬기 위해사는 반드시 피드백이 있어야 합니다. 그러한 과정에서 동료들응 촉매제 역할을 할 수 있습니다.

제약조건 - 문제를 해결하려면 제약 조건을 고려해야 합니다.

비판적 사고 - 최고의 아이디어가 나올 때까지 아이디어를 과감하게 덜어 내는 일인데, 이쪽이 훨씬 더 어려울 수 있습니다.

무궁무진한 아이디어를 내는 것과 그 아이디어를 비판적으로 평가하는 것 사이를 자유롭게 오갈 수 있습니나.

호기심 - 호기심은 새로운 것을 배우려는 암묵적인 동기와 ‘왜’라는 질문으로 이어집니다.

창의적인 마인드셋 - 올바른 마음 상태. 마인드셋을 유지하면 훨씬 더 창의적으로 작업할 수 있습니다.

흐름과 통찰이 서로 어떻게 작동하는지.

통찰력 점화가 어떤 효과를 가져올 수 있는지.

아하! 순간을 늘리는 방법은 무엇인지.

창의적 기법 - 창의적 문제 해결의 모든 차원과 얽혀 있습니다.

고전적인 브레인스토밍 세션과 아이디어에 도움을 줄 수 있는 새로운 기법을 비판적으로 살펴볼 것입니다.

 

 

창의적 프로그래밍 문제 해결 테스트

38-41쪽

 

 

05.jpg

창의적 프로그래밍 문제 해결 테스트 CPPSP.

 

창의적 프로그래밍 잠재력을 측정해보는 평가 도구이다. 총 56개의 문항으로 구성되어 있다.

 

 

 

 

밑줄긋기

딥 워크

칙센트미하이가 순간적으로 흐름에 빠져드는 것을 플로라고 부른다면, 칼 뉴포트는 깊고 집중 된 상태를 딥 워크 라고 부릅니다. 딥 워크는 우리가 무언가 차별화된 결과를 얻고자 할 때 매우 중요합니다. 233쪽

컴퓨터 과학 이론가이자 생산성 비평가인 뉴포트는 우리의 업무 활동을 얕은 업무(인지적 요구가 없는 물류 스타일 작업)와 깊은 업무(인지적 요구가 있고 한계에 전하는 활동)의 두 가지로 분류합니다. 깊은 업무는 가치를 창출하는 반면, 얕은 업무는 별로 중요하지 않은 결과를 만들어 냅니다. 233-234쪽

딥 워크를 시작하기 위한 가장 좋은 방법은 무엇일까요? 뉴포트는 집중력을 높이는 좋은 습관을 간단한 습관으로 바꿀 것을 권장합니다. (중략) 매일 조금씩 집중해 습관으로 만들고, 집중 상태에 머무는 시간을 점차 늘려 보세요. 235쪽

인터럽트

컴퓨터 아키텍처에서 인터럽트는 현재 프로그램이 완료될 때까지 기다리지 않고 이벤트를 처리할 수 있도록 프로세서가 실행 중인 명령어를 중단하도록 요청하는 역할을 합니다. (중략) 창의적 마인드셋도 이와 비슷하게 작동합니다. 갑자기 머릿속에서 떠오르는 아이디어나 수많은 외부 요청 때문에 현재 진행 중인 작업이 예기치 않게 중단될 때가 있습니다. (중략) 우리의 뇌가 이전에 중단된 작업을 재개하로 했을 때, 해당 작업을 중단시킨 아이디어가 영구적으로 사라지기 전에 빨리 낚아채야 한다고 말할 것입니다. 240쪽

중단에 대비하기

방해 요소를 완전히 피하는 것 외에 방해 문제에 대한 가장 간단한 해결책 하나가 이상하게도 설문조사에서 언급되지 않았는데요. 그것은 바로 메모하는 것입니다! 전속력으로 달려오는 기차가 있으면 기차 안에 어떤 내용들이 있는지 재빨리 훑어보고 적어 둔 다음, 기차는 그냥 충돌하도록 내버려 두세요. 243쪽 요약

 

바로 메모하세요. (중략) 자신을 위해 흔적을 남겨 두세요. 243쪽

 

 

 

창의적인 프로그래머가 되는 방법을 고찰한 책이라 생각된다. 창의성을 기르는 여러 가지 방법에 대해 각종 자료 등을 소개하며 저자의 생각도 덧붙였다. 번역된 책이라 그런지 내용이 매끄럽지는 않다는 생각이 든다. 아마도 깔끔한 느낌의 쉬운 글을 선호하기에 이러한 느낌이 더 강하게 다가왔는지도 모르겠다.

어쨋껀 ‘창의적인‘ 사람이 되기 위해 우리가 할 수 있는 일에 대해 생각해보는 일은 의미있다고 생각한다. 그런면에서 한빛미디어의 <크리에이티브 프로그래머>는 창의적인 사람이 되기 위해 현재로서 내가 할 수 있는 일들에 대해 생각해 볼 수 있도록 돕는다. 창의적인 사람이 되고 싶은 사람, 창의성을 키우는 방법등을 고민하고 있다면 <크리에이티브 프로그래머> 읽어 보시길 추천 드린다.

 

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

크리에이티브 프로그래머 

- 진짜 프로그래머가 될 수 있게 도와주는 창의력 길라잡이 -

 

creativeprogrammer.jpg

 

 

1. 크리에이티브 프로그래머는 어떤 책인가요?

"Creative Programmer"는 창의성에 대한 깊이 있는 이해를 제공하는 책입니다. 이 책은 프로그래머뿐만 아니라 누구나 창의성을 향상시키고자 하는 사람들에게 유용한 자료입니다. 이 책은 단순히 빠르게 읽는 것이 아니라, 천천히 소화하고 고민해야 하는 주제들을 다룹니다.

 

 

이 책은 창의성이 무엇인지, 어떻게 측정되는지, 그리고 어떻게 일상생활에 적용할 수 있는지에 대해 탐구합니다. 각 장은 독립적으로 구성되어 있지만, 순서대로 읽는 것을 추천합니다. 이 책은 현재의 과학에 대한 인용과 함께 과학자, 예술가, 작가, 게임 개발자 등의 에피소드와 예시로 가득 차 있습니다.

 

이 책은 풍부한 정보를 담고 있으며, 연구 결과를 매우 읽기 쉬운 형태로 제공합니다. 실제 데이터의 요약을 제공하면서도, 이를 실제 이야기와 연결시켜 독자가 문제를 더 활발하고 개인적인 방식으로 생각하게 합니다. 이 책의 가치는 독자가 도구와 기법을 자신의 상황에 어떻게 적용할지 생각하게 만드는 데 있습니다.

 

이 책은 기술 지식을 얻는 데 필요한 노력을 강조하며, 창의성과 혁신을 추구하는 사람람들에게 좋은 가이드가 될 것입니다. 이 책은 과학과 공학 과정에서 반드시 포함되어야 할 중요한 자료입니다.

 

 "Creative Programmer"는 창의성에 대한 근본적인 이해를 원하는 모든 사람들

 

에게 추천합니다.

 

2. 크리에이티브 프로그래머의 장단점

"Creative Programmer"는 창의성에 대한 깊이 있는 이해를 제공하는 독특한 프로그래밍 책입니다. 이 책의 장점과 단점은 아래와 같습니다.

 

장점:

1. 창의성에 초점을 맞춤: 대부분의 프로그래밍 책은 특정 언어의 문법이나 알고리즘에 초점을 맞추는 반면, "Creative Programmer"는 창의성이라는 주제를 중심으로 구성되어 있습니다 이는 프로그래밍 능력을 향상시키는 데 도움이 될 뿐만 아니라, 문제 해결 능력과 혁신적인 사고를 개발하는 데도 큰 도움이 됩니다.

 

2. 실용적인 조언과 연습: 이 책은 이론적인 내용뿐만 아니라 실제로 적용할 수 있는 조언과 연습을 제공합니다. 이는 독자가 배운 내용을 실제로 적용하고, 자신의 프로그래밍 습관을 개선하는 데 도움이 됩니다.

 

3. 다양한 도메인에 대한 통찰력: "Creative Programmer"는 소프트웨어 엔지니어링의 여러 창의적인 측면을 탐구합니다. 이는 독자가 다양한 관점에서 문제를 바라보고, 새로운 해결책을 찾는 데 도움이 됩니다.

 

 

단점:

1. 특정 프로그래밍 언어에 대한 깊이 있는 지식 부족: "Creative Programmer"는 창의성에 초점을 맞추고 있기 때문에, 특정 프로그래밍 언어에 대한 깊이 있는 지식을 제공하지 않습니다. 따라서 독자가 특정 언어를 배우려는 경우, 다른 프로그래밍 서적을 함께 참고해야 할 수 있습니다.

 

2. 내용 소화에 시간 필요: 이 책은 많은 정보와 연구 결과를 담고 있으며, 이를 천천히 소화하고 고민해야 합니다. 따라서 빠르게 읽고 이해하려는 독자에게는 부담이 될 수 있습니다.

 

3. 각 챕터 별 내용 

 

"Creative Programmer"라는 책은 프로그래밍에 대한 창의성을 극대화하는 데 도움이 될 수 있는 기법들을 제공합니다. 이 책은 다음과 같은 내용을 다룹니다.


CHAPTER 1: 창의성을 향한 여정 이 장에서는 창의성이 무엇인지에 대한 정의를 탐구하고, 그 중요성에 대해 설명합니다. 창의성의 다양한 수준을 이해하고, 창의적이 되기 위한 로드맵을 제시합니다. 또한, 이 책의 전체 구조와 각 장에서 다룰 내용에 대해 소개합니다.


CHAPTER 2: 기술 지식 이 장에서는 지식이 창의성에 어떻게 영향을 미치는지에 대해 설명합니다. 지식 수집, 내면화, 그리고 행동으로 옮기는 방법을 제시하며, 실제 워크플로 예시를 통해 이를 구체화합니다.


CHAPTER 3: 커뮤니케이션 협업과 팀워크는 창의적인 프로젝트에서 중요한 역할을 합니다. 이 장에서는 협업, 집단 지리학, 그리고 시간 관리에 대해 논의하며, 창의적인 작업을 위한 전략을 제시합니다.


CHAPTER 4: 제약 조건 제약 조건은 창의적인 사고를 촉진하는 데 도움이 됩니다. 이 장에서는 다양한 유형의 제약 조건과 그들이 어떻게 창의력을 촉진하는지에 대해 설명합니다.


CHAPTER 5: 비판적 사고 창의성과 비판적 사고는 서로 연결되어 있습니다. 이 장에서는 비판적 사고가 창의적인 프로세스에 어떻게 적용되는지를 탐구하며, 일반적인 비판적 사고 오류와 자기비판에 대해 논의합니다.


CHAPTER 6: 호기심 호기심은 창의력의 원동력입니다. 이 장에서는 호기심을 유발하고 유지하는 방법, 그리고 호기심이 어떻게 동기 부여로 이어지는지를 설명합니다.


CHAPTER 7: 창의적 마인드셋 창의적인 마음가짐은 창의성을 향상시키는 데 중요합니다. 이 장에서는 올바른 창의적 분위기를 만드는 방법, 딥 워크와 흐름, 그리고 인터럽트에 대해 논의합니다.


CHAPTER 8: 창의적 기법 창의적인 도구 상자를 채우는 방법에 대해 배웁니다. 아티스트, 작가, 프로그래머 등 다양한 직업군에 적용할 수 있는 도구와 기법을 소개합니다.


 

CHAPTER 9: 창의성에 대한 마지막 생각 마지막 장에서는 창의성에 대한 마지막 생각과 조언을 제공합니다. 누구나 창의적일 수 있다는 것을 기억하며, 진화하는 창의성에 대한 관점을 제시합니다.

 

4. 총평

"Creative Programmer"는 창의성과 프로그래밍 사이의 연결을 탐구하는 독특한 책입니다. 프로그래머를 위한 창의성에 대한 과학을 깊게 다루고 있다는 점에서 매우 흥미롭습니다. 프로그래머를 위한 책이지만, 이 책은 프로그래머뿐만 아니라 모든 창조적인 직업군에게 유익한 자료가 될 수 있습니다. 그러나 창의성에 관해서 방대한 연구 자료를 제시하고 있기 때문에 가볍게 읽어 넘기기에는 부담이 될 수도 있습니다.

모든 장의 내용이 흥미로웠지만 개인적으로 가장 마음에 와 닿았던 부분은 chapter 4의 제약 조건 이었습니다. "목마른 자가 우물 판다"는 속담이 있듯, 부족함이 있고 절실하면 새로운 방법을 찾으려 노력하기 마련인데 4장의 제약 조건에 나온 여러가지 예시들은 특히 공감이 많이 갔습니다.

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

 

 

 

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

 

아이패드나 노트북 앱이 잘 발달하면서 점점 손으로 뭔가 기록하는 것이 낯설어지는 작업 환경이 되어가고 있습니다.

 

그런 와중에 손으로 기록을 남기면서 업무와 학습의 향상을 꾀하는 사람들이 있고, 더 나아가 사람들이 인정하는 창의성을 발휘하는 스타 플레이어들도 자기 분야에서 모습을 드러내곤 합니다.

 

다양한 업무 환경에 대한 몰입과 집중, 그리고 스스로의 커리어를 더 멋지게 만들어나가고 싶다면, 한번쯤은 기술 스택에 대한 책은 덮어두고 읽어볼 좋은 책이라 생각합니다.

국적을 떠나 소프트웨어 엔지니어라면 누구나 공감하고 되새겨볼만한 내용으로 구성된 책입니다. 특히 프로그래머라는 직업이 크리에이티브와 얼마나 직결되는 것인지 각 장으로 넘어갈 수록 설득력 있게 정리된 것을 느끼게 되었습니다.

 

이 책을 지배하고 있는 창의적 프로그래머의 일곱 가지 테마, 1. 기술 지식, 2. 커뮤니케이션, 3. 제약 조건, 4. 비판적 사고, 5. 호기심, 6. 창의적 마인드셋, 7. 창의적 기법은 현업을 보다가 뭔가 벽에 부딪칠 때마다 어딘가 적어놓고 되새겨 보면 좋을 것 같습니다.

 

도서 리뷰: https://foss4g.tistory.com/1954

 

크리에이티브 프로그래머.jpg

 

 

 

[서평] 크리에이티브 프로그래머 [바우테르 흐루네벨트 저 / 차건희 역 / 한빛미디어]

 

이번에는 창의성에 대한 책을 보았다. 세상은 천재라고 불리는 이들로 인해 변화했고 발전되어 왔다. 이들은 평범한 이들이 절대 생각하지 못한 기발한 아이디어를 떠올렸고 불가능이라 말하는 일들을 현실로 만들어 세상을 바꾸었다. 그래서 창의성은 타고나는 것이라 생각할 수 있지만 이 책의 저자는 창의력 역시 키울 수 있다고 말하며 창의성과 통찰력에 대한 우리의 관점을 더 넓은 관점으로 확장시켜 주고자 창의적인 문제 해결 방법을 찾는데 돕고자 했다.

 

이 책은 총 9개의 챕터로 구성되어 있는데 1장, ‘창의성을 향한 여정’에서는 창의성이라는 단어의 기원과 의미, 창의성을 측정하는 방법 등을 논의하며 창의성을 향한 길잡이 역할을 하며, 2장, ‘기술 지식’부터 3장, ‘커뮤니케이션’, 4장, ‘제약 조건’, 5장, ‘비판적 사고’, 6장, ‘호기심’, 7장, ‘창의적 마인드셋’, 8장, ‘창의적 기법’까지는 각각 창의성과 관련된 핵심 주제를 제시하고 심도 있게 탐구하며, 마지막 9장, ‘창의성에 대한 마지막 생각’에서는 코딩의 맥락에서 창의성에 대한 마지막 정리로 앞에서 배운 내용을 일상 업무에 통합하는 게 도움이 될 만한 몇 가지 생각할 거리를 제공하며 마무리한다. 

 

1-1.jpg 1-2.jpg 1-3.jpg 1-4.jpg

 

이 책은 천재가 되는 방법이 아닌, 문제 해결을 위한 창의적인 방법과 창의성에 대한 통찰력을 적용하는 방법을 알려준다. 우선 자가 평가 테스트를 통해 자신의 현재 상태를 파악하도록 하였고, 이 책을 보는 누구나 창의적이 될 수 있도록 가이드 역할을 하는 창의적 프로그래머 마인드맵은 7가지 사고력에 대한 이해를 도우며, 각각의 사고가 어떻게 작용하며 창의적인 생각을 만드는지 설명한다. 각 장의 마지막에는 해당 내용을 요약해 놓았는데 앞의 내용을 전부 읽어 보았다면 후에는 요약 부분만 수시로 체크하면서 검토하는 것도 도움이 되는 부분이다. 여기서 강조하는 내용들은 창의적인 아이디어가 필요할 때 기발한 아이디어를 떠올리고 업무의 문제 해결을 하는 데 크게 도움이 될 것이다. 

 

개인적으로 창의적인 도구 상자 채우기, 예술가와 작가들의 도구 상자를 들여다 보는 부분이 있는데 이 부분이 가장 인상적이었고 유익하고 흥미로웠다. 이 책은 소프트웨어 개발에 기반한 내용을 다루고 있지만 소프트웨어 개발과 관련된 일을 하고 있는 엔지니어들 뿐만 아니라 창의성이란 무엇이고 과연 창의성 개발이 가능한 것인지, 창의성을 발휘하기 위해서는 무엇이 필요하고 어떤 마인드를 지녀야 하는지 궁금한 이들, 문제를 해결하기 위해 창의력이 필요한 이들에게도 참 유용할 내용을 담고 있었다. 창의적인 사고가 필요한 이들은 읽어보면 좋을 것 같다.

 

 

1-e.jpg

 

 

 

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

프로그래밍에 창의성을 더하는 7가지 사고력

0.jpg

 

이 책의 구성은 창의성 이라는 단어의 기원과 그 의미 창의성을 측정하는 방법 등을 논의합니다.

1장부터 8장까지는 각각 창의성과 관련한 핵심 주제를 제시하고 심도 있게 탐구하고 창의적 프로그래머의 일곱 가지 테마인 기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법에 대한 내용입니다. 9장은 코딩의 맥락에서 창의성에 대해 마지막 정리로 마무리 하고 책에서 배운 내용을 프로그래머로서 일상 업무를 통합한는데 도움이 될만한 몇 가지 생각할 거리를 제공합니다.

 

창의성이라는 용어의 정의와 유래

창의성을 발휘해야 하는 이유

창의적 프로그램 7가지 테마에 대한 개요

장의적 프로그래밍 문제 해결 테스트

 

CPPST 루브락 평가의 56개 문항을 보고 테스트해볼 수 있어서 좋았습니다.

 

1.jpg

 



프로그래머의 도구 상자

안나 밥코프스카의 도구 상자는 교육 응용 피드백이라는 특정한 주기를 활용해 소프트웨어 공학에서 창의적인 기법의 잠재력을 연구했습니다.

 

실용주의 프로그래머의 도구상자

프로그래머의 바이블 격인 <실용주의 프로그래머>는 매년 새로운 프로그래밍 언어를 배울 것을 권장하고 코드 카타 개념을 소개하고 있습니다.

 

에밀리 모어하우스에 도구 상자

 

2.jpg

 



이 책의 중점 내용은 창의성에 관련한 기본적인 내용과 창의성을 프로그래밍으로 전환하는 방법 등이 기재되어 있습니다.

 

 창의성의 이론에 대해서 심도에게 공부할 수 있어서 좋았고 혁신적인 커뮤니케이션 기법에 대한 로드맵과 창의적인 문제해결 기법에 대해서도 알 수 있어서 좋았습니다.

 

시간을 가지고 천천히 책을 읽으면 지식도 쌓고 실전 문제 해결에도 많은 도움이 될 것 같습니다.

 

 

 

 

 

 

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

 

 

 



최근 일을 할때마다 모든게 어렵게 느껴지고 머리 회전이 잘 안되는 느낌을 자주 받았다. 마침 한빛 미디어 "나는 리뷰어다" 책 들 중에 "그리에이티브 프로그래머" 책이 있어서 한번 읽어보게 되었다. 과연 어떻게 하면 창의성을 더할수 있는지 도움을 받고 싶었다. 

기술지식, 커뮤니케이션, 제약조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법.

이 책은 이렇게 7가지 주제를 갖고 있다. 그 중 내가 인상깊게 읽었던 부분을 써보고려고 한다.

"수집가의 오류"
우리의 기억들은 한정적이기 때문에 자주 메모를 한다. 나 또한 개발을 하면서 다양한 툴들을 이용해서 링크를 저장해 놓거나 스크랩을 해놓는다. 하지만 이런 것들을 나중에 다시 보지는 않았다. 심지어 그 메모가 무슨 의미였는지 다시 찾아보는 일도 자주 발생했다. 무조건 적는다고 다 되는것이 아니라 잘 적어야 한다. 메모에도 기술이 필요하고 노하우가 필요하다. 책에서는 몇가지 툴들을 소개해주고 있다. 하지만 내가 생각하는 메모에서 가장 중요한 점은 어떤 툴을 사용하느냐가 아니라 어떻게 자신만의 노트를 만드느냐 인것 같다. 온라인 툴을 사용하기 전에 직접 노트에 여러가지 색깔의 펜을 사용해 가면서 자신만의 메모 노트를 만들었던 것 처럼 온라인 툴을 이용하여 자신만의 노트를 만드는 노하우가 메모에서 가장 중요하다고 생각한다. 

비판적 검증
이부분은 읽으면서 정말 반성을 많이 했다. 나도 코드를 작성하면서 비슷한 행동을 많이 했었다. 검증은 해보지 않고 그저 추측만으로 혹은 당연히 되겠지라는 생각을 많이 하고 코드를 작성을 했다. 당연한것, 그리고 원래 그런것들에 대해서 의심을 하지 않았다. 추측만으로는 실력이 늘지 않을 뿐더러 기능에 대한 정확한 이해도 불가능 하다. 그래서 코드에 대한 비판적인 의심은 모든 프로그래머들이 갖추어야 할 소양이 아닐까 생각이 든다. 

내가 맨 처음에 고민을 하긴 했지만 결국 우리는 모두 창의적일 수 있다. 이 책에서도 그렇게 언급하고 있고 나 자신도 그걸 알고 있다. 단지 어느 순간 막힘이 있을 때에 자신만의 방법으로 해결 할수 있는 방법이 필요하다. 그리고 내가 책을 읽은 것처럼 책을 통해서 도움을 받을 수도있다. 창의성에 대한 고민이 있는 개발자들에게 한번쯤 읽어보라고 추천하고 싶다. 

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

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

 

이 책은 크게 아래와 같은 구성으로 되어있다.

  1. 창의성을 향한 여정
  2. 기술 지식
  3. 커뮤니케이션
  4. 제약 조건
  5. 비편적 사고
  6. 호기심
  7. 창의적 마인드셋
  8. 창의적 기법 
  9. 창의성에 대한 마지막 생각

 

IMG_1733 중간.png

 

크게 보면 이 각 챕터 들의 타이틀 만으로도 창의성을 위한 방법을 알수 있다.

내가 요즘 창의적 마인드에 관심(?)두는 것은 커뮤니케이션, 제약 조건, 비판적 사고 이다.

 

컴퓨터 프로그래머라면 나름 자신의 프로그램에 대한 자부심과 그 동안의 경력 및 노하우에 대한 자부심 등이 있을 것이다.

하지만 이러한 경험은 때로는 자신의 창의적 마인드를 갇아두는 결과를 가져오기도 하기 때문이다. 

 

IMG_1735 중간.png

 

 

또한 의사결정 구조에서 창의적인 생각과 마인드가 누군가의 결정으로 무시되기도 한다. 

그렇게 되면 더 이상 창의성을 발휘하기 어려운 환경에 처하기도 하기 때문이다.

 

이 책은 단순히 크레에이티브 프로그래머가 되기 위한 사람들을 넘어 창의성을 필요로 하고 창의적인 의사 결정을 해야하는 많은 사람들이 읽어 봤으면 한다.

때로 우리는 창의성이 필요하다고 하면서 자신의 틀에 갇혀 창의성을 알아보지 못하는 실수를 범하기도 하기 때문이다.

 

IMG_1740 중간.png

 

 

소프트웨어 개발에 있어 창의적인 사고가 필요하다고 이야기 합니다. 너무 당연한 말이지만, 솔직히 소프트웨어 개발 뿐만 아니라 인간 사회를 살면서 가장 필요한 역량이 창의성이 아닐까 싶어요. 프로그래밍은 작곡이나 비즈니스 창업, 또는 마케팅 캠페인 기획가 마찬가지로 창의적인 행위로 이야기가 되는데, 창의력을 트레이닝할 수 있다고 믿는 분들께 쓰여진 책인 <크리에이티브 프로그래머> 입니다.

 

 

소프트웨어 엔지니어링과 관련된 창의성의 7가지 측면인 기술 지식과 커뮤니케이션, 제약 조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법에 대하여 책은 차례대로 이야기를 해주고 있습니다. 타이틀은 프로그래머라고 이야기하다보니 프로그래밍에 국한되었다고 생각이 들기도 하지만, 막상 책을 보면 창의성 자체에 대해 이야기하는 경우가 많아 보다 범용적으로 책을 사용해도 좋겠단 생각이 듭니다.

 

 

책은 단순히 창의성이 매우 좋다, 혹은 창의력을 활용하여 무엇을 할 수 있다 정도로 끝나지 않습니다. 앞서 이야기한 창의성의 7가지 측면을 다양한 케이스들과 연결시켜 어떻게 문제 해결하였는지에 대하여 상세하게 적혀 있습니다. 제약 조건 등의 파트에서는 게임 보이의 소프트웨어적 한계와 이를 돌파한 게임들의 케이스가 무엇인지, 그리고 이를 어떻게 구현해나갔는지에 대하여 흥미롭게 적혀있었습니다.

 

 

그렇다고 긍정적인 예시들만 있진 않습니다. 예를 들어 GTA 리워크의 케이스는 왜 실패하였는지, 어떤 과정을 거쳐 더욱 성공적인 창의적 산출물을 만들 수 있는지에 대하여 적혀 있습니다. 이렇게 다양한 케이스들을 접해보면서 더욱 크리에이티브하게 발전해나가는 프로그래머로서의 나 자신을 볼 수 있을 것입니다.

 

 

프로그래밍 분야에서 단순히 정해진 결과만 나오도록 하는 것에 의문을 가지시거나 더욱 다양한 케이스를 만들고 싶으신 분들, 혹은 능동적인 문제 해결 전략을 세우고 싶으신 분들께 적극 추천드리는 책입니다.

이 책은 소프트엔지니어이자 컴퓨터 과학 교육 연구자, 전문 제빵사인 바우테르 흐루네벨트가 펴낸 책입니다.

사람들에게 영감을 주고 가르치는 일에 열정을 쏟으며 11년간 엔터프라이즈 소프트웨어 엔지니어로 일했습니다.

많은 소프트웨어 프로젝트가 실패하는 걸 목격하면서 그는 이런 질문을 하게 된다. 과연 무엇이 좋은 스포트웨어 엔지니어를 만드는가? 결국 이 질문은 2018년 회사를 그만두고 엔지니어링 분야에서 비 기술적 기술에 대한 연구를 수행하는 계기가 되게 됩니다.

책의 구성

창의성(creativeity) 이라는 용어가 다소 혼란스러울 수 있습니다. 따라서 창의성이라는 단어의 기원과 그 의미, 창의성을 측정하는 방법 등을 논의하는 1장은 창의성을 향한 길잡이 역활을 합니다.

2장부터 8장까지는 각각 창의성과 관련한 핵심 주제를 제시하고 심도 있게 탐구합니다.

9장은 코딩의 맥락에서 창의성에 대한 마지막 정리로 마무리하며, 이 책에서 배운 내용을 프로그래머로써 일상 업무에 통합하는데 도움이 될 만한 몇가지 생각할 거리를 제공합니다.

2장부터 8장까지는 읽기를 도중에 멈추고 생각할 기회를 제공하는 연습문제 (EXECISE) 가 곳곳에 등장합니다.

변화를 촉발할 수 있는 방식으로 연습 문제를 설계하고자 최선을 다했다고 하니 꼭 풀어보시기 바랍니다.

창의성이란 정확히 무엇일까?

어떤 것을 보고 다른 사람이 창의적이라고 말한다면 그것은 창의적입니다.

참 쉽죠? 창의성은 사회적 판단 (social verdict) 입니다.

여러분의 프로그래밍 노력이 창의적인 결과물로 이어졌는지는 여러분 자신이 아니라 여러분의 동료들이 결정합니다.

창의성은 사회문화적 현상이기때문입니다.

창의적인 개발자로 살아야 하는 주된 이유

첫째. 간단히 말해서 고용주가 요구하기때문입니다.

창의력이 요구되는 이유는 바로 문제 해결 때문입니다. 기존의 방법이 실패할 때 창의력을 발휘하는 것이 해결책이 될 수 있습니다.

예를 들어 웹 애플리케이션이 초당 수천건의 요청을 처리하는 데 어려움을 겪고 있다면 메시지큐, 로드 밸런싱, 캐싱, 코루틴 등을 검토해 보는게 좋습니다.

팀원 중 누구도 이런 방법을 제시하지 않는다면 계속 제자리걸음을 할 가능성이 높습니다.

창의적인 프로그래머는 이런한 틀을 깨뜨립니다.

문제 해결만으로 충분하지 않을 때 창의적인 감각에 의존해 문제를 발견해야 할 때도 있습니다.

셋째. 창의성을 발위해야 하는 이유는 창의성은 재미와 같기 때문입니다.

창의적인 프로그래머는 자기 일을 깊게 즐깁니다. 그들은 깊이 파고들고 안전지대를 벗어나고 특이한 아이디어를 연결하고 다른 사람들과 다양한 접근 방식을 논의하고 흐름에 동참하는 것을 좋아합니다.

요컨대 창의적인 프로그래머는 창의적 충동을 받아들입니다. 그들은 움베르트 에코가 말한 호모 파베르가 됩니다.

창의적 프로그래머의 일곱 가지 테마

  1. 기술 지식

  2. 커뮤니케이션

  3. 제약 조건

  4. 비판적 사고

  5. 호기심

  6. 창의적 마인드셋

  7. 창의적 기법


이 책은 창의적인 프로그래머가 되기 위한 여러가지 방법들을 알려주고 있습니다.

이제는 프로그래머에게 기술적인 능력뿐만이 아니라 창의성까지도 요구하는 시대가 되었습니다.

시대가 요구하는 능력에 부합하기 위해서는 이제 프로그래머들도 창의성을 갖추어야 할 것 같습니다.

이 책은 다양한 실제 사례를 통해 무엇을 해야할지 결정하는데 도움을 줍니다.그리고 어떻게 해야하는지 이야기하며 자칫 잘못된 길로 빠지지 않도록 하죠.단순히 창의적인 코드 작성 방법을 다룬 책이 아닙니다.그 창의적인 방법이 어디서 왔을까요? 나를 둘러싼 사람, 환경의 영향을 무시할 수 없겠죠.

창의적인 개발자가 되기 위해

어떤 사람과 함께 해야할지, 어떤 사람이 되어야 할지,

어떤 환경에 있어야 할지, 그 환경을 어떻게 만들 수 있을지

이런 것들을 다뤘습니다.

이 책에 흥미를 느낀다면 서점에서 찾아 29~31 페이지를 읽어보세요.고개가 끄덕여지면 구매해서 읽어보세요.창의적이고 싶지만 무엇을 어떻게 시작해야 할지 모르는 사람들에게 더욱 추천합니다.

코드만 잘 짜면 되는 거지 개발자에게 크리에이티브가 필요할까? 일반작으로 의문을 가질만한 화두이긴 하지만, 실제로 프로젝트에 참가해서 일을 하다 보면 이게 필요하긴 하다는 것을 알게 된다.

연차의 높고 낮음도 사고의 발상, 분석, 해결의 과정에서 다른 각도에서 사물을 보고 접근해 볼 수 있는 사고력이 있는지 없는지는 많은 부분에서 빛을 발하기도 한다. 이건 초보때보다 연차가 늘어날수록 직급이 높아질수록 필요한 스킬 아닌 스킬이라 생각되는데 일정 부분 감각적인 부분도 필요하다 생각된다.

천재성을 키우기 위해 필요한 것에는 무엇이 있을까. 무척 흥미로운 내용으로 이루어진 책이지만 쉽게 읽히지는 않고 있다... 개인적으로 무척 관심을 가지고 있는 젠텔카스텔에 대한 내용도 언급되고 있고 하나의 방법이 아닌 다양한 방법으로 문제 해결을 위해 다양한 지식과 경험을 흡수해야 한다는 것을 알려주고 있다.

정보를 흡수만 하는 것이 아니라 내면화하고 행동으로 옮겨야 하며, 커뮤니케이션 속에서 발생하는 시너지를 중요하게 생각해야 하고 환경적, 물질적으로나 관습적으로 이루어지는 제약등에 대응하는 과정에 대한 인식. 그리고 창의정인 프로세스를 위해 필요한 정답을 찾아가는 비판적 사고방식과 각 문제에 대해 파해칠 수 있는 지적 호기심의 필요성에 대해 언급하고 있다.

문제를 해결하기 위해선 창의적인 발상이 필요하다. 프로그램은 결국, 극단적인 예이긴 하지만 1+1=2라는 결과를 도출해 내는 것을 뜻한다. 정해진 답을 도출해 내는데 창의성이 어째서 필요할까. 가장 먼저 프로그램에 대한 기술적 지식이 필요하며 결과를 도출하기까지의 과정(회사가 원하는 규칙, 제약사항 등에 대한 논의)을 거쳐 효과적인 프로그램을 위한 비판적 사고와 문제 해결을 위해 호기심을 가지고 접근하는 자세가 필요하다.

책 제목만 보자면 프로그래머를 대상으로 한 책이라 생각되기도 하지만, 크리에이티브한 작업을 하는 모든 것에 적용 가능한 내용이 아닐까 생각된다.


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


"아는 만큼 보인다"라는 말은 나에겐 아직까지도 진리이다.

 

이 말은 근무하고 있는 분야에 대한 자신의 기술 지식이 일정 수준을 넘어서는 순간, 내가 보고 있고 내게 보이는 것이

그 이전과는 다르게 된다는 것을 의미한다고 생각한다. 예전에 근무했던 직종에서도 경험치가 일정 수준을 넘게 되니

우연히 본 타일의 잎사귀 문양에서 아이디어를 얻어 제품 디자인에 적용했던 적이 있다. 물론 디자이너와 상의했고

디자이너가 디자인을 완성했다. 이것을 경험을 통해 얻게 된 창의성이라고 말하고 싶다.

 

이 책 "크리에이티브 프로그래머"는 창의성을 가지게 되는 과정과 의미에 대해 인지 심리학의 관점에서 설명한다.

이 책의 모든 챕터를 쉽게 읽을 수는 없었다. 하지만 현재의 나에게 적용할 수 있는 부분들을 찾을 수 있었고, 그런 

부분들은 굉장히 가깝게 다가온다.

 

"Chapter 2 기술지식"을 예제로 이 책의 특징적인 구성점을 말하자면,

1) 챕터 소제목들의 높은 가독성(버전 관리 시스템처럼) - (예) 2.1 입력이 없으면 창의적인 결과물도 없다

2) 챕터 소제목들로 과정을 설명 - (예) 2.2 지식 수집하기, 2.3 지식 내명화, 2.4 지식을 행동으로 옮기기 등등

3) 강조하는 텍스트는 두꺼운 폰트로 표시 - "잊고 싶지 않다면 무엇이든 적어놓아야 한다는 것입니다."

4) 사진, 도표, 저자가 직접 그린 삽화, 기록물들을 포함하는 높은 퀄리티의 그림들

 

그리고 저자가 정의한 창의성의 7가지 영역- 기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고, 호기심,

창의적 마인드셋, 창의적 기법 -은 창의성을 향한 로드맵의 필수 단계를 잘 나타내는 챕터 제목들과

독자들로 하여금 더 읽어보도록 관련 도서 목록까지 제시하고 있다.

 

저자는 마지막 글 "창의적이지 않아야 할 때"에서, 완벽한 창의성을 추구하는 것이 가져올 수 있는 문제점에 대하여

언급하고 있다, 창의성은 목적이 아니라 수단이라는 것을 인식하고 스스로에게 지나치게 창의성을 요구하지 않도록

주의할 것을 말하고 있다. 창의적 완벽성을 추구하다가 겪게 될 수도 있을 '번아웃과 우울증', '작은 성취의 경시', 

'고객의 요구를 자칫 소홀하게 여기게 되는 것'을 조심하라고 저자는 말한다. 자칫 샛길로 빠지는 것을 경계하라는 

고언에서는 다시 한번 내 자신의 행태를 곱씹어보게 되었다.

 

읽어주셔서 감사합니다.

 

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

프로그래머에게 필요한 역량은 아주 다양하게 있을텐데요, 저는 그 중에서 많이 들었던 내용이 '커뮤니케이션', '창의성', '비판적 사고', '습득력', '꼼꼼함' ... 등이 있습니다. ​ 이렇게 프로그래머에게는 다양한 역량이 필요하지만, 이 중에서 저는 '창의성'에 대해 이야기하자면, ​ 앞으로는 생각, 아이디어, 창의성으로 돈 벌 수 있는 시대가 온다고 하잖아요. 저도 이에 매우 공감하는데요, 특히 프로그래머에게 창의성은 더더욱 중요한 영역이지 않을까 싶습니다. ​ 참고로 비전공자인 저도 나만의 어플, 웹사이트를 만들고 싶다 ! 라는 생각에서 도전한 것도 있고요. ​ 그래서 !!! 프로그래머의 창의성에 대해 다룬 이 책이 제 눈을 사로잡아 픽했습니다. ​ ​ 해당 도서에서는 창의적 프로그래밍 잠재력을 측정할 수 있는 간단한 검사를 소개하고 있습니다. ​ 이를 직접 해보고 싶은 분들을 위해서도 테스트 사이트를 소개해드리겠습니다 ! ​ https://brainbaking.com/cppst/ 위 사이트를 들어가면 본인의 창의적 프로그래밍 잠재력을 간단히 측정할 수 있는 CPPST 진행하실 수 있습니다 ! ​ 다시 도서로 넘어가서 작가님에 대해 간략히 소개하겠습니다. ​ 바우테르 흐루네벨트(Wouter Groeneveld) 소프트웨어 엔지니어이자 컴퓨터 과학 교육 연구자, 전문 제빵사 입니다. (마지막으로 제빵사이신게 재밌네요 ㅎㅎ) ​ 많은 소프트웨어 프로젝트가 실패하는 것을 목격하면서 과연 무엇이 좋은 소프트웨어 엔지니어를 만드는지, 에 대해 궁금했다고 해요. ​ 그래서 회사를 그만두고 다시 학계에 전념해서 다양한 연구를 수행하셨다고 합니다. ​ ​ 작가님의 아주 오랜 고심 끝에 해당 책을 출판하셨고, 전반적인 글 흐름 자체도 어떻게 하면 창의성을 활용해 보다 더 효과적으로 문제를 해결할 수 있을지, 더 높은 생산성과 더 좋은 소프트웨어를 개발하기 위한 실용적인 방법에는 어떤게 있을지, 에 대한 내용입니다. ​ 이 책에서는 여러 기술이나 능력이 그렇듯, 창의성도 연습을 통해 익히고 개선할 수 있다고 합니다. 다른 분야에서 창의성과 관련해 발견한 통찰력을 소프트웨어 개발에도 적용할 수 있으며, 복잡한 문제를 다루기 위한 창의적인 문제 해결 기법에 대해서도 다양하게 소개합니다. '인터럽트'에 대해서도 다룹니다. 생산성 뿐만 아니라, 창의성에도 해를 끼칠 위험이 높기 때문에 이에 대한 해결책도 여러 개 제시합니다. 저처럼 창의력을 기르고 싶은 분들에게 추천하는 도서입니다. 재밌게 술술 읽힙니다. 한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다.

XL.jpg

알고리즘 코딩 테스트 연습을 할 때, 다른 사람의 코드를 보고 어떻게 이렇게 짰을까 하는 생각이 가끔 드는 코드를 종종 보았습니다. 하지만 코드를 잘 짜는 것과 창의적인 코드를 짜는 것은 매우 다릅니다. 그렇다면 이런 창의적인 코드는 어떻게 나오는 걸까요?

 

처음 이 책을 봤을 때 책 자체가 무슨 말을 하고 싶은지 잘 몰랐습니다. 프로그래머가 창의성을 발휘하기 위해 무엇을 해야 할지를 알아가는 방법이 굳이 필요한가? 싶었고, 내용 자체도 약간 두루뭉술하게 나열되어 이해하기 힘든 개념서 같은 책인 줄 알았습니다.

 

하지만 이 책은 과거 유명인이나 많은 학자들이 경험한 하나의 사건들이나 프로그래밍 혹은 게임을 하면서 느꼈던 경험, 심지어는 저자가 직접 경험한 일상적인 일들을 통해 일어날 수 있는 다양한 일들을 실질적인 이론들을 통하여 설명하면서 이를 시각적으로, 논리적으로 이해할 수 있도록 도와주고 있습니다.

 

또한 창의력이란 복합적인 요소가 합해진 하나의 창조물이므로 이러한 창의력을 7가지의 요소를 통해 강화할 수 있다고 설명하고 있으며, 각각의 요소들을 통해 창의성을 발휘할 방법에 대해 조금씩 알아갈 수 있도록 돕고 있습니다. 또한 작은 장마다 중간에 exercise라는 항목으로 직접 자기 생각을 정리할 수 있는 시간을 제공하고 있습니다.

 

각각의 장에서도 재미있는 예를 들면서 이러한 내용을 확인할 수 있는데, 4장 제약 조건에서는 게임보이의 소프트웨어적 한계와 그 한계를 돌파한 게임들을 예로 들며 자신에게 존재하는 제약이 실제로는 창의력을 발휘하는 데 유리하게 작동될 수 있으며 그렇기 때문에 아이디어에 대한 파악을 제대로 하기 전에 불가능하다고 생각하는 행동은 그릇된 행동이라는 것을 지적합니다.

 

또한 5장 창의적인 비판적 사고에서는 GTA 데피니티브 에디션이라는 리워크 실패작을 예로 들며, 창의적인 사고를 통해 아이디어를 창조하고, 비판적인 사고를 통해 해당 아이디어를 점검하는 상호보완적인 관계라는 것을 서술합니다. 이처럼 다양한 사례를 통한 이론 습득을 통해 자연스럽게 생각을 바꿔 나가는 자신을 볼 수 있게 될 것입니다.

 

이 책은 프로그래머를 위한 관점 개척 의론서라고도 할 수 있겠습니다. 창의적인 영감은 다양한 상황에서 무언가를 다르게 생각해 보거나 이를 발전시킨 것이라고 할 수 있는 것처럼. 선천적인 것이 아닌 다양한 상황에 의해 촉발되는 것으로 생각할 수 있었습니다. 여러 가지 분야를 접하면서 자신만의 생각을 정리한 코드를 찾아가고 싶은 분들, 하나의 아이디어에 대해 다양한 방식으로 접근하고 싶지만, 방법을 모르겠는 분들에게 추천해 드립니다.

 

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

창의성이 뭘까?

 

 

20230919_181338.jpg

 

크리에이티브 프로그래머는 프로그래밍에 창을성을 더하는 7가지 사로력이라는 내용을 가지고 있습니다.

 

창의성이 무엇일까라는 질문부터 시작해서 창의성을 가지기 위한 내용들을 설명하는데요.

 

저자는 어떤 것을 보고 다른 사람이 창의적이라고 말한다면 그것은 창의적이라고 합니다.

 

한마디로 창의성은 사회적 판단이라고 하는데요. 창의성은 사회문화적 현상이기 때문이라고 하네요.

 

 

 

 

 

 

 

그렇다면 왜 창의성일까?

 

출처 입력

 

창의적면 좋다고들 다들 얘기하지요.

 

어려서부터 그런 얘기를 많이 들었을거에요.

 

하지만 왜 창의적이어야할까요?

 

가장 기본적으로 고용주가 요구해서라고 합니다.

 

프로그래밍에는 창의력이 요구되는 문제 해결능력이 많다고 해요.

 

둘째는 동료의 의견이 중요하기 때문입니다.

 

창의성은 사회적 구성요소이므로 혼자서는 의미가 없습니다. 상호 존중에서 비롯되는 심리적 안정감은 모든 사람을 더 편안하게 만들고 팀의 결속력을 높인다고 합니다. 이는 배우고 성장할 가능성을 열어주고, 배우고 성장하는데 도움을 준다고 하네요.

 

그리고 세번째 이유는 창의성은 재미와 같기 때문입니다.

 

 

 

이 책은 천재가 되는 방법을 알려주지는 않지만, 문제 해결과정에 관해 다르부니다.

 

다양한 창의적 방법과 창의성에 대한 통찰력을 적용함으로써 더 나은 프로그래머가 될 수 있기를 바란다고 하네요.

 

 

 

 

 

이 책에서는 일곱가지 테마를 얘기합니다.

 

기술지식

 

커뮤니케이션

 

제약 조건

 

비판적 사고

 

호기심

 

창의적 마인드셋

 

창의적 기법

 

위 7가지 주제는 창의성을 측정하는 만능 해결책은 아니지만

 

프로그래머로서 7가지 주제에 관한 참여 수준을 파악할 수 있는 현재로서는 가장 근접한 방법이라고 합니다.

 

 

 

창의적 프로그래밍 문제 해결 능력 테스트를 위해 아래 온라인 설문조사를 해보시는 걸 추천하기도 합니다.

 

https://brainbaking.com/cppst/

 

 

 

 

위 일곱가지 테마를 자세히 들여다보고

 

크리에이티브한 프로그래머가 될 수 있도록

 

도와주는 책입니다.

 

 

꼭 프로그래머가 아니더라도

 

크리에이티브한 사고방식을 찾고자 하시는 분들도 보시면 좋지 않을까 생각됩니다.

 

 



1.JPG

 

크리에이티브 프로그래머

프로그래밍에 창의성을 더하는 7가지 사고력에 대해

읽어볼 수 있는 책이 될 것 같은데요

IT계열쪽에 근무하고 계시거나 전공하고 있는 분들

또 시작해보려고 하는 분들에게 많은 도움이 되지 않을까 싶어서

바로 보여드리도록할께요

 

2.JPG

3.JPG

 

책의 구성을 먼저 살펴보시면 Chapter9로 나뉘어져있기때문에

1개의 Chapter씩 쭉쭉 일어보시면 될 것 같구요

미리 눈으로 차례부분을 쓱 읽어보니 대부분 창의성에 대한 이야기인 것 처럼 보였답니다

창의력, 창의성 이게 소프트웨어 개발에 필요한 부분이라고하니

저처럼 나는 창의력? 창의성이 없는 것 같은데? 라는 분들에게도

이 책은 도움을 받을 수 있을 것 같아요

 

4.JPG

 

프로그래밍은 작곡, 비즈니스 창업 또는

우리가 흔히 많이 접하는 마케팅 캠페인 기획과 마찬가지로

창의적인 행위라고 볼 수 있어요

여러 기술, 능력, 예술 등의 능력이 그러하듯

창의성은 연습을 통해 익히고 개선할 수 있다고 하니

미리 포기하지 않아도 될 것 같더라구요

 

5.JPG

 

타고나지 않아도 그리고 특별한 재능이 없어도 괜찮아요

고정된 사고방식과 성장사고방식이 있다고할때

창의성에 대한 유연한 사고방식만 있어도

누구나 훈련을 통해 창의력을 키울 수 있다고하니

일단 이 책을 통해 7가지의 사고력을 더해보는것도 도움이 되겠죠?

 

6.JPG

 

비판적사고 부분에서도 여러가지 부분을 볼 수 있었는데

그 중에 저의 눈길을 끈건 바로 이부분!

타인의 비판적 사고가 중요한 이유

모든사람에게 칭찬만 듣기보다는 냉철하고 현실을 직시할 수 있는 충고 이런걸

해주는 사람이 저는 더 좋다고 생각하곤해요

너무 잘한다고 하는 사람들만 주위에 있으면 성장을 하는데 한계도 있기도하고

도태될 수 있다고 느끼기도 했다보니 피드백을 해줄떄

적당한 비판적 사고는 꼭 필요하다고 생각되더라구요

물론 지나친 비판적사고는 노노~

 

7.JPG

 

호기심 챕터를 살펴보면 호기심은 일단 창의력의 원동력이라고 할 수 있으며

다중 잠재력을 가질 수 있는 것 같은데요

진짜 창의적인 사람들은 호기심이 한분야에 국한되지 않는다는 점

 

8.JPG

 

창의성에 대한 마지막 생각

누구나 창의적일 수 있다는 걸 기억하세요!

이 부분을 살펴봤을때 찰스 다윈은 심한 불안증세로 고통받았으며

하루 몇시간씩 침대에 누워있어야 했지만 여전히 세상에 큰 공헌을 했고

인지 심리학자인 미하이 칙센트미하이와 인터뷰한 수많은 노벨상 수상자는

창의적인 과정에 대한 질문에 겸손한 태도를 보였다고해요

학생, 프로그래머에게 창의력은 배울 수 있는 기술이며

고정된 것이 아니라는 것을 보여주다보면

그들의 창의력이 꽃을 피울 수 있다고 합니다

그렇기때문에 유연한 관점이 필요하다고 볼 수 있더라구요

 

9.JPG

 

소프트웨어 개발에 반짝이는 창의성을 더하다

크리에이티브 프로그래머

소프트웨어 엔지니어링과 관련한 창의성의 7가지 측면인

기술 지식, 커뮤니케이션, 제약 조건, 비판적 사고,

호기심, 창의적 마인드셋, 창의적 기법과

다채로운 연습문제를 통해 각 챕터별 핵심을 짚어주면서

배운 내용을 명확히 이해할 수 있게 도와주기 때문에

초보자분들도 한번 보시면 도움을 많이 받을 수 있을 것 같아요

 
























 

 

 

 

 

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

 

 

 

개발자라는 각각의 인간에 대해서 고민을 하고 팀 작업을 할 때 서로의 문제점을 발견하고 해결방법을 찾아가는데 올바른 생각을 할 수 있도록 돕는 책 입니다. 이 책을 읽고나면 이전보다 개발자를 대하는 스킬의 티어가 한, 두단계 높아져 있는 자신을 발견하실 수 있습니다.

 
>> 본 리뷰는 IT 개발자가, 한빛미디어 책을 제공받아 작성한 서평 입니다.

스티브잡스는 이런 말을 했다고 한다

“창조라는 것은 그냥 여러 가지 요소를 하나로 연결하는 것입니다. 창조적인 사람에게 어떻게 그렇게 창의적으로 일할 수 있느냐고 물으면 대답을 하지 못할 것입니다. 왜냐하면 그들은 실제로 무엇을 한 것이 아니라 단지 뭔가를 본 것이기 때문입니다. 창의력은 그들이 경험했던 것을 새로운 것으로 연결할 수 있을 때 생겨나는 것입니다. 그러한 경험은 그들이 다른 사람들보다 더 많은 경험을 하고, 그들의 경험에 대해서 더 많이 생각하기 때문에 가능한 것입니다.

그러나 안타까운 사실은 능력이 부족하다는 것입니다. 컴퓨터 업계에서 일하는 대부분 사람들은 다양한 경험을 가지지 못했습니다. 그래서 연결할 점들이 부족하므로 문제에 대한 폭넓은 관점을 갖지 못하고 일차원적인 해결책만을 내놓을 뿐입니다. 인간의 경험에 대해 폭넓게 이해해야 훌륭한 디자인이 나옵니다.” – 와이어 드지 인터뷰, 1996년

 

 

창의적이다라는 말에 정의는 어렵다고 한다. 창의성이란 "새로운 생각이나 개념을 발견하거나 기존에 있던 생각이나 개념들을 조합하여 새로이 생각해내는 특성이다. -위키백과 중 일부 - "  그러면서도 프로그래머들에게는 어떤 도움이 될까? 라는 질문에 대한 해답이 될 책 같다

 

 

.

 

 

해당 저자는 창의성에대해 마인드맵을 만들었다.

 

1. 기술지식

2. 창의적 기법

3. 커뮤니케이션

4. 제약 조건

5. 창의적 마인드셋

6. 비판적 사고

7. 호기심

 

위 7개로 크게 나누었고, 책에서는 7개의 챕터로 각 챕터에 대한 소개를 해주고 있다.

 

우선 왜 창의적이여야하나?에 대한 설명을 해주고 있었다.

 

 

 

그러면서 저자는 창의력이 필요한 이유는 '문제 해결'에 도움이 된다고 한다. 개인적으로 공감하는 부분이 다양한 사람들이 있고, 다양한 생각이 있고, 다양한 문제에 대해 접근할 때 각자 다른 문제 해결 방법들을 제시한다. A가 답일 수 있고, B가 답이 될 수도 있다. 그런 여러 답들 중에 정답이 한 개는 아니겠지만, 이런 정답에 도움이 되는 게 창의력이 아닐까 싶기도 한다.

 

 

이 책은 어떤 프로그래머의 어떤 특정언어에 특히 도움이 된다라는 것은 없지만, 창의력이 이런 식으로 도움이 될 수도 있겠다 싶기도 한다.

 

 

그러면서도, 다양한 게임 예시를 들면서 창의력에 대해 설명해주고 있다.

게임 장르 중 '메트로베니아'라는 장르와 핀볼 게임 장르를 합친 게임이다. 그러면서 그 외 게임들을 예시로 들면서 알려주고 있는데 꽤나 흥미롭다.

 

 

이외에도 커뮤니케이션, 비판적 사고 등을 창의력과 결합하여 설명해 주는 부분이 흥미로웠다.

 

커뮤니케이션에서도 나아가 팀결합에 대해 이야기해 주는데 사실상 프로그래머는 1인 개발이 아니라면 팀 단위로 진행을 하게 되는데 팀의 시너지라는 것도 결코 무시 못할 퍼포먼스 에너지가 아닐까 싶다.

 

 

 

이 책은 개인적으로도 두고두고 소장하여 보기 좋은 책 같다.

 

 

 

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

 

 

 

 

 

-스티브 말 출처 : https://blog.newswire.co.kr/?p=4982 

 

스티브잡스가 말한 창의력에 관한 명언 10가지 - 홍보의 모든 것

회사의 제품 및 서비스의 차별적 경쟁력을 찾아 홍보 마케팅 전략을 수립하는 홍보 담당자는 새로운 아이디어를 낼 수 있는 창의력이 필요합니다. 창의성의 아이콘 스티브잡스가 남긴 특별한

blog.newswire.co.kr


프로그래밍 책인데, 프로그래밍을 알려주는 책이 아니다.

프로그래밍을 더 잘 할 수 있도록 도움을 주는 책이다.

코딩을 할 때 논리적 사고를 많이 요한다.

그래서 프로그래머들은 평상시에도 논리적 사고를 많이 활용하는 것 같다.

논리적 사고를 잘 하는 프로그래머들에게 필요한 것은 무엇일까?

이 책에서 말하는 것은 창의력, 창의적 사고 이다.

창의성이라는 단어를 접할 때

책의 첫 페이지, 옮긴이의 말의 말 첫 시작이 ‘창의성’ 이라는 단어로 시작한다.

이 책의 목적을 이야기 해주고 있다.

책의 독자층도 소프트웨어 개발과 관련 있는 독자, 혹은 개발자와 협업하는 사람들을 위한 책이라고 소개하고 있다.

총 8장 중 첫번째 장은 창의력이 무엇인지에 대한 일반적인 정의들을 소개하고 있고,

2장부터는 8장까지는 창의성을 발현하기 위한 단계 7가지를 차례대로 설명하고 있다.

기술지식-커뮤니케이션-제약조건-비판적 사고- 호기심-창의적 마인드셋

이 단계는 책의 표지이기도 하고, 35페이지 그림 1-3으로 소개가 되어 있기도 하다.

마인드맵과 그림을 적절히 활용한 재미있는 단계 설명이다.

시작할 때 가장 중요한 것은 input

2장의 ‘기술지식‘ 파트는 지식 수집의 중요성에 대해 이야기 하고 있다.

흔히 암기식 공부 방법이 잘못되었다고 생각하는 사람이 많은데

공부할 방향이나 방법을 잘 모르면 암기만큼 효율적인 것이 없다는 내 생각과

완전 일치하기 때문에 매우 공감하면서 읽은 부분이다.

데이터-정보-지식-통찰-지혜

7장 창의적 마인드셋에 나오는 통찰과 지혜, 지식의 관계를 설명하는 그림은 환상적이다.

이렇게 잘 표현한 그림이나 설명이 있을까 싶다.

데이터가 모아서 분류하면 정보가 되고,

그 정보들을 관련 내용들끼지 엮으면 지식이 된다.

지식 안에서 규칙이나 주요 개념을 찾아내면 통찰이고,

통찰한 내용을 다른 지식들에 적용하여 설명하는 것이 지혜이다.

간단하면서도 명쾌하다.

창의성에 대해 정학히 알려주고,

창의적인 생각을 했던 사람들의 역사적 사실을 기술하고,

창의적인 생각을 할 수 있도록 방법을 안내해 주고 있어서

꼭 프로그래머가 아니더라도 읽어보면 좋을 것 같은 책이다.

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

이 책은 어떤 책인가?

 

'크리에이티브 프로그래머'는 이 책은 가상 머신의 JIT컴파일러 같은 기술 내용이라던지 혹은 최신 프로그래밍 언어에 대해 무언가 배울 수 있을 거라고는 기대하지 말아 주세요.

이 책은 그런 일반적인 프로그래밍 책과는 거리가 멉니다.

대신 다른 차원에서 접근합니다. 우리가 배우고자 하는 내용은 창의력이 뛰어난 개인(및 그룹)이 문제에 접근하는 방법 같은 것입니다.

이 책을 통해 최소한 창의적인 트릭 몇 가지는  새로 익히고 활용할 수 있으리라 기대합니다.   

 

 

 

이 책의 장점은?

이 책은 창의성에 대한 기본 개념과 절차에 대해 설명해 준다.

행동하는 법까지 알려준다.

 

"1.1 창의성이란 정확히 무엇일까?

아이디어는 다음과 같은 경우에 창의적입니다.    

참신하고 독창적일 때

품질이 우수 할 때

당면한 과제와 관련이 있을 때 "

 

더 창의적이 되기 위한 로드맵을 알려준다.

 

창의적 프로그래머의 일곱 가지 테마.

기술지식, 커뮤니케이션, 제약조건, 비판적 사고, 호기심, 창의적 마인드셋, 창의적 기법

 

기술지식

모든 창의적인 작업은 입력에서 시작합니다. 입력이 없으면 출력이 없습니다.

개발자에게 창의성을 발휘하는데 필요한 요건이 무엇인지 물어봤습니다.

개발자들은 일관되게 기술 지식을 첫 번째로 꼽았습니다.    

 

 

 

이 책을 추천하고 싶은 대상.

 

이 책은 기술적인 내용은 아니다.

좀 더 창의적으로 개발을 하고자 하는 개발자에게 추천하고 싶다.

기술 습득 방법에 대해서도 알려준다.

초보자, 상급 초보자, 유능, 능숙, 전문가가 되기 위해 필요한 의도적 연습!

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

배송료 안내

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

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

닫기

리뷰쓰기

닫기
* 상품명 :
크리에이티브 프로그래머
* 제목 :
* 별점평가
* 내용 :

* 리뷰 작성시 유의사항

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

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

오탈자 등록

닫기
* 도서명 :
크리에이티브 프로그래머
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
크리에이티브 프로그래머
구입처*
구입일*
부가기호*
부가기호 안내

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

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

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

닫기

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

자료실

최근 본 상품1