Skip to main content
0
Software Development

8 พื้นฐานที่ไม่รู้ไม่ได้ เมื่อจะเป็น Dev ในยุคที่มี AI ช่วยขนาดนี้

ในยุคนี้ที่การใช้งาน AI ที่มีสุดฉลาด ความสามารถเหนือคำบรรยายที่ปฏิวัติทุก ๆ วงการ รวมไปถึงวงการการเขียนโค้ดของชาวเดฟอย่างพวกเราด้วย ซึ่ง AI ที่ช่วยเขียนโค้ดก็จะมีตั้งแต่ GitHub Copilot หรือจะไปถามจากกลุ่ม ChatGPT หรือ Gemini ก็ได้เหมือนกัน เครื่องมือให้ใช้ในปัจจุบันมีเยอะมาก แต่หากเราไม่มีพื้นฐานการเขียนโปรแกรมที่ดีมา อยากได้อะไร ก็สั่งหรือเจนเอา AI ก็จะเขียนโค้ดมาเรื่อย ๆ ไม่ตรงใจก็สั่งใหม่ไปเรื่อย ๆ การทำแบบนี้ มักจะทำให้เกิดปัญหาแบบมีมด้านล่างนี้ ซึ่งไม่เกินจริงเลยแม้แต่นิดเดียว

ขอบคุณภาพจาก https://www.codeitbro.in/programming-memes/chatgpt-is-actually-a-problem-for-developers/

หากเรามีพื้นฐานที่ดี เราอาจจะใช้เวลาเยอะหน่อยในช่วงแรก สำหรับการคิด วางแผน ออกแบบและลงมือเขียนโค้ดไปเรื่อย ๆ ตามแนวทางที่เราได้ออกแบบไว้ ในระหว่างทางก็จะมีการปรับแก้ ทำความเข้าใจไปเรื่อย ๆ แต่หากเราเจนโค้ดมาโดยที่ไม่มีความรู้เลย มันอาจจะได้โค้ดมาไว รันได้ หรือรันไม่ได้ก็แล้วแต่ แต่หากเราต้องแก้ไขด้วยตัวเอง แต่พื้นฐานไม่แน่นเราก็จะต้องเสียเวลามาเก็บพื้นฐานทีหลัง และอาจจะต้องรื้อทั้งโปรเจกต์เขียนใหม่อยู่ดี นั่นเลยเป็นที่มาของบทความนี้ เราจะมาดูกันว่าแล้วเจ้า “พื้นฐานการเขียนโปรแกรมที่ชาวโปรแกรมเมอร์ต้องรู้” มันมีอะไรบ้าง ไปดูกันเลย!

การแก้ปัญหา Problem Solving

ขอบคุณภาพจาก https://unsplash.com/photos/woman-in-black-blazer-writing-on-white-paper-n3mn7IgtwS4

ก่อนที่เราจะไปเริ่มเขียนโค้ด เราควรเรียนรู้วิธีการคิด การวิเคราะห์ปัญหาก่อน เพราะโค้ดที่เราจะเขียนมาเป็นโปรแกรม เราก็เขียนมันมาเพื่อแก้ไขปัญหานี่แหละ หากเรามีกระบวนการคิดสำหรับการแก้ปัญหาที่ดีได้ เราก็จะสามารถพัฒนาโปรแกรมที่มีประสิทธิภาพออกมาได้ ไม่ว่าจะเขียนโค้ดเอง หรือเขียน Prompt ให้ AI พื้นฐานในส่วนนี้เป็นสิ่งสำคัญมาก ๆ

ภาษาที่ใช้ในการเขียนโปรแกรม

จะให้ AI เขียนโค้ดให้ เราก็ต้องเข้าใจโค้ดก่อนมั้้ย? แน่นอนว่าเราควรจะต้องเรียนรู้ภาษาที่ใช้เขียนโปรแกรมด้วย จะได้รู้ว่าเราจะสั่งให้คอมพิวเตอร์ทำอะไร โค้ดแต่ละบรรทัดมันทำงานอะไร แก้ปัญหาตามที่เราได้ออกแบบไว้มั้ย และสำหรับการเลือกภาษาที่จะเรียนรู้นั้นขึ้นอยู่กับหลายปัจจัยได้เลย ถ้าแบบง่าย ๆ เรียนรู้ไว ๆ ก็จะมี Python, C#, Java, JavaScript และ Ruby เป็นต้น

