Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I've given a few talks recently and I have not found a good way to make slides. Here are a few desirable characteristics for programming slides:

  • They're slides. A standard emacs buffer won't do it.
  • They have syntax highlighting for code.
  • They support basic formatting, like font size and color and bullets.
  • No fancy animations needed. The only animation I desire is one-by-one appearance of bullets.
  • EDIT: It should be easy to alt-tab back and forth from the terminal to the slides without destroying the presentation sequence/position.

So far I have considered:

  • Microsoft Office - out of the question for Linux users.
  • OpenOffice.org - too much for my needs, code formatting/highlighting needs to be done externally and pasted in. On the plus side supports bullets, bullet-by-bullet animation, and font formatting. To my knowledge there's no way around the fact that alt-tab to the terminal destroys presentation mode and position.
  • Emacs - Supports all the code formatting but I haven't found a slides mode that lets me transition from one chunk to another.
  • HTML5 - I once made slides using html5rocks as a template. It supports everything, but is too hard and time-consuming to "throw together" a few slides before a minor talk. Also the html5-only features may not work on the podium computer's installed browser.

Any suggestions for programs/techniques for making code-centric presentations?

EDIT: I think S5 and Latex are most in the spirit of what I'm looking for, but that's not to say the other suggestions (including not using slides at all) are "wrong".

share|improve this question
Open Office Support pretty much anything Power Point would generate. How many presentations computers do not have windows running? –  Ramhound Feb 25 '11 at 19:22
My comment about podium computers was only for HTML5. I agree OpenOffice.org does not have a serious portability issue to podium computers. –  Yuvi Masory Feb 25 '11 at 20:33
add comment

closed as not constructive by gnat, Dynamic, MichaelT, Bart van Ingen Schenau, Dan Pichelman Jun 15 '13 at 17:40

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.If this question can be reworded to fit the rules in the help center, please edit the question.

8 Answers

up vote 8 down vote accepted

LaTeX is good at making slides, and is very convenient for people who know how to program. There are a few slide packages around, as described for instance at http://math.asu.edu/support/doc/latex/slides.html. Syntax highlighting is also available.

share|improve this answer
Some people will swear by the beamer package. And they'll trip over themselves to help you with it over at tex.se. –  Andrew Arnold Feb 25 '11 at 21:17
For those not used to it, latex can be very problematic. The learning curve for latex is much higher than for office. –  apoorv020 Feb 26 '11 at 11:09
@apoorv020: True, but LaTeX is not very complicated, for programmers. With LaTeX, you get a flexibility that word processors do not provide; the fact that the source is almost like a small program (as opposed to a complicated format) is also an advantage. –  EOL Feb 26 '11 at 11:16
And for the graphics in your Beamer slides I'd recommend to use Tikz: texample.net/tikz/examples –  SK-logic Feb 26 '11 at 12:48
add comment

To be honest, I think most programmers want to get straight to the point without too much fancy stuff. I think doing a quick Open Office slideshow really wouldn't be that bad. It really doesn't have to be anything fancy.

share|improve this answer
add comment

The important thing about code on slides is that there be very little of it, so the font can be big. Like maybe one line, or two lines, so that people can be reminded of the method name. The best way to show code beyond one or two lines is in a demo, and then sometimes after the demo I have a slide that repeats the really important lines of code so the syntax (or whatever) is reinforced.

Once you realize that, there are tons of options available to you. The quickest is probably taking a screenshot in your editor of the line or two that matter, and pasting the cropped shot into your slide. I realize this means people can't copy and paste directly from their copy of your slides into their text editor. If that's an issue, give them the code (or a snippets file) for download.

share|improve this answer
add comment

Have you tried not using slides for the presentation?

While it might be difficult to adjust to, although one should note that slide decks haven't been around that long, it might serve your presentations better if you just scrap the slides and focus on ensuring that attendees have an up to date copy of the code before the presentation so that they can follow along. Then, you can focus any slides to just those needed for large scale information (e.g. database diagrams) and trust that the attendees will have their own copy of the code to follow.

share|improve this answer
Why the down vote? –  rob Feb 25 '11 at 20:45
I'll throw in support for ditching slides in favour of talking. All of the best talks I've been to have either been completely without slides or have only used slides without text. The human brain is terrible at reading and listing at the same time; therefore showing text while talking splits the audience's attention and thus reduces comprehension and retention. –  smithco Feb 25 '11 at 20:56
add comment

