การเขียนโปรแกรมแบบจินตภาพด้วยบล็อกคำสั่ง: จาก 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
同時也有1部Youtube影片,追蹤數超過23萬的網紅Coco哥,也在其Youtube影片中提到,??#英國二手物業#投資?? Online連續3晚濃縮課程?? https://bit.ly/buyukhouse1m 加入我們的patreon:https://www.patreon.com/cocogor 【如果喜歡這條影片,記得給我Like & 訂閲我的頻道 】 https://www.yo...
「matlab online」的推薦目錄:
matlab online 在 Scholarship for Vietnamese students Facebook 八卦
[LONG SHARE] TÌM RA ĐƯỜNG NGHIÊN CỨU KHOA HỌC
Không phải ai cũng dễ dàng lựa chọn được hướng đi, hướng nghiên cứu của bản thân mình. Nếu chọn lựa ngành nghề đã là một quyết định khó khăn, thì lựa chọn hướng nghiên cứu khi mới bắt đầu chập chững trên con đường nghiên cứu này còn cần nhiều kiên nhẫn và quyết tâm với ngành "nghiên cứu" đặc thù này. Chị mới đọc được một bài viết của GS QuangTrung Duong, chia sẻ chi tiết và hữu ích cho các bạn Schofan nào muốn đam mê theo đuổi nghề nghiên cứu...
Cùng kiếm địa điểm nào yên tĩnh và cùng đọc với chị nhé?
----------------
(Bài dài chỉ dành cho các bạn trẻ thôi)
Tìm ra đường nghiên cứu khoa học - Hôm nay sẽ trả nợ cho một số bạn đã hỏi nhiều lần.
1) Bạn đang lan man ở những giai đoạn đầu nghiên cứu? Cái khó cho những bạn đi học MSc/PhD là giai đoạn đầu rất khó tìm hướng đi của mình. Nghe cái gì hay cũng đọc, thấy cái gì cũng dòm. In cả vài nghìn trang tài liệu ở trên bàn, để cho mốc meo, mỗi tài liệu chỉ lướt qua, tô vàng xanh đỏ, nhưng chẳng vào đầu 1 chữ nào. Thực ra đó là giai đoạn khởi động, ai cũng bị. Giai đoạn này có thể dài hay ngắn tùy vào nhiều yếu tố, GS hướng dẫn, khả năng bản thân, LAB mate, và cả may mắn. Một trong những lý do quan trọng nhất trong giai đoạn này làm mình lan man là Kiến thức nền chưa có và công cụ sử dụng chưa có.
2) Cái quan trọng nhất khi làm nghiên cứu không phải là hướng đi hot hay không hot. Quan trọng nhất là bạn phù hợp với hướng đó hay không và bạn nắm vững các công cụ để áp dụng vào hướng nghiên cứu đó. Khối ngành kỹ thuật có thể là Optimisation, AI, Machine Learning, Big Data, Random Process, Control Theory, v...v.., Sử dụng thành thạo các công cụ hỗ trợ khi đọc báo là cách nhanh nhất để hiểu bài báo đó. Khi bạn đọc 1 bài báo, bạn chỉ hiểu rõ khi bạn có tư duy để có thể làm lại (duplicate) được kết quả của bài báo đó. Thông thường trong giai đoạn đầu khi bạn chưa biết viết paper (nghĩa là chưa ra kết quả) việc đọc báo chậm, rất chậm và lan man cũng là vì lý do này. Sau này khi đã viết 1 vài bào báo chuyên ngành rồi, tức là khả năng bạn đã sử dụng thành thạo công cụ của ngành mình rồi thì rõ ràng khi bạn đọc bài báo, những điểm nhấn sẽ đến trong não rất nhanh. Và quan trọng là ban sẽ biết nên đọc bài báo nào (bài nào ko cần đọc), và nhiều khi đọc ở đoạn nào của bài báo (chứ không cần phải đọc hết cả bài như trước đây). Nên sức đọc sẽ hiệu quả hơn hẳn, dễ hiểu hơn hẳn và không lan man như bước 1 ở trên. Cái đó là sau này, còn bây giờ ta vẫn như đang đi lạc trong rừng 😃. Nhưng không có gì hoảng loạn cả. Chỉ cần cố gắng
3) Vậy đến khi nào thì dừng đọc. Đọc là giai đoạn literature review, tìm hiểu tổng quan trong ngành. Trong ngành rộng, sẽ có các ngành hẹp, trong ngành hẹp sẽ có ngành hẹp hơn. Rút gọn lại đến khi bạn tìm thấy hướng mà bạn có thể viết ra paper. Nhưng từ lúc hiểu paper đến viết là 1 khoảng cách khá lớn. Quan trọng là phải duplicate lại được kết quả của bài báo cũ đã làm. Khi bắt tay vào làm lại kết quả, bạn sẽ biết mình hổng kiến thức gì, công cụ gì mình chưa biết, mình cần phải bổ sung cái gì. Đó cũng là giai đoạn mình đọc thêm các textbook, học các phần mêm hỗ trợ, học các phương pháp thí nghiệm. Nhiều khi giai đoạn học text book này song song với giai đoạn đọc tài liệu. Không được đốt cháy giai đoạn này. Đây là giai đoạn xây nhà trên móng. Tôi rất ủng hộ việc học course trước ở giai đoạn MSc, rồi mới đi làm PhD. Thiếu kiến thức nền rất nguy hiểm. Nếu bạn không có thể theo đuổi các course trên trường mà mình cần, thì tự học online, tự đọc sách. Nên nhớ không đốt cháy giai đoạn. Tôi có tổng cộng 4 năm học course ở MSc và PhD trước khi thực sự bước vào làm nghiên cứu thực thụ. Tôi mất khoảng 4 năm đầu cho giai đoạn này. Tổng cộng thời gian từ lúc tôi bắt đầu đi du học ở giai đoạn MSc đến lúc nhận bằng TS là 9 năm (4 năm học course và 5 năm làm research). Sẽ có nhiều course bạn có thể không dùng vào thời điểm này nhưng sau này có khả năng bạn sẽ cần đến nó, lúc đó có thể bạn không nhớ, nhưng bạn biết kiến thức nằm ở chỗ nào, để lục lại mà đọc. Rất quan trọng, kiến thức nền.
4) Công cụ (các phương pháp) là thứ quan trọng nhất để bạn giải quyết ý tưởng. Không có công cụ, thì ý tưởng cũng sẽ nằm trong sọt rác. Công cụ có thể là 1 hướng Toán ứng dụng, có thể là 1 hướng của AI, có thể là phương pháp thí nghiệm hóa học, có thể là 1 phương pháp thí nghiệm vật lý v...v... Không nắm rõ công cụ, chúng ta vẫn có thể nói chuyện như 1 chuyên gia nhưng chúng ta đang ở trên mây. Tôi đã từng biết có 1 số người khi đi họp họ phát biểu rất tốt, nói rất hay, như là 1 học giả. Nhưng họ chưa bao giờ thực sự bắt tay vào làm (nghĩa là "make your hand dirty") nên nhiều điều họ nói không thể áp dụng vào thực tế, cụ thể có thể là dự án, hoặc bài báo. Một cuộc đời làm PhD có thể có 1 công cụ, có thể có 2 và hơn. Ví dụ khi tôi làm PhD, tôi có nắm vững rất tốt những công cụ sau: Random Probability, Random Matrix Theory, Super Analysis, Matlab, Mathematica. Nó giúp tôi chiến đấu 5 năm PhD nhưng sau này đến năm thứ 6 (sau khi tốt nghiệp) thì tôi phải chuyển sang học thêm những thứ khác: Optimisation, Machine Learning, v..v... Tóm lại, nắm vững công cụ là cách tốt nhất để triển khai ý tưởng.
5) Khi bạn làm PhD để ra báo, bạn sẽ bắt đầu từ quy trình đọc để thu hẹp lại Chuyên ngành -> chuyên ngành hẹp -> chuyên ngành rất hẹp. Nghĩa là những bài báo khoa học của bạn chỉ dùng để giải quyết những bài toán rất rất nhỏ. Có thể người ta làm ra kết quả 1. Bạn phát hiện có thể thay đổi bài báo đó, và ra kết quả tốt hơn là 2 thì bạn đã có thể đăng được 1 bài báo tốt, có khi trên top journal. Nhưng nên nhớ, nếu cứ tiếp tục như thế, bạn sẽ không bao giờ tồn tại trong môi trường học thuật. Khi xong PhD chuyển sang giai đoạn post-doc bạn phải học cách chuyển ngược lại chuyên ngành rất hẹp-> chuyên ngành hẹp-> chuyên ngành ->và có khi cả đa ngành. Đó là sự chuẩn bị cho con đường lâu dài. Cho nên kiến thức là vô tận, nghiên cứu nó cũng vậy. Cách đây 7 năm khi sắp xong PhD tôi không bao giờ nghĩ vào thời điểm này mình lại đang ngồi nghiên cứu những lĩnh vực như environment, healthcare, social science, plastic waste, air-quality v...v... Mọi thứ thay đổi, bản thân mình cũng thay đổi. Nếu có cơ hội bạn nên luôn thay đổi mình, đọc thêm được những ngành nghề liên quan, nghe những seminar của những chuyên ngành khác. Nó sẽ rất có ích sau này.
6) Cuối cùng, việc làm PhD và đi làm nghiên cứu không phải là chăm chăm ra báo ISI. Bài báo khoa học chỉ là những điều kiện cần, quan trọng vẫn là chất lượng của những bài báo bạn đã làm. Bài báo là quan trọng, những kiến thức bạn thu lượm được trong những năm tháng đó cũng quan trọng không kém. Nên nhớ thất bại cũng là thành công. Tại sao tôi nói thế, bạn bỏ ra 1 thời gian khá lớn để rồi nhận ra mình đi sai đường., hướng nghiên cứu đó không còn phù hợp với mình nữa, khoảng thời gian mất trắng đó không phải là ít. Có người cũng đã phải chuyển ngành học (hẹp và rất hẹp, kể cả ngành rộng) sau vài năm. Nhưng đó là những bài học xương máu, những kiến thức bạn không dùng nữa chưa chắc đã vô dụng. Có khi lại còn hữu ích sau này. Khoảng thời gian bạn đã bỏ ra đó cũng là thời gian đào tạo bạn biết cách làm việc độc lập, Học hỏi kinh nghiệm từ những thất bại thì cũng là 1 thành công đó bạn.
Điều cuối cùng tôi muốn nói, đường nghiên cứu còn dài lắm. Không ai tự vỗ ngực là mình giỏi trong bất cứ lĩnh vực gì, đặc biệt là nghiên cứu khoa học khi sự học là vô tận, kiến thức là vô tận. Đức tính quan trọng nhất của người làm nghiên cứu là kiên nhẫn, không nản chí và phải khiêm tốn. Biết mình ở đâu, luôn luôn cầu tiến và học hỏi, không tự mãn. Chúc bạn thành công.
Source: QuangTrung Duong
<3 Like và share nếu các em thấy thông tin có ích nhé <3
#HannahEd #duhoc #hocbong #sanhocbong #scholarshipforVietnamesestudents
matlab online 在 โปรแกรมเมอร์ไทย Thai programmer Facebook 八卦
ยุคโควิด 19 ไม่ต้องหอบสังขารไปเมืองนอก
ก็มีโอกาสเข้าเรียนกับมหาวิทยาลัยระดับโลกได้
ต่อไปนี้เป็นรายชื่อคอร์สออนไลน์ Computer Science
จากมหาวิทยาลัยฮาร์วาร์ด
เรียนฟรี เสียแค่ค่าเน็ต ค่าไฟ ออกกันเองเนอะ
.
มีอยู่ หลายวิชาด้วยกัน ได้แก่
1) CS50's Introduction to Game Development
แนะนำการพัฒนาเกม 2D และ 3D
👉 https://online-learning.harvard.edu/course/cs50s-introduction-game-development?delta=0
.
2) CS50's Web Programming with Python and JavaScript
การเขียนเว็บด้วย Python , JavaScript, SQL และเฟรมเวิร์คอย่างPython, Flask, Django และ Bootstrap.
👉 https://online-learning.harvard.edu/course/cs50s-web-programming-python-and-javascript?delta=0
.
3) CS50: Introduction to Computer Science
แนะนำ Computer Science และศาสตร์การเขียนโปรแกรม
👉 https://online-learning.harvard.edu/course/cs50-introduction-computer-science?delta=0
.
4) CS50 for Lawyers
หลักสูตร Computer Science ที่ออกแบบมาให้กับนักศึกษาวิชากฏหมาย
👉 https://online-learning.harvard.edu/course/cs50-lawyers?delta=0
.
5) CS50's Introduction to Artificial Intelligence with Python
แนะนำ AI เป็น machine learning ด้วยภาษา Python
👉 https://online-learning.harvard.edu/course/cs50s-introduction-artificial-intelligence-python?delta=0
.
6) Quantitative Methods for Biology
เรียนพื้นเขียนโปรแกรมและ data analysis ด้วย MATLAB เพื่อเอาไว้ประยุกต์ใช้ในสาขาชีววิทยาและการแพทย์
👉 https://online-learning.harvard.edu/course/quantitative-methods-biology?delta=1
.
7) Data Science: Machine Learning
คอร์ส Data Science, Machine learning มีการสร้างระบบแนะนำภาพยนต์
👉 https://online-learning.harvard.edu/course/data-science-machine-learning?delta=2
.
8) Fundamentals of TinyML
พื้นฐาน TinyML เอาไว้ใช้งาน machine learning บน embedded systems
👉 https://online-learning.harvard.edu/course/fundamentals-tinyml?delta=0
.
9) The Future of ML is Tiny and Bright
คอร์เรียน TinyML ระดับมือโปรขึ้นมาหน่อย
👉 https://online-learning.harvard.edu/course/future-ml-tiny-and-bright?delta=0
.
10) Applications of TinyML
ตัวอย่างการประยุกต์ใช้ TinyML
👉 https://online-learning.harvard.edu/course/applications-tinyml?delta=0
.
11) Deploying TinyML
คอร์สสอนดีพลอย TinyML (TensorFlow Lite) ลงบนไมโครคอลโทรลเลอร์ microcontrollers
👉https://online-learning.harvard.edu/course/deploying-tinyml?delta=0
.
.
ผู้เรียนจะเรียนออนไลน์ด้วยตัวเองเป็นภาษาอังกฤษ
ถือว่าฝึกภาษาแล้วกัน
ซึ่งจะเรียนผ่านแพลทฟอร์มของ edx อีกทีครับ
.
เวลาเรียนก็คลิกเลือก audit this course
ถ้าอยากได้ใบ cert ก็ต้องเสียเงินครับ
+++++++++++++++++++++++++
.
.
ที่มา https://online-learning.harvard.edu/catalog
.
.
.
.
.
.
.
.
.
ก่อนจากกันไปอยากจะแนะนำ
หนังสือ “โปรแกรมเมอร์ก็รวยได้ ด้วยเส้นทางเอาท์ซอร์สสายดำ”
เล่มนี้จะเล่าเรื่องราวของเอาท์ซอร์ส (Outsource) 🔥
ในสายงานซอฟต์แวร์เป็นหลัก
หนึ่งในเส้นทางโปรแกรมเมอร์จะสามารถอัพเดตเงินเดือน
ให้เกินครึ่งแสนในระยะเวลาอันสั้น
.
โดยจำหน่ายเป็นเล่มกระดาษจริง
✔ เนื้อในจะเป็นขาวดำทั้งเล่ม
✔ ราคา 350 บาท รวมค่าส่งแล้ว
✔ ถ้าสนใจติดต่อไลน์ @269aibvq เดี๋ยวส่งเลขบัญชีไปให้
😓 แต่เนื่องจากตีพิมพ์ออกมาน้อย
ตอนนี้เหลือ 40 กว่าเล่ม
ถ้าสินค้าหมดก่อนก็ของดจำหน่ายชั่วคราว
เลยขอแจ้งให้ทราบล่วงหน้า
.
✔ สำหรับตัวอย่างหนังสือ ดาวน์โหลดได้ตามลิงก์ข้างล่าง 👇
https://drive.google.com/file/d/1tAnMozeYd63dcbBGTQmT_ZrpSaamZS3e
youtube: https://youtu.be/Ljf9iJhLcIs
.
👉 หมายเหตุผมยังขายเป็นเวอร์ชั่นอีบุ๊กให้อ่าน
✔ ราคาจะถูกลงมาหน่อย 250 บาท กับ 279 บาท ฿
✔ เนื้อในจะเป็นสีสัน (ไม่ใช่ขาวดำแบบเล่มจริง)
✔ อ่านรายละเอียดเวอร์ชั่น ebook ก่อนตัดสินใจซื้อ 👇
https://www.patanasongsivilai.com/blog/sale_book_rich_with_outsource/
.
✍ เขียนโดย โปรแกรมเมอร์ไทย thai programmer
matlab online 在 Coco哥 Youtube 的評價
??#英國二手物業#投資?? Online連續3晚濃縮課程??
https://bit.ly/buyukhouse1m
加入我們的patreon:https://www.patreon.com/cocogor
【如果喜歡這條影片,記得給我Like & 訂閲我的頻道 】
https://www.youtube.com/c/cocogor?sub_confirmation=1
?Instagram - @official_cocogor
https://www.instagram.com/officialcocogor/
?Facebook
https://www.facebook.com/officialcocogor/
▄▄▄▄▄▄▄⭐️ 精選影片⭐️ ▄▄▄▄▄▄▄▄
?美國「實體清單」第一招!禁用MATLAB?有乜咁勁?驚乜嘢?
https://youtu.be/ucPu21JZD1U
?預告❓聯繫匯率崩潰?一注獨贏?狙擊港元
https://youtu.be/ilPw6WTedyA
?點解嘅❓股樓再破頂‼️散戶走資 VS 大戶熱錢水浸香港❓
https://youtu.be/OR6M4X-UUPo
?移民外國?做二等公民?我申請左去邊?
https://youtu.be/aezzLY7W8hY

matlab online 在 Online Teaching and Virtual Labs with MATLAB and Simulink 的八卦
We will discuss several resources, including: - Challenging students using real-world problems with hardware ... ... <看更多>