Beginner Talk 
=============

.. note:: This document was originally created by Michelle Rowley
    (@pythonchelle) for the PDX Python User Group. If you want to discus these ideas
    further, she would love to hear from you.

Thanks for being willing to do a beginner talk! Here are some guidelines that
you may find helpful as you prepare your talk. They’re not rules by any means,
but intended to guide the framing of your message and presentation.

Goals of Beginner Talks 
-----------------------

* Create a place for beginners in the group. 
* Make beginners feel comfortable being at the presentation meeting.  
* Share a little bit of new knowledge with beginners.

Giving a beginner talk at PDX Python is very different from giving an
intermediate or advanced talk. The intended audience of an intermediate or
advanced Python talk already knows quite a bit of Python. This allows them to
feel like they belong in the room. Beginners who come to the presentation
meetings are likely to feel extremely intimidated and uncomfortable (if we can
get them to come at all). Tech meetups are a unique creature, unfamiliar to new
programmers coming from non-CS backgrounds.

The most important goal of a beginner talk, therefore, is to make the newbies in
the room feel like they are welcome. Unlike intermediate or advanced talks, in
which the unique goal is to pass on chunks of knowledge, beginner talks pass on
some information as a secondary goal. In these talks the sharing of information
is the tool by which we make beginners feel comfortable.

Content + Delivery 
------------------

Since the main goal is to welcome and encourage beginners, the tone of the talk
will be different. Rather than striving to be as technical as possible, the
content should be made very plain with real-world examples to clarify core
concepts. In some cases, the content may not be code-related at all. For
example, a great beginner talk could focus on the extremely basic fundamentals
of the inner workings of a web application, showing exactly where in the process
a web programmer would be writing code.

Be careful to think about the various pieces that a newbie might not know,
including all the information necessary to understand the concepts. Assumptions
of prior knowledge can leave beginners confused and disheartened. They'll be
much more encouraged if you tell them something they already know than if you
skip pieces they don't know!

Some things that are normally interesting during intermediate and advanced talks
become inappropriate for beginner talks. Nothing alienates beginners more than
terminology they haven't heard or don't understand. Questions may be posed by
more experienced members that attempt to take the content to a deeper or more
technical level. This shifts the focus of the talk to the old-hat audience,
something that should be avoided at all cost. These questions should be politely
deferred as they do not support the goal of the talk: to make beginners feel
comfortable and welcome.

It's very important when giving a beginner tech talk not to be condescending or
seeming to "talk down" to the intended audience. Have the patience of a saint
with any questions, no matter how simple they are. Take the time to explain and
to check for understanding in a friendly way. If they don't understand, we
haven't taught them well enough. Feel free to try explaining it again. There are
no time constraints on beginner talks.

Thank You, Awesome Ambassador 
-----------------------------

Beginners are precious resources with whom we've got to be careful and gentle.
The appreciation you'll get back from a well-treated newbie who gains
understanding from what you share is an unbeatable reward. You’re also helping
to diversify and grow the Python community, which will make it better for
everyone. Good luck + have fun. :)

