+++8 ทักษะที่โปรแกรมเมอร์ควรมี (มือใหม่) ในปี 2020 +++
ใครที่อยู่ในสาย Tech คงหนีไม่พ้นเรื่องของการปรับตัว เตรียมตัว และเปิดรับเทคโนโลยีใหม่ๆ แต่ก่อนจะไปเริ่มไล่ดู 8 ทักษะที่โปรแกรมเมอร์ควรมี ลองมาดูเรื่องความต้องการของบริษัทในไทยดีกว่า ว่าอาชีพไหนมาแรง และเงินเดือนเริ่มต้นเยอะที่สุด!!
ขอต้อนรับเข้าสู่ปี 2020 ปีแห่งความต้องการ อาชีพโปรแกรมเมอร์ แน่นอนว่า เด็กจบใหม่ต่างก็ต้องหางานทำ และหนึ่งในอาชีพที่บริษัททั่วไทยต้องการมากที่สุดในปีนี้ ก็หนีไม่พ้น อาชีพโปรแกรมเมอร์ ....
อีกทั้ง อาชีพโปรแกรมเมอร์ ยังเป็นอาชีพที่มีรายได้เริ่มต้นมากที่สุดอีกด้วย
มาเข้าเรื่องกันเลยดีกว่าว่า 8 ทักษะที่โปรแกรมเมอร์ควรมี (มือใหม่) ในปี 2020 มีอะไรบ้าง??!!
_____________________________
1 Containers (Docker & Kubernetes)
ทักษะด้าน Containers : Containers หรือเครื่องมือที่ใช้ช่วยจัดการให้สามารถปรับนู่นนี่นั้นได้ง่ายขึ้น เช่น การใช้ Containers ของ Docker หรือ Kubernetes (ตัวที่โปรแกรเมอร์ส่วนใหญ่ใช้กัน) ไม่ว่าจะในแอพพลิเคชั่น หรือเว็บไซต์
เมื่อแอพเป็น Container ถ้าในอนาคตบริษัทอยาก Scale หรือโยกย้ายเครื่อง ก็จะสามารถเอาทั้ง Container ไปวางบนเครื่องใหม่ได้เลย โดยที่ไม่ต้องมานั่ง Setup อะไรใหม่อีก
จากทั้งหมดที่กล่าวมา คือ Containers นี้จะช่วยให้โปรแกรมเมอร์ทั้งหลาย สามารถ Deploy งานได้ง่าย สะดวก และเร็วขึ้น
#เครื่องมือที่แนะนำ
- Docker
- Kubernetes
_____________________________
2 Cloud Platform (AWS, GCP & Azure)
ทักษะด้าน Cloud Platform : Cloud Platform คือ การเลือกใช้แพลตฟอร์มที่ให้บริการด้าน Cloud นั่นแหละ โดยแต่ละแพลตฟอร์มก็จะมีความสามารถที่แตกต่างกันออกไป แต่โดยรวม Cloud Platform จะมีหน้าที่ช่วยประมวลผล จัดเก็บข้อมูลอันมหาศาล โดยผ่านระบบ Cloud ที่สามารถใช้งานได้ทุกทีทุกเวลาตลอด 24 ชม. ผ่านอินเทอร์เน็ต
อีกทั้งยังช่วยลดความยุ่งยาก และลดต้นทุนในการติดตั้งระบบคอมพิวเตอร์ หรือเครือข่ายของตัวเอง ซึ่งการใช้งานไม่ได้มีความซับซ้อนอะไรมากมาย แถมยังสะดวก รวดเร็ว และใช้งานได้ง่ายอีกด้วย
อีกทั้งยังสามารถเพิ่ม หรือลดจำนวนทรัพยากร (ขนาดความจุ) ได้ ตามความต้องการในการใช้งาน อาจมีค่าใช้จ่ายในส่วนของจำนวนทรัพยากร
#เครื่องมือที่แนะนำ
- Amazon Web Service (AWS)
- Google Cloud Platform (GCP)
- Microsoft Azure (Azure)
_____________________________
3 Data Structure & Algorithm
ทักษะด้าน Data Structure & Algorithm : Data Structure & Algorithm คือ พื้นฐานที่โปรแกรมเมอร์ หรือนักพัฒนาซอฟต์แวร์ ควรมีอยู่แล้ว โดย Data Structure & Algorithm ที่ว่า...มัน หมายถึง พื้นฐานด้านกระบวนการคิดที่เป็นขั้นเป็นตอน สามารถจัดเรียงข้อมูล และวางโครงสร้างระบบ หรืออะไรก็ตามได้อย่างเป็นระเบียบเรียบร้อย
โดยส่วนใหญ่ทักษะด้านนี้จะช่วยให้ โปรแกรมเมอร์ ทั้งหลาย มองเห็นถึงปัญหาที่เกิดขึ้น และมองเห็นถึงวิธีการแก้ไขปัญหาเหล่านั้นได้ง่ายขึ้น
อีกทั้งยังสามารถช่วยให้ทำงานได้รวดเร็ว และมีประสิทธิภาพมากขึ้นอีกด้วย
#เพิ่มเติม
Data Structure คือ โครงสร้างของข้อมูล เป็นกระบวนการจัดการข้อมูลให้อยู่ในโครงสร้าง หรือ การจัดเตรียมรูปแบบในการจัดเก็บข้อมูลให้มีความเป็นระเบียบ และถูกต้อง
Algorithm คือ ขั้นตอนวิธีการ หรือที่เรียกว่า อัลกอริทึม นั้น เป็นกระบวนการในการแก้ปัญหาที่สามารถเข้าใจได้ง่าย มีขั้นตอน ลำดับวิธี หรือวิธีในการแก้ไขปัญหาใดปัญหาหนึ่ง โดยอาศัยความเป็นระเบียบเป็นขั้นเป็นตอน และชัดเจน (ต้องมีจุดประสงค์ในการทำ) จะต้องรู้ว่าสุดท้ายแล้ว จะต้องได้ผลลัพธ์อะไรในการทำ Algorithm
_____________________________
4 Version Control Tool (Git)
ทักษะด้าน Version Control Tool : Version Control Tool คือ อีกหนึ่งเครื่องมือที่เหล่าโปรแกรมเมอร์ทุกทีมต้องใช้กัน และต้องใช้เป็นด้วย อธิบายให้ง่ายๆอีกก็คือ Version Control เป็นเครื่องมือที่จะช่วยให้โปรแกรมเมอร์ทำงานเขียนโค้ด หรือโปรแกรมร่วมกันได้ และง่ายต่อการเก็บข้อมูลที่มีการเปลี่ยนแปลง ผ่านการ Backup และจัดเรียง Source Code อย่างเป็นระบบ และมีประสิทธิภาพมากที่สุด
เรียกได้ว่า เป็นการแก้ไขปัญหาได้ตรงจุดมากๆ สำหรับในการแก้ไขโค้ดไม่ให้ไปทับกับงานของโปรแกรมเมอร์คนอื่นๆภายในทีม นี่จึงเป็นอีกหนึ่งใน 10 ทักษะที่โปรแกรมเมอร์ควรมี นั่นเอง
#เครื่องมือที่แนะนำ
- Git (Distributed Version Control System)
- SVN (Centralized Version Control System)
_____________________________
5 IDEs (Eclipse, NetBeans, IntelliJ IDEA, Jupyter Notebook, Visual Studio Code)
ทักษะด้าน IDEs : IDE จริงๆแล้วย่อมาจาก Integrated Development Environment คือ เครื่องมือที่จะช่วยให้โปรแกรมเมอร์ หรือนักพัฒนาซอฟต์แวร์ มีความสะดวกมากขึ้นสำหรับการพัฒนาโปรแกรม เช่น การใช้คำสั่ง Compile หรือ Run โปรแกรม ซึ่งการเลือกใช้ IDEs มีความสำคัญมาก หากเลือกใช้ได้ถูก และตรงตามมาตราฐานการใช้งานของคนภายในทีม ก็จะยิ่งทำให้ทำงานร่วมกับโปรแกรมเมอร์คนอื่นๆได้ง่ายมากขึ้น
#เพิ่มเติม
การเลือกใช้เครื่องมือ IDEs ย่อมแตกต่างกันออกไป แล้วแต่โปรแกรมเมอร์ หรือนักพัฒนาซอฟต์แวร์ แต่ละคนว่าดูแลในส่วนไหนอยู่ ซึ่งแต่ละคนก็มีความถนัดที่แตกต่างกันออกไป จึงอาจจะใช้เครื่องมือ IDEs ที่ต่างกัน
#เครื่องมือที่แนะนำ
- Eclipse, NetBeans, และ IntelliJ IDEA สำหรับ ภาษา Java
- Jupyter Notebook สำหรับ ภาษา Python
- Visual Studio Code (VSCode) สำหรับ ภาษา C, ภาษา C++ และ ภาษา C#
_____________________________
6 Database & SQL
ทักษะด้าน Database & SQL : Database และ SQL คือ สิ่งที่อยู่กับโปรแกรมเมอร์มาตั้งแต่ไหนแต่ไรแล้ว ซึ่งเรื่องของ Database และ SQL ถือเป็นพื้นฐานที่โปรแกรมเมอร์ต้องมีอยู่แล้ว ที่สำคัญสำหรับโปรแกรมเมอร์ที่ต้องทำในยุคนี้ ก็คือ ความรู้พื้นฐานในด้านการทำ Create / Read / Update / Delete หรือ CRUD นั้นเอง และสามารถเขียน SQL เพื่อดึง Database หรือข้อมูลที่ต้องการออกมาใช้งานได้
เหล่าโปรแกรมเมอร์ควรศึกษา และเรียนรู้อย่างละเอียดว่าจะทำยังไง เมื่อดึงข้อมูลปุ๊ปต้องได้ปั๊ป ฐานข้อมูลเป็นเรื่องที่สำคัญมากๆ หากพลาด หรือเขียนผิดไปนิดเดียวอาจทำให้พังทั้งระบบก็ได้ ที่สำคัญอีกอย่างไม่แพ้กัน คือ ควรจะวิเคราะห์อย่างละเอียดก่อนว่าระบบที่กำลัฃจะพัฒนาขึ้นมา เหมาะกับฐานข้อมูลแบบไหน...จงให้ความสำคัญกับเรื่องข้อมูลเป็นอันดับต้นๆจะดีที่สุด
#เครื่องมือที่แนะนำ
- Oracle
- MySQL
- Microsoft SQL Server
- PostgreSQL
_____________________________
7 OOP Programming language (C++, Java or Python)
ทักษะด้าน OOP Programming language : OOP หรือ Object Oriented Programming คือ การเขียนโปรแกรมเชิงวัตถุ ยิ่งกว่าคำว่าพื้นฐาน เพราะมัน คือ พื้นฐานของพื้นฐานสำหรับโปรแกรมเมอร์ หรือนักพัฒนาอีกทีนึง การเขียนโปรแกรมแบบ OOP ยกตัวอย่าง เช่น ภาษา C++, ภาษา Java, ภาษา JavaScript และ ภาษา Python เป็นพื้นฐานสำหรับผู้ที่เพิ่งจะเริ่มต้นเขียนโปรแกรม ก่อนจะเข้าสู่นักพัฒนาอย่างเต็มตัว ถ้าหากโปรแกรมเมอร์มือใหม่สามารถเขียนโค้ดพวกภาษาที่เป็น OOP ได้แล้ว นั้นหมายความว่าคุณได้มีทักษะ Skill เพิ่มขึ้นมาแล้ว เมื่อคุณคิด หรือต้องการสร้างอะไรขึ้นมาก็สามารถเขียนขึ้นได้เลย ทำให้สามารถเอาไปต่อยอดในอนาคตต่อไปได้อย่างแน่นอน
_____________________________
8 Networking (Basics)
ทักษะด้าน Networking : Networking คือ ระบบเครือข่ายที่เป็นส่วนสำคัญของการทำงานสายโปรแกรมเมอร์อย่างมาก เนื่องจากการทำงานในส่วนของการพัฒนาเว็บไซต์ หรือแอพพลิเคชั่น ของโปรแกรมเมอร์ หรือนักพัฒนาซอฟต์แวร์ ต้องอาศัยระบบ Network อยู่แล้ว เพื่อที่จะเชื่อมต่อระบบที่พัฒนาไปยัง Server การทำงานของเหล่านักพัฒนาจึงจำเป็นที่จะต้องรู้เรื่องหลักการทำงานของระบบ Network เป็นพื้นฐานคร่าวๆอยู่แล้ว ทักษะด้าน Networking จึงเป็นอีกทักษะที่โปรแกรมเมอร์ในยุคนี้ขาดไม่ได้
_____________________________
ไม่ว่าจะเป็น Dev โปรแกรมเมอร์ หรือนักพัฒนาระดับไหน ถ้าขาด ทักษะที่โปรแกรมเมอร์ควรมี ทั้ง 8 ข้อนี้ คงจะทำงานยากขึ้นหน่อย อย่าลืมที่จะเพิ่มทักษะเหล่านี้ขึ้นมาด้วย!!
หากใครสนใจอ่านเพิ่มเติมบทความนี้แบบเต็มๆได้ที่นี่ bit.ly/8SkillsProgrammerNOWASUCO
_____________________________
แล้วคุณหละ??
มี ทักษะที่โปรแกรมเมอร์ควรมี อะไรแนะนำเราบ้าง...
ลอง comment, share หรือ tag บอกให้เรารู้ที!!
_____________________________
Source
+++ 8 ทักษะที่โปรแกรมเมอร์ควรมี (มือใหม่) ในปี 2020 +++ - NOWASU
https://nowasu.co/…/8-skills-programmer-should-learn-in-20…/
11 Essential Skills Software Developers should Learn in 2020 - Javin Paul
https://dev.to/…/11-essential-skills-software-developers-sh…
_____________________________
#บทความที่เกี่ยวข้อง
9 ทักษะที่ควรมี ก่อนเรียนจบ เพื่อก้าวข้ามยุค "หุ่นยนต์ แย่งงาน"
http://bit.ly/9SkillsNOWASUCO
9 อันดับ งานด้านคอมพิวเตอร์ IT ที่บริษัทต้องการมากที่สุด!!
http://bit.ly/9JobsComputerNOWASUCO
ทักษะที่บริษัทต้องการมากที่สุด ในปี 2019 จากข้อมูลของ LinkedIn พร้อมเหตุผล!!
http://bit.ly/SoftAndHardSkills2019NOWASUCO
8 อาชีพมาแรง แซงทุกโค้ง ที่บริษัททั่วโลกต้องการ!! ภายในปี 2020
http://bit.ly/8Jobs2020NOWASUCO
5 งานด้านคอมพิวเตอร์ ที่เจ๋งที่สุด…และไม่ต้องเขียนโค้ด!!
http://bit.ly/5JobsComputerNOWASUCO
5 อาชีพอยู่รอด จากโลกยุค "หุ่นยนต์แย่งงานมนุษย์"
http://bit.ly/5JobsNOWASUCO
10 เทคโนโลยีใหม่ ที่จะเกิดขึ้นภายในปี 2019 และในอนาคต
http://bit.ly/Report10Tech2019NOWASUCO
MIT Technology Review เผย 10 เทคโนโลยีเปลี่ยนโลก ในปี 2019 (Bill Gates ช่วยเลือก)
http://bit.ly/MITReport10TechNOWASUCO
8 เทรนด์ Digital Marketing มาแรง แซงทุกโค้ง ที่ควรนำมาใช้ ภายในปี 2019
http://bit.ly/8TrendsDigitalMarketingNOWASUCO
同時也有10000部Youtube影片,追蹤數超過2,910的網紅コバにゃんチャンネル,也在其Youtube影片中提到,...
「visual studio 2019 java」的推薦目錄:
- 關於visual studio 2019 java 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
- 關於visual studio 2019 java 在 91 敏捷開發之路 Facebook 的最讚貼文
- 關於visual studio 2019 java 在 91 敏捷開發之路 Facebook 的精選貼文
- 關於visual studio 2019 java 在 コバにゃんチャンネル Youtube 的最讚貼文
- 關於visual studio 2019 java 在 大象中醫 Youtube 的最佳解答
- 關於visual studio 2019 java 在 大象中醫 Youtube 的最讚貼文
visual studio 2019 java 在 91 敏捷開發之路 Facebook 的最讚貼文
【樓主一生平安】
#熱血,是會物以類聚的。
一位擅長 java 的同學,之前參加了我的三門培訓:
①【#針對遺留代碼加入單元測試的藝術】
②【演化式設計:#測試驅動開發與持續重構】
③【#極速開發】
他最近再把《#單元測試的藝術》看完了一遍,並將書中的 C# 範例程式碼轉成了 java,其實能自己跟著做過一遍,收穫最大的肯定是自己。
同時也造福了其他習慣用 java 的同學,在看這本書時可以更容易理解書中的意義。
2018 年是我很重要的一年,因為我把上列的三門培訓拓展到了 java, php, C# 三門語言,其中【極速開發】更是能同時用在所有 JetBrains IDE、Android Studio 以及 Visual Studio + ReSharper 上。
我自己對一門培訓要能支援到其他語言的要求很嚴格,這也是為什麼 2019 年的【#DI與AOP實戰】以及【#從重構學會設計高易用性與高彈性API】,我至今仍不支援 C# 以外的語言。
#自己強還不夠,還要能讓別人更強
#別人變強還不夠,還要能讓他發光發熱,繼續影響別人
花了一些時間,把單元測試的藝術又看了一遍,順便把 C# 程式碼轉成 Java
不過有些 Java 不支援的真的就只能讓他去了🤣 (Events, Delegates...)
https://github.com/Coffee0127/the-art-of-unit-testing
--
書中介紹了...
* 一個好的單元測試應該具備哪些特色 (可讀? 可維護? 可靠?)
* 整合測試 vs 單元測試區別
* 何謂假物件 (Fake Object) [很多人會被Library誤導XD Mock, Spy, Stub 分不清楚,很巧的我也曾是很多人的其中一個]
* 本書一再強調他不談設計,但是他推了很多書,例如 Code Complete, Clean Code
* 該如何正確面對一個要加功能但是沒有單元測試的 Legacy Code
91 哥火力支援-https://dotblogs.com.tw/…/13/priorities-for-adding-unit-test
可以加入 單元測試的藝術閱讀交流 社團跟更多人交流
https://www.facebook.com/groups/288261638343874/
--
不過最想講的,還是 9.2.3 引入外援 這章節
> 我強烈建議邀請組織外的專家來幫助導入變革
這邊的專家當然就是業界有名的點火師 Joey Chen 啦
上面說了書中介紹的這麼多東西,大部分在 單元測試實戰操練營 會提到
然而課堂上會被灌輸更多書中沒提到的 (例如:show your intention)
整體來說,我覺得是一堂 濃縮再濃縮、提煉再提煉 的必修課程
// 然後下一步就被燒到接著學 TDD,接著覺得自己寫 code 超慢跟著學急速開發
// 覺得 C# 這圈子好幸福,好多大神
按讚 91 敏捷開發之路 以獲得更多熱血課程😎
https://www.facebook.com/91agile/
visual studio 2019 java 在 91 敏捷開發之路 Facebook 的精選貼文
上週末【極速開發】培訓第五梯次結訓了。
下課當天,同學搭高鐵回台南,回家馬上就先做了第一個迭代的練習,超級熱血。
▍#刻意練習
一個週末過去,已經有六位同學做完第一輪的練習,我也針對他們在 youtube 的影片上給予 online 的 review & comments,讓大家可以透過這樣的模型開始刻意練習,改掉原本開發的壞習慣跟內化在n種選擇中,用最短時間挑選最適合的方式開發。
▍Online Coaching
① Duncan (php): https://www.youtube.com/watch?v=c8hmgVsLDbw&feature=youtu.be
② Julian: https://www.youtube.com/watch?v=16zIBoKdLQo&feature=youtu.be
③ Janet: https://www.youtube.com/watch?v=EIRDWwTGh4E&feature=youtu.be
④ Ivy: https://www.youtube.com/watch?v=wNiLdheNhAA&feature=share
⑤ Patrick: https://www.youtube.com/watch?v=DrF-Uf8Hum0&feature=youtu.be
⑥ 小安: https://www.youtube.com/watch?v=A7uAzJ6A0Y8
▍下一梯次 #極速開發 在 2019 年一月份
課程介紹與報名網址:https://yihuode.io/activities/695
活動介紹裡面有四個語言的示範影片。
支援 Java, C#, php,Kotlin 示範可選擇 IntelliJ, phpstorm, Visual Studio, Rider。
適用所有 JetBrains IDE,Android Studio,以及 Visual Studio +ReSharper/ReSharper C++。
※ 我很希望下一梯次可以用 IntelliJ 來示範啊,我心中地表最強的 IDE 已經被 IntelliJ 取代了。