The Creative Programmer (Final Release)

This document was uploaded by one of our users. The uploader already confirmed that they had the permission to publish it. If you are author/publisher or own the copyright of this documents, please report to us by using this DMCA report form.

Simply click on the Download Book button.

Yes, Book downloads on Ebookily are 100% Free.

Sometimes the book is free on Amazon As well, so go ahead and hit "Search on Amazon"

Creativity is essential to being a successful programmer. The stories, examples, and groundbreaking research in this book will help you unleash your creative potential! Inside The Creative Programmer you’ll learn insights into creativity like The seven dimensions of creativity in software engineering The scientific understanding of creativity and how it translates to programming Actionable advice and thinking exercises that will make you a better programmer Innovative communication skills for working more efficiently on a team Creative problem solving techniques for tackling complex challenges In The Creative Programmer you’ll learn the processes and habits of successful creative individuals and discover how you can build creativity into your programming practice. This fascinating new book introduces the seven domains of creative problem solving and teaches practical techniques that apply those principles to software development. Hand-drawn illustrations, reflective thought experiments, and brain-tickling example problems help you get your creative juices flowing. You’ll soon be thinking up new and novel ways to tackle the big challenges of your projects. about the technology In software development, creative problem solving can be just as important as technical knowledge. A splash of creativity helps you break with conventional approaches that just aren’t working. And just like technical skills, creativity can be learned and improved by practice. This innovative guide draws on the latest cognitive psychology research to reveal practical methods that will make you a more creative programmer. about the book Each chapter in The Creative Programmer introduces you to a new theme of creativity that’s derived from scientifically sound research. Discover the importance of communication, how constraints can make you more creative, methods to improve your critical thinking, and more. Short stories, examples, and exercises help you understand each new idea and clearly demonstrate how you can apply them to programming. You’ll even be able to track your progress against a scientifically validated Creative Programming Problem Solving Test! Along the way, you’ll enjoy examples and stories that show what makes creative technical geniuses tick.

Author(s): Wouter Groeneveld
Publisher: Manning Publications Co.
Year: 2023

Language: English
Pages: 232

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