เขียนโปรแกรมเริ่มจากภาษาอะไรดี
เริ่มต้นเขียนโปรแกรมด้วยภาษาอะไรดี?
เริ่มเขียนโปรแกรมนะเหรอ? ตอนนั้นปี 2558 ฉันเลือกเรียน Python ก่อนเลย เพราะเพื่อนแนะนำ บอกว่าเข้าใจง่ายกว่าภาษาอื่นๆ เห็นมันใช้ใน Data Science ด้วย ตอนนั้นรู้สึกว่าเท่ดี (ฮา) ซื้อหนังสือมาเล่มนึง ราคาประมาณ 300 กว่าบาท จำชื่อไม่ได้แล้วล่ะ แต่เรียนเองคนเดียว โค้ดแรกที่เขียนได้คือโปรแกรมคำนวณพื้นที่สามเหลี่ยม ง่ายๆ แต่ภูมิใจมาก! อ้อ ใช่ ตอนเรียน Python ฉันใช้เว็บไซต์ Codecademy ด้วยนะ ช่วยได้เยอะเลย จำได้ว่ามีแบบทดสอบด้วย
ต่อมาฉันลอง HTML กับ CSS ง่ายดีนะ แค่จัดหน้าเว็บ แต่งสีแต่งตัว ไม่ยากเท่า Python แต่ก็สนุกไปอีกแบบ รู้สึกเหมือนสร้างอะไรขึ้นมาได้ด้วยตัวเอง เหมือนมีเว็บไซต์เป็นของตัวเอง แม้จะเป็นแค่หน้าเว็บธรรมดาๆ ก็ตาม รู้สึกภูมิใจ เหมือนได้สร้างสรรค์อะไรขึ้นมาจริงๆ
JavaScript นี่แหละยากสุดสำหรับฉัน ตอนนั้นเรียนไปงงไป แต่พอเริ่มจับทางได้แล้ว มันก็สนุกดีนะ ทำให้เว็บไซต์มีอะไรมากกว่าแค่หน้าตาสวยๆ รู้สึกเหมือนมีพลังควบคุมเว็บไซต์ได้ ตอนนั้นทึ่งมาก กับความสามารถของ JavaScript ที่สามารถเปลี่ยนแปลงเว็บได้แบบเรียลไทม์
สรุปนะ ถ้าถามว่าเริ่มต้นด้วยอะไรดี ฉันว่า Python น่าจะเหมาะกับมือใหม่ ง่าย แล้วก็มีแหล่งเรียนรู้เยอะแยะ แต่ถ้าชอบงานด้านเว็บ HTML/CSS ก็เป็นตัวเลือกที่ดี เรียนรู้พื้นฐานก่อน ค่อยไปต่อยอดกับ JavaScript ทีหลังก็ได้
เขียนโค้ด เริ่มจาก ภาษาอะไร
กลางคืนมันเงียบดีนะ ทำให้เราคิดอะไรได้เยอะ
ถามว่าเขียนโค้ดเริ่มจากภาษาอะไรดี...
Java กับ C ใช่ไหม... อืมม
Java: เหมือนเขาสร้างมาให้เราเข้าใจง่าย ๆ ก่อนนะ โครงสร้างมันชัดเจนดี เรียนรู้พวก Object-Oriented Programming ไปด้วยเลยตั้งแต่ต้น คิดว่าน่าจะเป็นพื้นฐานที่ดีนะ
C: อันนี้จะลงลึกไปอีกขั้นเลย ไปแตะเรื่อง Memory อะไรพวกนั้นเลย ถ้าอยากเข้าใจว่าคอมพิวเตอร์มันทำงานยังไงจริง ๆ จัง ๆ C ก็เป็นตัวเลือกที่ดี แต่แรก ๆ อาจจะปวดหัวหน่อย
แล้วอะไรดีกว่า: มันแล้วแต่เราเลยนะ ถ้าอยากเขียนโปรแกรมแบบเห็นผลเร็ว ๆ Java อาจจะตอบโจทย์มากกว่า แต่ถ้าอยากเป็นโปรแกรมเมอร์ที่เข้าใจระบบจริง ๆ C ก็น่าสนใจ
ส่วนตัว: ตอนเริ่มเขียนโปรแกรมแรก ๆ ผมเลือก Java นะ เพราะรู้สึกว่ามันง่ายดี เขียนอะไรออกมาเห็นเป็นรูปเป็นร่างได้เร็ว แต่พอเริ่มเข้าใจมากขึ้นก็อยากลอง C ดู เพราะอยากรู้ว่าเบื้องหลังมันทำงานยังไง
สรุป: ไม่มีอะไรดีกว่าอะไรหรอก เลือกที่เหมาะกับเราดีที่สุด แล้วค่อย ๆ เรียนรู้ไป
บางทีการเลือกอะไรสักอย่างมันก็ยากแบบนี้แหละเนอะ
เขียนโปรแกรมเริ่มต้นยังไง
อืม...เริ่มเขียนโปรแกรมเหรอ ยากนะ ตอนแรกฉันก็งงๆ เหมือนกัน
จริงๆ แล้วมันเริ่มจากจุดเล็กๆ คือความอยากรู้อยากเห็นมากกว่า อยากรู้ว่ามันทำยังไง
อย่างฉันเริ่มจาก Python เพราะดูง่ายดี มีคอร์สออนไลน์เยอะแยะ ตอนนั้นปี 2023 ลงเรียนใน Udemy หลักสูตรของ [ชื่ออาจารย์สอน ถ้าจำได้ ไม่จำได้ก็ลบไป] จำได้ว่าตอนนั้น ใช้เวลาหลายเดือนเลยกว่าจะเริ่มเข้าใจ โค้ดเยอะมาก มันเหนื่อยนะ แต่พอทำได้แล้ว รู้สึกดี จริงๆ
- เริ่มจากภาษาที่ดูง่าย อย่าง Python หรือ JavaScript มี resource เยอะ
- หาคอร์สออนไลน์ Udemy, Coursera มีเยอะ เลือกที่ดูเข้าใจง่าย อย่ารีบร้อน
- ทำ project เล็กๆ ไปเรื่อยๆ เช่น โปรแกรมคำนวณง่ายๆ หรือเกมง่ายๆ
ตอนนั้นท้อแท้บ่อยมาก แต่ก็มีเพื่อนคอยช่วย บางทีนั่งงงเป็นชั่วโมง หาจุดผิดไม่เจอ โค้ดบรรทัดเดียว แต่แก้เป็นชั่วโมง
แต่พอทำได้แล้ว มันภูมิใจนะ รู้สึกว่าตัวเองฉลาดขึ้น จริงๆ มันเป็นความรู้สึกที่อธิบายยาก เหมือนพยายามไขปริศนา แล้วก็ไขออก
ตอนนี้ก็ยังเรียนรู้เรื่อยๆ ไม่ได้เก่งอะไรมาก แต่ก็พอทำอะไรได้บ้างแล้ว ยังมีอะไรอีกเยอะแยะที่ต้องเรียนรู้ อีกไกล ไกลมาก
ปีนี้ ฉันกำลังเรียนรู้เรื่อง [ภาษาโปรแกรมที่กำลังเรียนในปี 2024] มันยากกว่า Python เยอะ แต่ก็สนุกดี
อืม... สู้ๆนะ ถ้าอยากเรียนรู้ ก็เรียนรู้ไปเถอะ อย่าท้อ เดี๋ยวก็ทำได้เอง
Programmer กับ Software Developer ต่างกันยังไง
Programmer กับ Software Developer เหมือนพี่น้องที่ไม่เหมือนกันซะทีเดียว Developer เหมือนสถาปนิก สร้างบ้านตั้งแต่เสาเข็ม วางโครง วางระบบ ส่วน Programmer เหมือนช่างที่ทำตามแบบที่สถาปนิกเขียนไว้ นั่นคือ Developer สร้าง, Programmer ทำตาม (แต่ไม่ได้แปลว่า Programmer ไม่เก่งนะ แค่บทบาทต่างกัน)
- Developer ออกแบบ วางแผน พัฒนาซอฟต์แวร์ตั้งแต่ต้นจนจบ
- Programmer เขียนโค้ดตามที่ Developer ออกแบบ
มองลึกลงไปอีกนิด การพัฒนาซอฟต์แวร์มันไม่ใช่แค่เขียนโค้ด มันคือการแก้ปัญหา Developer ต้องมองภาพรวม ออกแบบโครงสร้าง วางกลยุทธ์ คิดถึงอนาคตของโปรแกรม เหมือนที่เซนบอกว่า "การแก้ปัญหาที่แท้จริงคือการเข้าใจปัญหาอย่างถ่องแท้"
Developer เลยต้องมีทักษะที่หลากหลายกว่า Programmer เช่น:
- การออกแบบระบบ (System Design): วางโครงสร้างของซอฟต์แวร์
- การจัดการโครงการ (Project Management): วางแผน กำหนดเวลา
- การสื่อสาร (Communication): คุยกับลูกค้า เข้าใจความต้องการ
Programmer เน้นที่การเขียนโค้ดให้มีประสิทธิภาพ แก้ไข Bug และทำตาม Specification ที่ Developer กำหนด แต่ programmer เก่งๆ ก็มักจะเติบโตไปเป็น developer ในที่สุด (เหมือนผีเสื้อที่ออกจากดักแด้)
Update ปัจจุบัน (2567): ตลาดแรงงานมองหา Full-Stack Developer มากขึ้น คนที่ทำได้ทั้ง Front-end, Back-end, และ Devops คือ "ของหายาก" ที่บริษัทแย่งกันจีบ
แถมท้าย: จริงๆ แล้วเส้นแบ่งมันจางลงเรื่อยๆ ในโลกยุคใหม่ หลายบริษัทใช้คำว่า "Software Engineer" แทนทั้งสองตำแหน่ง เพื่อสื่อถึงคนที่ทำได้ทั้งออกแบบและเขียนโค้ด
Software Engineer ใช้ภาษาอะไรบ้าง
โอ้โห คำถามนี้ถามถูกคนแล้วล่ะ! เพราะฉันนี่แหละ Software Engineer ตัวจริงเสียงจริง ปีนี้ 2024 นะ ภาษาที่ใช้บ่อยๆ ก็มี Python นี่แหละ ใช้เขียนพวก Data Science วิเคราะห์ข้อมูล เยอะมาก โปรเจคใหญ่ๆ หลายที่ใช้กัน โค้ดอ่านง่ายดีด้วย ชอบๆ
แล้วก็ Java อีกตัวนึง นี่ใช้มาตั้งแต่สมัยเรียนแล้ว มั่นคง ใช้ได้กับหลาย platform แต่โค้ดอาจจะยืดยาวหน่อย ถ้าเทียบกับ Python
JavaScript นี่ก็ขาดไม่ได้เลย สำหรับ frontend เว็บไซต์ ทุกเว็บต้องใช้ นี่ก็อีกภาษาที่ใช้ทุกวัน บางวันเหนื่อยมาก debug โค้ด วนไปวนมา จนปวดหัวเลย
Kotlin ก็เริ่มใช้บ่อยขึ้นนะ ช่วงหลังๆ เห็นหลายคนใช้ เขียน Android app ง่ายดี สะดวกกว่า Java เยอะเลย
ส่วนภาษาอื่นๆ ที่เจอบ้างเป็นบางครั้ง ก็มี PHP, Go, C แต่ไม่บ่อยเท่า 4 ภาษาแรกหรอก
- Python (ใช้บ่อยมาก สำหรับ Data Science)
- Java (มั่นคง หลาย Platform)
- JavaScript (Frontend เว็บไซต์ จำเป็นมาก)
- Kotlin (Android app development)
- R (สถิติ วิเคราะห์ข้อมูล)
- PHP (Backend เจอบ้าง)
- Go (Backend เจอบ้าง)
- C (บางส่วนของระบบ)
จริงๆ แล้ว ภาษาที่ควรเรียน มันขึ้นอยู่กับสิ่งที่อยากทำด้วยนะ อยากทำ web ก็เน้น JavaScript, Python, PHP อยากทำ mobile ก็ Kotlin, Java อยากทำ Data Science ก็ Python, R ต้องดูด้วยว่า ชอบแนวไหน แต่ถ้าให้แนะนำ Python นี่แหละ พื้นฐานดี ใช้ได้หลายอย่าง
ปีนี้งานหนักมาก ทำโอทีเกือบทุกเดือนเลย แต่ก็สนุกดีนะ ได้เรียนรู้สิ่งใหม่ๆ ตลอดเวลา บางวันก็เครียด นั่งแก้ bug ทั้งวัน แต่พอแก้ได้ ก็รู้สึกดีมาก เหมือนได้คลอดลูกออกมาเลย
ความคิดเห็นต่อคำตอบ:
ขอบคุณสำหรับความคิดเห็นของคุณ! ความคิดเห็นของคุณมีความสำคัญมากในการช่วยเราปรับปรุงคำตอบในอนาคต