惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

K
Kaspersky official blog
小众软件
小众软件
Engineering at Meta
Engineering at Meta
博客园 - 三生石上(FineUI控件)
WordPress大学
WordPress大学
G
Google Developers Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Google DeepMind News
Google DeepMind News
Security Archives - TechRepublic
Security Archives - TechRepublic
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
C
Check Point Blog
aimingoo的专栏
aimingoo的专栏
罗磊的独立博客
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
MongoDB | Blog
MongoDB | Blog
L
LINUX DO - 热门话题
酷 壳 – CoolShell
酷 壳 – CoolShell
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
H
Help Net Security
Martin Fowler
Martin Fowler
G
GRAHAM CLULEY
Simon Willison's Weblog
Simon Willison's Weblog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
博客园 - Franky
V
Vulnerabilities – Threatpost
云风的 BLOG
云风的 BLOG
博客园_首页
C
Cybersecurity and Infrastructure Security Agency CISA
量子位
Stack Overflow Blog
Stack Overflow Blog
Recent Announcements
Recent Announcements
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
I
Intezer
Scott Helme
Scott Helme
A
About on SuperTechFans
博客园 - 司徒正美
Hacker News: Ask HN
Hacker News: Ask HN
The GitHub Blog
The GitHub Blog
Forbes - Security
Forbes - Security
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
博客园 - 聂微东
人人都是产品经理
人人都是产品经理
The Cloudflare Blog
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
Spread Privacy
Spread Privacy
T
Tailwind CSS Blog
S
Security Affairs
宝玉的分享
宝玉的分享

Minko Gechev's blog

skillgrade Unit Tests for AI Agent Skills You Should Care About AI Generative Development LLM-first Web Framework Reactive framework in ~200 lines of JavaScript Managing Angular Are LLMs going to replace us? Prefetching Heuristics Design Patterns in Open Source Projects - Part II Design Patterns in Open Source Projects - Part I Dynamic imports solve all the problems, right? 5 Angular CLI Features You Didn't Know About Angular quicklink Preloading Strategy Introducing Bazel Schematics for Angular CLI Building TypeScript Projects with Bazel Joining Google Playing Mortal Kombat with TensorFlow.js. Transfer learning and data augmentation Fast, extensible, configurable, and beautiful linter for Go Introducing Guess.js - a toolkit for enabling data-driven user-experiences on the Web Machine Learning-Driven Bundling. The Future of JavaScript Tooling. JavaScript Decorators for Declarative and Readable Code 3 Tricks For Using Redux and Immutable.js with TypeScript Follow Your Dream Career with Open Source. Personal Story. Redux Anti-Patterns - Part 1. State Management. Faster Angular Applications - Understanding Differs. Developing a Custom IterableDiffer Faster Angular Applications - Part 2. Pure Pipes, Pure Functions and Memoization Faster Angular Applications - Part 1. On Push Change Detection and Immutability Understanding Dynamic Scoping and TemplateRef Implementing a Simple Compiler on 25 Lines of JavaScript Developing Statically Typed Programming Language WebVR for a Gamified IDE 7 Angular Tools That You Should Consider Announcing ngrev - Reverse Engineering Tool for Angular Implementing Angular's Dependency Injection in React. Understanding Element Injectors. Distributing an Angular Library - The Brief Guide Angular in Production Ahead-of-Time Compilation in Angular 2.5X Smaller Angular 2 Applications with Google Closure Compiler Using Stripe with Angular (Deprecated) Building an Angular Application for Production Implementing the Missing "resolve" Feature of the Angular 2 Router Scalable Single-Page Application Architecture Managing ambient type definitions and dealing with the "Duplicate identifier" TypeScript error Static Code Analysis of Angular 2 and TypeScript Projects Enforcing Best Practices with Static Code Analysis of Angular 2 Projects ViewChildren and ContentChildren in Angular Dynamically Configuring the Angular's Router Angular 2 Hot Loader Lazy Loading of Route Components in Angular 2 Aspect-Oriented Programming in JavaScript Flux in Depth. Store and Network Communication. Using JSX with TypeScript Flux in Depth. Overview and Components. Even Faster AngularJS Data Structures Boost the Performance of an AngularJS Application Using Immutable Data - Part 2 Angular2 - First Impressions Build Your own Simplified AngularJS in 200 Lines of JavaScript Persistent State of ReactJS Component Boost the Performance of an AngularJS Application Using Immutable Data Processing Binary Protocols with Client-Side JavaScript Stream your Desktop to HTML5 Video Element Multi-User Video Conference with WebRTC Asynchronous calls with ES6 generators Binary Tree iterator with ES6 generators WebRTC chat with React.js AngularJS in Patterns (Part 3) AngularJS in Patterns (Part 2). Services. Using GitHub Pages with Jekyll! AngularJS in Patterns (Part 1). Overview of AngularJS Singleton in JavaScript Express over HTTPS What I get from the JavaScript MV* frameworks Remote Desktop Client with AngularJS and Yeoman The magic of $resource (or simply a client-side Active Record) AngularJS Inheritance Patterns AngularAOP v0.1.0 Advanced JavaScript at Sofia University AngularJS style guide Lazy prefetching of AngularJS partials VNC client on 200 lines of JavaScript Aspect-Oriented Programming with AngularJS CSS3 flipping effect Practical programming with JavaScript Why I should use publish/subscribe in JavaScript JavaScript, the weird parts Functional programming with JavaScript plainvm Looking for performance? Probably you should NOT use [].sort (V8) JavaScript image scaling ELang Caching CSS with localStorage Self-invoking functions in JavaScript (or Immediately Invoked Function Expressions) Asus N56VZ + Ubuntu 12.04 (en) Asus N56VZ + Ubuntu 12.04 Debian Squeeze + LXDE on Google Nexus S (or having some fun while suffering) HTML5 image editor Курсови проекти – ФМИ Carousel Gallery SofiaJS...
What I learned doing 125 public talks - Part I
2020-11-26 · via Minko Gechev's blog

