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