ภาษาJavaและภาษาPythonแตกต่างกันอย่างไร?

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

เปรียบเทียบภาษา Java กับ Python ต่างกันอย่างไร?

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

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

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

ทั้ง Java แล้วก็ Python เนี่ย มีคนใช้เยอะมากๆ สองภาษาโปรแกรมเมอร์นี้ก็เป็นที่นิยมนะ มีปัญหาอะไรก็หาคนช่วยในกลุ่มออนไลน์ได้ตลอดเลย เหมือนเป็นเพื่อนร่วมงานที่เก่งกันคนละแบบอะ Java ก็ดูจริงจัง Python ก็สบายๆ ดี เลือกเอาตามที่เหมาะกับงานในมือตอนนั้นแหละ

พาสาC และ Javaต่างกันยังไง

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

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

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

C เน้นการเข้าถึงฮาร์ดแวร์โดยตรง ให้ประสิทธิภาพสูง จัดการหน่วยความจำด้วยตัวเอง เป็นพื้นฐานของระบบปฏิบัติการหลายตัว พลังงานมันรุนแรงมาก ต้องละเอียดกว่าใคร

Java แตกต่างกันไปเลย มันเป็นภาษาเชิงวัตถุ ออกแบบมาให้ทำงานได้ทุกแพลตฟอร์มผ่าน JVM มีการจัดการหน่วยความจำอัตโนมัติ ทำให้พัฒนาได้รวดเร็วและปลอดภัยกว่ามากจริงๆ

เรื่องความต่างกันนะ... C มันก็เหมือนนักแข่งรถที่ต้องปรับแต่งเครื่องยนต์ทุกชิ้นส่วนเองเลย เพื่อความเร็วสูงสุด ส่วน Java มันคือรถยนต์อัจฉริยะที่ขับเคลื่อนด้วยระบบอัตโนมัติ พาเราไปได้ทุกที่เลย สะดวกสบายกว่าเยอะ

  • C:

    • การควบคุมหน่วยความจำ: นักพัฒนาจัดการเองทั้งหมด ชี้ไปที่หน่วยความจำโดยตรง ความรับผิดชอบสูงมาก อิสระสุดๆ จำได้เลยว่าเคยนั่งไล่บั๊กเรื่อง pointer เป็นวันๆ เลยนะ มันฝังใจ
    • ประสิทธิภาพ: มันเร็ว แรงสุดๆ เหมาะกับงานที่ต้องการความเร็วสูงมากๆ เช่น ระบบปฏิบัติการ ไดรเวอร์ หรือเกม เพราะโค้ดคอมไพล์เป็นภาษาเครื่องโดยตรง ไม่ต้องมีตัวกลาง โอ้โห พลัง!
    • การเข้าถึงฮาร์ดแวร์: C เข้าถึงฮาร์ดแวร์ระดับต่ำได้โดยตรง ทำให้มันเป็นตัวเลือกแรกๆ สำหรับการเขียนระบบฝังตัว (embedded systems) หรือโปรแกรมที่ต้องคุยกับอุปกรณ์ต่างๆ โดยตรง มันสุดยอดจริงๆ
    • พอร์ต: C ใช้ในการเขียนไลบรารีและเคอร์เนลของระบบปฏิบัติการต่างๆ เช่น Linux นี่แหละแก่นแท้
  • Java:

    • แพลตฟอร์มอิสระ: คอนเซ็ปต์ "เขียนครั้งเดียว รันได้ทุกที่" ผ่าน Java Virtual Machine (JVM) ไม่ต้องกังวลเรื่องระบบปฏิบัติการ ช่วยให้งานพัฒนาไปได้เร็วมากในโลกปัจจุบัน โคตรดี!
    • การจัดการหน่วยความจำอัตโนมัติ: JVM มี Garbage Collector คอยจัดการหน่วยความจำที่ไม่ใช้งานให้เอง นักพัฒนาไม่ต้องปวดหัวกับการคืนหน่วยความจำ ลดโอกาสเกิดข้อผิดพลาดด้านหน่วยความจำลงไปเยอะเลย
    • เชิงวัตถุเต็มตัว: Java เป็นภาษาเชิงวัตถุ (Object-Oriented Programming) แท้ๆ ช่วยให้โครงสร้างโค้ดเป็นระเบียบ เข้าใจง่าย นำกลับมาใช้ใหม่ได้สะดวกขึ้นมากจริงๆ เหมือนสร้างบล็อกต่อๆ กัน
    • ความปลอดภัย: มีระบบรักษาความปลอดภัยในตัวที่ดีกว่า C มาก ป้องกันการเข้าถึงหน่วยความจำโดยไม่ได้รับอนุญาต ลดช่องโหว่ต่างๆ เพิ่มความมั่นใจให้กับโปรแกรมเมอร์ นี่แหละคือความสงบสุขที่แท้จริง
    • เฟรมเวิร์กและไลบรารี: มีระบบนิเวศขนาดใหญ่ของไลบรารีและเฟรมเวิร์กมากมาย รองรับการพัฒนาแอพพลิเคชันหลากหลายประเภท ทั้งเว็บ มือถือ หรือองค์กรต่างๆ ช่วยให้การทำงานง่ายขึ้นจริงๆ สบายไปเลย