Software for code-centric presentations

Why do you bother about the software to use to make your slides? Since you don't need fancy animations, you can choose whatever you want.

Most of my presentations were done with Microsoft Word. Because I don't understand what will PowerPoint bring to me. Because I don't want to spend ten minutes installing PowerPoint. On my slides, there is text, and there is a background. It's easy to do with Microsoft Word, or any other similar application.

To avoid the situation when Microsoft Office is not installed on the machine I'll use when showing the slides and to make things a bit more elegant, I convert Microsoft Word document into a PDF one, and set the options to start it in full screen mode, one page at a time.

The only problem is that if the screen ratio is not the same as the page size ratio I set, there will be a black border, which is ugly. Probably PowerPoint or similar applications can resolve this.

Techniques for code-centric presentations

The one major point: always use syntax highlighting. Just because it makes your code easier to read. Also, don't invent your own syntax highlighting. If you are showing C# code to Windows developers, int must be blue, and Int32 must be teal, because it's default Visual Studio scheme, used by most people. Yellow for int and green for Int32 on black screen may feel nice for you, but you're not doing the presentation for you, but for other people.

If I can give some advice, put more code then text. For a developer, it's boring to have a lot of text in code-centric presentation, especially when a speaker is talking about code. It's like for a biologist to talk about a newly discovered specie and to never show any image or photo of it.

It's also a bit boring to look at slides for two hours. If you can, do demos in live. Write code, or copy-paste code. Of course, if you do that, it requires a huge amount of preparation: completely failing a Hello World demo in front of hundreds of developers because of a stupid compile error you don't understand is not the prettiest thing to have.

Finally, watch how other developers are doing presentations. Microsoft PDC for example is a great event for this. I'm sure in non-Microsoft world, you can find lots of similar events too.

share|improve this answer
+1 for converting to pdf from MS office. Seriously, that's how everybody does it at my college, and I have not heard of any problems. –  apoorv020 Feb 26 '11 at 11:07
I hate presentations with a lot of text. The audience is there to listen to you, not to practice a group syncronous reading. If you really have to display the code snippets, strip them off from all the irrelevant stuff down to a form of a pseudocode, and use graphical means of emphasising your point - i.e., arrows, animation, etc. I've no idea how to do that in Word. Latex beamer + Tikz allows you to do just that, with absolutely no effort. –  SK-logic Feb 26 '11 at 12:54
add comment

The actually technology shouldn't really matter, but I'm partial to google docs presentations

Are you giving overviews or detailed how-to type presentations?

For overviews, remember to keep slides short and to the point. The content should come from what you say, and the slides should be limited visual cues/aids. (Key take aways/Charts/Graphs/etc.)

For the how-to stuff I rarely use slides. I make sure there is something to draw with (Easel/Whiteboard) and teach by example (ie: project your screen and narrate as you code).

share|improve this answer
add comment

1) i did create a online presentation page for my sharing yesterday:
steps are here: http://ru05team.blogspot.com/2011/02/using-jekyll-hyde-and-heroku-for.html

they are the ruby gems to generate the slides webpage, using markdown syntax.
convenient that you create once, and you can use it to present and share it after the event.
and i deployed them to heroku, free hosting.

2) for code centric presentation.
- quote your code with <pre><code>.
- or ... share your code snippet in github. and then include the gist into your presentation files.
they will present nicely and always available for people to google and see it.

share|improve this answer
sorry I missed one important reason why i used them and why i like web presence. i am writing ruby for my living and most of my apps are web app. and the program to generate the slides I mentioned is ruby gem. which added some reputation too. and i wanted to create once, and then it could be shared immediately to the public. so i chose this webpage solution. perhaps you have something similar in your favorite programming language ? –  3dd13 Feb 25 '11 at 19:55
here is the official site: jekyll and hyde github and a demo: presentation slides you dont need to write any code. you just need to type the content –  3dd13 Feb 25 '11 at 21:15
add comment

Consider writing a blog entry in a suitable blog engine and then simply print it to a PDF file using zoom and landscape mode.

Many blog engines support syntax coloring and images etc. Perhaps you could simply write a very lengthy Stackoverflow question and print it out :)

share|improve this answer
add comment

Not the answer you're looking for? Browse other questions tagged or ask your own question.