Tutorial

เริ่มเขียนโปรแกรมควรเริ่มจากอะไรดี??

By Arnon Puitrakul - 21 เมษายน 2015

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

  • Problem Solving Skill - การเขียนโปรแกรมมันก็คือ การย่อปัญหาที่ยาก ให้ทำได้โดยง่าย เพราะฉะนั้น การที่จะสร้างโปรแกรมสักตัวนั้น เราจะต้องอาศัย เรื่องของทักษะในการแก้ปัญหาต่างๆ เดี๋ยวมาอธิบายต่อข้างล่าง
  • Programming Language - เมื่อกี้ เรามีวิธีในการแก้ปัญหาแล้ว ตอนนี้เราจะต้องมารู้ภาษาที่ไว้คุยกับคอมพิวเตอร์ หรือเรียกง่ายๆว่า ภาษาโปรแกรมมิ่ง ซึ่งมันก็จะมีตั้งแต่ ภาษาชั้นต่ำ ยัน สูงเลย ความยากง่าย และความเหมาะสมนั้นขึ้นกับงานที่จะทำ โดยภาษาชั้นสูง สำหรับมือใหม่แล้วจะ เรียนรู้ได้ง่ายกว่า เช่นพวก Phyton เป็นต้น
    จากทั้ง 2 สกิล รวมกัน มันจะทำให้เราสามารถที่จะเขียนโปรแกรมเพื่อแก้ปัญหาได้ แรกๆ เราอาจจะแก้ปัญหาง่ายๆได้ หลังๆพอเราทำไปเรื่อยๆ เดี๋ยวก็จะเก่งขึ้น แต่เอาจริงๆจากประสบการณ์ Problem Solving Skill สำคัญกว่าการรู้ Syntax ของ ภาษาซะอีก เพราะเวลาเขียนโปรแกรมจริง ขั้นตอนแรกก่อนจะเขียนโปรแกรมนั่นคือ การวิเคราะห์ปัญหา ถ้าเราทำสิ่งนี้ ไม่ได้ มันก็เหมือนตายตั้งแต่ก่อนเขียนแล้วอะ (เอาฟิลคนเขียนนะ เขียนไม่ออกแน่ๆ) แล้วอันที่ฝึกยากและต้องใช้เวลาก็ Problem Solving เลย นานสุดๆ
    มาถึงอีกเรื่องนั่นคือ เรื่องภาษาที่ใช้ ภาษาแต่ล่ะภาษามันก็มีข้อเด่น ข้อด้อย ของมัน แต่สำหรับคนที่พึ่งเริ่มเขียน ผมแนะนำให้ไปเรียนภาษาล่างๆ เช่น C ไปก่อน เพราะตัวภาษา มันค่อนข้างเรียบง่ายกว่าๆภาษาอื่นๆ (เหรอ) เอาเป็นว่า มันคือพื้นฐานของหลายๆภาษา ถ้าได้ C แล้ว เราอาจจะต่อยอดไป C++ ก็ไม่ใช่เรื่องยากเลย เพราะมันก็เหมือนๆกัน แค่เพิ่มอะไรมาหน่อยเท่านั้นเอง พอเราเริ่มคล่องแล้ว แนะนำให้ไปลองเขียน Java ไม่ก็ C++ ที่เป็น OOP เพราะมันเหมาะสำหรับการแก้ปัญหาที่ซับซ้อนกว่าตัวของ C ที่เป็น Structural Programming ใน Java หรือ C++ เราจะไปเน้นในสิ่งที่เรียกว่า OOP (Object Oriented Programming)
    ซึ่งในปัจจุบัน C เฉยๆก็ไม่ค่อยมีคนใช้เท่าไหร่และ เว้นแต่คนที่ทำงานติดกับ Hardware จริงๆ ส่วนใหญ่จะไปใช้ C++,C#,Java กันซะมากกว่า
    เพิ่มเติม ผมก็สาย Java อะนะ ตอนแรกที่เราเรียนตัว Java พื้นฐานเราจะไปเรียน J2SE มันคือ Standard Edition ของตัว Java แต่หลังที่เรารู้ J2SE ไปแล้ว ผมแนะนำให้ไปหาอ่าน J2EE ก็จะดีมากๆ เพราะเหมือนรู้สึกว่าในเมืองไทยคนที่เก่ง J2EE จริงๆ เอาเก่งจริงๆเลย ผมว่ายังน้อยอยู่นะ อาจจะเพราะไม่มีคนแปล Doc มาให้แน่ๆเลย lol
    สุดท้ายจริงๆและ ไม่รู้จะเรียนที่ไหน เราเลยจะมาแนะนำเว็บที่สอน Coding กัน
    เว็บแรกที่จะแนะนำคือ Code.org เป็นเว็บที่ผมชอบเว็บนึงนะ เพราะมันเป็นเว็บที่ใครๆก็เรียนได้ ตั้งแต่เด็กยันแก่เลย ผมเคยเห็นฝรั่งอายุ 60+ มาเรียนก็เรียนได้จริงๆนะ Anyone can code จริงๆ
    อีกเว็บก็เว็บตัวเองนั่นแหละ lol อาจจะไม่ได้พื้นฐานเหมือนของเขา แต่จะเน้นภาษามากกว่า เหมาะสำหรับคนที่มีพื้นฐานมาแล้ว แล้วอยากจะเรียนภาษาใหม่ ผมก็จะทยอยอัพเดทเรื่อยๆ ตอนนี้อาจจะมาติดๆขัดๆหน่อย ใกล้สอบ Final ที่มหาลัยและ งานเยอะด้วย TT arnondora.in.th/tutorial

Read Next...

โหลด CSV วิธีไหนเร็วที่สุด ?

โหลด CSV วิธีไหนเร็วที่สุด ?

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

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ฮาวทู Sync Obsidian Note ด้วย LiveSync Plugin

ตั้งแต่ใช้ Obsidian เป็น App จด Note หลัก ชอบวิธีการจัดการมาก ๆ เมื่อใช้งานร่วมกับ Plugin ต่าง ๆ ยิ่งทำให้การใช้งานยืดหยุ่นมากกว่าเดิมอีกเยอะมาก ๆ ติดอยู่เรื่องเดียวคือ การใช้งานในหลาย ๆ อุปกรณ์ แต่เราเจอ Plugin ตัวนึงที่น่าสนใจมาก ๆ คือ LiveSync วันนี้เราจะมาเล่าวิธีการติดตั้ง และใช้งานมันกัน...

การสร้าง SSD Storage Pool บน Synology DSM

การสร้าง SSD Storage Pool บน Synology DSM

สำหรับคนที่ใช้ Synology NAS บางรุ่นจะมีช่อง M.2 สำหรับเสียบ NVMe SSD โดยพื้นฐาน Synology บอกว่ามันสำหรับการทำ Cache แต่ถ้าเราต้องการเอามันมาทำเป็น Storage ละ มันจะทำได้มั้ย วันนี้เราจะมาเล่าวิธีการทำกัน...

Multiprogramming, Multiprocessing และ Multithreading

Multiprogramming, Multiprocessing และ Multithreading

หลังจากที่เรามาเล่าเรื่อง malloc() มีคนอยากให้มาเล่าเรื่อง pthread เพื่อให้สามารถยัด Content ที่ละเอียด และเข้าใจง่ายในเวลาที่ไม่นานเกินไป เลยจะมาเล่าพื้นฐานที่สำคัญของคำ 3 คำคือ Multiprogramming, Multitasking, Multiprocessing และ Multithreading...