Slide 1

Slide 1 text

Courage to create a career in Mobile Development @magdamiu IWD2021

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

@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

Slide 5

Slide 5 text

@magdamiu OOP 01

Slide 6

Slide 6 text

@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

Slide 7

Slide 7 text

@magdamiu Design Patterns

Slide 8

Slide 8 text

@magdamiu Kotlin 02

Slide 9

Slide 9 text

@magdamiu

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

12 Kotlin is about developer’s happiness and productivity

Slide 13

Slide 13 text

@magdamiu Clean Code 03

Slide 14

Slide 14 text

@magdamiu

Slide 15

Slide 15 text

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

Slide 16

Slide 16 text

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

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

@magdamiu Android Jetpack 04

Slide 19

Slide 19 text

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

Slide 20

Slide 20 text

@magdamiu Tools for Android Development CI/CD Pipeline

Slide 21

Slide 21 text

@magdamiu Learning Plan 05

Slide 22

Slide 22 text

@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

Slide 23

Slide 23 text

@magdamiu Step 1 SWOT Where I am now

Slide 24

Slide 24 text

@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

Slide 25

Slide 25 text

@magdamiu Step 2 OKRs What I want to achieve

Slide 26

Slide 26 text

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

Slide 27

Slide 27 text

@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

Slide 28

Slide 28 text

@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

Slide 29

Slide 29 text

@magdamiu Step 3 Review What I achieved

Slide 30

Slide 30 text

@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

Slide 31

Slide 31 text

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

Slide 32

Slide 32 text

@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

Slide 33

Slide 33 text

@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

Slide 34

Slide 34 text

@magdamiu Learn more...

Slide 35

Slide 35 text

@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

Slide 36

Slide 36 text

@magdamiu magdamiu.com Thank you