In a hurry? TL;DR
Why do we make presentations?
Visual communications are highly constructive and comprehensible form of creating memories.
Visual communication is the conveyance of ideas and information in forms that can be seen...Visual communication is a broad spectrum that includes signs, typography, drawing, graphic design, illustration, industrial design, advertising, animation, color, and electronic resources...
Many have talked about the effectiveness of visual communication superseding other means of communications and in multitudes of disciplines. Conversations with visual content is bread and butter for domains like education, health care, defense and corporate businesses.
I love effective presentations. More than 90% of the things that I've learnt, understood and retained were because of the visual clues which made long paragraphs easy to digest. Moreover, creating effective presentations make a permanent mark in memories about the concepts; which is skill worth learning. And mind you, this is not the excuse for the dirty diagrams and doodles in all my notebooks.
Motivation for better presentations = Sadness.pptx :(
I spent first four years of my work life in Mu Sigma (analytics services and consulting domain) and communication is second biggest part of your work share in such firms, seconded by delivery. I learned immensely about creating content and documentations and, messaging the content and presentations.
Repeating, I love effective presentations and I like to make them as well. But I don't enjoy the process I have to go through to make presentations and the choice of tools available to make effective presentations.
The most sincere thought using presentations are:
- Content >> layout and messaging - while creating, I want to focus on getting the content before I worry about explaining better looking concept
- Need of a chief experience officer - before I present, I should not have to worry about how to share the presentation, why is adjusting to the screen size, where is my script, how to get the projector to work, and so on. It is expensive for presenter to familiarize with a new equipment every time they want to present
--verboseCommentary - why test the attention span of audience?
- Flying header with zooming images - garish colors, unnecessary animation, illegible fonts, or overcrowded texts - nothing is more annoying than these
- my_presentation_last_final_v10_20190530_without_animations.pptx - no version control = sad life
I needed a lazier way of solving these problems and hence the hunt started.
Gopher way of presentation
Have you ever noticed how Go community presents GoTalks? You will notice simplistic presentation with minimal but useful animations. They are not so feature-rich as Reveal.js but they are powerful. For me, it aligns with the overall Go language philosophy as well.
These presentations are created using a Go library called present. Go Present library provides a great way of creating codified presentations which can be version controlled and hosted on the internet. I really started using this to the maximum when I realized how easy it was to prototype the idea that I would like to showcase for quick feedback or improvement.
To showcase the usage of the present tool, I've created a sample project with a example presentation. Following sections contain details about the project.
Project - usage
Project can be found here.
The project serves as a scaffolding for talks and the structure of the current project is:
+-- code # directory containing code snippets | +-- src_code.go # example source code file | +-- ... +-- img # directory containing images | +-- bg_img.jpg # example background image | +-- ... +-- .gitignore +-- example.slide # example for the main content code +-- README.md +-- LICENCE
The presentation can be made with .slide format and the folders can be used to store code snippets and images required in the slides.
There are two ways one can go about checking the content of the presentations:
- Development - Running local server using the present package
- Production - Viewing it on GoTalks after pushed to Github
To run in development mode:
- Install go.talks/present
some_content.slidein your editor
- Run the tool
$GOPATH/bin/presentfrom the location where
View the content of the
some_content.slide file on the browser @
localhost:3999. You can check the format of content from example.slide in this repository
To run in production mode:
- Finalize the content and structure on development server
- Commit and push your
some_content.slideto your public Github/Gitlab repository
- Go to https://talks.godoc.org/github.com/YOUR_USER_NAME/YOUR_REPOSITORY_NAME/PATH/TO/SLIDE.slide to share and view your slide
For example slide and tutorial - https://talks.godoc.org/github.com/hrmnjt/way-to-go-present/example.slide