Content from my talk "Visual Thinking + Elixir" Code Beam Lite New York 2024
![image](https://private-user-images.githubusercontent.com/17634377/386006313-6cbabd8c-972b-4afb-8176-608bae9d1c9e.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDYzMTMtNmNiYWJkOGMtOTcyYi00YWZiLTgxNzYtNjA4YmFlOWQxYzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTY3NGQ4MWFkZDA1MTFjYjYxZWExMjM1MDg2NTdlYjBlYjBjMzhjZWJiMDVhYzQwNjM1NzVkZGE3MWNkNGIwZTQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ml8oLnngI46qGq0WA5bbXiFf45nj3V2Wcr8PHaI7PvM)
![image](https://private-user-images.githubusercontent.com/17634377/386010127-a6c007a6-0622-40ef-9bc0-4d8565574a51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxMjctYTZjMDA3YTYtMDYyMi00MGVmLTliYzAtNGQ4NTY1NTc0YTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThkNTc2ODhiYzViNWVhNzYxZTQwZGMxYTEwZjViNDhkODQ4MDVlNmJkODhiMDg2N2U2YWU2Y2Q4NjQyZTZlNDUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.YOozsfwuRcZhGh4KtOkIcBQW-7yVa6oH5gkBQzhAgkI)
![image](https://private-user-images.githubusercontent.com/17634377/386008096-d4b09980-8e64-48fa-9439-be1b615bca3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDgwOTYtZDRiMDk5ODAtOGU2NC00OGZhLTk0MzktYmUxYjYxNWJjYTNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ4NWE4ZjgwZTM3MGJlNWFlZWY3MmY2YmQzNjA4YTEyNDUzMDQxNzljZjkzNzIwYjJjNWU0NGQ5OTM4Yzg3MGImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wKsVc2dq0L4ituV-mzlt2i01n4-X9EDRgXmRZ3Yl1s0)
![image](https://private-user-images.githubusercontent.com/17634377/386010182-5a101f20-0ed2-456e-804a-4f7aca563a8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxODItNWExMDFmMjAtMGVkMi00NTZlLTgwNGEtNGY3YWNhNTYzYThkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ1MTUyNmFjOTE1NmU4YTMzOGYwMjg2NTA1MjMzZDJjMzJlYjlhZjU3YjFiZGNlZDdhNmY1MWNmYmJlMmE4YmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.CFeyNGjsnWUYHsf6kuzAt0XQiCTHwDxMJcLQI7mYEWI)
![image](https://private-user-images.githubusercontent.com/17634377/386010373-cefdbedc-f852-4566-ad5e-0d2d32ed5f03.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAzNzMtY2VmZGJlZGMtZjg1Mi00NTY2LWFkNWUtMGQyZDMyZWQ1ZjAzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ3NTVjZjE5NDM1MWZkOWIxOTAxZDQwYTIwOGUyNjJhZTEwMTJmYjVmMjIzNjE3MzY1NGViMzM2YjQyZjVhOTMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.rM_aDHygyiyLexQwPKnlWDV59xQ1Ec2OuQSJxf9t4p4)
If you want to explore all the advantage of Visual Thinking consider there are many skills to practice, I prepared this learning framework to guide you through this world:
![image](https://private-user-images.githubusercontent.com/17634377/386012098-39984032-998d-428a-8abb-a92052b677f0.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTIwOTgtMzk5ODQwMzItOTk4ZC00MjhhLThhYmItYTkyMDUyYjY3N2YwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTlkYWI0ZWQ5ZTlmYjQzNzhlYmY3N2Q0ZjQzMDZiNGNhODc5NzY3MDE3MWRlODJkYzcwMzUyNTkwMGZiYzk4ZDImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Z6Fw20LSaAXPSgsptAjRt7YBNC17TMKjYlrVeLzDONY)
- π¨ Drawing Reconciliation: Revisiting and refining visual representations to improve clarity, accuracy, and relevance, ensuring visuals are aligned with evolving ideas and insights.
- π¨ Sketchnoting: Capturing ideas and information in real-time by combining words and visuals, creating a structured and engaging summary of complex topics or conversations.
- π¨ Experimental Drawing: Exploring unconventional or abstract ways of drawing to encourage creative expression, idea exploration, and visual problem-solving outside traditional frameworks.
- π¨ Active Listening: Paying close attention to spoken information and converting it into visual notes and symbols, enhancing understanding and retention of key ideas.
- π¨ Visual Synthesis: Condensing complex information into a simplified, cohesive visual form that emphasizes essential elements and connections, helping audiences quickly grasp the main points.
- π¨ Personal Iconography: Developing a unique set of symbols and icons that represent common themes or concepts, creating a personal βvisual dictionaryβ for more effective and consistent communication.
- π¨ Human Data Visualization: Representing data in ways that are not only accurate but also human-centered and relatable, making data insights accessible and engaging for diverse audiences.
- π¨ Graphic Recording: Creating real-time visual notes during live events or presentations, capturing the flow and highlights of discussions in a way that preserves and enhances the original content.
- π¨ Visual Collaboration: Using visuals to facilitate teamwork, ideation, and problem-solving among team members, creating shared understanding and alignment through diagrams, sketches, and flowcharts.
- π¨ Visual Structures: Organizing information into structured layouts, such as grids, hierarchies, and mind maps, to clarify relationships and create visually coherent frameworks.
|
![image](https://private-user-images.githubusercontent.com/17634377/386013537-d670bcf6-c223-4938-b156-74867cdb14ef.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTM1MzctZDY3MGJjZjYtYzIyMy00OTM4LWIxNTYtNzQ4NjdjZGIxNGVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY2ZTJiYmQ5ZTQ1YmViZGY2MGJlMjgzYjk5MmE3YWM3Yzg2MmVjOTc5NWMxOWU1YWJmOGE2YjIwM2M2OGMxYTgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.HoLG88zKBcnGtyg9ISwhAojdlFE9a5SncCEfuj_oGtk)
![image](https://private-user-images.githubusercontent.com/17634377/386014233-fcfc9b44-60b0-4247-b93d-f036ff0508c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQyMzMtZmNmYzliNDQtNjBiMC00MjQ3LWI5M2QtZjAzNmZmMDUwOGMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ5NGJjZWI0Y2NhODA3ZTA4MDI2MWMxNTdmYWJmYTNkOGUzOTQxM2ZiNWI5ODI4ZDczZGI5Y2VhNTZjNjM3YWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.If_tKF85EKbMHTWSN72hcxZnsxiIH8edF-LjlVR7UlA)
![image](https://private-user-images.githubusercontent.com/17634377/386014439-31e72ea9-33b0-4efe-8cf6-84f6d4e526f7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQ0MzktMzFlNzJlYTktMzNiMC00ZWZlLThjZjYtODRmNmQ0ZTUyNmY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZlMTEzYjkyZmE1NTExY2NkNjFkMzE3M2RjMWU5MzgxNGY0ZWE3ZDE3YmRhMWJkZGRkYmJhYzE4MzU3OTExN2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.3e1PlvzVhYX5vu4vqVuLv-pg9PqiSg6olMF6JhDFZUA)
- ποΈ Enhanced Problem Solving: Visual Thinking helps decompose complex problems into simpler, more manageable visual representations, making it easier to understand and approach technical challenges.
- ποΈ Improved Code Comprehension: Visualizing code structures, data flows, and dependencies can clarify relationships and functions within a codebase, especially in systems with many interdependent components.
- ποΈ Better Communication with Teams: Drawing and visual explanations facilitate clearer communication among team members, making it easier to convey design decisions, bug solutions, or code review feedback.
- ποΈ Faster Onboarding: Visual aids can make onboarding new team members more efficient, as diagrams and sketches provide context and clarity that speed up understanding of project architecture and workflows.
- ποΈ Efficient Debugging and Refactoring: Sketching data flows or process interactions helps in spotting potential bottlenecks, bugs, and refactoring opportunities that may not be obvious through code alone.
- ποΈ Enhanced Cognitive Processing: Visual Thinking engages spatial and visual parts of the brain, promoting better retention and understanding of complex information, especially when learning new concepts or languages.
- ποΈ Tool for Creativity and Innovation: Visual Thinking encourages out-of-the-box thinking, enabling developers to creatively brainstorm new features, optimize existing systems, and explore alternative solutions.
- ποΈ Documentation that Speaks for Itself: Visual Thinking can make technical documentation more engaging and accessible, allowing for quick reference diagrams that are often more intuitive than text descriptions alone.
- ποΈ User-Centered Perspective: Drawing out user flows, interfaces, and experience journeys helps developers think from the userβs perspective, leading to more user-friendly design choices.
- ποΈ Better Planning and Architecture Design: Visuals are essential when planning new features or system architectures, allowing you to explore design options before committing to code.
![image](https://private-user-images.githubusercontent.com/17634377/386014336-ec007392-4f85-453a-9635-baad59b3c6be.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQzMzYtZWMwMDczOTItNGY4NS00NTNhLTk2MzUtYmFhZDU5YjNjNmJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNiM2E3MzM2OTUwNzQ4ZTIxOWQ0MGQ5ZDViN2EyMjg1NTNiY2I1NzYzY2RhZWVkNzRkYmNiOGU4M2E3NzAxYWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Mu2_R2NIQO9L9s9ZQEqXSonu8hjZbWgvQJ1KfWQd_wQ)
This are some ideas about where to apply Visual Thinking:
- Sketch PRs with Your Own Code Contributions
- Illustrate PRs from Others to Give Better Feedback
- Create Notations for Flows (Code Release, CI/CD, Environments, Team Practices, Company Flows)
- Illustrate Technical Concepts Alongside Other Diagrams
- Create Simple Summaries for Frameworks
- Create Visual Notes as a Diary for Personal Feedback
- Help Create Visual Summaries to Keep Business Logic Fresh Across Teams
Here you have some examples:
Drawing code components flow. |
|
Explaining visually the lifecycle of a Live View step by step. |
|
Explaining how to achieve fault tolerance in the TANDEM computer using processes. |
- Start with Sketchnoting
- Experiment with Drawing Code Concepts
- Use Visuals for Feedback, you can use tools like https://excalidraw.com/ or https://www.tldraw.com/
- Build a Personal Iconography
- Create Visual Summaries of Complex Processes
- Map Out Frameworks and Libraries
- Document Your Progress Visually
- Collaborate Using Visuals
Some references:
- What it is a Live View? https://medium.com/@carlogilmar/phoenix-live-view-what-is-it-a218b2a5fcaa
- Welcome Elixir https://github.com/the-elixir-developer/welcome-elixir
- Distributed Systems Notes https://github.com/the-elixir-developer/architecting-reactive-systems
I developer a short visual thinking introduction workshop for developers: https://github.com/visualpartnership/visual-thinking-workshop π
And also you can check some trainings I made: https://github.com/visualpartnership/visualthinking?tab=readme-ov-file
If you start to make exercises, don't hesiate to open a ISSUE with your visuals, so I'll have the opportunity to give you feedback.
![image](https://private-user-images.githubusercontent.com/17634377/386055469-37666692-cc81-4ace-991d-c7002dc4ccf2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MzkwNjc2ODEsIm5iZiI6MTczOTA2NzM4MSwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwNTU0NjktMzc2NjY2OTItY2M4MS00YWNlLTk5MWQtYzcwMDJkYzRjY2YyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDklMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA5VDAyMTYyMVomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTRlM2I4Y2E4OWJjYjYzNzU5NDk1Y2QxNDEzZmM2NjgyZjM1NjlmYTRiYTg5MTE4OWNhMDVlMzFkNjEwNWE5ZGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UoDwurZLuwDclJc4BAU381DK6_uHoriuXAfFUZyjBsA)