iOS Roadmap ( Again )

หลังจากที่ผมห่างหายจากการเขียน Blog ไปนานมาก ผมก็พยายามจะกลับมาเขียนอีกครั้ง แต่วันนี้คงยังไม่ได้เขียนอะไร update หรือ tutorial อะไรใหม่ๆนะครับ ผมอยากจะเขียนเรื่องเดิม แต่เอามาเล่าให้ฟังอีกครั้ง หลายคนเป็นมือใหม่มากๆ ก็อาจจะยัง งง และงมเข็มไม่ถูก ดังนั้นวันนี้ผมบอกแนวทางในการเป็น iOS Developer นะครับว่า คุณควรจะไปศึกษาอะไร และไม่ควรไปศึกษาอะไร

 

Language

ครั้งก่อนโน้นผมเคยบอกว่า ภาษาที่ควรไปศึกษามีด้วยกันทั้งหมด 3 ภาษา คือ C , Objective-C , C# แต่วันนี้ผมขอฟันธงเลยครับว่า รู้แค่นี้ก็พอแล้วนั่นคือ

  • English
    ก่อนจะไปรู้ภาษาในการเขียนโปรแกรม ควรศึกษาภาษาอังกฤษเพิ่มเติมครับ มันช่วยได้เยอะมาก เพราะหนังสือต่างประเทศดีๆ เยอะมาก แต่เขียนด้วยภาษาอังกฤษ ฉนั้นแล้วถ้าหากภาษาอังกฤษ ยังไม่ดีก็ลำบากครับ
  • Objective-C
    เป็นภาษาหลักในการเขียน iOS ไม่ว่าจะเป็น iPad , iPhone หรือแม้กระทั่ง Mac OS ก็ใช้ภาษา Objective-C เป็นหลัก รู้และต้องเข้าใจอย่างลึกซึ้งด้วยครับ
  • C/C++
    ภาษานี้เป็นภาษาที่เก่ามากแล้วครับ หาหนังสืออ่านได้ง่าย ( แต่หาหนังสือภาษาไทยดีๆ ไม่ค่อยมี ) จริงๆแล้วภาษานี้เป็นส่วนเสริมครับ เพราะว่า ถ้าได้เริ่มเขียน objective-c ไปสักพัก บางอย่างของภาษา c ก็ยังจำเป็นต้องรู้ เช่น pointer หรือการใช้ macro ต่างๆ และถ้าต้องการจะเขียนเกมส์ด้วยแล้ว มันมีประโยชน์แน่นอน

แล้วภาษา C# ละ หรือ Action script ( Flash ) ?

คำตอบจากผมง่ายๆเลยครับ คือไม่มีประโยชน์
ทำไมถึงไม่มีประโยชน์ ก็เพราะว่าภาษาเหล่านี้ไม่ได้เป็นภาษาที่ได้รับการสนับสนุนจาก Apple เลย อาจจะได้ข่าวแว่วๆว่า เขียน iOS เขียนได้ด้วย C# หรือ Adobe Flash CS5 แปลงเป็น iOS App ก็ได้นะ .. ใช่ครับ มันเคยมีข่าว แต่ข่าวนั้นมันก็ตั้งหลายปีมาแล้ว และยังไม่มีวี่แววว่าจะเกิดขึ้นจริง ถ้าหากคุณมัวแต่รอว่าเมื่อไหร่ Adobe จะทำให้ Flash แปลงเป็น iOS ได้ หรือรอว่า เมื่อไหร่จะทำให้  C# เขียน iOS ได้ .. ผมบอกได้คำเดียวว่า เสียเวลาครับ เอาเวลารอ มาเริ่มเขียน Objective-C ยังจะดีซะกว่า  การเริ่มต้นใหม่กับการเรียนรู้ภาษาใหม่ๆ ไม่เสียเวลาหรอกครับ และมันก็จะเปิดโลก ของคุณด้วยต่างหาก

Framework , Library

ตอนนี้ผมบอกได้คำเดียวเลยครับ CocoaTouch ครับคือคำตอบ เพราะมันหัวใจของ iOS ส่วน Library อื่นที่ควรจะรู้ไว้คือ

  • Cocos2d ถ้าสนใจเกมส์  2D นี่คือ Engine ที่ดีที่สุดแล้ว
  • FMDB ไว้คอยช่วยเขียน SQLLite
  • ASIHttp สุดยอด Network
  • Three20 นี่ก็สุดยอด เป็น Lib ที่ Facebook ใช้งาน

Game

ถ้าอยากเขียน Game ใน iOS  ผมมีแนวทางแนะนำดังนี้ครับ

  • ศึกษา Objective-C ให้ลึกซึ้งครับ
  • ศึกษา C ไว้ด้วย
  • ศึกษา iPhone SDK ไว้นิดหน่อยก็พอแล้ว เช่นสร้าง App อย่างง่ายๆ รู้ว่า UIView คืออะไร UIWindows คืออะไร ก็เพียงพอต่อการเขียนเกมส์แล้วครับ
  • ถ้าเขียนเกมส์ 2D ผมแนะนำให้ไปศึกษา Cocos2D ครับ เพราะนี่คือ 2D Engine ที่มีคนใช้เยอะมากๆ และก้อเขียนง่ายมากด้วย

