+++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
「python web ide」的推薦目錄:
- 關於python web ide 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳解答
- 關於python web ide 在 軟體開發學習資訊分享 Facebook 的最佳貼文
- 關於python web ide 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
- 關於python web ide 在 python-web-ide · GitHub Topics 的評價
- 關於python web ide 在 CircuitPython Online IDE - GitHub Pages 的評價
- 關於python web ide 在 Online IDE for Python [closed] - Stack Overflow 的評價
- 關於python web ide 在 WHICH IS THE BEST ONLINE IDE FOR PROGRAMMING ... 的評價
python web ide 在 軟體開發學習資訊分享 Facebook 的最佳貼文
想用 Python 開發 Web應用 ?
Python 具備簡潔、易於學習等特性,在 Google、Youtube、Dropbox 等知名科技公司都大量使用 Python 當做開發語言
想完整個實戰開發 ?
在網路上學的資源,學到的只是部分的功能,學完之後,還是不知道從無到有自己開發,想找一個具有系統、完整性的學習
有效率且有趣 ?
想有效率並透過實際的專案學習,開發出有趣的 web 應用,你將會走出一切,並且有信心開發出自己的 web 應用
我們課程將會使用專業開發環境 PyCharm 來實作
你放心,我們將會使用免費的版本,PyCharm 是由 Jetbrains 開發的Python IDE(Integrated Development Environment),它提供一整套功能,協助開發者提高開發效率,像是專案管理、動態提示、版本控制等
你將學會輕量級框架 Flask
Flask 是一個使用 Python 撰寫的輕量級框架,簡約而且容易入門,只需要具備基本的 Python 開發技能,就可以開發出一個 web 應用,另外,它具有閃電般快的速度,Pinterest 的 API 每天用 Flask 提供超過120億次的請求
你將學會最廣泛使用 ORM 套件 SQLAlchemy
SQLAlchemy 是目前 Python 社群中最廣泛使用的 ORM 套件,容易使用,可以滿足大多數資料庫操作的需求
🔥講師有提供優惠折扣碼,請在下面留言申請
https://softnshare.com/pythonflask-and-sqlalchemy-orm/
python web ide 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 的最佳貼文
การเขียนโปรแกรมแบบจินตภาพด้วยบล็อกคำสั่ง: จาก MIT Scratch สู่ Google Blockly
เทคโนโลยีซอฟต์แวร์ HTML5/CSS/JavaScript และอื่น ๆ ที่เกี่ยวข้อง ทำให้เกิดรูปแบบการใช้งานซอฟต์แวร์ผ่านเว็บเบราว์เซอร์และอินเทอร์เน็ต อย่างเช่น "Software as a Service" (SaaS), "Coding in the Cloud" เป็นต้น มีการพัฒนาเครื่องมือหรือซอฟต์แวร์ที่ใช้สำหรับเขียนหรือสอนการเขียนโปรแกรมตามมาอีกมากมาย โดยทั่วไป ผู้ใช้ไม่จำเป็นต้องติดตั้งซอฟต์แวร์ในเครื่องคอมพิวเตอร์ของตนเอง
💡 MIT Scratch, Berkeley Snap! และ MIT App Inventor 2 for Android
จากโพสต์คราวที่แล้ว "การเขียนโปรแกรมแบบจินตภาพด้วยบล็อกคำสั่ง: MIT Scratch และ Berkeley Snap! สู่การเชื่อมต่อกับ Arduino" ได้กล่าวถึง MIT Scratch (https://scratch.mit.edu) ซึ่งเป็นซอฟต์แวร์ Open Source มีการใช้งานแบบ Desktop App สามารถนำไปสอนเยาวชนในช่วงอายุ 8 - 16 ปี เรียนรู้ Coding เป็นทักษะพื้นฐาน เน้นการสร้างเรื่องราวแบบปฏิสัมพันธ์ สร้างเกมส์ หรือ ภาพเคลื่อนไหว กราฟิก 2 มิติ
นอกจาก Scratch ก็ได้กล่าวถึง Berkeley BYOB/Snap! (https://snap.berkeley.edu) ซึ่งเป็นอีกหนึ่งตัวเลือก (Open Source) สำหรับฝึกเขียนโปรแกรมแบบกราฟิก ซึ่งอันที่จริงแล้ว ในตอนเริ่มต้น Snap! ก็เกิดจากการดัดแปลงโค้ด Scratch แต่ต่อมาได้พัฒนาใหม่ และใช้ภาษา JavaScript
โลกของเทคโนโลยีเปลี่ยนแปลงพัฒนาไปตลอดเวลา ล่าสุด Scratch เวอร์ชัน 3.0 ก็ใช้งานเป็นแบบ Web App ได้แล้ว โดยใช้ภาษา JavaScript (ใช้ไลบรารี Scratch Blocks) ในการพัฒนา
MIT Scratch และ Berkeley Snap! เป็นสองตัวเลือกที่ได้เลือกมานำเสนอ และใช้สำหรับฝึกเขียนโค้ดได้ด้วยวิธีลากบล็อกมาวาง (Drag & Drop Visual Programming) แต่ไม่ได้ใช้สำหรับเขียนโค้ดภาษาคอมพิวเตอร์โดยตรง (Text-Based Programming) และก็ไม่ได้ใช้สำหรับการสร้างโค้ดแล้วคอมไพล์หรือแปลงให้เป็นแอปพลิเคชันโดยอัตโนมัติ
แต่ถ้าอยากจะสอนเด็ก ๆ ให้ลองสร้าง Android App สำหรับสมาร์ทโฟน หรือแท็บเล็ต ด้วยวิธีการเดียวกับ Scratch และ Snap! และไม่จำเป็นต้องเขียนโค้ด ก็มีตัวเลือกอย่างเช่น MIT App Inventor 2 for Android (http://appinventor.mit.edu/explore/) โครงการนี้ เริ่มราวปีค.ศ. 2010 โดย Google และพัฒนาต่อโดยทีมงานจาก MIT ในปีค.ศ. 2012 และเผยแพร่เวอร์ชัน "App Inventor 2" ในเดือนธันวาคม ค.ศ. 2013 ... ปัจจุบัน สามารถเข้าใช้งานแบบออนไลน์ได้ที่ http://ai2.appinventor.mit.edu/ ถ้าลองสืบค้นในอินเทอร์เน็ต จะเห็นมีตัวอย่างในหลายเว็บที่สร้าง Android App โดยใช้ MIT App Inventor 2 เพื่อเชื่อมต่อกับบอร์ด Arduino ผ่าน Bluetooth เช่น รับค่าจากเซ็นเซอร์ที่ต่อกับบอร์ด Arduino มาแสดงผลใน App หรือควบคุมหุ่นยนต์ หรือส่งข้อมูลต่อไปยัง Google Firebase เป็นต้น
💡 เมื่อ Scratch ต้องเปลี่ยนมาใช้ Google Blockly
Scratch 3.0 เปลี่ยนมาใช้ JavaScript (แทน ActionScript และ Adobe Flash Player) และได้ใช้ไลบรารีที่ชื่อว่า Scratch Blocks (https://github.com/LLK/scratch-blocks) ซึ่งมาจากโปรเจกต์ Blockly (https://developers.google.com/blockly/) พัฒนาโดย Google เริ่มต้นในเดือนมิถุนายน ค.ศ. 2012 และเป็น Open Source (Apache License 2.0)
Blockly เป็นไลบรารี หรือ API ที่ใช้ JavaScript / HTML5 / CSS สำหรับนำไปใช้พัฒนา Web App สำหรับผู้ที่ต้องการสร้างโปรแกรมด้วยการต่อบล็อก (Scratch-like, Visual Block Programming) และแตกต่างจาก Scratch ซึ่งเป็นแอปพลิเคชัน (Web App)
ถ้าอยากทราบว่า จะใช้ Blockly สร้าง Web App อย่างไรได้บ้าง ลองดูตัวอย่าง ให้ดูเว็บ "Blockly Games" (https://blockly-games.appspot.com/) ที่มีตัวอย่างเกมส์ ผู้ใช้หรือผู้เล่นต้องนำบล็อกที่มีให้เลือก มาวางต่อกันเพื่อแก้ปัญหา
Blockly สามารถแปลงโปรแกรมที่ได้จากการต่อบล็อกต่าง ๆ ให้กลายเป็นโค้ดในภาษาคอมพิวเตอร์ ซึ่งมีหลายภาษาให้เลือกเป็นเอาต์พุต เช่น JavaScript, Python เป็นต้น ดังนั้น ผู้เรียนสามารถเปรียบเทียบและเชื่อมโยงระหว่างโปรแกรมที่เกิดจากการต่อบล็อก และโค้ดที่ได้จากโปรแกรมในภาษาคอมพิวเตอร์ตามที่เลือกให้เป็นเอาต์พุต (ตรงนี้ก็ถือว่า สำคัญในการเรียนรู้ Coding)
💡 BBC Micro:bit, Microsoft MakeCode
โครงการ BBC Micro:bit (https://microbit.org/) จากประเทศอังกฤษ ได้พัฒนาบอร์ดไมโครคอนโทรลเลอร์ Micro:bit เพื่อส่งเสริมการเรียนรู้ด้านคอมพิวเตอร์ให้แก่เยาวชน ผู้เรียนสามารถใช้เขียนโค้ดโดยการนำบล็อกมาต่อกัน ใช้งานผ่านเว็บเบราว์เซอร์ โดยเข้าไปที่เว็บ Micro:bit's Code Kingdoms (https://www.microbit.co.uk/app/) หรือ Microsoft MakeCode for Micro:bit (https://makecode.microbit.org/)
MakeCode ของ Microsoft ก็ใช้ Google Blockly เป็นพื้นฐาน (a fork of Blockly) ในการสร้าง Web-based Block editor และใช้วิธีแปลงบล็อกเหล่านั้น ให้เป็นโค้ดในภาษา "Static TypeScript (STS) / TypeScript" จากนั้นจึงแปลงให้เป็นไฟล์โปรแกรม (.hex) ที่นำไปใช้ได้กับบอร์ด Micro:bit
ผู้ที่อยากจะใช้ Scratch ร่วมกับบอร์ด Micro:bit ก็มีตัวเลือกอย่างเช่น "Scratch 3.0 micro:bit experimental extension" ซึ่งสามารถเชื่อมต่อโปรแกรม Scratch ผ่าน Bluetooth ไปยังบอร์ด Micro:bit ได้ โดยต้องโปรแกรมไฟล์ scratch-firmware-combined.hex ลงในบอร์ดก่อน
💡 Arduino กับการเขียนโค้ดเชิงกราฟิกแบบออนไลน์ในสไตล์ Blockly
ลองมาดูว่า มีตัวอย่างเว็บที่ใช้ Blockly มาสร้าง Web App สำหรับสร้างโปรแกรมเพื่อนำไปใช้กับบอร์ดไมโครคอนโทรลเลอร์ อย่างเช่น Arduino อะไรบ้าง
◻️ BlocklyDuino (https://github.com/gasolin/BlocklyDuino)
- เป็น Web-based visual programming editor for Arduino
- ได้แรงบันดาลใจมาจาก ( inspired by) "ArduBlock" ซึ่งเป็น Arduino Plug-in สำหรับเขียนโค้ดด้วยบล็อก
- พัฒนาโดย Fred Lin ตั้งแต่ปีค.ศ. 2012
- เป็น Open Source (Apache License 2.0)
- ใช้ Google Blockly สำหรับพัฒนาในส่วนที่เป็น Web App
- สามารถรันเป็น Web server (เขียนด้วย Python) ในเครื่องของผู้ใช้ได้ และเข้าใช้งานผ่านหน้าเว็บได้ แต่จะต้องติดตั้งซอฟต์แวร์ Arduino IDE & tools ในเครื่องของผู้ใช้ เพื่อใช้ในการคอมไพล์โค้ดและอัปโหลดไปยังบอร์ด Arduino
- ใช้สำหรับบอร์ด Arduino Uno, Mega, Nano เป็นต้น
- มีการเพิ่มบล็อกให้เลือกใช้สำหรับฮาร์ดแวร์ของ Groove เช่น RC Servo, Motor, Relay, Button, Tilt Switch เป็นต้น และสามารถใช้งานออนไลน์ได้ที่ BlocklyDuino "Grove Edition" https://bit.ly/2mPqDwq
◻️ BlocklyProp (http://blockly.parallax.com/blockly/)
- เผยแพร่ครั้งแรกในเดือนกันยายน ค.ศ. 2016
- พัฒนาโดยบริษัท Parallax Inc. (USA)
- เป็น Open source (Apache License 2.0)
- ได้แรงบันดาลใจมาจาก (inspired by) BlocklyDuino
- ใช้ Google Blockly สำหรับพัฒนาในส่วนที่เป็น Web App
- สามารถรันเป็น Web server (เขียนด้วย Java) ในเครื่องของผู้ใช้ได้ และเข้าใช้งานผ่านหน้าเว็บได้
- ใช้ได้เฉพาะบอร์ด Parallax เท่านั้น เช่น บอร์ด Propeller Multicore(http://www.parallax.com/microcontrollers/propeller)
- เข้าใช้งานแบบออนไลน์ผ่านเว็บได้ที่ http://blockly.parallax.com/blockly/ และผู้ใช้ต้องติดตั้งซอฟต์แวร์ชื่อ "BlocklyProp Client" เพื่อใช้ในการเชื่อมต่อบอร์ดผ่านทาง USB สำหรับการอัปโหลดโปรแกรม
◻️ ArduBlockly (https://ardublockly.embeddedlog.com/)
- ได้แรงบันดาลใจมาจาก ( inspired by) และพัฒนาต่อยอดจาก BlocklyDuino
- ใช้ Google Blockly สำหรับพัฒนาในส่วนที่เป็น Web App
- เป็น Open source (Apache License 2.0)
◻️ Blockly@rduino (http://www.techmania.fr/BlocklyDuino/)
- พัฒนาต่อยอดจาก BlocklyDuino เริ่มต้นราวปีค.ศ. 2016
- เป็น Open Source (Apache License 2.0)
- ใช้ Google Blockly สำหรับพัฒนาในส่วนที่เป็น Web App
- ใช้สำหรับบอร์ด Arduino Uno, Mega, Nano เป็นต้น
◻️ Webduino Blockly (https://blockly.webduino.io/)
- ใช้สำหรับบอร์ด BPI:bit (ESP32-based) จากบริษัทในประเทศจีน
- เป็น Open Source
🤔 เพิ่มเติม:
- การสร้างระบบซอฟต์แวร์ในทางวิศวกรรมแบบใช้บล็อก ก็มีให้เห็น อย่างเช่น MATLAB / Simulink และ LabView เป็นต้น สามารถจำลองการทำงาน แล้วแปลงเป็นโค้ดคอมไพล์ไปใช้งานสำหรับบอร์ดไมโครคอนโทรลเลอร์ได้ แต่ก็เป็นซอฟต์แวร์ที่ต้องเสียค่าลิขสิทธิ์ ไม่ฟรี และไม่ใช่ Open Source
- การเขียนโปรแกรมโดยใช้บล็อกสำหรับไมโครคอนโทรลเลอร์ เช่น Arduino ความสะดวกอยู่ที่การเลือกใช้บล็อกที่มีการเตรียมไว้แล้ว ก็เหมือนกับการสร้างไลบรารีสำหรับ Arduino ไว้ให้เรียกใช้งาน คนอื่นทำไว้ให้ เราก็แค่นำมาใช้งานให้เป็น
- ถ้าชุดของบล็อกเหล่านั้น (หรือเรียกว่า Block Set) มีอย่างจำกัด ก็จะจำกัดความยืดหยุ่นหรือความสามารถในการสร้างโปรแกรมของเราได้ แต่ถ้าบล็อกเซตมีจำนวนมาก เช่น มีจำนวนของบล็อกหลักร้อยหรือหลักพัน ก็ต้องใช้เวลาเรียนรู้ว่า แต่ละบล็อกใช้งานอย่างไร
- บางกรณีมีการสร้าง Custom Block (Blockly-based) ให้ผู้ใช้ เขียนโค้ดเองลงในบล็อกนั้นก็ได้ หรือถ้าสามารถสร้างบล็อกเพิ่มเติมไว้ใช้งานได้เอง ก็น่าสนใจ
- การสร้างบล็อกสำหรับใช้งานกับอุปกรณ์ฮาร์ดแวร์ แม้ว่าจะเป็นอุปกรณ์ประเภทเดียวกัน ก็มีความแตกต่างกันได้ เหมือนในกรณีของไลบรารีสำหรับ Arduino จากผู้พัฒนาหลายแหล่งและมีชื่อฟังก์ชันหรือคำสั่งซึ่งแตกต่างกัน
🤔 ข้อคิดเห็น:
- ตัวเลือกซึ่งเป็นซอฟต์แวร์สำหรับการเรียนรู้ ที่ได้นำเสนอมานั้น เป็นแค่บางส่วน (Open Source ทั้งหมด) ยังมีตัวเลือกอื่น ๆ อีกสำหรับการเรียนรู้
- ควรส่งเสริมความหลากหลาย เพื่อให้เกิดการเปรียบเทียบ พิจารณาความเหมือนความต่าง และความเชื่อมโยง
- มีตัวเลือกให้มากมายและใช้ได้ฟรี แต่ถ้าไม่เริ่มและลงมือจริงจัง ก็ไม่ก่อให้เกิดประโยชน์
References / Credit
- MIT Scratch
🔗 https://scratch.mit.edu
- Berkeley Snap!
🔗 https://snap.berkeley.edu
- MIT App Inventor 2 for Android
🔗 http://appinventor.mit.edu/explore/
- MIT App Inventor 2 online editor
🔗 http://ai2.appinventor.mit.edu/
- Google Blockly
🔗 https://developers.google.com/blockly/
- Google Blockly: Sourcecode
🔗 https://github.com/google/blockly
- Scratch Blocks: Sourcecode
🔗 https://github.com/LLK/scratch-blocks
- BBC Micro:bit
🔗 https://microbit.org/
- Micro:bit's Code Kingdoms
🔗 https://www.microbit.co.uk/app/
- MakeCode: Microsoft's JavaScript Blocks editor for Micro:bit
🔗 https://makecode.microbit.org/
- Scratch 3.0 micro:bit experimental extension
🔗 https://llk.github.io/microbit-extension/iste18/
- ArduBlock: Sourcecode
🔗 https://github.com/taweili/ardublock
- BlocklyDuino: Sourcecode
🔗 https://github.com/gasolin/BlocklyDuino
- BlocklyProp
🔗 http://blockly.parallax.com/blockly/
- BlocklyProp Starter Kit, Parallax Inc.
🔗 https://www.parallax.com/educ…/teach-blocklyprop-starter-kit
- BlocklyProp: Sourcecode
🔗 https://github.com/parallaxinc/BlocklyProp
- ArduBlockly
🔗 https://ardublockly.embeddedlog.com/
- ArduBlockly: Sourcecode
🔗 https://github.com/carlosperate/ardublockly/
- BlocklyDuino "Grove Edition"
🔗 https://blocklyduino.github.io/Blockly…/…/apps/blocklyduino/
- Blockly@rduino
🔗 http://www.techmania.fr/BlocklyDuino/
- Blockly@rduino: Sourcecode
🔗 https://github.com/technologiescollege/Blockly-at-rduino
- Webduino: Sourcecode
🔗 https://github.com/webduinoio
#IoT #STEM #VisualProgramming #KruBright
python web ide 在 CircuitPython Online IDE - GitHub Pages 的推薦與評價
A browser-based IDE for CircuitPython supported microcontrollers. ... CircuitPython, which is a python version that runs on microcontrollers, is developed ... ... <看更多>
python web ide 在 python-web-ide · GitHub Topics 的推薦與評價
A web based code editor on python flask framework. python editor flask code web-ide code-editor python-web-ide. Updated on Feb 28; JavaScript ... ... <看更多>