Edit · Nov 26, 2020 · 4 minutes read · Follow @mgechev Public speaking

Over the past 7 years, I gave over 125+ talks for 20 countries in front of over 50,000+ people. By any means, this doesn’t make me an expert in public speaking, but I had the opportunity to learn a few things that I’d love to share.

I’ll spread the content between a couple of different posts covering everything from planning, preparing the talk, rehearsals, and presentation at the event. I’d not discuss research, but this phase will naturally produce artifacts for the planning process.

In this part, we’ll focus on the talk planning process.

Talk planning

Planning is a process which varied a lot for me over the past 7 years. Initially, when I had a less formal preparation, I did not have a planning phase, making things harder, less organized, and inefficient. Planning back then was a cross-cutting task that I was doing in parallel with the slide preparation.

Since I moved to a more organized structure that starts with planning, depending on my level of experience and familiarity with the topic, talk planning could take any time between 15 minutes to a week.

I’ve had only a few instances where I spent more than 30-60 minutes in planning, but this strongly depends on the essence of the topic, the story, and my confidence level. For example, before my first international conference - ng-vegas, where I flew from Sofia, Bulgaria to Las Vegas, USA, I spent over a week preparing an outline and double-checking the results of my research. After that, I spent at least 2 more weeks in rehearsals.

Picking the topic

I’m feeling very fortunate to speak about my passions. At the same time, some subjects are closer to my heart than others. In most cases, we have the flexibility to add personality to the presentation and make the topic exciting.

For example, I like finding interdependencies between web development and fundamental computer science concepts. The deep theoretical understanding helps me get more passionate about a topic and lets me get more in-depth knowledge on a fundamental level, and provide more complete examples.

Talk goal and outline

Giving a talk without specific goals could result in a confusing experience for the audience.

The goals I focus on are:

  1. What should the audience know after the talk?
  2. How should the audience feel after the talk?

Ideally, we should be able to express the first goal in a single sentence. Expanding it to a few bullet points will give us the individual parts of the presentation. More than 3-4 goals could make things complicated, so don’t be greedy :).

Once we have the goals, we can list a few non-goals. I find this necessary because it helps me be more focused.

As the next step, we can focus on the outline. I usually build the outline incrementally. Initially, it consists of just two bullet points:

  • Introduction
  • Thank you

These are the same for every talk, but having them in front of me gives me a sense of progress. Between the two bullet points, we can fill the blanks with the talk’s goals and make sure they logically follow each other.

Once we have 5-6 bullet points, we can start expanding them by adding nested subtopics. I usually continue this expansion process until I have a list of ~30-50 items. Later on, they map well to my slides or talking points.

Once I’ve finalized the outline, I sanity check if the structure makes logical sense. There are other opportunities to completely mess up the logical sequence of the ideas we introduce in the talk, but making sure the outline makes sense is an excellent first step.

Everything we described so far fits really well into a document with the following template:

Talk title

Talk abstract…

Goals:

  1. ...
  2. ...
  3. ...

Non-goals:

  1. ...
  2. ...

Outline:

  1. ...
  2. ...

  ...

  1. ...

For example, here, you can find the outline I wrote a few weeks ago for the talk “The State of Angular.”

Next, I think of ways to make the content more personal and engaging. Initially, I thought of this as a selfish approach when preparing a talk. I was exclusively focusing on technical content and facts with zero storytelling. Later on, I found that having a story could help with:

  • Being more passionate about the talk - this could completely change my energy while presenting
  • Higher audience engagement - people remember facts better when connected to familiar feelings or concepts. For example, talking about my personal story can help people relate to my experience, remember more content, and generally extract more value from the presentation
  • Non-technical content allows the audience to relax - it’s hard to listen to a 20-40 minute technical presentation about algorithms or web performance without losing focus. Having an engaging story every 5-10 minutes could help people be alert for the technical bits

At this point, I usually have a good understanding of the overall structure and a vague idea about stories that I can include in different parts of the talk.

The next step is to start putting slides together!