ภาษา Java เป็นภาษาระดับใด

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

คือตอนนั้นนะ Java มันเป็นอะไรที่แบบ โอ้โห ต้องทำความเข้าใจใหม่หมดเลย จากภาษาที่เราเคยเขียนก่อนหน้า มันเป็นภาษาระดับสูง กว่าเยอะมาก เหมือนต้องคิดเป็นอีกแบบไปเลยจริงๆ

เพื่อนข้างๆ ชื่อก้อง นั่งเขียนฉิวๆ เรานี่ตาเหลือก เพราะงงกับแนวคิด Object กับ Class เป็นบ้า มันคืออะไรวะเนี่ย ของจริงป่ะ ทำไมต้องมองอะไรซับซ้อนขนาดนั้น ตอนนั้นท้อมากเลยนะ

อาจารย์อธิบายว่ามันคือการมองโลกเป็นวัตถุ เหมือนเรามี Student เป็นคลาส แล้วนักศึกษาแต่ละคนก็เป็น Object ของคลาสนี้ พอเข้าใจเท่านั้นแหละ โอ๊ยยย โล่งงง โล่งใจแบบที่ไม่เคยเป็นมาก่อน

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

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

ที่สำคัญคือ Java มันอยู่ในยุคที่ 4 ของภาษาโปรแกรม เลยนะ ซึ่งตอนนั้นเราก็ไม่ได้สนใจหรอก แค่อยากให้โค้ดรันผ่านก็พอแล้ว สุดท้ายก็ผ่านฉลุย แต่ตอนนี้เข้าใจลึกซึ้งขึ้นเยอะ

  • Java เป็น ภาษาระดับสูง
  • จัดอยู่ใน ยุคที่ 4 ของภาษาโปรแกรม
  • สนับสนุนการเขียนโปรแกรมเชิงวัตถุ (Object-Oriented Programming - OOP)
  • ใช้ Object เป็นหลักในการพิจารณาสิ่งต่างๆ
  • โปรแกรมประกอบด้วยกลุ่มของ Object
  • Object ถูกจัดกลุ่มในรูปของ Class

ภาษาJava อยู่ในระดับใด

บางที...ตอนกลางคืนเงียบๆ ก็มานั่งคิดเรื่องเก่าๆ แล้วก็นึกถึง Java ขึ้นมา...

ภาษา Java... มันเป็นภาษาระดับสูง (High-Level Language)

มันใกล้กับภาษามนุษย์... เราเลยไม่ต้องไปนั่งปวดหัวกับเรื่องฮาร์ดแวร์มากนัก มันมีเครื่องมือ มีกรอบให้เราใช้เยอะแยะไปหมด... ทำให้เราคิดแค่ว่า... จะแก้ปัญหานี้ยังไงดี แค่นั้นพอ...

