Coding is Hard

John F. Kennedy เคยพูดประโยคสุดคลาสสิคตอนทำโปรเจ็ค Apollo ในปี 1962 ว่า “เราเลือกที่จะไปดวงจันทร์ ไม่ใช่เพราะว่ามันเป็นเรื่องง่าย แต่เพราะมันยากต่างหาก”

We choose to go to the Moon … not because they are easy, but because they are hard.

และนี่กลายเป็น quote ระดับตำนานของ JFK ที่ได้สร้างแรงบันดาลใจให้กับผู้คนทั่วโลก ณ เวลานั้น การได้ออกไปสำรวจอวกาศถือว่าเป็นอีกหนึ่งความท้าทายของมนุษยชาติ ไม่ง่าย แต่จำเป็น


What about coding?

Apollo ของ JFK เปรียบได้กับประสบการณ์หัดเขียน code ของหลายๆคนที่ไม่ได้เรียนหรือจบด้าน IT / computer science มาโดยตรง (ตัวแอดก็จบเศรษฐศาสตร์ การตลาดมาเหมือนกัน)

สำหรับคนทั่วไปเวลาเห็น code เยอะๆบนหน้าจอคอมพิวเตอร์ ต้องมีอาการวิงเวียนศรีษะ รีบหยิบโป๊ยเซียนมาดมทันที 555+ คือกูไม่เข้าใจโค้ดที่เห็นเลย ใครมาอธิบายกูทีๆๆๆ

แต่จุดพีคอยู่ตรงนี้ การหัดเขียนโค้ดไม่ใช่เรื่องง่ายแต่โคตรจำเป็นสำหรับการทำงานในศตวรรษที่ 21 ถ้าอยากประสบความสำเร็จในหน้าที่การงานยุคนี้ coding + basic computer skills เป็นเรื่องที่คนรุ่นใหม่ควรทำให้เป็น โดยเฉพาะเพื่อนๆที่อยากเข้ามาทำงานสาย data science | big data

นักธุรกิจ และบุคคลผู้ประสบความสำเร็จทั่วโลกต่างพูดเป็นเสียงเดียวกันว่าการเรียนเขียนโค้ดอาจจะเป็นทักษะที่สำคัญที่สุดในยุคนี้เลย (อ้างอิงจาก code.org)

  • Bill Gates – การเขียนโค้ดช่วยขยายแนวคิด ช่วยให้คิดอย่างเป็นระบบมากขึ้น
  • Mark Zuckerberg – ทุกวันนี้ facebook มองหาคนที่มีทักษะด้านคอมพิวเตอร์ แต่โลกของเราขาดแคลนคนเหล่านี้อย่างมาก
  • Tim Cook – ภาษาคอมพิวเตอร์ควรถูกสอนในทุกโรงเรียน (ตั้งแต่ประถมเลย)
  • Barack Obama – ความพิวเตอร์จะเป็นสิ่งที่ขับเคลื่อนโลกในอนาคต
  • Stephen Hawking – ไม่ว่าคุณอยากจะหาความลับของจักรวาลหรืออยากหางานทำในยุคนี้ การเรียนเขียนโค้ดและทักษะเกี่ยวกับคอมพิวเตอร์เป็นสิ่งสำคัญ

เริ่มอยากเรียนยัง? ถ้าตั้งใจจะเริ่มเขียน code แล้ว คำถามสำคัญถัดมาคือจะเรียนภาษาไหนดี?


Which languages to learn?

Learn to code
Picture: https://unsplash.com/photos/vGgn0xLdy8s

มาถึงตรงนี้เราจะโฟกัสไปที่ภาษาสำหรับการทำงานด้าน data science | big data โดยเฉพาะ อ้างอิงจาก Kaggle State of Data Science and ML (2017) เครื่องมือและภาษา 10 อันดับแรกที่คนในวงการใช้กันมากที่สุดในปัจจุบัน ได้แก่

  • Python
  • R
  • SQL
  • Jupyter Notebook
  • TensorFlow
  • Amazon Web Services
  • Unix Shell
  • Tableau
  • C/ C++
  • NoSQL

