7 คะแนน โดย GN⁺ 2023-12-21 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

คำแนะนำสำหรับนักพัฒนาซอฟต์แวร์ระดับเริ่มต้น

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

การดีบัก: กฎ 9 ข้อ

  • แนะนำให้อ่านหนังสือ "การดีบัก: กฎ 9 ข้อ" จะยืมจากห้องสมุดหรือขอให้บริษัทซื้อให้ก็ได้ หนังสือเล่มนี้สอนทักษะสำคัญที่หนังสือสำหรับโปรแกรมเมอร์มือใหม่เล่มอื่น ๆ แทบไม่พูดถึง และสอนได้เข้าใจง่าย

การค้นพบวิธีที่ถูกต้อง

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

เรื่องเล่าเบื้องหลังแนวปฏิบัติที่ดีที่สุด

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

ลองเขียนโปรแกรมให้หลากหลาย

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

การเปลี่ยนแปลงของวงการซอฟต์แวร์

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

ความเห็นของ GN⁺

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

1 ความคิดเห็น

 
GN⁺ 2023-12-21
ความคิดเห็นจาก Hacker News
  • สรุปความคิดเห็นแรก:

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

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

    • ยืนยันว่าการเรียนรู้เทคนิคอย่าง TDD(Test-Driven Development) นั้นมีประโยชน์ แม้จะไม่ได้ถูกนำมาใช้โดยตรงเสมอไป
    • เน้นว่าการเรียนรู้เทคนิคและภาษาที่หลากหลายช่วยให้เรียนรู้วิธีเขียนโค้ดที่ดีขึ้นได้
  • สรุปความคิดเห็นที่สี่:

    • ชี้ว่าการยึดติดกับ "วิธีที่ถูกต้อง" อาจขัดขวางการเติบโตของนักพัฒนา
    • คาดเดาว่าสาเหตุอาจมาจากการขาดความใส่ใจที่จำเป็นต่อการขยายความรู้ หรือรู้สึกสบายใจกับจุดที่ตัวเองอยู่มากเกินไปในปัจจุบัน
  • สรุปความคิดเห็นที่ห้า:

    • แนะนำให้ลดสถานะ (state) ทุกรูปแบบให้น้อยที่สุด ไม่ว่าจะเป็นโค้ด ข้อมูลที่ต้องจำ หรือรายละเอียดของโปรเจกต์
    • ยืนยันว่าการลดสถานะช่วยในการแก้ปัญหาได้
  • สรุปความคิดเห็นที่หก:

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

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

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

    • เน้นว่าการเขียนโค้ดไม่ใช่เป้าหมายในตัวเอง แต่เป็นวิธีการในการแก้ปัญหา
    • แนะนำว่าควรโฟกัสที่ปัญหาที่โค้ดต้องแก้ และถ้ายังไม่ชัดเจนก็ควรหยุดเขียนโค้ดแล้วทำความเข้าใจปัญหาให้ชัดก่อน
  • สรุปความคิดเห็นที่สิบ:

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