technical speaking 101

108
Technical Speaking 101 @KellyShuster

Upload: kellyshuster

Post on 08-Feb-2017

133 views

Category:

Software


0 download

TRANSCRIPT

Technical Speaking101

@KellyShuster

@KellyShuster

Why should you do it?

The myth of “I have nothing to say”

Your first local talk

Creating a great talk

Applying to conferences

Your first conference talk

Why should you do it?

The Myth of“I have nothing to say”

@FMuntenescu

Joining upday, where MVVM is common knowledge made me feel like I’m the last Android developer in the world that learns about it but as it turns out, it’s not at all the case.

- Florina Muntenescu

@FMuntenescu

@brwngrldev

I work full-time as an Android Developer, so every day I'm solving technical challenges.

- Annyce Davis@brwngrldev

Your first local talk

Outline

Local Meetups

Local meetups

www.meetup.com

Local meetups

www.meetup.com

Google “Denver Meetup Javascript”

Local meetups

www.meetup.com

Google “Denver Meetup Javascript”

Colorado Tech Weekly

Local meetups

www.meetup.com

Google “Denver Meetup Javascript”

Colorado Tech Weekly

Reach out to organizer

Local meetups

www.meetup.com

Google “Denver Meetup Javascript”

Colorado Tech Weekly

Reach out to organizer

Share your abstract

Creating a great talk

Give yourself time!!!!!!!!!!!!!!!

(1) Content(2) Delivery

Content

Expand on your outline

Content

Expand on your outline

Sample code: snippets or repo?

Content

Expand on your outline

Sample code: snippets or repo?

Pick a tool:Google SlidesPower PointKeynotePreziSlides.com

Content

Short slides

Content

Short slides

Staged bullets

Content

Short slides

Staged bullets

Concise Code

Content

Short slides

Staged bullets

Concise Code

Speaker notes

Content

Short slides

Staged bullets

Concise Code

Speaker notes

Legible > “Pretty”

Content

Short slides

Staged bullets

Concise Code

Speaker notes

Legible > “Pretty”

Presentation mode

Presenting code

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote name="github" fetch="https://github.com" /> <default revision="master" remote="github" /> <project name="KioKrofovitch/dependency-sample-library" remote="github" path="dependency-sample-library"/><project name="KioKrofovitch/dependency-sample" remote="github" revision="04-repo-tool" path="dependency-sample"/></manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... />

<default ... />

<project ... /></manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote name="github" fetch="https://github.com" />

<default ... />

<project ... /> <project ... />

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... />

<default revision="master" remote="github" />

<project ... />

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample"

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample" remote="github"

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample" remote="github" revision="04-repo-tool"

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample" remote="github" revision="04-repo-tool" path="dependency-sample"/>

</manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample" remote="github" revision="04-repo-tool" path="dependency-sample"/> <project name="KioKrofovitch/dependency-sample-library" remote="github" path="dependency-sample-library"/></manifest>

default.xml<?xml version="1.0" encoding="UTF-8"?><manifest> <remote ... /> <default ... /> <project name="KioKrofovitch/dependency-sample" remote="github" revision="04-repo-tool" path="dependency-sample"/> <project name="KioKrofovitch/dependency-sample-library" remote="github" path="dependency-sample-library"/></manifest>

Delivery

Don’t memorize a script

Delivery

Don’t memorize a script

Give the talk to yourself out loud

Delivery

Don’t memorize a script

Give the talk to yourself out loud

TIME IT

Delivery

Don’t memorize a script

Give the talk to yourself out loud

TIME IT

Break up talk into blocks

Delivery

Don’t memorize a script

Give the talk to yourself out loud

TIME IT

Break up talk into blocks

Meetup talks are 30-45 min.

Delivery

Give the talk you promised

Delivery

Give the talk you promised

Practice in front of other people

Roommates / Work Lunch & Learn

Delivery

Give the talk you promised

Practice in front of other people

Roommates / Work Lunch & Learn

“Study for the test”

Questions

Your audience is there to learn

Questions

Your audience is there to learn

Think of ‘holes’ in your talk

Prep quick answers

Questions

Your audience is there to learn

Think of ‘holes’ in your talk

Prep quick answers

It’s ok if you don’t know…

I’m not sure what the upper limit is,

but I’ve been able to use up to 1,000

requests in a day for free.

I’ve never used that before but it

sounds interesting, let’s chat about it

after my session.

I’ll be taking questions at the end of

the talk.

That’s really interesting, but I have a

lot more to cover. Let’s chat about it

offline.

First talk complete!

Applying to Conferences

Finding Conferences

Finding Conferences

Callback [email protected]

Finding Conferences

Callback [email protected]

Technically speaking [email protected]

Finding Conferences

Callback [email protected]

Technically speaking [email protected]

Ask at meetups

Finding Conferences

Callback [email protected]

Technically speaking [email protected]

Ask at meetups

Google <language> conference in <location>

Finding Conferences

Callback [email protected]

Technically speaking [email protected]

Ask at meetups

Google <language> conference in <location>

“Tangential” conferences

What do conferences expect?

CFP

Look out for “Call for Proposals”

CFP

Look out for “Call for Proposals”