จำได้เลย ตอนทำโปรเจกต์ส่งอาจารย์ครั้งแรก... เหนื่อยมาก แต่ก็เพราะมันเป็น high-level นี่แหละที่ทำให้พอไปไหว มันไม่เหมือนพวกภาษาระดับล่าง... อันนั้นคือคุยกับเครื่องจักรโดยตรงเลย... คงไม่รอด

เออ... ไหนๆ ก็นึกถึงเรื่องนี้แล้ว

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

โปรแกรมจาวา ใช้ทําอะไร

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

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

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

  • แอปพลิเคชันระดับองค์กร (Enterprise Applications): นี่คือสนามเด็กเล่นของจาวาเลย พวกระบบใหญ่โตมโหฬารของบริษัทข้ามชาติ ระบบธนาคารที่เงินเข้าออกวินาทีละล้านๆ ระบบหลังบ้าน ที่ทำงานหนักกว่ากรรมกรแบกหาม พวกนี้ใช้จาวาเป็นหลัก เพราะมันเสถียรเหมือนหินผา
  • แอปพลิเคชันแอนดรอยด์: ถึงยุคนี้จะมีภาษาอื่นมาให้เลือก แต่รากฐานดั้งเดิมของ การพัฒนาแอปแอนดรอยด์ ก็คือจาวา ยังมีแอปอีกเป็นล้านๆ ตัวที่ยังใช้จาวาเป็นหัวใจหลักในการทำงาน
  • บิ๊กดาต้า (Big Data): เวลาต้องจัดการข้อมูลขนาดเท่าภูเขาไฟฟูจิ เครื่องมือโหดๆ อย่าง Hadoop หรือ Spark เนี่ย มันก็เขียนด้วยจาวานะจ๊ะ ไม่ธรรมดาเลยนะไอ้แก่เนี่ย
  • เว็บแอปพลิเคชัน: เว็บไซต์ของหน่วยงานราชการ สถาบันการเงิน หรือเว็บอีคอมเมิร์ซที่ต้องรับคนเข้าทีละเยอะๆ ส่วนใหญ่มักจะมีจาวาแอบซ่อนอยู่เบื้องหลังเสมอ
  • อุปกรณ์สมองกลฝังตัว (Embedded Systems): ไม่เชื่อก็ต้องเชื่อว่ามันสิงสถิตอยู่ในทุกสิ่งอย่าง ตั้งแต่เครื่องเล่น Blu-ray ยันบัตรสมาร์ตการ์ด หรือซิมการ์ดในมือถือเรานี่แหละ

Java เหมาะกับงานอะไร

นั่งมองเพดานตอนดึกๆ... บางทีก็คิดอะไรไปเรื่อยเปื่อย Java เหรอ... มันอยู่รอบตัวเรามากกว่าที่คิดเยอะเลยนะ