และอันดับหนึ่งคือ Python นั่นเองออเจ้า ให้กำเนิดโดย Guido van Rossum นักวิทยาศาสตร์คอมพิวเตอร์ชาวดัชท์ในปี 1991 หลายคนที่ได้เขียน Python พูดเป็นเสียงเดียวกันว่ามันเลิศมาก ฝรั่งชอบบอกกันว่า “Python is simple and elegant.” (เขียนง่ายกว่ามากเมื่อเทียบกับภาษาอย่าง Java หรือ C)

ข้อดีอีกอย่างของการหัดเขียน Python คือหาเรียนออนไลน์ได้ง่ายมาก คอร์สเรียน data science ส่วนใหญ่ก็ใช้ Python เป็นภาษาหลักในการเรียนการสอน

สรุปคือเรียน Python ไว้ตอนนี้ ได้ใช้แน่นอนในอนาคต ไม่ว่าจะเป็นการเขียนเพื่อสร้าง software | website | data science | big data ตัวเดียวจบครบทุกสถานการณ์!

ในหัวข้อถัดไป แอดจะมาแนะนำ tool สำหรับใช้เขียน Python script แบบออนไลน์ (ผ่าน Chrome Browser) ไม่ต้องลงโปรแกรมอะไรให้ยุ่งยาก แค่มีคอมและอินเตอร์เน็ตก็พอ


Google colab

COLAB
Google colab เขียนโค้ดออนไลน์ง่ายๆ เหมือน Jupyter notebook

Google สร้าง online platform ไว้สำหรับเขียนโค้ด Python เพื่อทำงานด้าน data science โดยเฉพาะ เรียกว่า Google Colaboratory ไม่ต้อง set-up ให้ยุ่งยาก เพราะทั้งหมดรันบน cloud แค่เรามี gmail ก็สามารถเข้าไปใช้งานได้ทันที

https://colab.research.google.com/

พอเข้ามาแล้วให้เรากดที่ File → New Python 3 notebook เพื่อสร้าง notebook ใหม่ในการเขียนโค้ดของเรา พอเขียนโค้ดเสร็จแล้วเราสามารถ save notebook ไว้บน google drive ของเราได้เลย

ถ้าใครเคยใช้งาน Jupyter notebook มาแล้ว ต้องบอกว่า Google colab ก็ใช้งานได้แบบเดียวกันเลย (แถม Google ยังเปิดให้ใช้ GPU ฟรีสำหรับรันผลข้อมูลหนักๆบน Colab อีกด้วย)

สำหรับเพื่อนๆที่เพิ่งเริ่มเขียนโค้ด เราแนะนำให้เรียน Python version 3.x เลย เพราะว่า version 2.x ได้หยุดการพัฒนาแล้ว ต่อไปคงกลายเป็นอดีต (จริงๆทั้งสองเวอร์ชั่นไม่ได้ต่างกันมากนัก แต่อยู่กับเวอร์ชั่น 3.x ยาวๆจะสบายใจกว่า)


Hello world

สำหรับใครที่เพิ่งเริ่มเขียนโค้ด หรือเพิ่งเคยใช้ notebook ครั้งแรก เราทำวีดีโอสอนสั้นๆ กดดูได้ตรงนี้เลย หลักๆคือเราเขียนโค้ดลงไปใน Code cell แล้วกด Shift + Enter เพื่อรันคำสั่งใน cell นั้นๆ

Cell ของ notebook จะมีสองแบบ

  • Code cell
  • Text cell หรือที่เราเรียกกันว่า Markdown

เวลาเขียนโค้ด Python ก็ให้เขียนลงใน Code cell แต่ถ้าอยากจะใส่คอมเม้นต่างๆ ก็สามารถเขียนใส่ Text cell ได้เลยง่ายๆ (ดูตัวอย่างการเขียน Markdown เพิ่มเติมได้ที่นี่)

