อยากเป็น Android Developer ต้องเรียนและรู้อะไรบ้าง

Android Nov 6, 2020

มีน้องๆมาตั้งกระทู้ถามในกลุ่ม Thailand Android Developer และเราเองได้รวบรวมข้อมูลมาประมาณนึง เลยชี้ทางสว่างที่ถูกต้องในบล็อกนี้

Coding workstation
Photo by Farzad Nazifi / Unsplash

บล็อกนี้เขียนขึ้นเพื่อคนที่อยากเริ่มต้นทำแอพ Android สักตัว แล้วรวมถึงคนที่อยากเข้ามาสายงาน Android Developer เนอะ

ก่อนอื่น ลองเข้าไปดู roadmap.sh/android เพื่อเป็น guide เนอะ แน่นอน fundamental สำคัญที่ซู๊ดดดด

roadmap.sh/android

จริงๆใน Udacity เขามีเป็นแบบ career path ของ Android Developer แต่หาไม่เจอแล้วอ่ะ เป็น roadmap ในการเรียนรู้ งั้นลองอ่านอันนี้ดูก็ได้เนอะ

https://career-resource-center.udacity.com/tech-jobs-find-your-career-path/android-job-paths

เครื่องมือและภาษา

ภาษาที่ใช้ในการเขียน Android เดิมทีใช้ Java กับโปรแกรม eclipse เนอะ จะว่าไปนานมากเลยนะ ตอนนี้ใช้โปรแกรม Android Studio กันเกือบหมดแล้วเนอะ

Person coding with MacBook Pro
Photo by Danial RiCaRoS / Unsplash

และภาษาที่ใช้จะเน้นไปที่ Kotlin เป็นหลัก มือใหม่จะไปเขียนเป็น Kotlin ได้เลยจ้า ส่วน Java ส่วนตัวจะเจอในโค้ดเก่าๆแหละ

Skill หลักๆที่ต้องมี

  • แน่นอนหลักๆ คือ เขียนแอพเชื่อมต่อ service หลังบ้าน อันนี้ต้องทำได้
  • สามารถเรียนรู้ได้ด้วยตัวเอง อันนี้สำคัญมาก
  • เขียน Unit Test เองได้บ้าง

จริงๆก็เคยเล่าไปแล้วแหละ อ่ะแปะบล็อกแล้วกัน

25 สิ่งที่ต้องรู้ สำหรับ Android developer
สวัสดีค่ะทุกท่าน เนื่องจากเราได้เปลี่ยนสายงานมาเป็น Android developer อย่างจริงจังแล้วที่ฟังใจ เราก็ได้เตรียมตัวศึกษาเพิ่มเติม ทั้งในและนอกเวลางาน และได้อ่านของพี่เอกในการเตรียมตัว และคิดว่าน่าจะมีเพิ่มเติมอีก จึงได้ดัดแปลงบทความนี้เป็นในแบบของเราเอง ดังนี้

แหล่งการเรียนรู้แบบฟรียาวๆไป

สำหรับมือใหม่ และมือไม่ใหม่จะมาทบทวน ทาง Android มีให้เรียนแบบ zero to hero เลยนะ ได้แบบฟรีๆ

https://developer.android.com/courses/kotlin-android-fundamentals/overview

https://developer.android.com/courses/fundamentals-training/overview-v2

และ codelab

https://codelabs.developers.google.com/android-training/

หรือจะไปดูใน pathway ที่ google.dev ก็ได้นะ เรียนไปเดี๋ยวก็ได้ badge เนอะ

เอาจริงๆทางเราเองก็อ่านจากบล็อกคนอื่นๆบ้าง อ่านจาก เอ้อออ document ของ Android บ้าง อ่ะแปะสักหน่อย

Android Developers
The official site for Android app developers. Provides the Android SDK tools and API documentation.

แล้วก็ทำ codelab ซึ่งเขาสอนเป็นขั้นเป็นตอน อธิบายให้เราเข้าใจได้ไม่ยาก อีกทั้งเป็นภาษาอังกฤษอีกด้วย ฝึกภาษากันไปเนาะ