เราใช้ภาษา Java สำหรับหลายสิ่งมาก คิดดูสิว่ามันสำคัญแค่ไหนในโลกตอนนี้

  • การพัฒนาเกม Java เป็นพื้นฐานของเกมที่เราคุ้นเคยมานานมาก อย่าง Minecraft ก็ใช้ Java ทำให้มันเล่นได้หลากหลายแพลตฟอร์ม มันยังเป็นตัวเลือกที่ดีสำหรับเกมมือถือเก่าๆ และเกมแนวอินดี้ที่เน้นความยืดหยุ่นนะ

  • การประมวลผลบนระบบคลาวด์ โลกเราตอนนี้อยู่บนคลาวด์เกือบทั้งหมด Java คือแกนหลักของระบบคลาวด์หลายๆ เจ้าเลยล่ะ แพลตฟอร์มใหญ่ๆ อย่าง Amazon Web Services (AWS) หรือ Google Cloud Platform (GCP) ก็ใช้ Java เป็นส่วนสำคัญในการจัดการทรัพยากรให้มีประสิทธิภาพ

  • Big Data ข้อมูลปริมาณมหาศาลที่ไหลเข้ามาทุกวัน เราต้องการเครื่องมือที่ทรงพลังมาจัดการมัน Java ตอบโจทย์ตรงนี้ได้ดีมาก เครื่องมือสำคัญๆ อย่าง Apache Hadoop และ Apache Spark ที่ใช้ประมวลผลข้อมูลขนาดใหญ่ก็เขียนด้วย Java เป็นหลัก ทำให้ทำงานได้เร็วและน่าเชื่อถือ

  • ปัญญาประดิษฐ์ (AI) AI กำลังเข้ามาในชีวิตประจำวันของเราเยอะขึ้น Java มีไลบรารีและเฟรมเวิร์กที่แข็งแกร่งสำหรับการพัฒนา AI และ Machine Learning ทำให้เราสร้างโมเดลที่ซับซ้อนได้ง่ายขึ้นมาก เป็นรากฐานสำคัญในการขับเคลื่อนนวัตกรรม AI ปัจจุบัน

  • อินเทอร์เน็ตในทุกสิ่ง (IoT) อุปกรณ์รอบตัวเราเชื่อมต่อกันหมดแล้ว ไม่ว่าจะเป็นตู้เย็นอัจฉริยะ หลอดไฟ รถยนต์ หรืออุปกรณ์สวมใส่ Java เข้าไปมีบทบาทในส่วนนี้ด้วยนะ เพราะมันทำงานได้ดีบนอุปกรณ์ที่มีทรัพยากรจำกัด ปลอดภัย และยืดหยุ่น ทำให้ IoT เป็นจริงขึ้นมาได้

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

Java Programmer ทําอะไรบ้าง

โปรแกรมเมอร์ Java หรอ. หลักๆเลยนะ ก็คือคนที่เขียนโค้ดด้วยภาษา Java นี่แหล่ะ เพื่อสร้างโปรแกรมหรือแอปต่างๆที่มันรันบนแพลตฟอร์ม Java ได้อะ.

ไม่ใช่แค่เขียนโค้ดใหม่ๆนะ ต้องคอยดูแลของเก่าด้วย. แก้บั๊ก เวลาโปรแกรมมันพัง หรือทำงานแปลกๆ ก็ต้องไปไล่หาว่าผิดตรงไหน. แล้วก็ปรับให้มันทำงานเร็วขึ้น ลื่นขึ้น.

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

หน้าที่หลักๆของ Java Programmer ก็จะประมาณนี้

  • ออกแบบแล้วก็สร้างแอปพลิเคชัน เว็บไซต์ หรือระบบหลังบ้าน (Back-end)
  • เขียนโค้ด Java เป็นหลักเลย อันนี้แนอนน
  • เทสโปรแกรม หาจุดที่มันอาจจะพัง หรือทำงานไม่ถูก
  • แก้บั๊ก แก้โค้ดที่มันมีปัญหาอยู่แล้ว
  • ดูแลรักษาระบบเก่าๆที่เขียนด้วย Java ให้มันยังใช้ได้
  • ทำงานกับฐานข้อมูล (Database) ด้วย เพราะแอปส่วนใหญ่ต้องเก็บข้อมูล
  • ทำเอกสารประกอบโปรเจกต์บ้าง ตามที่เค้าสั่งมา

โปรเเกรมเมอร์ทำงานที่ไหนได้บ้าง

โปรแกรมเมอร์ทำงานที่ไหน... อืมม ที่จริงมันกว้างมากเลยนะตอนนี้

ส่วนใหญ่ก็ยังเป็นพนักงานบริษัท ทำงานในออฟฟิศนั่นแหละ เบสิกสุด แต่หลังๆ มานี่ Work from Home กลายเป็นเรื่องปกติไปแล้ว บางที่ก็เป็น Hybrid เข้าออฟฟิศอาทิตย์ละ 2-3 วัน เพื่อนผมคนนึงเป็น Backend Developer อยู่บริษัทใหญ่ ก็ทำแบบนี้แหละ

