อยากเป็น Android Developer ต้องเรียนและรู้อะไรบ้าง
มีน้องๆมาตั้งกระทู้ถามในกลุ่ม Thailand Android Developer และเราเองได้รวบรวมข้อมูลมาประมาณนึง เลยชี้ทางสว่างที่ถูกต้องในบล็อกนี้
บล็อกนี้เขียนขึ้นเพื่อคนที่อยากเริ่มต้นทำแอพ Android สักตัว แล้วรวมถึงคนที่อยากเข้ามาสายงาน Android Developer เนอะ
ก่อนอื่น ลองเข้าไปดู roadmap.sh/android เพื่อเป็น guide เนอะ แน่นอน fundamental สำคัญที่ซู๊ดดดด
จริงๆใน 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 กันเกือบหมดแล้วเนอะ
และภาษาที่ใช้จะเน้นไปที่ Kotlin เป็นหลัก มือใหม่จะไปเขียนเป็น Kotlin ได้เลยจ้า ส่วน Java ส่วนตัวจะเจอในโค้ดเก่าๆแหละ
Skill หลักๆที่ต้องมี
- แน่นอนหลักๆ คือ เขียนแอพเชื่อมต่อ service หลังบ้าน อันนี้ต้องทำได้
- สามารถเรียนรู้ได้ด้วยตัวเอง อันนี้สำคัญมาก
- เขียน Unit Test เองได้บ้าง
จริงๆก็เคยเล่าไปแล้วแหละ อ่ะแปะบล็อกแล้วกัน
แหล่งการเรียนรู้แบบฟรียาวๆไป
สำหรับมือใหม่ และมือไม่ใหม่จะมาทบทวน ทาง Android มีให้เรียนแบบ zero to hero เลยนะ ได้แบบฟรีๆ
และ codelab
หรือจะไปดูใน pathway ที่ google.dev ก็ได้นะ เรียนไปเดี๋ยวก็ได้ badge เนอะ
เอาจริงๆทางเราเองก็อ่านจากบล็อกคนอื่นๆบ้าง อ่านจาก เอ้อออ document ของ Android บ้าง อ่ะแปะสักหน่อย
แล้วก็ทำ codelab ซึ่งเขาสอนเป็นขั้นเป็นตอน อธิบายให้เราเข้าใจได้ไม่ยาก อีกทั้งเป็นภาษาอังกฤษอีกด้วย ฝึกภาษากันไปเนาะ
เวลาเราเรียนเราก็จะจดไว้อ่านเอง บางทีก็เอาไปแปะในบล็อกตัวเองบ้างกันลืม ไม่ต้องถึงขนาดต้องมี content เขียนบล็อก แค่เรียนรู้ ทำความเข้าใจ และจดบันทึกก็พอหล่ะ ซึ่งทางเราจะจดใน Notion เนอะ
คอร์สเสียเงิน
คอร์สพี่หนูเนย เรียนรู้พื้นฐานการเขียน Android จนทำแอพได้
คอร์สออนไลน์ที่คุณเอกสอน
อันนี้เราเคยเรียน
อันนี้เรียนฟรี
หรืออยากเรียนทั้งชุดก็ได้นะ
หรือถ้าอยากเรียนกับคุณเอกแบบสดๆ ติดตามรายละเอียดคอร์สที่นี่เลยจ้า
หรืออยากจะลงแบบนี้ก็ได้เนอะ ใน Udacity จะมี 2 ตัว คือ
อันนี้เราไม่ได้เรียนแต่เห็นว่า Google เป็นคนสอนเองเนอะ แหะๆ แบบ Official มาสอนเอง
จริงๆในนั้นมีคอร์สฟรี แต่นับวันยิ่งหาเจอยากขึ้นนะ ฮืออออออ แต่ก็มีคนทำบล็อก roadmap ไว้ให้ล้าว
แนะนำเพจและสิ่งที่น่าอ่าน
แน่นอนว่าเป็น Android Developer ต้องรู้จักเพจคุณสมเกียรติ somkiat.cc เพราะทำให้เราเข้าใจ Software Development มากขึ้น และบล็อกเขามีเกี่ยวกับ Android บ้างบางครั้ง
เดี๋ยวๆผิดคนป่าว
ต้องคุณสมเกียรติที่เป็น GDE Android สิ
ส่วนอันนี้เพจคุณเอกเขาจ้า ไปกด Like เพื่ออัพเดตข่าวสารใหม่ๆ
ปล. มีคนเล่นมุขนี้จริงๆต่อหน้าคุณเอก ซึ่งเขาก็เล่นมุขนี้ให้ฟังอีกที
สำหรับชาว Android สามารถเข้าไปจอยเพื่อรับความรู้จากคนอื่นๆ หรือถามปัญหาได้ ถ้า search google แล้วยังแก้ไม่ตก ที่
และแน่นอนว่า หลายๆคนที่เป็น Android Developer ก็ต้องรู้จักพี่คนนี้อยู่แล้ว นั่นคือพี่หนูเนยนั่นเอง ไอดอลของเจ้าของบล็อกนั่นเอง ซึ่งพี่เนยเขาก็มีความรู้ในหลายๆสายเช่นกันเนอะ สามารถตามบล็อกได้ที่
และเพจ
ส่วน twitter นั้น เราเพิ่งเปิด account twitter ของเพจ เพื่อติดตามข่าวสารฝั่ง Android Developer โดยเฉพาะจ้า
อันนี้เป็นรายชื่อ twitter สำหรับสิ่งที่เป็น official จ้า เข้าไปกดดูได้
https://twitter.com/i/lists/1321276573815771138?s=20
ถ้าเป็นระดับเทพในสาย Android ลองหาดู เราแปะไป 2 บทความด้วยกัน ดูผ่านๆคนก็จะไม่ต่างกันเท่าไหร่
เราพยายามแปะเข้าไปใน list เผื่อจะได้ตามง่ายๆจ้า
https://twitter.com/i/lists/1321277236519923712
และ medium แนะนำให้มี account ในนั้นนะ เอาไว้อ่านบทความดีๆในนั้นเนอะ
อันนี้ตัวอย่าง publishion ที่เกี่ยวกับ Android ที่เรากด Follow ไว้
ส่วนอื่นๆเราก็จะตามคน และก็องค์กรที่มี developer ขยันเขียนบล็อกในนั้น ลองไปอ่านกันดูได้จ้า แล้วแต่ความชอบเนอะ
สำหรับ podcast เอ้ออออ มีรายการเดียวในไทย และเราเคยเป็นแขกรับเชิญมาแล้วกับรายการ Droid Dev Talk นั่นเอง ที่เจ้าของรายการขี้เกียจหาจิงเกิ้ลเปิดรายการนั่นเอง (สาเหตุอีกส่วนนึงเพราะรายการ podcast นึง เจ้าของรายการทำจิ้งเกิ้ลรายการแล้วไม่อัพตอนใหม่อีกเลย... เดี๋ยวๆ)
สุดท้าย เกือบลืม YouTube แรกๆที่เราเริ่มเขียนแอพก็ดูตาม YouTube แหละนะ ตอนนี้เอามาอัพเดตข่าวสารใหม่ๆเนอะ
ช่องหลักๆที่เราสับตะไคร้ ก็จะมีดังนี้
ส่วนอื่นๆก็ตามความชอบเนาะ
skill อื่นๆที่ควรมี
แนะนำลองดูใน job description ว่าเขาต้องการอะไรบ้าง ถ้าหลักๆที่ตรง JD และใช้ในการทำงาน เช่น
- git แน่นอนว่าเราควรมี github (ตัวที่แพร่หลายที่สุดสำหรับ git ทั้งหมด) เพื่ออัพงานของตัวเองลงไป เวลาสมัครงานก็ใช้ในการประกอบได้จ้า
- Firebase คือทุกโปรเจกใช้หมด อยู่ที่ใช้มากใช้น้อย ใช้อะไรบ้าง แน่ๆต้องใช้ Firebase Crashlytics เนอะ เพื่อดูว่าแอพเราพังตรงไหน จะได้แก้ถูกจุดจ้า
- UI/UX ควรรู้บ้าง จะได้เอาไปเถียงกับทีมได้ถูก 555
- Agile ใครๆก็อไจล์อ่ะ ถึงจะ waterfall ไปบ้างบางที เอ๊ะ
และจำเป็นต้องเขียน cross platform ได้ไหม?
ถ้าเขียน native ได้ทั้ง iOS และ Android ได้คือเทพมาก
แล้วพวกอื่นๆหล่ะ เช่น Ionic, React Native, Flutter หล่ะ ส่วนตัวมองว่า optional นะ เพราะว่าไม่ใช่ทุกที่ที่ใช้เนอะ ซึ่งก็มีการ trade off แล้วแหละ ว่าจะทำ native หรือ cross-platform ดี ถ้าอยากเรียนรู้ก็ไม่เสียหายเนอะ
พี่ๆผมอยากเขียน Android แต่ไม่รู้ว่าจะทำแอพอะไรดี
ถ้าไม่รู้ว่าจะทำแอพอะไรที่ตอบโจทย์อะไรสักอย่างแล้วหล่ะก็ งั้นก็ฝึก ฝึก ฝึก ฝึก ฝึก ก็แล้วกันเนอะ
ลองหา API ที่เขาเปิดให้ใช้ฟรี ซึ่งเราเคยโพสบนเพจว่ามีตัวไหนที่ API สำนักข่าวต่างๆที่เอาไปใช้ได้บ้าง
โดยปกติของชาว Android Developer นั้น จะต้องทำแอพที่เชื่อมต่อข้อมูลจากหลังบ้านเสมออ่ะเนอะ ดังนั้นควรจะฝึกตรงนี้ อาจจะใช้ MVC, MVP, หรือ MVVM ก็ได้ ในส่วนที่คุยกับหลังบ้านหลักๆ ที่เรียกใช้ API ต่างๆ ก็ใช้ Retrofit อะนะ (เชื่อเลยมีคนน้อยใจ 1 อัตราแน่นอน ฮือออ ขอโทษค่ะพี่ ที่ยังไม่ได้แนะนำ Fuel ในบล็อกนี้)
แล้วก็ต้องเรียนรู้เรื่องโครงสร้างพื้นฐานในการคุยกับ database เนอะ ว่าทำไมเขาต้องใช้เป็น API เนอะ
แน่นอนว่าจะต้องทำ Adapter Class ต่างๆเป็น โดยการแสดงรูปก็ต้องใช้ Library อะเนอะ หลักๆจะชอบใช้ Glide กัน อาจจะใช้ Fresco ที่เราเคยเขียนเล่าไปก็ได้เนอะ
หรือไม่ก็ Picasso หรือไม่ก็ Coil (ซึ่งมันจะอ่านคล้ายๆ Koin ซึ่งเคยจำสลับกันด้วยนะ)
เมื่อเราทำสำเร็จเราก็จะได้ 1 แอพแล้ว push ลง github ของตัวเองก็จะได้ 1 ผลงานไปแปะ portfolio หล่ะน้า
และทำ Unit Test ในแอพของเราก็ยิ่งดีใหญ่เลย (ให้เขาเห็นว่าเราก็พอทำได้นะ)
ยิ่งถ้าเราทำแอพลง Play Store ได้ก็ยิ่งดีเลยนะ (ถึงบางที่ developer ไม่ใช่คน submit เองก็ตาม / บางที่มี require อันนี้ด้วยนะ)
จำเป็นต้องเขียนบล็อกได้ไหม?
ไม่จำเป็นจ้า5555555 เวลาเรียนหรือทำอะไรสักอย่างก็อาจจะจดไว้อ่านเองก็ได้นะ จะได้เอาไปทบทวนเองได้ เผื่อลืมงี้
โอเค ฟังแล้วดูย้อนแย้งกับสิ่งที่เราทำอยู่555 ถึงเราจะมีบล็อกนึงสนับสนุนให้เขียนบล็อกก็ตาม แต่สำหรับบางคนก็เป็นเรื่องยากสำหรับเขา โดยเฉพาะมือใหม่อะเนอะ แนะนำว่าลองอ่านเยอะๆ ฝึกทำไปเยอะๆ ทำงานไปสักพัก น่าจะได้ output ไปเขียนบล็อกได้เนอะ
สรุป ทำหน้าที่ของตัวเองให้ดีที่สุดในแต่ละวันก็พอแล้วแหละ ซึ่งหน้าที่ของตัวเองของแต่ละคนก็ไม่เหมือนกันนั่นแหละเนอะ :D
หวังว่าบล็อกนี้คนอ่านน่าจะได้อะไรกลับไปเนอะ
แถมอีกนิดนึง skill ที่ทุกคนควรมี คือ Google ได้เองเนอะ ถ้าติดอะไรตรงไหนลองเอา error log ไป search ก่อนเนอะ
ถ้าติดจริงๆแล้วหาคำตอบไม่ได้ค่อยเอาไปถามในกลุ่มเนอะ และก่อนอื่นเราควรจะต้อง ถามให้เป็น เสียก่อน
และไปเจอในกลุ่มนึง ที่ไม่เกี่ยวกับโปรแกรมเมอร์ เกี่ยวกับประเด็นแบบนี้
จริงๆเรื่องมันก็นานแล้วแหละเนอะ เขาไม่ได้เหยียดหรืออะไรคนถาม แต่แบ่บบบช่วยหาด้วยตัวเองก่อนหม๊ายยยยย คือจะให้คนมาช่วยตลอดเวลาไม่ได้เว้ยยยย เวลาทำงานบางทีงานพี่ๆเยอะจนไม่มีเวลาสอนน้องก็มีเยอะแยะไปอ่ะ น้องต้องช่วยเหลือตัวเองให้ได้ไม่งั้นน้องจะเป็นตัวถ่วงทีมน้าาาา
แล้วก็ในกลุ่ม Android นี้แหละ มีน้องคนนึงถามว่าอันนี้ต้องทำยังไงครับ เราเลยเอา keyword ที่ได้จากคำถาม ไป search google แล้วเอาไปแปะให้ และแน่นอนน้องเจ้าของกระทู้ไม่ค่อยพอใจเราเท่าไหร่ และถามกลับว่า ไม่มีแบบโค้ดหรอครับ เอิ่มมมมม น้องคะ ลอง search Google แล้วอ่าน document ที่การค้นหาแรกๆสิ เห้อออ
ปล. ถ้าติดแล้วจะถามจริงๆ แนะนำให้ถามในกลุ่ม ไม่แนะนำให้ inbox ถามส่วนตัว หรือในเพจ เผื่อใครติดเหมือนเรา จะได้หากระทู้นั้นเจอแล้วเอาไปแก้ตามได้เลยจ้า
ติดตามข่าวสารตามช่องทางต่าง ๆ และทุกช่องทางโดเนทกันไว้ที่นี่เลย แนะนำให้ใช้ tipme เน้อ ผ่าน promptpay ได้เต็มไม่หักจ้า
ติดตามข่าวสารแบบไว ๆ มาที่ Twitter เลย บางอย่างไม่มีในบล็อก และหน้าเพจนะ