เวลาเราเรียนเราก็จะจดไว้อ่านเอง บางทีก็เอาไปแปะในบล็อกตัวเองบ้างกันลืม ไม่ต้องถึงขนาดต้องมี content เขียนบล็อก แค่เรียนรู้ ทำความเข้าใจ และจดบันทึกก็พอหล่ะ ซึ่งทางเราจะจดใน Notion เนอะ

คอร์สเสียเงิน

คอร์สพี่หนูเนย เรียนรู้พื้นฐานการเขียน Android จนทำแอพได้

คอร์สอบรมนักพัฒนาแอนดรอยด์ใน 24 ชั่วโมง สู่ระดับมืออาชีพ - The Cheese Factory Courses
คอร์สเนื้อหาอัดแน่นที่จะช่วยให้คุณประหยัดเวลาศึกษาศาสตร์การพัฒนาแอพฯแอนดรอยด์จาก 1 ปีเหลือเพียงไม่กี่ชั่วโมง

คอร์สออนไลน์ที่คุณเอกสอน

อันนี้เราเคยเรียน

Android UI Design with XML - พื้นฐานสำคัญในการออกแบบ Android UI ด้วยภาษา XML | Skooldio
คอร์สออนไลน์ที่คุณจะได้เรียนรู้พื้นฐานที่สำคัญในการพัฒนา UI ของแอปพลิเคชัน Android ให้ตรงตามที่ UI Designer ออกแบบมา แบบ Zero to Hero

อันนี้เรียนฟรี

Getting Started with Kotlin | เรียนคอร์สออนไลน์ฟรี | Skooldio
เตรียมพื้นฐาน Kotlin ให้พร้อมต่อยอดสู่ Android Developer

หรืออยากเรียนทั้งชุดก็ได้นะ

Android Series | แพ็กเกจสุดคุ้ม | Skooldio
เริ่มต้นพัฒนา Android App จนครบกระบวนการสร้างแอปฯขึ้น Google Play

หรือถ้าอยากเรียนกับคุณเอกแบบสดๆ ติดตามรายละเอียดคอร์สที่นี่เลยจ้า

Intro to Android Development - เขียนแอนดรอยด์แอปฯ เป็นใน 2 วัน ด้วย Kotlin | Skooldio
คุณจะได้เรียนรู้ best practice ของการพัฒนาแอป Android จาก Google Developers Expert ด้าน Android คนไทยที่ได้รับการรับรองจาก Google โดยใช้ภาษา Kotlin ซึ่งในเวลานี้เป็นภาษาที่ Google ให้ความสำคัญที่สุด

หรืออยากจะลงแบบนี้ก็ได้เนอะ ใน Udacity จะมี 2 ตัว คือ

Android Basics
No programming experience? No Problem! Start developing Android apps today.
Android Kotlin Developer Online Course
Start your career as an Android Kotlin developer. Learn best practices for mobile dev, and build a portfolio of apps. Learn online with Udacity.
Developing Android Apps | Udacity
Build a cloud-connected Android app, and learn the tools, principles, and best practices of mobile and Android development that you’ll apply to your own projects.

อันนี้เราไม่ได้เรียนแต่เห็นว่า Google เป็นคนสอนเองเนอะ แหะๆ แบบ Official มาสอนเอง

จริงๆในนั้นมีคอร์สฟรี แต่นับวันยิ่งหาเจอยากขึ้นนะ ฮืออออออ แต่ก็มีคนทำบล็อก roadmap ไว้ให้ล้าว

[Roadmap] Learn Android Basics to Android Developer With Udacity
Learn the basics of Android and Java programming, and take the first step on your journey to becoming an Android developer! This course is designed for students who are new to programming, and want…

แนะนำเพจและสิ่งที่น่าอ่าน

แน่นอนว่าเป็น Android Developer ต้องรู้จักเพจคุณสมเกียรติ somkiat.cc เพราะทำให้เราเข้าใจ Software Development มากขึ้น และบล็อกเขามีเกี่ยวกับ Android บ้างบางครั้ง

