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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDYzMTMtNmNiYWJkOGMtOTcyYi00YWZiLTgxNzYtNjA4YmFlOWQxYzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTliNmU4OTg0ZWNmMWZhNWU1YmJhYWFiZDM2MjI5ZDVhM2Y2ZDg1MDRlOTQ5Y2U4NzZhYWMwZjFkMDhlNWM4NzImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.pejz-JjaWrOhAsLLKiIBOXEl_J8538SA2J0-DCiEIrI)
![image](https://private-user-images.githubusercontent.com/17634377/386010127-a6c007a6-0622-40ef-9bc0-4d8565574a51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxMjctYTZjMDA3YTYtMDYyMi00MGVmLTliYzAtNGQ4NTY1NTc0YTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVlOGQwZjQ1NGFiY2QyN2Y4ZjZjODA2ZTY1NGI5OThhM2Q5M2JlZGJjYjRhMzNmOWNjYmU3MmFkZjFhOTEzM2ImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Dgqc3XFRO1w1DWvvsC1LQqN12-CxYmHmT4w810MIRSo)
![image](https://private-user-images.githubusercontent.com/17634377/386008096-d4b09980-8e64-48fa-9439-be1b615bca3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDgwOTYtZDRiMDk5ODAtOGU2NC00OGZhLTk0MzktYmUxYjYxNWJjYTNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAyNTA1M2Q1ZWY3OGU2ZDU2NmFmMTgwYmFlNDBiMWVmODdlYzQwNTQyYjlhZGJhN2JiYjQ5YzFhOWU3NDAzNWMmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.2HZJgOk-uyWrDtrPb5n2IuQL7awvFVxL0U_5UPR5sr8)
![image](https://private-user-images.githubusercontent.com/17634377/386010182-5a101f20-0ed2-456e-804a-4f7aca563a8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxODItNWExMDFmMjAtMGVkMi00NTZlLTgwNGEtNGY3YWNhNTYzYThkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWY1NjkwYTQ0MDUyMWE1OTM5M2RiZmI1NDI0YjZhYjMxNzlhZjUzYTZkN2ZiMTRhMTZkZGY1OGE5ODgyYTNhZjQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AdNypRyKHGl5PHeAaWZ1bV87ImunrUetaqI0oUyI7OE)
![image](https://private-user-images.githubusercontent.com/17634377/386010373-cefdbedc-f852-4566-ad5e-0d2d32ed5f03.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAzNzMtY2VmZGJlZGMtZjg1Mi00NTY2LWFkNWUtMGQyZDMyZWQ1ZjAzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTBmNzlhYzExMmIzZjBjMTFhYjkxN2Q5M2EyODRhNzg5NzQ0YjEyNGJkM2YxYzRmODIxN2NiNGUyNzA3OTQxNTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.FHPzZjYMy00HgPxosRN-1Fp0yBKTTCx7SHjW6CHnNl4)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTIwOTgtMzk5ODQwMzItOTk4ZC00MjhhLThhYmItYTkyMDUyYjY3N2YwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWQ1NWY2MzkwM2Y3ZDE5NGJiNDhiMzQwOTI5OGY5MjdkY2Y3Y2YzMWI5MDBjNGRjYWYwNTRmYWQ4MDZkMTlkNjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.GyWxxfhwkeEELS-oXBT-u4y2MaehSspmgd7CyZD-1tY)
- π¨ 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTM1MzctZDY3MGJjZjYtYzIyMy00OTM4LWIxNTYtNzQ4NjdjZGIxNGVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWIzMTJlMWEwMTMxNjk0Y2FjMWZlNjU4NWIwYTU4NDlmYWNhZDdmNWU5YjExY2M1MGI5YWYwNTQ0ZDUyYTI4MDkmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.wNB01JGwzFQLdulvB4WOSGbofTeS4YGP_f70cqfj29o)
![image](https://private-user-images.githubusercontent.com/17634377/386014233-fcfc9b44-60b0-4247-b93d-f036ff0508c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQyMzMtZmNmYzliNDQtNjBiMC00MjQ3LWI5M2QtZjAzNmZmMDUwOGMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTAzNTQyN2ZmOGRkOTEzNDVmYWE3ZGNiMjM0N2Y2NDNkNjAxMzM3OThiNGRhOWQ3NGVmNDZiN2Q3MjI3MWY5M2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.5wcZ4oXbaLiD86K3i0D5UM0-Mvtycqj4bSwJxjLu628)
![image](https://private-user-images.githubusercontent.com/17634377/386014439-31e72ea9-33b0-4efe-8cf6-84f6d4e526f7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQ0MzktMzFlNzJlYTktMzNiMC00ZWZlLThjZjYtODRmNmQ0ZTUyNmY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTNkZWE1MGE1M2FmMTgzN2FlZTc4MTNlM2IxZDc2YzJiNzRjMTZlYTgwOTQwOWFhZGZkODdjMjQ5NTM4MmQxYjEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ygKd-wMUsJWPtyl92KPYegMSvw87f-s4JS1D7r708_I)
- ποΈ 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQzMzYtZWMwMDczOTItNGY4NS00NTNhLTk2MzUtYmFhZDU5YjNjNmJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVmNzM2MDUxYWU2ZDZlMDQxMmMyNGFkN2MyN2E4NTYwOGYwMDM4MDc5NzVmNTQ1ZTVkNDYzNjJiMDRiMGExNGUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.MbWaGF96NoMCqA1PZDZw7chzj0rBaFb26_Oo354gHSs)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzg4MzIzOTAsIm5iZiI6MTczODgzMjA5MCwicGF0aCI6Ii8xNzYzNDM3Ny8zODYwNTU0NjktMzc2NjY2OTItY2M4MS00YWNlLTk5MWQtYzcwMDJkYzRjY2YyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMDYlMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjA2VDA4NTQ1MFomWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTE1ZWEzZjJjOTI0OTJjMGI2YTQ2NTdiYjFmY2E0MzU2YTEwMWJmMDgzOWIwMzg4Y2VmZDVmMmUyMWMwNTQyYTImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.UJxrudkFGRW02mC7pfmbde4dRsfxrQkX4FumLL3cP3c)