CFP = abstract + bio

CFP

Look out for “Call for Proposals”

CFP = abstract + bio

CFP closes ~1-2 months before conference

CFP

Look out for “Call for Proposals”

CFP = abstract + bio

CFP closes ~1-2 months before conference

Maintain a list of conferences

Increase your odds

Beginner talks

Increase your odds

Beginner talks

Very new but not yet trending

Increase your odds

Beginner talks

Very new but not yet trending

Important but not widely discussed

Increase your odds

Beginner talks

Very new but not yet trending

Important but not widely discussed

Tangential conferences

Increase your odds

Beginner talks

Very new but not yet trending

Important but not widely discussed

Tangential conferences

Submit early

Abstract

Here is a problem you face

I will teach you a set of solutions

Bluetooth Low Energy was announced for Android 4.3 (Jelly Bean MR2, API level 18) and the API has received some updates with each new version since then. Unfortunately, the way the API works and the number of undocumented "features" in the Bluetooth stack on Android has made it very difficult to work with. Regardless if you're doing something simple like scanning for beacons or doing two-way communication with another device, you're bound to run into problems that can be both hard to identify and difficult to fix.

In this session you will explore the most common pitfalls with Bluetooth LE on Android and how to deal with them. You'll learn how to properly scan for devices, connect to them, and exchange data. An introduction to Bluetooth LE concepts, such as GATT, services, characteristics and descriptors will also be included. After this session, you'll be better prepared to implement Bluetooth LE in your own applications.

Practical Bluetooth LE on AndroidErik Hellman

Bio

Your first conference talk

Financing

Confirm your conference admission is covered

Financing

Confirm your conference admission is covered

Ask conference if they sponsor travelAirfareHotelStipend

Financing

Ask employer if they will cover costPresent clear metrics for why they should

Financing

Ask employer if they will cover costPresent clear metrics for why they should

Self fundedHostelSingle room AirBnbStay further away

Financing

Ask employer if they will cover costPresent clear metrics for why they should

Self fundedHostelSingle room AirBnbStay further away

Saying no

How is it different from a meetup?

The stakes are higher

Higher stakes

People paid to attend

Higher stakes

People paid to attend

Larger potential audience

Higher stakes

People paid to attend

Larger potential audience

Networking w/ other speakers

Higher stakes

People paid to attend

Larger potential audience

Networking w/ other speakers

Different from attending conference

Higher stakes

Less setup timePodium checklist

Higher stakes

Less setup timePodium checklist

Timing is more importantBlocks of time

Higher stakes

Less setup timePodium checklist

Timing is more importantBlocks of time

Audio / Visual component is ramped upMicLightsVideo

Higher stakes

Less setup timePodium checklist

Timing is more importantBlocks of time

Audio / Visual component is ramped upMicLightsVideo

Prepare for every disaster

After your talk

Talk with attendees

After your talk

Talk with attendees

Be courteous of next speaker

After your talk

Talk with attendees

Be courteous of next speaker

Tweet thanks, links to slides & sample code

After your talk

Talk with attendees

Be courteous of next speaker

Tweet thanks, links to slides & sample code

Enjoy yourself!

Thank you!

@KellyShuster

ResourcesTech Talks by Florina Muntenescuhttps://medium.com/upday-devs/tech-talks-you-do-have-something-to-say-a1a0ae23fa0#.49nx1ai2q

Conference Speaking by Annyce Davishttp://www.adavis.info/2016/12/conference-speaking-one-year-later.html

How to Become an Android Expert by Chiu-Ki Chanhttps://www.youtube.com/watch?v=IMSY1uH4nT8

Colorado Tech Weeklyhttp://scottpantall.com/category/coloradotechweekly/

As your app code gets larger and more complex, it makes sense to break your project out into smaller reusable components. But what’s the best way to do this? How can you clearly version your internal libraries? What kind of setup and maintenance can you expect? How much could it slow down development time?

In this talk we’ll dive into the various ways you can manage internal library dependencies. We’ll chat about the current state of Android dependency management, Gradle multi-project builds, Git submodules, and creating a private maven repository in Artifactory. The speaker will share real-world examples, and the pros and cons of each approach.

Internal Library Dependency ManagementKelly Shuster

The new ConstraintLayout is not just a new component but a new method of building UI in Android. Coupled with the new and improved layout tools in Android Studio, the ConstraintLayout looks to provide developers with flexibility, adaptability, and efficiency, both in the layouts themselves and in the development process.

During this session you will explore these new tools for building complex and efficient layouts. Huyen will go through an example of using the new Layout Editor in conjunction with the ConstraintLayout, you will learn how to use the Layout Inspector to analyze view hierarchies, discuss when to use the ConstraintLayout, and explore good practices and current caveats.

A New View: Layout Editor + Constraint LayoutHuyen Tue Dao

CreditsPikachu with Fanhttp://giphy.com/gifs/pokemon-celebration-pikachu-11NlXRhFSZl4w8

Pokemon celebratinghttp://mashable.com/2013/10/12/pokemon-friendship-gifs/#.AU4yllD1OqJ

High Fivehttp://giphy.com/gifs/pokemon-friendship-high-five-10LKovKon8DENq