เรามีคอร์สเรียนฟรี JavaScript ฟรีมาเรียนกันได้ที่ : https://school.borntodev.com/course/introduction-to-javascript

การเข้าใจโครงสร้างของข้อมูล

ภาพจาก https://visualgo.net/en

พอเราเริ่มเข้าใจการเขียนโปรแกรมแล้ว เราก็จะต้องมาทำความเข้าใจกับโครงสร้างข้อมูล เป็นอีกหนึ่งพื้นฐานหนึ่งวิชาที่เด็กไอที เด็กสายคอมต้องผ่านมา เพราะมันเป็นพื้นฐานที่สำคัญที่ช่วยให้เรารู้ว่าจะจัดการกับข้อมูลและเก็บข้อมูลยังไง เราจะต้องเข้าใจการทำงานของพวก array, link list, stack, queue เป็นต้น เอาไว้เวลาเราเจอปัญหาที่ซับซ้อน ความรู้เหล่านี้จะจำเป็นมาก ๆ ตอนที่เราพัฒนาโปรแกรม

อัลกอริทึม

ภาพจาก https://algorithm-visualizer.org/

รู้ Data Structure แล้วต้องรู้ Algorithm มันเป็นของคู่กัน เพราะการเข้าใจอัลกอริทึมมันคือวิธีการหรือกระบวนการที่เราจะใช้ในการแก้ไขปัญหาอย่างเป็นระบบ หากยิ่งเรามีพื้นฐานเรื่องอัลกอริทึมแน่ ๆ มันก็ยิ่งช่วยให้เรารู้ว่าทางไหน หรือวิธีการแก้ปัญหาแบบไหนมันมีประสิทธิภาพที่สุด

การออกแบบ Software Design

ภาพจาก https://refactoring.guru/design-patterns

เมื่อเราเรียนรู้พื้นฐานทั้งการเขียนโปรแกรมและจัดการข้อมูลแล้ว เราควรรู้วิธีการออกแบบซอฟต์แวร์ด้วย เพราะมันเป็นขั้นตอนที่สำคัญมากในการพัฒนาโปรแกรม มันจะช่วยให้เราสามารถวางโครงสร้างและแนวทางของซอฟต์แวร์ได้อย่างมีประสิทธิภาพ โดยเราต้องพิจารณาทั้งในเรื่องของการแยกแยะฟังก์ชันการทำงาน การจัดการความซับซ้อนของระบบ และการออกแบบโมดูลต่าง ๆ ที่จะทำให้ทั้งเราและทีม สามารถพัฒนาและบำรุงรักษาโปรแกรมที่เขียนมาได้ง่าย นอกจากจะมีเรื่องการออกแบบการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Design) หรือเชิงฟังก์ชันที่ชาวเดฟจำเป็นต้องรู้จักและนำไปใช้ในการพัฒนาระบบให้มีโครงสร้างที่ดีและชัดเจนมากยิ่งขึ้น

การทดสอบ และ Debugging

เมื่อเราพัฒนาโปรแกรมเสร็จแล้ว สิ่งที่ขาดไม่ได้คือการทดสอบ (Testing) เพื่อให้แน่ใจว่าโปรแกรมทำงานได้ตามที่คาดหวัง การทดสอบนี้สามารถทำได้หลายรูปแบบ เช่น Unit Test, Integration Test, และ System Test การเขียนเทสเป็นการตรวจสอบว่าแต่ละฟังก์ชันทำงานถูกต้องในทุกกรณีที่เป็นไปได้ รวมถึงการ Debugging ที่เป็นการตรวจหาข้อผิดพลาด (bug) และแก้ไขให้โปรแกรมทำงานได้สมบูรณ์ การเข้าใจและใช้เครื่องมือที่ช่วยในการ Debug เช่น Debugger ใน IDE ก็เป็นอีกหนึ่งทักษะที่สำคัญที่โปรแกรมเมอร์ทุกคนควรมี

