The Creative Programmer (Final Release) 9781633439054

Creativity is essential to being a successful programmer. The stories, examples, and groundbreaking research in this boo

376 55 38MB

English Pages 232 Year 2023

Report DMCA / Copyright

DOWNLOAD FILE

The Creative Programmer (Final Release)
 9781633439054

Table of contents :
front matter

foreword

preface

acknowledgments

about this book

about the author

about the cover illustration

1 The creative road ahead

1.1 What exactly is creativity?

1.2 Why creativity?

1.3 Different levels of creativity

1.4 A road map to becoming more creative

The seven Creative Programmer themes

The Creative Programming Problem Solving Test

1.5 The structure of the following chapters

2 Technical knowledge

2.1 No input, no creative output

2.2 Gathering knowledge

Diversify what goes in

Moderate what goes in

2.3 Internalizing knowledge

Knowledge management

2.4 Acting on knowledge

From notebook to memex to genex

From note to action

A note on note maintenance

From interruption to action

2.5 A workflow example

A five-step workflow

The workflow in practice: Coding

The workflow in practice: Learning new programming languages

The workflow in practice: Writing

3 Communication

3.1 Collaborative teamwork

What makes a Camerata tick

Dream teams

3.2 Collective geography

Liquid networks

Creativity is contagious

Moving to stimulating environments

Genius clusters

3.3 Creative work in time

The adoption curve

3.4 When creative flow is impeded

Social debt

From technical to social debt

Community smells

Getting out of social debt

4 Constraints

4.1 Constraint-based thinking

Greenfield or brownfield?

A taxonomy of constraints

4.2 Intrinsic constraints

Intrinsic hardware constraints

Intrinsic software constraints

4.3 Imposed constraints

4.4 Self-imposed constraints

Passionate pixel artists

Let limitations guide you to creative solutions

Game Boying into constraints

Limited (fantasy) consoles

Limited programming languages

Crack intros and the demoscene

4.5 Hitting that sweet spot

Facilitating abstraction with the right amount of constraints

Sweetness or bitterness?

4.6 Working with constraints in practice

Divergent thinking

Naivety and constraints

A naive but legendary poet

A naive James Bond

Naive algorithm implementations

5 Critical thinking

5.1 Creative critical thinking

5.2 The creative process

Verifying critically

Focused thinking

Diffuse thinking

Combining diffuse and focused thinking

5.3 Creativity is the means, not the goal

5.4 Common critical thinking fallacies

Cross-language clashes

The superior flash of insight

Ignorance and Deliberate Discovery

I am the greatest

I am the fanciest

First-Google-hit coding

A long list of novice programming misconceptions

Converting prejudice into insight

5.5 Too much self-criticism

5.6 Why others’ critical thinking matters

6 Curiosity

6.1 Curiosity jump-starts creativity

6.2 Growing wonder and wanderlust

Fixed and growth mindsets

Believing is doing

Growing out of your comfort zone

Growth mindsets and creativity

6.3 Staying on the curious course

Persistence and grit

Willpower is a depletable resource

6.4 From curiosity to motivation

Intrinsic motivation

Extrinsic motivation

Combining intrinsic and extrinsic motivation

6.5 Multipotentiality

Multiple true callings

How to approach multiple interests

Does specialism kill creativity?

Generalism vs. specialism in tech

6.6 Serendipitous discoveries

How to stumble upon things

Openness to experience

6.7 About having fun

Fooling around

Just for fun: A bad guy bonus challenge

7 Creative state of mind

7.1 Getting in the right creative mood

7.2 The flow of deep work

The optimal experience

Deep work

Deep work and flow on the move

Walking support or the lack thereof

7.3 Interrupt!

Increasing your awareness of interruptions

Preparing for interruptions

Knowing which interruptions to look out for

Mindfulness increases focus

7.4 Triggering creative insights

Alone or together?

Sleep and insight

A note on stimulants

7.5 A corporate creative state of mind

Environmental creativity

Workplaces as creative workshops

Workplaces as a safe haven

8 Creative techniques

8.1 On filling a creative toolbox

8.2 A selection: The artist’s toolbox

Art-Based Learning

Steal like an artist

The power of time off

8.3 A selection: The writer’s toolbox

Vladimir Nabokov’s toolbox

Geoff Dyer’s toolbox

Anne Lamott’s toolbox

8.4 A selection: The programmer’s toolbox

Anna Bobkowska’s toolbox

The Pragmatic Programmer’s toolbox

Emily Morehouse’s toolbox

9 Final thoughts on creativity

9.1 Remember, everyone can be creative

9.2 On the evolving perspective of creativity

From technical individualism to a creative team player

Revisiting the CPPST

9.3 When not to be creative

9.4 Further reading

index

Polecaj historie