เดี๋ยวๆผิดคนป่าว

ต้องคุณสมเกียรติที่เป็น GDE Android สิ

Akexorcist - Sleeping For Less
บล็อกธรรมดาของนักพัฒนาแอนดรอยด์ที่ไม่ธรรมดา

ส่วนอันนี้เพจคุณเอกเขาจ้า ไปกด Like เพื่ออัพเดตข่าวสารใหม่ๆ

Sleeping For Less - Android Developer
Sleeping For Less - Android Developer. 9,040 likes · 96 talking about this. ข่าวสารและความรู้เกี่ยวกับการพัฒนาแอพแอนดรอยด์ และตอบปัญหาในการพัฒนาแอพ

ปล. มีคนเล่นมุขนี้จริงๆต่อหน้าคุณเอก ซึ่งเขาก็เล่นมุขนี้ให้ฟังอีกที

สำหรับชาว Android สามารถเข้าไปจอยเพื่อรับความรู้จากคนอื่นๆ หรือถามปัญหาได้ ถ้า search google แล้วยังแก้ไม่ตก ที่

Facebook Groups
Thailand Android Developer has 22,041 members. We Develop We Code..... Android! (The Most Active Android Developer Community in Thailand)

และแน่นอนว่า หลายๆคนที่เป็น Android Developer ก็ต้องรู้จักพี่คนนี้อยู่แล้ว นั่นคือพี่หนูเนยนั่นเอง ไอดอลของเจ้าของบล็อกนั่นเอง ซึ่งพี่เนยเขาก็มีความรู้ในหลายๆสายเช่นกันเนอะ สามารถตามบล็อกได้ที่

NuuNeoI - Personal Blog of a little full stack developer guy
เว็บ Blog ของ Full Stack Developer ตัวน้อยๆที่ดันสนใจเรื่องซะหลายเรื่องจัด เลยมีเนื้อหาหลากหลาย ตั้งแต่การพัฒนา การออกแบบ ยันการทำอาหาร

และเพจ

nuuneoi.com
nuuneoi.com. 63K likes. nuuneoi’s Official Page Profile: http://nuuneoi.com/profile

ส่วน twitter นั้น เราเพิ่งเปิด account twitter ของเพจ เพื่อติดตามข่าวสารฝั่ง Android Developer โดยเฉพาะจ้า

อันนี้เป็นรายชื่อ twitter สำหรับสิ่งที่เป็น official จ้า เข้าไปกดดูได้

https://twitter.com/i/lists/1321276573815771138?s=20

ถ้าเป็นระดับเทพในสาย Android ลองหาดู เราแปะไป 2 บทความด้วยกัน ดูผ่านๆคนก็จะไม่ต่างกันเท่าไหร่

40 leading Android developers to follow on Twitter | TechBeacon
Keep up with the Android world by following this list of the top Android developers and influencers on Twitter.
20 Twitter Follows for Android Developers & 4 Twitter Lists
Whether you are just starting your Android Development journey, or if you have been building apps sin...

เราพยายามแปะเข้าไปใน list เผื่อจะได้ตามง่ายๆจ้า

https://twitter.com/i/lists/1321277236519923712

และ medium แนะนำให้มี account ในนั้นนะ เอาไว้อ่านบทความดีๆในนั้นเนอะ

อันนี้ตัวอย่าง publishion ที่เกี่ยวกับ Android ที่เรากด Follow ไว้

ProAndroidDev
The latest posts from Android Professionals and Google Developer Experts.
Google Developers Experts – Medium
Experts on various Google products talking tech.
AndroidPub
The Pub(lication) for Android & Tech, focused on Development.
google-exoplayer – Medium
The ExoPlayer developer blog.
Android Developers – Medium
The official Android Developers publication on Medium.

ส่วนอื่นๆเราก็จะตามคน และก็องค์กรที่มี developer ขยันเขียนบล็อกในนั้น ลองไปอ่านกันดูได้จ้า แล้วแต่ความชอบเนอะ

