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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDYzMTMtNmNiYWJkOGMtOTcyYi00YWZiLTgxNzYtNjA4YmFlOWQxYzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWM0MDA3ZWQwYTA1YzM1MDg0MGRjNjg0M2VlN2IwYzQ4YzA1OTEyYzE0NTI5MTUzNTdiNDU0MTVkM2Q3N2I4ZjYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.QwVfBP815h0D5XgXYu2DdedK-uoUBUcyRZ1MDng3Lr4)
![image](https://private-user-images.githubusercontent.com/17634377/386010127-a6c007a6-0622-40ef-9bc0-4d8565574a51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxMjctYTZjMDA3YTYtMDYyMi00MGVmLTliYzAtNGQ4NTY1NTc0YTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWI3MGM0NGE0NmE3MDUwNjUyYzBhYjAxMWIwNzc2MjM4MjA1YTk3NTU1M2M4MTU4MDE0NWUxYWZkNTM1MTc3ZjMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0LUBZqrQSsN-rdNZsqNAhseRkfKuLO1_5185qRKKWew)
![image](https://private-user-images.githubusercontent.com/17634377/386008096-d4b09980-8e64-48fa-9439-be1b615bca3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDgwOTYtZDRiMDk5ODAtOGU2NC00OGZhLTk0MzktYmUxYjYxNWJjYTNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBiYmQzN2IzM2EyM2I0ZGE1YzhlNDdkNjI0N2I3MWVkNzhiNTAxOWFlYzhhYTg5NzFjNjNjZGI5NzRmMjc5Y2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0._UPGfYEzGeaEnXz_vEhja-6TKH_OoYMdTiaGZW_eLfI)
![image](https://private-user-images.githubusercontent.com/17634377/386010182-5a101f20-0ed2-456e-804a-4f7aca563a8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxODItNWExMDFmMjAtMGVkMi00NTZlLTgwNGEtNGY3YWNhNTYzYThkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1OWI3YTA1NTk2ZDk4NDA0ZDQ5MzI0ZjBiMWQ2ZjJmNTQyNWMxNDYzM2YxYjRmMjdkMGJmYjMyNTBlNGJkMDEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.gAeuPxJCIC7fuKa5dB6ZbJ4bZqjmwQ7fTCiluH9EjIk)
![image](https://private-user-images.githubusercontent.com/17634377/386010373-cefdbedc-f852-4566-ad5e-0d2d32ed5f03.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAzNzMtY2VmZGJlZGMtZjg1Mi00NTY2LWFkNWUtMGQyZDMyZWQ1ZjAzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTUxMTA3YmI2MjQxODNhNmZmMTk1OGZkNzgzZmEyMDg0MzU5NzExZmQ3N2I0OTQ4YTc4N2Y5NDNmNDM5NjVjZTkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.sJOR-r29YPou6oLzF1Xs3jx6ObVqsyyRlklrNk52gcE)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTIwOTgtMzk5ODQwMzItOTk4ZC00MjhhLThhYmItYTkyMDUyYjY3N2YwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPThhMzI4MDVkODE0YjA1OTdhZGI0MzA5MzgzMzU1ZjczMDE5ZjQxNGI4Mzk5NmI1MzM1ZDI1ZmJjNGMwZWEyOTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.0abShAzzgLUjrOCQTFsAvDdhR41rYKJ6ud5_CyDIViw)
- 🎨 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTM1MzctZDY3MGJjZjYtYzIyMy00OTM4LWIxNTYtNzQ4NjdjZGIxNGVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI2ZjlkNjEwMDk3ODYzYTM4MmJhM2I3ODcyYmZiOWQ4MWI4MDg3MjU0NGRiNGFjMWNhNWFkYzViYjM5ZDRjYmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.O5JD5K30p--uopY1u7l3ED_x2yBoUElLMcjEdcB5agY)
![image](https://private-user-images.githubusercontent.com/17634377/386014233-fcfc9b44-60b0-4247-b93d-f036ff0508c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQyMzMtZmNmYzliNDQtNjBiMC00MjQ3LWI5M2QtZjAzNmZmMDUwOGMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTA1NTBiYmQ1MjhhZDdmNDExMTVjZjYwZmU0MDNhMGUyM2I5NDA4M2UzMGQzNzY5NzRmMjQ2OTY5ODg4OGVhMDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.l8Kp02o0H0pP8QqgGSRUqefWz7roxdg5dCiaXTFZrFQ)
![image](https://private-user-images.githubusercontent.com/17634377/386014439-31e72ea9-33b0-4efe-8cf6-84f6d4e526f7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQ0MzktMzFlNzJlYTktMzNiMC00ZWZlLThjZjYtODRmNmQ0ZTUyNmY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWZhZDcxYjIyZGU2MDdiMGQ1MDNhYWI3ODliNGY5NDFmYzZmNmU4Yjk5MTI4MGY1YTM0MmY5OGZiYWQ3MzJkOWQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.gJ3V7WLQq7Abt4kcdYo-J_W8yyucLz_mYZRqmlIyAck)
- 🖍️ 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQzMzYtZWMwMDczOTItNGY4NS00NTNhLTk2MzUtYmFhZDU5YjNjNmJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTI3MmRmYmFmZWFlMGJlOGFhOTk0MTA0NzZmNjE2M2ZmODBmMjZhYzMzMDNmMzYzYmI0MTJiYWE4YWVjZGQ3YWUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.cWG2VH3d5p9K_uC8vLMLCLJ24ohKZ1OJFJTwHLptfE0)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4NDUwMDIsIm5iZiI6MTczODg0NDcwMiwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwNTU0NjktMzc2NjY2OTItY2M4MS00YWNlLTk5MWQtYzcwMDJkYzRjY2YyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDEyMjUwMlomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTViMTQ5MzUzY2JhNTExYzQ5NjRhN2E2MDJmM2RlYzI5MjA3MDZlOTc0MWUzNmQyMzEzMDkwYzc2YjczZWMxYjgmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.gXDufnC1fwNoiKHWZMaCsFzYg9H3t6rZ9pc2Y9wy3Hs)