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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDYzMTMtNmNiYWJkOGMtOTcyYi00YWZiLTgxNzYtNjA4YmFlOWQxYzllLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTEwNGQyNjRiNTY0NGZiYzk2OGY4M2I1ODNlNTc5NDBhMDhlM2ZiZWE1NzczZTlmZDZlZTVlNGE0MzQ5NWI1OTEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.fKP3vyLlJIvPHm1J488QGpwZU1nAMxDL1nYW6CicONQ)
![image](https://private-user-images.githubusercontent.com/17634377/386010127-a6c007a6-0622-40ef-9bc0-4d8565574a51.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxMjctYTZjMDA3YTYtMDYyMi00MGVmLTliYzAtNGQ4NTY1NTc0YTUxLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTU2NGE2YmVkMzNjODYzNzdiYTExZjliODJlODU5OGUwMWU4NjQyYWY2NjJjOTZkZmUxZmYxMzVjZGY1ODUzMjUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.s5YvrVPmKgXfMYxE1INc-Kv08U40TAEk1krMsh1vpf4)
![image](https://private-user-images.githubusercontent.com/17634377/386008096-d4b09980-8e64-48fa-9439-be1b615bca3c.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMDgwOTYtZDRiMDk5ODAtOGU2NC00OGZhLTk0MzktYmUxYjYxNWJjYTNjLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ4MDI1MzQ4MzMyNGViYTllM2ZlN2ZlM2Y1NzdhNzYyYWJhNGU5ODExNDdkMDFiYzU3NTFmZWM1NWE2Y2YwMjcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Gvk81YM4-LgXmwjyaBY0Co9znjF0jPmIqajH5OTDoC8)
![image](https://private-user-images.githubusercontent.com/17634377/386010182-5a101f20-0ed2-456e-804a-4f7aca563a8d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAxODItNWExMDFmMjAtMGVkMi00NTZlLTgwNGEtNGY3YWNhNTYzYThkLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTc4YTNhZDdkMzUxZTYyNTZmOTFmMTE5MDNhMjBiMDUyYThjOGRlMjJhZWE1MTZiYzRhMDgxMmNmM2JjODkzMWEmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Gge2cUjmzAtvscmKsODSSqrEhShHHyxl7ugT2wAkYd8)
![image](https://private-user-images.githubusercontent.com/17634377/386010373-cefdbedc-f852-4566-ad5e-0d2d32ed5f03.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTAzNzMtY2VmZGJlZGMtZjg1Mi00NTY2LWFkNWUtMGQyZDMyZWQ1ZjAzLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVkMjMwNTAwNmRmYjBiZWRjNGRjZTA5MTgxM2UwYzEyMjNjZjkxYWE0ZThmYzg3ZDczMDdjY2Y5YTE3YTViMmUmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.blVb7Ily_0vzLqpHV53BTlXfZYsJ2eqlKReRw6fQjV0)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTIwOTgtMzk5ODQwMzItOTk4ZC00MjhhLThhYmItYTkyMDUyYjY3N2YwLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWRkOTA2YzVmMzkxMDg4ZTQ5NDRhMWNmMTc2OTcyNGRmOWRjNzIwZTc3Mjg2NjliMWEwOWZmYmU2YTFmNDNhZWImWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.AWuIWlbwVVPsL-rBEB_phiY8CAgAh2okBEsRHxwO6-A)
- π¨ 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTM1MzctZDY3MGJjZjYtYzIyMy00OTM4LWIxNTYtNzQ4NjdjZGIxNGVmLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTQ4NTI2NWQ1NWVhNmFmYmE2MmY3NjY2OTdhYzE3Y2U5YTQ5ZDkwMDAwNDQ5NDBhM2IwOTE0OGMzZTAzZGFmNzQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.P1BYfKQM2dwxQPWcRFKmVzo2KdPHA8ddTyqn-A9LHJw)
![image](https://private-user-images.githubusercontent.com/17634377/386014233-fcfc9b44-60b0-4247-b93d-f036ff0508c2.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQyMzMtZmNmYzliNDQtNjBiMC00MjQ3LWI5M2QtZjAzNmZmMDUwOGMyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTVkY2FmOTI0YjY1ZjI0M2RiMDc3NjIwYmJhMDI5NzA5ZTc4NmRjZjQxNmEwNTQwNzA3OGE1ZGJjMWJhNzQxN2YmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.Nixi-TmO2U0cITyKgkPy4MvakeWKjJAzfVAuenuCudg)
![image](https://private-user-images.githubusercontent.com/17634377/386014439-31e72ea9-33b0-4efe-8cf6-84f6d4e526f7.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQ0MzktMzFlNzJlYTktMzNiMC00ZWZlLThjZjYtODRmNmQ0ZTUyNmY3LnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPWE2MGZkNjcwNzVkYzU1ZTM2ZWYwNTIyNGUzM2I0NjBmODZhOGI1YTI4MTYzYmY2ZDg4N2E4ZDIwMDlkYjliYWYmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.ko3640Te_KIVskWZlmjQHOd7NNCFELK_wJa747ku6-A)
- ποΈ 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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwMTQzMzYtZWMwMDczOTItNGY4NS00NTNhLTk2MzUtYmFhZDU5YjNjNmJlLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTExNDExYmY5NjEyYjBlMjgzNGUzOTUwMDUwZDM0MGRjOWIwNDZjZjFkNjkwMmYwYjEzZDFiMzk3YTJlMWI4ZmQmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.a3FVVjH2zWGOUhZM8X0Lmk46MYMl9CNbutnFC5ZgSIs)
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.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3Mzk5MTYyODcsIm5iZiI6MTczOTkxNTk4NywicGF0aCI6Ii8xNzYzNDM3Ny8zODYwNTU0NjktMzc2NjY2OTItY2M4MS00YWNlLTk5MWQtYzcwMDJkYzRjY2YyLnBuZz9YLUFtei1BbGdvcml0aG09QVdTNC1ITUFDLVNIQTI1NiZYLUFtei1DcmVkZW50aWFsPUFLSUFWQ09EWUxTQTUzUFFLNFpBJTJGMjAyNTAyMTglMkZ1cy1lYXN0LTElMkZzMyUyRmF3czRfcmVxdWVzdCZYLUFtei1EYXRlPTIwMjUwMjE4VDIxNTk0N1omWC1BbXotRXhwaXJlcz0zMDAmWC1BbXotU2lnbmF0dXJlPTFiOGZkMDkwYWRhMjBiYmU3YTQzNjc0MjUzOGI3OTVjYzEzODM5NWNiN2YzYWZkMzQyOGNjYjAxZjE4NGRlNTcmWC1BbXotU2lnbmVkSGVhZGVycz1ob3N0In0.egrVlR0nDRE92e1youekarkeVkZiPzi9rRY_NpRLYVY)