ความเข้าใจใน OS

นอกจากเรื่องของการเขียนโปรแกรมแล้วเรายังต้องเข้าใจเรื่องการทำงานของ OS ด้วย เพราะโปรแกรมที่เราเขียนมันจะต้องทำงานกับตัวที่ใช้จัดการ Hardware ในเครื่องเรา ไม่ว่าจะเป็น CPU Memory หรือ Storage ต่าง ๆ เราจะต้องรู้ว่าการจัดการไฟล์ จัดการเธรด เค้าทำยังไง? การเข้าใจเรื่องของ OS มันจะช่วยให้เราสามารถใช้ทรัพยากรของระบบได้อย่างเต็มที่

การจัดการหน่วยความจำ การเพิ่มประสิทธิภาพ

ขอบคุณภาพจาก https://unsplash.com/photos/macro-shot-photo-of-a-computer-ram-lYxQ5F9xBDM

สุดท้ายที่ขาดไม่ได้เลยคือ “การจัดการหน่วยความจำ” เพราะอย่างหากเราเรียนรู้เรื่องการเขียนโปรแกรม และ Data Structure เราจะเข้าใจว่าสิ่งที่เก็บอยู่ในตัวแปร มันมีการใช้งาน memory และถ้าหากเราจัดการหน่วยความจำเหล่านี้ไม่ดี เขียนโค้ดที่ไม่ได้ประสิทธิภาพมาอาจจะเกิดปัญหาที่เรียกว่า Memory Leak หรือการทำงานของหน่วยความจำรั่วไหล หรือ ถูกใช้งานจนเต็มทำให้โปรแกรมไม่สามารถทำงานต่อได้ ดังนั้นการเข้าใจการใช้หน่วยความจำ อย่างเรื่อง Stack และ Heap การทำงานของ Garbage Collection หรือการจัดการหน่วยความจำด้วยตัวเอง จะทำให้เราสามารถลดเวลาในการประมวลผล การจัดการ I/O หรือการลดความซับซ้อนของอัลกอริทึมได้

และสำหรับใครที่อยากเรียนเขียนโปรแกรมตั้งแต่พื้นฐาน แบบเก็บทุกเม็ด ตั้งแต่เริ่มต้น จนถึงการใช้เครื่องมือจริง ๆ ที่ใช้งานในสาย Web Development ไม่ว่าจะเป็น Front-end หรือ Back-end แบบไม่ต้องเสียเวลาลองผิดลองถูกด้วยตัวเอง เรามีหลักสูตร Road to Front-end / Road to Back-end Developer ที่จะพาคุณเรียนรู้ตั้งแต่การเขียนโค้ดขั้นพื้นฐาน ไปจนถึงการทำ Lab และโปรเจกต์จริง ช่วยให้คุณพัฒนาโปรแกรมอย่างมีประสิทธิภาพ ครบจบในที่เดียวที่ BorntoDev!

Road to Front-end Bootcamp : https://www.borntodev.com/road-to-front-end-developer-bootcamp/

Road to Back-End Bootcamp : https://www.borntodev.com/road-to-back-enddeveloper-bootcamp/

Sirasit Boonklang

Author Sirasit Boonklang

More posts by Sirasit Boonklang

เราใช้คุกกี้เพื่อพัฒนาประสิทธิภาพ และประสบการณ์ที่ดีในการใช้เว็บไซต์ของคุณ คุณสามารถศึกษารายละเอียดได้ที่ นโยบายความเป็นส่วนตัว และสามารถจัดการความเป็นส่วนตัวเองได้ของคุณได้เองโดยคลิกที่ ตั้งค่า

ตั้งค่าความเป็นส่วนตัว

คุณสามารถเลือกการตั้งค่าคุกกี้โดยเปิด/ปิด คุกกี้ในแต่ละประเภทได้ตามความต้องการ ยกเว้น คุกกี้ที่จำเป็น

ยอมรับทั้งหมด
จัดการความเป็นส่วนตัว
  • คุกกี้ที่จำเป็น
    เปิดใช้งานตลอด

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

  • คุกกี้สำหรับการติดตามทางการตลาด

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

บันทึกการตั้งค่า