สำหรับ podcast เอ้ออออ มีรายการเดียวในไทย และเราเคยเป็นแขกรับเชิญมาแล้วกับรายการ Droid Dev Talk นั่นเอง ที่เจ้าของรายการขี้เกียจหาจิงเกิ้ลเปิดรายการนั่นเอง (สาเหตุอีกส่วนนึงเพราะรายการ podcast นึง เจ้าของรายการทำจิ้งเกิ้ลรายการแล้วไม่อัพตอนใหม่อีกเลย... เดี๋ยวๆ)

สุดท้าย เกือบลืม YouTube แรกๆที่เราเริ่มเขียนแอพก็ดูตาม YouTube แหละนะ ตอนนี้เอามาอัพเดตข่าวสารใหม่ๆเนอะ

ช่องหลักๆที่เราสับตะไคร้ ก็จะมีดังนี้

Android Developers
Welcome to the official Android Developers YouTube channel. Get the latest Android news, best practices, live videos, demonstrations, tutorials, and more. Su...
Firebase
The YouTube channel for all things Firebase! Learn how to build awesome apps with hands-on tutorials from the Firebase team. Firebase helps you build better ...
Google
Experience the world of Google on our official YouTube channel. Watch videos about our products, technology, company happenings and more. Subscribe to get up...
Google Developers
The Google Developers channel features talks from events, educational series, best practices, tips, and the latest updates across our products and platforms.

ส่วนอื่นๆก็ตามความชอบเนาะ

skill อื่นๆที่ควรมี

แนะนำลองดูใน job description ว่าเขาต้องการอะไรบ้าง ถ้าหลักๆที่ตรง JD และใช้ในการทำงาน เช่น

  • git แน่นอนว่าเราควรมี github (ตัวที่แพร่หลายที่สุดสำหรับ git ทั้งหมด) เพื่ออัพงานของตัวเองลงไป เวลาสมัครงานก็ใช้ในการประกอบได้จ้า
  • Firebase คือทุกโปรเจกใช้หมด อยู่ที่ใช้มากใช้น้อย ใช้อะไรบ้าง แน่ๆต้องใช้ Firebase Crashlytics เนอะ เพื่อดูว่าแอพเราพังตรงไหน จะได้แก้ถูกจุดจ้า
  • UI/UX ควรรู้บ้าง จะได้เอาไปเถียงกับทีมได้ถูก 555
  • Agile ใครๆก็อไจล์อ่ะ ถึงจะ waterfall ไปบ้างบางที เอ๊ะ

และจำเป็นต้องเขียน cross platform ได้ไหม?

Photo by Przemyslaw Marczynski / Unsplash

ถ้าเขียน native ได้ทั้ง iOS และ Android ได้คือเทพมาก

แล้วพวกอื่นๆหล่ะ เช่น Ionic, React Native, Flutter หล่ะ ส่วนตัวมองว่า optional นะ เพราะว่าไม่ใช่ทุกที่ที่ใช้เนอะ ซึ่งก็มีการ trade off แล้วแหละ ว่าจะทำ native หรือ cross-platform ดี ถ้าอยากเรียนรู้ก็ไม่เสียหายเนอะ

พี่ๆผมอยากเขียน Android แต่ไม่รู้ว่าจะทำแอพอะไรดี

ถ้าไม่รู้ว่าจะทำแอพอะไรที่ตอบโจทย์อะไรสักอย่างแล้วหล่ะก็ งั้นก็ฝึก ฝึก ฝึก ฝึก ฝึก ก็แล้วกันเนอะ

ลองหา API ที่เขาเปิดให้ใช้ฟรี ซึ่งเราเคยโพสบนเพจว่ามีตัวไหนที่ API สำนักข่าวต่างๆที่เอาไปใช้ได้บ้าง

Top 10 Best News APIs: Google News, Bloomberg, BING News and more
The Internet is full of news outlets that you can use to stay abreast of the latest happenings in the world. With the current increase in Internet usage, most people are abandoning traditional media…

