『クリエイティブプログラマー』
>プログラミングは、単に「コードを書くだけの作業」ではありません。プログラマーが考えたことをコードという形でアウトプットするということは、絵を描いたり小説を書いたりといった「創造的な行為」と同じです。本書は、プログラミングにおいて、この創造性を最大限に引き出すための実践的ガイドです。プログラマーが直面する複雑な課題に対して、創造的で革新的な解決策を見つけるための思考プロセスと習慣を探求します。創造性は、一握りの天才だけが持つものではなく、学び、育て、習得できるスキルです。
>まず第1章では、混乱を招かないように、本書における「創造性」という言葉の意味を、その起源から紐解きます。第2章から第8章までの各章では、創造性に関する「専門知識」「コラボレーション/コミュニケーション」「制約」「批判的思考」「好奇心」「創造的な心の状態」「創造的なテクニック」という7つのテーマについて、詳細を説明します。
>第9章は、コーディングの文脈における創造性についての最後の考察と、学んだことをプログラマーとしての日常業務へ組み込むために役に立つ、いくつかの振り返りを行います。また、主要なテーマごとに推薦書籍をリストアップしています。邦訳があるものについては、その情報も掲載しています。
>本書は、あらゆるレベルのプログラマーに向けた書籍ですが、特定のプログラミング言語や技術の事前知識は必要ありません。その代わり、メモによる情報管理術、認知心理学の世界に足を踏み入れ、理論に基づいて創造性の習得を目指します。著者の膨大な知識と経験に基づいて、歴史、哲学、芸術、そしてゲームを引用しつつ、プログラマーが身に付けるべき創造性について説明しています。
>なお、『プログラマー脳 ~優れたプログラマーになるための認知科学に基くアプローチ』の著者であるフェリエンヌ・ヘルマンスが序文を寄せています。本書と併せて読むと、より理解が深まるでしょう。
目次
序文
まえがき
謝辞
本書について
著者について
表紙のイラストについて
日本語版のためのまえがき
監訳者まえがき
訳者まえがき
Chapter 1 創造性の先にあるもの
1.1 創造性とはいったい何なのか?
1.2 なぜ創造性なのか?
1.3 異次元の創造性
1.4 より創造的になるためのロードマップ
1.4.1 クリエイティブプログラマーの7つのテーマ
1.4.2 創造的プログラミング問題解決テスト
1.5 次章以降の構成
Chapter 2 専門知識
2.1 インプットなくして創造的なアウトプットなし
2.2 知識を集める
2.2.1 入れるものを多様化する
2.2.2 入れるものを控える
2.3 知識の内面化
2.3.1 知識管理
2.4 知識に基づく行動
2.4.1 メモからメメックス、そしてジェネックスへ
2.4.2 メモから行動へ
2.4.3 メモのメンテナンスに関する注意点
2.4.4 中断から行動へ
2.5 ワークフローの例
2.5.1 5段階のワークフロー
2.5.2 ワークフロー実践:コーディング
2.5.3 ワークフロー実践:新しいプログラミング言語の学習
2.5.4 ワークフロー実践:執筆
まとめ
Chapter 3 コミュニケーション
3.1 協力的なチームワーク
3.1.1 カメラータを動かしたもの
3.1.2 ドリームチーム
3.2 集団地理学
3.2.1 液体ネットワーク
3.2.2 創造性は伝染する
3.2.3 刺激的な環境への移動
3.2.4 天才集団
3.3 時間と創造的な仕事
3.3.1 採用曲線
3.4 創造的な流れが妨げられるとき
3.4.1 社会的負債
3.4.2 技術的負債から社会的負債へ
3.4.3 コミュニティの臭い
3.4.4 社会的負債からの脱却
まとめ
Chapter 4 制約
4.1 制約ベース思考
4.1.1 グリーンフィールドかブラウンフィールドか?
4.1.2 制約の分類
4.2 固有の制約
4.2.1 ハードウェア固有の制約
4.2.2 ソフトウェア固有の制約
4.3 課された制約
4.4 自ら課す制約
4.4.1 情熱的なピクセルアーティストたち
4.4.2 制限を設けて創造的な解決策を導く
4.4.3 ゲームボーイの制約
4.4.4 (ファンタジー)コンソールの制限
4.4.5 プログラミング言語の制限
4.4.6 クラックイントロとデモシーン
4.5 スイートスポットを打つ
4.5.1 適切な量の制約で抽象化を促進する
4.5.2 甘さか苦さか?
4.6 実際に制約を活用する方法
4.6.1 拡散思考
4.6.2 ナイーブさと制約
4.6.3 ナイーブながら偉大な詩人
4.6.4 ナイーブなジェームズ・ボンド
4.6.5 ナイーブなアルゴリズムの実装
まとめ
Chapter 5 批判的思考
5.1 創造的かつ批判的思考
5.2 創造的プロセス
5.2.1 批判的検証
5.2.2 集中思考
5.2.3 拡散思考
5.2.4 拡散思考と集中思考の組み合わせ
5.3 創造性は手段であり目標ではない
5.4 よくある批判的思考の誤り
5.4.1 言語間の干渉
5.4.2 優れたひらめき
5.4.3 無知と意図的な発見
5.4.4 私が一番偉い
5.4.5 私が一番輝いている
5.4.6 ファーストグーグルヒットコーディング
5.4.7 初心者のプログラミングに対する長い誤解リスト
5.4.8 先入観を洞察に変える
5.5 過度な自己批判
5.6 なぜ他者の批判的思考が重要なのか
まとめ
Chapter 6 好奇心
6.1 好奇心が創造性を飛躍させる
6.2 成長する驚きと冒険心
6.2.1 硬直マインドセットとしなやかマインドセット
6.2.2 信じることは行動することである
6.2.3 コンフォートゾーンから抜け出す
6.2.4 しなやかマインドセットと創造性
6.3 好奇心を持ち続けること
6.3.1 根気とグリット
6.3.2 意志力は消耗品
6.4 好奇心からモチベーションへ
6.4.1 内発的動機付け
6.4.2 外発的動機付け
6.4.3 内発的動機付けと外発的動機付けを組み合わせる
6.5 マルチポテンシャリティ
6.5.1 複数の天職
6.5.2 複数の興味に取り組む方法
6.5.3 専門主義は創造性を殺すのか?
6.5.4 テクノロジーにおける万能主義と専門主義
6.6 偶然の発見
6.6.1 物事に偶然出会う方法
6.6.2 経験への開放性
6.7 楽しむことについて
6.7.1 はしゃぎ回ること
6.7.2 ただのお楽しみ:悪い人ボーナスチャレンジ
まとめ
Chapter 7 創造的な心の状態
7.1 正しい創造モードに入ること
7.2 ディープワークにおけるフロー
7.2.1 最適経験
7.2.2 ディープワーク
7.2.3 移動中のディープワークとフロー
7.2.4 散歩への支持またはその欠如
7.3 割り込み!
7.3.1 中断への意識を高めること
7.3.2 中断に備える
7.3.3 どの中断に注意すべきかを知る
7.3.4 マインドフルネスは集中力を高める
7.4 創造的洞察を引き起こすこと
7.4.1 1人で行くか、一緒に行くか?
7.4.2 睡眠と洞察
7.4.3 精神刺激物に関する注意事項
7.5 企業の創造的な心の状態
7.5.1 創造的な環境
7.5.2 創造的な作業場としての職場
7.5.3 安全な避難所としての職場
まとめ
Chapter 8 創造的なテクニック
8.1 創造的ツールボックスを満たすことについて
8.2 選抜:アーティストのツールボックス
8.2.1 アートベース学習
8.2.2 アーティストのように盗め
8.2.3 休暇の力
8.3 選抜:作家のツールボックス
8.3.1 ウラジーミル・ナボコフのツールボックス
8.3.2 ジェフ・ダイヤーのツールボックス
8.3.3 アン・ラモットのツールボックス
8.4 選抜:プログラマーのツールボックス
8.4.1 アンナ・ボブコウスカのツールボックス
8.4.2 達人プログラマーのツールボックス
8.4.3 エミリー・モアハウスのツールボックス
まとめ
Chapter 9 創造性に関する最終的な見解
9.1 誰もが創造的になれることをお忘れなく
9.2 創造性を培うという見方について
9.2.1 技術的個人主義から創造的チームプレイヤーへ
9.2.2 CPPSTを再検討する
9.3 創造的であってはならないとき
9.4 さらに読むべき本
訳者あとがき
人名索引
事項索引
抜き書きメモ
p.55 リュケイオン
>マインドセットを変えるということは、散らばっている数個のアドバイスを拾っていくことではありません。新しい視点で物事を見るために継続的に投資するということです
>ただ単にマインドフルネスを実践するだけではほとんど効果がないにもかかわらず、短絡思考でデータに過度に頼るマネージャーは、仕事関連の問題の治療薬としてマインドフルネスを大々的に処方してしまうのです