Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to do a Handstand - Droidcon Boston 2018 Keynote

How to do a Handstand - Droidcon Boston 2018 Keynote

Droidcon Boston - March, 26, 2018

Sam Edwards

March 26, 2018
Tweet

More Decks by Sam Edwards

Other Decks in Programming

Transcript

  1. H O W T O D O A H A N D S TA N D
    Sam Edwards
    Capital One
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  2. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  3. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  4. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  5. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G N E W T H I N G S

    View full-size slide

  6. @HandstandSam
    HandstandSam.com
    5 6 7 H A N D S TA N D S
    ( S O FA R )
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  7. H A N D S TA N D S A M . O N A M A P. N E T
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  8. 1 0 C O U N T R I E S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  9. 4 6 U S S TAT E S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  10. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  11. 4 8 0 0 F T
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  12. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  13. @ H A N D S TA N D S A M # D R O I D C O N B O S
    H O W T O D O A H A N D S TA N D

    View full-size slide

  14. @ H A N D S TA N D S A M # D R O I D C O N B O S
    E S TA B L I S H A S A F E
    E N V I R O N M E N T

    View full-size slide

  15. @ H A N D S TA N D S A M # D R O I D C O N B O S
    E X C E P T I O N H A N D L I N G
    try {

    // Handstand

    } catch (e: HandstandException) {

    // You can do it!

    }

    View full-size slide

  16. @ H A N D S TA N D S A M # D R O I D C O N B O S
    • throw BalanceException()
    • throw VelocityException()
    F O R M E X C E P T I O N S

    View full-size slide

  17. @ H A N D S TA N D S A M # D R O I D C O N B O S
    M E N TA L E X C E P T I O N S
    • throw UnconfidentException()
    • throw EmbarrassedException()

    View full-size slide

  18. @ H A N D S TA N D S A M # D R O I D C O N B O S
    E N V I R O N M E N TA L E X C E P T I O N S
    • throw UnevenSurfaceException()
    • throw KickInTheFaceException()
    • throw FellOffACliffException()

    View full-size slide

  19. @ H A N D S TA N D S A M # D R O I D C O N B O S
    F I R S T T I M E Y O U T RY A N Y T H I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  20. @ H A N D S TA N D S A M # D R O I D C O N B O S
    F I R S T T I M E Y O U T RY A N Y T H I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  21. @ H A N D S TA N D S A M # D R O I D C O N B O S
    F I R S T T I M E Y O U T RY A N Y T H I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  22. @ H A N D S TA N D S A M # D R O I D C O N B O S
    FA I L G R A C E F U L LY
    try {
    // Handstand
    } catch (e: UnevenSurfaceException) {
    } catch (e: FellOffACliffException) {
    } catch (e: KickInTheFaceException) {
    } catch (e: UnconfidentException) {
    } catch (e: EmbarrassedException) {
    } catch (e: BalanceException) {
    } catch (e: VelocityException) {
    } catch (me: HandstandException) {
    // Log Exception and Exit Gracefully
    }

    View full-size slide

  23. @ H A N D S TA N D S A M # D R O I D C O N B O S
    FA I L G R A C E F U L LY
    try {
    // Handstand
    } catch (e: UnevenSurfaceException) {
    } catch (e: FellOffACliffException) {
    } catch (e: KickInTheFaceException) {
    } catch (e: UnconfidentException) {
    } catch (e: EmbarrassedException) {
    } catch (e: BalanceException) {
    } catch (e: VelocityException) {
    } catch (me: HandstandException) {
    // Log Exception and Exit Gracefully
    }
    catch me:

    View full-size slide

  24. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  25. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  26. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  27. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  28. S A M P L E P R O J E C T S C R E AT E S A F E T Y
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  29. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E T ’ S D O A H A N D S TA N D !

    View full-size slide

  30. @ H A N D S TA N D S A M # D R O I D C O N B O S
    S TA RT S M A L L A N D G A I N C O N F I D E N C E
    • Stretch Wrists, Arms & Legs
    • Push-up
    • Kick-ups
    • Against a Wall
    • Freestanding Handstand

    View full-size slide

  31. @ H A N D S TA N D S A M # D R O I D C O N B O S
    F R E E S TA N D I N G H A N D S TA N D I N 4 S T E P S
    Lunge Kick Up Balance Land

    View full-size slide

  32. @ H A N D S TA N D S A M # D R O I D C O N B O S
    V I S U A L I Z E S U C C E S S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  33. @ H A N D S TA N D S A M # D R O I D C O N B O S
    V I S U A L I Z E S U C C E S S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  34. @ H A N D S TA N D S A M # D R O I D C O N B O S
    V I S U A L I Z E S U C C E S S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  35. @ H A N D S TA N D S A M # D R O I D C O N B O S
    V I S U A L I Z E S U C C E S S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  36. @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  37. @ H A N D S TA N D S A M # D R O I D C O N B O S
    C R U S H E D I T !
    H O P E F U L LY ? L I V E D E M O S …

    View full-size slide

  38. N O
    Does my experience
    equate to expertise?
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  39. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  40. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  41. A B S O L U T E LY
    Do I have knowledge that I
    can share which will be beneficial?
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  42. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  43. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  44. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  45. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  46. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  47. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  48. @ H A N D S TA N D S A M # D R O I D C O N B O S
    Source: http://adavis.info/2017/10/talk-rxjava-in-baby-steps.html

    View full-size slide

  49. @ H A N D S TA N D S A M # D R O I D C O N B O S
    S H A R E Y O U R K N O W L E D G E & E X P E R I E N C E S
    Source: https://academy.realm.io/posts/droidcon-boston-chiu-ki-chan-how-to-be-an-android-expert/

    View full-size slide

  50. @ H A N D S TA N D S A M # D R O I D C O N B O S
    G I V I N G W I T H O U T E X P E C TAT I O N
    51% 49% Selfish
    Giving
    Source: https://www.garyvaynerchuk.com/giving-without-expectation/

    View full-size slide

  51. @ H A N D S TA N D S A M # D R O I D C O N B O S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  52. @ H A N D S TA N D S A M # D R O I D C O N B O S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  53. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E H U M B L E
    B E PAT I E N T
    E V E RY O N E I S A S T U D E N T
    N O O N E K N O W S E V E RY T H I N G
    W H E N T E A C H I N G …

    View full-size slide

  54. @ H A N D S TA N D S A M # D R O I D C O N B O S
    T H E W O R L D M O V E S FA S T

    View full-size slide

  55. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G TA K E S T I M E

    View full-size slide

  56. @ H A N D S TA N D S A M # D R O I D C O N B O S
    Y O U R T I M E I S F I N I T E

    View full-size slide

  57. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G N E W T H I N G S
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  58. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G N E W T H I N G S
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    Code Optimization
    Proguard
    Android Things
    SSL and Network Security
    Data Binding & MVVM
    Google Assistant
    Coding Patterns
    Reactive Architecture
    AR Core
    Flux
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  59. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G N E W T H I N G S
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    Code Optimization
    Proguard
    Android Things
    SSL and Network Security
    Data Binding & MVVM
    Google Assistant
    Coding Patterns
    Reactive Architecture
    AR Core
    Flux
    Instant Apps
    Firebase
    MVI
    Handling Emojis
    Audio
    Kotlin Coroutines
    RxJava
    SVGs
    Continuous Integration
    Code Reviews
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  60. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G N E W T H I N G S
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    Code Optimization
    Proguard
    Android Things
    SSL and Network Security
    Data Binding & MVVM
    Google Assistant
    Coding Patterns
    Reactive Architecture
    AR Core
    Flux
    Instant Apps
    Firebase
    MVI
    Handling Emojis
    Audio
    Kotlin Coroutines
    RxJava
    SVGs
    Continuous Integration
    Code Reviews
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  61. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E C U R I O U S
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    Code Optimization
    Proguard
    Android Things
    SSL and Network Security
    Data Binding & MVVM
    Google Assistant
    Coding Patterns
    Reactive Architecture
    AR Core
    Flux
    Instant Apps
    Firebase
    MVI
    Handling Emojis
    Audio
    Kotlin Coroutines
    RxJava
    SVGs
    Continuous Integration
    Code Reviews
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  62. @ H A N D S TA N D S A M # D R O I D C O N B O S
    G O D E E P
    Building Android Libraries
    Gradle + Multi-Module Projects
    Signing Applications Securely
    Background Processing
    Kotlin
    API Design
    Cloud Firestore
    TensorFlow
    Java to Kotlin Conversion
    ConstraintLayout
    Code Optimization
    Proguard
    Android Things
    SSL and Network Security
    Data Binding & MVVM
    Google Assistant
    Coding Patterns
    Reactive Architecture
    AR Core
    Flux
    Instant Apps
    Firebase
    MVI
    Handling Emojis
    Audio
    Kotlin Coroutines
    RxJava
    SVGs
    Continuous Integration
    Code Reviews
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  63. @ H A N D S TA N D S A M # D R O I D C O N B O S
    G O D E E P
    Kotlin
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  64. @ H A N D S TA N D S A M # D R O I D C O N B O S
    D O E S N ’ T H AV E T O B E C O D E
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  65. H O W D E E P ?
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  66. @ H A N D S TA N D S A M # D R O I D C O N B O S
    N O T E V E RY O N E C O D E S 2 4 / 7
    A N D T H AT ’ S

    View full-size slide

  67. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B R A I N “ F I T N E S S ”

    View full-size slide

  68. @ H A N D S TA N D S A M # D R O I D C O N B O S
    K E E P L E A R N I N G

    View full-size slide

  69. M O T I VAT I O N S F O R
    L E A R N I N G
    • Job
    • Fun
    • Coolness
    • Creditability
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  70. @ H A N D S TA N D S A M # D R O I D C O N B O S
    L E A R N I N G C Y C L E
    TRY
    LEARN

    View full-size slide

  71. L E A R N B Y D O I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  72. L E A R N B Y M A K I N G M I S TA K E S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  73. @ H A N D S TA N D S A M # D R O I D C O N B O S
    H O W D O Y O U L E A R N B E S T ?

    View full-size slide

  74. @ H A N D S TA N D S A M # D R O I D C O N B O S
    1. S T R U C T U R E D C L A S S E S
    2. R E V E R S E E N G I N E E R I N G
    3. PA I R P R O G R A M M I N G
    4. M E N T O R S H I P
    T Y P E S O F L E A R N I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  75. @ H A N D S TA N D S A M # D R O I D C O N B O S
    1 . S T R U C T U R E D C L A S S E S
    • Establish Fundamentals
    • Build on Knowledge

    View full-size slide

  76. 2 . R E V E R S E
    E N G I N E E R I N G
    • Observe
    • Breaking Into Pieces
    • Understand Each Piece
    • Understand The Whole
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  77. @ H A N D S TA N D S A M # D R O I D C O N B O S
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  78. R E V E R S E E N G I N E E R I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S
    Land
    Balance
    Kick Up
    Visualize

    View full-size slide

  79. 3 . PA I R
    P R O G R A M M I N G
    • Learn from a Peer
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  80. 4 . M E N T O R S H I P
    • Be Guided by an Expert
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  81. @ H A N D S TA N D S A M # D R O I D C O N B O S
    C O M B I N E L E A R N I N G M E T H O D S

    View full-size slide

  82. @ H A N D S TA N D S A M # D R O I D C O N B O S
    S L E E P F O R B E S T R E S U LT S
    • Creates Mental Connections
    • Action Become Subconscious

    View full-size slide

  83. @ H A N D S TA N D S A M # D R O I D C O N B O S
    G O T O S L E E P, S E R I O U S LY

    View full-size slide

  84. @ H A N D S TA N D S A M # D R O I D C O N B O S
    P U T T I N G I T A L L T O G E T H E R

    View full-size slide

  85. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT
    E V E RY O N E I S A S T U D E N T

    View full-size slide

  86. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B E G I N N E R E X P E RT

    View full-size slide

  87. @ H A N D S TA N D S A M # D R O I D C O N B O S
    B R A I N “ F I T N E S S ”
    TRY
    LEARN

    View full-size slide

  88. B E C U R I O U S
    • Conferences
    • Videos
    • Newsletters & Blogs
    • Twitter
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  89. @ H A N D S TA N D S A M # D R O I D C O N B O S
    S A F E L E A R N I N G E N V I R O N M E N T
    try {

    // Handstand

    } catch (e: HandstandException) {

    // You can do it!

    }

    View full-size slide

  90. N O T H I N G W O RT H W H I L E I S E A S Y
    P E R S I S T
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  91. F I N D T H E T I M E
    • Learn at Work?
    • Learn on Personal Time?
    • Combination == Profit
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  92. H AV E F U N
    H AV E F U N
    K E E P L E A R N I N G
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide

  93. @ H A N D S TA N D S A M # D R O I D C O N B O S
    A N D L A S T LY…

    View full-size slide

  94. @ H A N D S TA N D S A M # D R O I D C O N B O S
    D O N ’ T T RY T H I S AT H O M E

    View full-size slide

  95. T H A N K S !
    @ H A N D S TA N D S A M # D R O I D C O N B O S

    View full-size slide