โดยปกติของชาว Android Developer นั้น จะต้องทำแอพที่เชื่อมต่อข้อมูลจากหลังบ้านเสมออ่ะเนอะ ดังนั้นควรจะฝึกตรงนี้ อาจจะใช้ MVC, MVP, หรือ MVVM ก็ได้ ในส่วนที่คุยกับหลังบ้านหลักๆ ที่เรียกใช้ API ต่างๆ ก็ใช้ Retrofit อะนะ (เชื่อเลยมีคนน้อยใจ 1 อัตราแน่นอน ฮือออ ขอโทษค่ะพี่ ที่ยังไม่ได้แนะนำ Fuel ในบล็อกนี้)

แล้วก็ต้องเรียนรู้เรื่องโครงสร้างพื้นฐานในการคุยกับ database เนอะ ว่าทำไมเขาต้องใช้เป็น API เนอะ

NuuNeoI - โครงสร้างพื้นฐาน(มาก)ของการติดต่อแอป ฯ กับ Database ฝั่ง Server สำหรับผู้เริ่มต้น
ทุกวันนี้ทำแอป ฯ แค่ Offline มันไม่พอแล้ว เพราะแอป ฯ ที่นิ่งเฉยไม่มีอะไรเปลี่ยนแปลงผู้คนจะใช้แค่ครั้งสองครั้งแล้วก็เลิก ดังนั้นไม่ต้องแปลกใจที่แอป ฯ เกือบทั้งหมดที่เราใช้ทุกวันนี้จึงเป็นแอป ฯ แบบ Onli

แน่นอนว่าจะต้องทำ Adapter Class ต่างๆเป็น โดยการแสดงรูปก็ต้องใช้ Library อะเนอะ หลักๆจะชอบใช้ Glide กัน อาจจะใช้ Fresco ที่เราเคยเขียนเล่าไปก็ได้เนอะ

ทดลองใช้ Fresco, Library Image สุดจี้ดจาก Facebook Open Source
เบื่อ Gilde ที่ใช้ยากขึ้นทุกวัน งั้นขอลองใช้ของใหม่ดูสิว่าจะยังไงดี

หรือไม่ก็ Picasso หรือไม่ก็ Coil (ซึ่งมันจะอ่านคล้ายๆ Koin ซึ่งเคยจำสลับกันด้วยนะ)

เมื่อเราทำสำเร็จเราก็จะได้ 1 แอพแล้ว push ลง github ของตัวเองก็จะได้ 1 ผลงานไปแปะ portfolio หล่ะน้า

และทำ Unit Test ในแอพของเราก็ยิ่งดีใหญ่เลย (ให้เขาเห็นว่าเราก็พอทำได้นะ)

ยิ่งถ้าเราทำแอพลง Play Store ได้ก็ยิ่งดีเลยนะ (ถึงบางที่ developer ไม่ใช่คน submit เองก็ตาม / บางที่มี require อันนี้ด้วยนะ)

จำเป็นต้องเขียนบล็อกได้ไหม?

ไม่จำเป็นจ้า5555555 เวลาเรียนหรือทำอะไรสักอย่างก็อาจจะจดไว้อ่านเองก็ได้นะ จะได้เอาไปทบทวนเองได้ เผื่อลืมงี้

โอเค ฟังแล้วดูย้อนแย้งกับสิ่งที่เราทำอยู่555 ถึงเราจะมีบล็อกนึงสนับสนุนให้เขียนบล็อกก็ตาม แต่สำหรับบางคนก็เป็นเรื่องยากสำหรับเขา โดยเฉพาะมือใหม่อะเนอะ แนะนำว่าลองอ่านเยอะๆ ฝึกทำไปเยอะๆ ทำงานไปสักพัก น่าจะได้ output ไปเขียนบล็อกได้เนอะ

