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

  2. @magdamiu 01 OOP Kotlin 02 Clean Code 03 Android Jetpack

    04 05 Learning Plan
  3. @magdamiu About me • Squad Leader Developer @YOXO • Android

    Google Developers Expert • Trainer & Speaker • Co-organiser GDG Pitesti & WTM Bucharest
  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
  5. @magdamiu OOP 01

  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
  7. @magdamiu Design Patterns

  8. @magdamiu Kotlin 02

  9. @magdamiu

  10. @magdamiu • General-purpose • FP + OOP • Open source

    (Apache 2.0) • Developed by JetBrains • Static typing What is Kotlin?
  11. @magdamiu *.kt *.java Kotlin compiler Java compiler *.class *.jar App

    Kotlin runtime Kotlin is 100% interoperable with Java
  12. 12 Kotlin is about developer’s happiness and productivity

  13. @magdamiu Clean Code 03

  14. @magdamiu

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

    found it.
  16. @magdamiu System System Command Query Output System Changed state Output

    (result) Changed state Output (result) Command Query Separation
  17. Every time you write a comment, a cat cries somewhere...

  18. @magdamiu Android Jetpack 04

  19. @magdamiu Android Jetpack UI Jetpack Compose Foundation AndroidX, Android KTX

    Architecture LiveData, ViewModel, Lifecycle, Room, Navigation, Paging, Hilt Behaviour Slices, Security, Permissions
  20. @magdamiu Tools for Android Development CI/CD Pipeline

  21. @magdamiu Learning Plan 05

  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
  23. @magdamiu Step 1 SWOT Where I am now

  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
  25. @magdamiu Step 2 OKRs What I want to achieve

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

    Key Result 1 Key Result 2 Key Result 1 Key Result 2
  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
  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
  29. @magdamiu Step 3 Review What I achieved

  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
  31. @magdamiu Step 4 Retrospective How it was and what’s next

  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
  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
  34. @magdamiu Learn more...

  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
  36. @magdamiu magdamiu.com Thank you