แล้วก็มีพวกฟรีแลนซ์ หรือคนที่ทำงานแบบ Remote 100% อันนี้คืออิสระจริง จะนั่งเขียนโค้ดที่บ้าน ร้านกาแฟ Co-working space หรือไปเป็น Digital Nomad อยู่ต่างจังหวัด ต่างประเทศเลยก็ได้ แค่มีเน็ตกับแล็ปท็อปคู่ใจพอ

แล้วมันมีบริษัทประเภทไหนบ้างนะที่จ้างโปรแกรมเมอร์? มันไม่ใช่แค่บริษัทเทคฯ อย่างเดียวนะ

  • บริษัทเทคโนโลยี (Tech Company): พวก Google, Agoda, LINE MAN Wongnai นี่คือตรงสายสุดๆ
  • องค์กรใหญ่ๆ ทั่วไป: ธนาคาร บริษัทประกัน โรงพยาบาล พวกนี้มีทีม in-house developer ของตัวเอง
  • Startup: อันนี้มีทุกรูปแบบเลย ทั้ง WFH, Hybrid, ออฟฟิศเล็กๆ
  • Software House: รับงานมาทำเป็นโปรเจกต์ๆ ไป
  • หน่วยงานราชการ: ก็มีตำแหน่ง โปรแกรมเมอร์ เหมือนกันนะ

Programmer มีหน้าที่อะไรบ้าง

ถามว่าโปรแกรมเมอร์ทำอะไรเหรอ... อืม...

มันก็คือการนั่งคุยกับคอมพิวเตอร์มั้ง... บอกให้มันทำในสิ่งที่เราอยากให้ทำ... ผ่านภาษาที่คนทั่วไปอ่านแล้วไม่เข้าใจ

บางทีก็เหมือนเป็นนักแปล... แปลความต้องการของคน... ให้กลายเป็นสิ่งที่จับต้องได้จริงบนหน้าจอ... มันคือการแก้ปัญหา... แก้ไปเรื่อยๆ ทั้งวัน... บางทีก็ทั้งคืน... ปัญหานึงจบไป... ก็มีปัญหาใหม่โผล่มาอีก

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

พอทำเสร็จ... เห็นคนอื่นได้ใช้สิ่งที่เราสร้าง... มันก็... รู้สึกดีนะ... หายเหนื่อยไปแป๊บนึง... ก่อนจะต้องกลับไปแก้ปัญหาเดิมๆ ใหม่

สรุปแล้วงานหลักๆ มันก็มีประมาณนี้แหละ

  • เขียนโค้ด (Coding) นี่คือแก่นเลย คือการสร้างโปรแกรม สร้างเว็บ สร้างแอปพลิเคชันขึ้นมาจากหน้ากระดาษเปล่าๆ ด้วยภาษาคอมพิวเตอร์อย่าง Python, JavaScript, Java

  • ทดสอบและแก้ไขข้อผิดพลาด (Testing & Debugging) งานส่วนใหญ่หมดไปกับตรงนี้เลย คือการหา "บั๊ก" หรือจุดที่มันทำงานพัง... แล้วก็ซ่อมมันให้กลับมาทำงานได้เหมือนเดิม

  • ดูแลรักษาระบบ (Maintenance) ไม่ใช่แค่สร้างแล้วจบ... แต่ต้องคอยดูแลให้โปรแกรมเก่าๆ มันยังใช้งานได้ดีอยู่เสมอ... อัปเดตมัน... เพิ่มของใหม่เข้าไปบ้าง

  • เรียนรู้ตลอดเวลา (Continuous Learning) เทคโนโลยีมันไปเร็วมาก... โปรแกรมเมอร์ต้องเรียนรู้ของใหม่ตลอด ภาษาใหม่ๆ เครื่องมือใหม่ๆ มันมีมาให้เรียนรู้ไม่เคยหยุดนิ่งเลยจริงๆ