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

Courage to create a career in Mobile Development

Courage to create a career in Mobile Development

My personal journey and some of the lessons I learned along the way. I emphasize best practices in building Android apps, Kotlin's advantages, writing Clean Code, and creating an achievable learning plan.

Magda Miu

April 24, 2021
Tweet

More Decks by Magda Miu

Other Decks in Programming

Transcript

  1. Courage to create
    a career in Mobile
    Development
    @magdamiu
    IWD2021

    View Slide

  2. @magdamiu
    01
    OOP Kotlin
    02
    Clean Code
    03
    Android
    Jetpack
    04 05
    Learning
    Plan

    View Slide

  3. @magdamiu
    About me
    ● Squad Leader Developer @YOXO
    ● Android Google Developers Expert
    ● Trainer & Speaker
    ● Co-organiser GDG Pitesti & WTM Bucharest

    View Slide

  4. @magdamiu
    Employment history
    Web Developer
    Aug 2010 - Oct 2010
    Android Developer
    Nov 2010 - Aug 2015
    Android Technical Lead
    Sept 2015 - Dec 2019
    Squad Lead Developer
    Jan 2019 - Present
    GDE Android
    Feb 2019 - Present

    View Slide

  5. @magdamiu
    OOP
    01

    View Slide

  6. @magdamiu
    ● DRY - Don’t Repeat Yourself
    ○ Applicable whenever we copy / paste a piece of code
    ● KISS - Keep It Simple and Stupid
    ○ Whenever we want to implement a method to do all things
    ● YAGNI - You Ain’t Gonna Need It
    ○ Don’t write code which is not yet necessary
    ● SOLID
    ○ Single responsibility (SRP)
    ○ Open-closed (OCP)
    ○ Liskov substitution (LSP)
    ○ Interface segregation (ISP)
    ○ Dependency inversion (DIP)
    Design Principles

    View Slide

  7. @magdamiu
    Design Patterns

    View Slide

  8. @magdamiu
    Kotlin
    02

    View Slide

  9. @magdamiu

    View Slide

  10. @magdamiu
    ● General-purpose
    ● FP + OOP
    ● Open source (Apache 2.0)
    ● Developed by JetBrains
    ● Static typing
    What is Kotlin?

    View Slide

  11. @magdamiu
    *.kt
    *.java
    Kotlin
    compiler
    Java
    compiler
    *.class *.jar
    App
    Kotlin
    runtime
    Kotlin is 100% interoperable with Java

    View Slide

  12. 12
    Kotlin is about
    developer’s happiness
    and productivity

    View Slide

  13. @magdamiu
    Clean Code
    03

    View Slide

  14. @magdamiu

    View Slide

  15. The boy
    scout rule
    Leave the campground cleaner
    than you found it.

    View Slide

  16. @magdamiu
    System
    System
    Command Query
    Output
    System
    Changed state
    Output (result)
    Changed state
    Output (result)
    Command Query Separation

    View Slide

  17. Every time you write a comment,
    a cat cries somewhere...

    View Slide

  18. @magdamiu
    Android
    Jetpack
    04

    View Slide

  19. @magdamiu
    Android Jetpack
    UI
    Jetpack Compose
    Foundation
    AndroidX, Android KTX
    Architecture
    LiveData, ViewModel,
    Lifecycle, Room,
    Navigation, Paging, Hilt
    Behaviour
    Slices, Security,
    Permissions

    View Slide

  20. @magdamiu
    Tools for Android Development
    CI/CD Pipeline

    View Slide

  21. @magdamiu
    Learning
    Plan
    05

    View Slide

  22. @magdamiu
    The “process”
    SWOT
    Where I am now
    Retro
    How it was and
    what’s next
    OKRs
    What I want to
    achieve
    Review
    What I achieved
    01 02
    04 03

    View Slide

  23. @magdamiu
    Step 1
    SWOT
    Where I am now

    View Slide

  24. @magdamiu
    Personal
    SWOT
    Analysis
    Strengths
    Advantages like: skills,
    achievements, certifications,
    education, connections
    Weaknesses
    Skills that should be improved
    (technical or work habits)
    Opportunities
    Events, conferences, new
    role/project, industry growing
    Threats
    Impediments at work, changes,
    weaknesses lead to threats
    S
    O
    W
    T
    Here you can
    evaluate your
    profile

    View Slide

  25. @magdamiu
    Step 2
    OKRs
    What I want to
    achieve

    View Slide

  26. @magdamiu
    OKRs (Objectives and Key Results)
    OKR 1 OKR 2
    Key Result 1 Key Result 2 Key Result 1 Key Result 2

    View Slide

  27. @magdamiu
    Superpower
    Focus and commit
    to priorities
    Superpower
    Align and connect
    with your goals
    Superpower
    Track for
    accountability
    1 2 3
    OKRs superpowers
    4
    Superpower
    Stretch for amazing

    View Slide

  28. @magdamiu
    OKR sample
    Learn Kotlin for Android Development
    6 months / weekly review
    Quantity Goal Quality Goal Result
    1 Kotlin Koan per week Learn specific features of the
    language => 1 feature / week
    Exercise often and on a set of
    Koans proposed by JetBrains
    Write one detailed article
    about a specific topic per
    month
    Improve my writing skills and
    learn by teaching to others
    Learn new things, help the
    community and get feedback
    3 code samples runned per
    week
    Get a repo with samples that
    I can re-check (use ktlint)
    Gain real experience in
    programming using Kotlin

    View Slide

  29. @magdamiu
    Step 3
    Review
    What I achieved

    View Slide

  30. @magdamiu
    ● Score your results
    ● Keep notes of your accomplishments
    ● Look for feedback because development is continuous
    ● Surround yourself with people who motivate and inspire you
    ● Find a mentor
    Review process

    View Slide

  31. @magdamiu
    Step 4
    Retrospective
    How it was and
    what’s next

    View Slide

  32. @magdamiu
    ● Did I accomplish all of my objectives?
    ○ YES => what contributed to my success?
    ○ NO => what obstacles did I encounter?
    ● Understand what is your WHY
    ● Repeat the process
    Retrospective

    View Slide

  33. @magdamiu
    How to stay up to date
    📃Official Documentation from Google
    🌐Blogs and Websites
    💻Code Examples (Codelabs & GitHub)
    📰Newsletters
    📚Books & Online Courses
    🎞Videos & Youtube Channels
    📻Podcasts
    󰞵󰠁Twitter
    🎤Conferences & Meetups
    🚨Troubleshooting

    View Slide

  34. @magdamiu
    Learn more...

    View Slide

  35. @magdamiu
    What Guides Me
    ● Set objectives and track the progress
    ● Focus on your strengths
    ● The best gift is confidence
    ● Find a mentor to boost your career
    ● Learn to say NO
    ● Good enough is better than perfect
    ● If it’s difficult, take a break, and start over
    Lessons
    Learned

    View Slide

  36. @magdamiu
    magdamiu.com
    Thank
    you

    View Slide