อย่าไปหาพวก Tool ช่วยอย่างพวก RPGMaker , darkbasic , CDX , GameMaker อะไรแบบนี้เลยครับ เสียเวลาปล่าวๆ

ในมุมมองของส่วนตัวของผมเอง คิดว่าการจะเขียนเกมส์นั้นต่างจากเขียน Application ปกติ เพราะจำเป็นต้องรู้ถึงแก่นมันจริงๆครับ รู้ว่าทำไมคำสั่งนี้ มันถึงวาดออกมาเป็นรูปได้ รวมถึงรู้ OpenGL บ้างว่ามันทำงานยังไง เพราะถ้าคุณไม่รู้ สุดท้ายคุณก็จะตันครับ .. คุณจะไม่รู้วิธีการทำให้เกมส์ มีประสิทธิภาพมากขึ้น การปรับ Texture , การประหยัด Memory ( เพราะมือถือมี memory ที่จำกัด ) และอื่นๆอีกมากมาย

อย่างที่ผมแนะนำไป ศึกษา Objective-C โดยเฉพาะเรื่อง memory ให้ถ่องแท้ และไปดูพวก Cocos2D ดีกว่าครับ

เรียนเขียนโปรแกรมที่ไหนดี ?

พุดกันตรงๆนะครับว่า ถ้าจะเลือกที่เรียนเขียน iOS ผมแนะนำว่า ควรจะดูก่อนครับว่า ผู้สอนเค้าทำ Application อะไรมาบ้าง ? แล้วถ้าคุณเห็น App ของคนสอนแล้ว ก็น่าจะตัดสินใจได้แล้วครับ ว่าคนสอนรู้จริงๆหรือเปล่า ถ้าเค้าทำ App มาไม่ดี แล้วเค้าจะมาสอนเราให้เขียน app ได้ออกมาดีได้ยังไง ? จริงไหมครับ

แต่ถ้ามีเวลา อ่านหนังสือแล้วลงมือเองครับ ดีที่สุด  รวมถึงการใช้ iPhone ของคุณให้เป็นประโยชน์ โดยการโหลดคอรสการเขียนโปรแกรมจาก Standford ใน iTune มาดู รับรองไม่ยากครับ

ติดปัญหา ?

Internet ครับ คือคำตอบ คุณมีเพื่อนร่วมชะตากรรม บนโลกตั้งมากมาย ที่เริ่มเขียน iOS ลองหากลุ่ม หรือ twitter ก็ช่วยท่านได้ ลอง follow ผมแล้วถามผมก็ได้ หรือถามก็ได้ว่ามีคนไหนน่าติดตามบ้าง จริงๆตัวผมเองพยายามจะทำ Web board ไว้คอยช่วยเหลือ นะ แต่เจอพวก spam  เข้าไปเยอะมากจนเซ็ง

สุดท้ายครับ ตนเป็นที่พึ่งแห่งตนครับ อย่างที่ผมได้บอกไว้ว่า แต่ก่อนผมเองก็ไม่รู้ด้วยซ้ำว่า Objective-C คืออะไร XCode ใช้ยังไง แม้กระทั่ง Mac ก็ยังใช้ไม่เป็น แต่ก็หัดเอง อ่านเอง ทำเอง เรียนรู้เองด้วยความพยายาม ( ท้อ ก็มีบ้าง แต่ไม่ถอย )

สิ่งหนึ่งที่ผมอยากจะฝากไว้คือ ไม่ใช่ว่าผมเก่งกว่าพวกคุณ หรือผมฉลาดกว่า แต่ผมมีความเพียรเท่านั้นเหละครับ มันทำให้ผมสำเร็จ

 

11 thoughts on “iOS Roadmap ( Again )”

  1. ขอบคุณครับผม คิดเหมือนผมเลย ยิ่งได้อ่านแล้ว ยิ่งมีแรงฮึดมากขึ้นไปอีก ขอบคุณมากเลยครับ

  2. ต้องลองให้ได้มั่ง งงมากเลย มึนตรึบ เข้าใจเนื้อหายุนะคับ พยายามเท่านั้นจริงๆ เห้อออ :{{

  3. ขอบคุณมากครับผม เป็นแผนที่เส้นทางที่ดี สำหรับก้าวแห่งการเริ่มต้น

  4. ขอบคุณมากครับ และขอให้ทำต่อไป หากมีอะไรให้เราช่วยสนับสนุนบอกได้ครับ ยินดีครับ

  5. ขอบคุณครับ ขอให้ทำไปเรื่อยๆ นะครับ เป็นกำลังใจให้ครับ

  6. ขอบคุณครับที่มีบทความดีๆ

    ผมยังเข้ามาอ่านเรื่อยๆครับ

Leave a Reply