Skip to main content
0
Computer SystemNewsProgramming Concept

9 ทักษะจำเป็นสำหรับนักพัฒนาซอฟต์แวร์ที่ควรเรียนรู้ไว้ในปี 2020

คุณเขียน Code เป็นรึเปล่า ? ในทุกวันนี้คุณเรียกตัวเองว่าอะไร Developer ? Coder ? หรือ Programmer ? ไม่ว่าคุณจะเรียกตัวเองว่าอะไร เมื่อคุณเริ่มเขียน Code ได้ และนำมันมาประกอบ หรือร้อยเรียงจนเกิดเป็นซอฟต์แวร์ หรือโปรแกรมโปรแกรมหนึ่ง ตอนนั้นคุณได้ก้าวเข้าเท้าเข้าสู่การเป็น “นักพัฒนาซอฟต์แวร์” อย่างเต็มตัวแล้ว แต่คุณจะรู้ได้อย่างไร ว่าคุณเป็นนักพัฒนาที่ดีแล้ว ?

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

Containers (Docker และ Kubernetes)

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

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

Cloud Platform (AWS, GCP, หรือ Azure)

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

Data Structure และ Algorithm

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

A Version Control Tool (Git)

อีกหนึ่งสิ่งที่ถ้าคุณจะทำงานเป็นผู้พัฒนาซอฟต์แวร์ที่ดี หรือมีมาตรฐานในการทำงานที่แน่นๆ คุณจำเป็นต้องรู้ลำดับขั้นตอนการพัฒนาของคุณตั้งแต่เริ่มต้น จนถึงปัจจุบัน คุณจำเป็นต้องรู้ และจดจำได้ว่า เมื่อสัปดาห์ก่อน หรือเดือนก่อน คุณเพิ่มระบบอะไรให้กับตัวซอฟต์แวร์ของตนเองบ้าง และสามารถย้อนกลับไปเอาตัวเวอร์ชั่นเก่าๆ กลับมาได้ไหม สิ่งเหล่านี้จะทำได้ง่ายขึ้นเป็นอย่างมาก หากคุณรู้จัก และใช้พวก Version Control Tool อย่าง Git หรือ SVN เป็น โดยตลาดปัจจุบัน องค์กรส่วนใหญ่กว่า 70% จะใช้พวก Git หรือ GitHub ดังนั้นจึงมีที่เรียนรู้เกี่ยวกับมันค่อนข้างมาก

One Text Editor (Vim)

ไม่มีวันไหนหรอกในการเป็นนักพัฒนาซอฟต์แวร์ ที่จะไม่ทำการแก้ไขข้อความ หรือตัวอักษร นอกจากนี้มันยังเป็นหนึ่งในเครื่องมือที่สำคัญ ของคนที่ไม่ใช่โปรแกรมเมอร์ หรือผู้ที่ทำงานเกี่ยวกับคอมเป็นหลัก ซึ่งโปรแกรมพวกนี้ก็มีตั้งแต่ Notepad บน Windows, Vim ใน Linux และยังมี Sublime และ Notepad++ ให้เลือกเพิ่มเติมอีกด้วย

IDEs (VS Code หรือ IntelliJ IDEA)

ปัจจุบันคุณเขียน code บน IDEs อะไร หากคุณเขียน C, C++ และ C# ผมจะขอแนะนำเป็น Visual Studio ถ้าหากเป็น Python ผมแนะนำเป็น Jupyter Notebook สำหรับ Java ผมแนะนำ Eclipse, NetBeans, และ IntelliJ ซึ่งนั่นแหละการเลือก IDEs ที่เป็นมาตรฐานตามการใช้งานของคนทั่วไป ก็จะยิ่งทำให้สามารถทำงานร่วมกับโปรแกรมเมอร์คนอื่นๆ ได้มากขึ้นนั่นเอง

Database และ SQL

SQL เป็นสิ่งที่ค่อนข้างมีมานานแล้ว อายุอานามมันก็ประมาณ 30 ปีกว่าๆ ได้แล้ว และเราคิดว่ามันน่าจะอยู่คู่กับคุณไปอีกกว่า 30 ปีนั่นแหละ ดังนั้นคงไม่แปลกอะไรที่รุ่นพี่ที่ทำงานของคุณ หัวหน้า หรือนักพัฒนาต่างๆ จะมีพื้นฐาน หรือประสบการณ์ด้าน SQL มาก่อน อย่างไรก็ดี ในโลกยุคนี้มี Database เกิดขึ้นมาเป็นจำนวนมาก ไม่ว่าจะเป็น Oracle, MySQL, Microsoft SQL Server, PostgreSQL, และอื่นๆ อีกมากมาย อย่างไรก็ดี สิ่งที่คุณควรเรียนรู้ หรือเก่งเกี่ยวกับมันมากๆ นั่นก็คือการทำ insert, update, delete ข้อมูล และเขียน SQL เพื่อดึงข้อมูลที่ต้องการออกมา

UNIX (Linux)

ในด้านอายุ UNIX นั่นไม่แตกต่างไปจาก SQL เลย โดยองค์หลายๆ แห่งยังคงต้องทำงานในเครื่อง UNIX อยู่ โดยเฉพาะกับเซิร์ฟเวอร์ Linux ดังนั้นคงดีกว่าถ้าคุณมีความรู้เกี่ยวกับ Linux เพราะมันจะทำให้คุณสามารถค้นหาไฟล์ที่ต้องการได้ รู้ว่าเกิดอะไรขึ้นกับระบบ โดยตรวจสอบการใช้งานของ CPU หน่วยความจำ การทำงานขั้นพื้นฐาน และขั้นสูง

OOP Programming Language (C++, Java หรือ Python)

สำหรับข้อสุดท้ายนี้ ถือเป็นพื้นฐานของพื้นฐานของคนที่จะเป็นโปรแกรมเมอร์ หรือนักพัฒนาแอปพลิเคชันอีกที โดยการที่คุณจะเก่งขึ้นได้ คุณจะต้องแข็งในพื้นฐานเสียก่อน โดยเฉพาะการเขียนโปรแกรมแบบ OOP เช่น C++, Java หรือ Python มันเหมาะสำหรับผู้เริ่มต้น ที่จะก้าวเข้าสู่การเป็นนักพัฒนา และหากคุณสามารถเข้าใจมัน มันก็มีพลังเป็นอย่างมาก ที่จะสร้างสรรค์ทุกสิ่งตามที่คุณต้องการได้

Source / Reference : https://dev.to/javinpaul/11-essential-skills-software-developers-should-learn-in-2020-1bio

Develeper

Author Develeper

More posts by Develeper

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

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

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

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

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

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

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

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