ถ้าอยากจะ delete cell ทิ้ง ให้เอาเม้าส์เลื่อนไปที่ cell นั้นๆ ทางด้านขวาจะมี icon ถังขยะให้เรากดลบทิ้งได้เลย

ข้อดีอีกอย่างของ Google colab คือเราสามารถ share notebook ของเราให้คนอื่นไปใช้ต่อได้ และนี่คือที่มาของคำว่า Colaboratory นั่นเอง! หรือจะดาวน์โหลดไฟล์ .py ออกมาเขียนต่อบน desktop ของเราก็ได้

(เดี๋ยวบล๊อกหน้าเราจะมาสอน install Python ในคอมพิวเตอร์ของทุกคนเอง)


Online learning

Learn code online
Picture: https://unsplash.com/photos/NWmcp5fE_4M

เดือนที่ผ่านมา แอดไปสมัครเรียนคอร์ส Python for Everybody Specialization มาด้วยบน coursera สอนโดย Charles R. Severance (Asso. Prof) ของ University of Michigan ต้องเรียนทั้งหมด 5 คอร์ส

  • Programming for everybody
  • Python data structures
  • Using Python to access web data
  • Using databases with Python
  • Capstone project

สามารถเรียนฟรีแบบ audit ได้ทุกคอร์ส หรือถ้าอยากได้ใบ certificate หน้าตาแบบนี้ไว้ประดับ resume ให้กดสมัครแบบ monthly subscription เดือนละ 49 USD หรือประมาณ 1571 บาท (ถ้าเรียนครบทั้ง 5 คอร์สในหนึ่งเดือนก็จบ specialization เลย คุ้มมาก!)

คอร์สนี้เหมาะสำหรับเพื่อนๆที่เพิ่งหัดเขียนโค้ด ไม่จำเป็นต้องมีพื้นฐานใดๆมาก่อน ส่วนตัวแอดให้ 9/10 คะแนน (อ. เป็นคนตลก ฟังแล้วไม่เบื่อ แต่ quiz ง่ายไปนิด 55555+)


Tips to learn effective Python

TIP
Picture: https://unsplash.com/photos/-rF4kuvgHhU

จากประสบการณ์ตรงพบว่าโลกนี้ไม่มีทางลัดในการฝึกเขียน code จริงๆ ต้องใช้เวลาและการฝึกฝนเท่านั้น (+ ความพยายาม) เราถึงจะประสบความสำเร็จในการเขียน code ได้

มีทิปเล็กน้อยมาฝาก สำหรับเพื่อนๆที่เพิ่งเริ่มเขียน code ใหม่ๆ (ไม่จำกัดเฉพาะ Python)

  • ลงมือทำจริง เน้นความต่อเนื่อง พื้นฐานเป็นเรื่องสำคัญ
  • จัดสรรเวลา เรียนวันละน้อยๆไม่ต้องเยอะมาก 15-45 นาทีต่อ session
  • ฝึกภาษาอังกฤษ เรียนออนไลน์ฟรีผ่าน MOOC (coursera, edx, udacity)
  • หาหนังสือดีๆมาอ่าน ลองทำโปรเจ็คจริงกับ real world dataset
  • ลองสมัครงานที่เราสนใจ ที่มันได้ใช้ทักษะพวกนี้จริงๆ

If not now, WHEN?

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

อ่านมาจบตรงนี้ ก็ขอให้ทุกคนโชคดีกับการเขียน code นะคร้าบ คอร์สเรียน Intro to Python ฟรีของเพจเรากำลังจะเปิดให้เรียนเร็วๆนี้ (ตอนนี้แอดงานเยอะมาก เลยยังอัดวีดีโอไม่เสร็จซักที!)

ติดตามข่าวสาร อัพเดทความรู้ใหม่ๆด้าน Statistics | Data Science ได้ทางเฟซบุ๊คของเราที่ DataRockie แล้วพบกันใหม่บล๊อกหน้านะฮ๊าฟ

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.