สรุป ทำหน้าที่ของตัวเองให้ดีที่สุดในแต่ละวันก็พอแล้วแหละ ซึ่งหน้าที่ของตัวเองของแต่ละคนก็ไม่เหมือนกันนั่นแหละเนอะ :D

หวังว่าบล็อกนี้คนอ่านน่าจะได้อะไรกลับไปเนอะ


แถมอีกนิดนึง skill ที่ทุกคนควรมี คือ Google ได้เองเนอะ ถ้าติดอะไรตรงไหนลองเอา error log ไป search ก่อนเนอะ

ถ้าติดจริงๆแล้วหาคำตอบไม่ได้ค่อยเอาไปถามในกลุ่มเนอะ และก่อนอื่นเราควรจะต้อง ถามให้เป็น เสียก่อน

NuuNeoI - คำตอบที่ใช่เกิดจากคำถามที่ถูกต้อง ”ศาสตร์ของการถาม” ถามอย่างไรให้ได้คำตอบ?
คติประจำใจอย่างหนึ่งในชีวิตคือคำถามนั้นสำคัญกว่าคำตอบอาจจะฟังดูน่าขัดใจ แต่ส่วนตัวแล้วสุดท้ายสิ่งที่เราต้องการจริงๆยังไงก็ไม่พ้น ”คำตอบ” อยู่ดีแหละ แต่ถ้าตั้งคำถามไม่ถูกแล้วมันจะมีโอกาสได้คำตอบที่ถูกต

และไปเจอในกลุ่มนึง ที่ไม่เกี่ยวกับโปรแกรมเมอร์ เกี่ยวกับประเด็นแบบนี้

เดี๋ยวลู๊กกกกกก เพราะคนตอบเขาอาจจะเจออะไรแบบนี้มาก่อนไง เลยสุดจะทน แล้วไปโพสถามในกลุ่มของเพลงด้วยนะเออ เอ๊ะ มัน relate กันหรอ เท่าที่ไปตอบน้องมา mindset แบบนี้ไม่โอเคกับการพัฒนาตัวเองเลยนะ

จริงๆเรื่องมันก็นานแล้วแหละเนอะ เขาไม่ได้เหยียดหรืออะไรคนถาม แต่แบ่บบบช่วยหาด้วยตัวเองก่อนหม๊ายยยยย คือจะให้คนมาช่วยตลอดเวลาไม่ได้เว้ยยยย เวลาทำงานบางทีงานพี่ๆเยอะจนไม่มีเวลาสอนน้องก็มีเยอะแยะไปอ่ะ น้องต้องช่วยเหลือตัวเองให้ได้ไม่งั้นน้องจะเป็นตัวถ่วงทีมน้าาาา

แล้วก็ในกลุ่ม Android นี้แหละ มีน้องคนนึงถามว่าอันนี้ต้องทำยังไงครับ เราเลยเอา keyword ที่ได้จากคำถาม ไป search google แล้วเอาไปแปะให้ และแน่นอนน้องเจ้าของกระทู้ไม่ค่อยพอใจเราเท่าไหร่ และถามกลับว่า ไม่มีแบบโค้ดหรอครับ เอิ่มมมมม น้องคะ ลอง search Google แล้วอ่าน document ที่การค้นหาแรกๆสิ เห้อออ

ปล. ถ้าติดแล้วจะถามจริงๆ แนะนำให้ถามในกลุ่ม ไม่แนะนำให้ inbox ถามส่วนตัว หรือในเพจ เผื่อใครติดเหมือนเรา จะได้หากระทู้นั้นเจอแล้วเอาไปแก้ตามได้เลยจ้า


เขียนบล็อกเสร็จแล้ว อ่ะฝากร้านหน่อย

อย่าลืมกด like กด share บทความกันด้วยนะคะ :)

Posted by MikkiPastel on Sunday, 10 December 2017

และฝากช่องทางใหม่ ทาง Twitter ฮับ

Tags

Minseo Chayabanjonglerd

I am a full-time Android Developer and part-time contributor with developer community and web3 world, who believe people have hard skills and soft skills to up-skill to da moon.