Saturday, May 30, 2020

[គន្លឹះ] រៀនកូដអេឡិចត្រូនិចឲ្យចេះលឿន


ការរៀនពីកូដទាក់ទងនឹងអេឡិចត្រូនិច(Embedded software)ពិតជាមិនងាយស្រួលប៉ុន្មាននោះទេបើយើងនិយាយពីថាចេះប្រើទាំងអស់ តែបើយើងនិយាយត្រឹមការចេះប្រើប្រាស់ទូទៅក៏មិនជាលំបាកណាស់ណាដែរក្នុងការរៀនពីចំនុ​ចសូន្យ។ ខាងក្រោមនេះខ្ញុំនឹងចែករំលែកចំនុចខ្លះក្នុងការរៀនឲ្យបានទិន្នផលខ្ពស់ដោយយោងទៅតាមបទពិសោធន៍ផ្ទាល់ខ្លួនតែប៉ុណ្ណោះ។

ចំនុចមួយដែលខ្ញុំតែងតែចាត់ទុកជាបញ្ហាធំសម្រាប់អ្នករៀនកូដគឹភាសាអង់គ្លេស ដោយសារតែកូដបានបង្កើតឡើងមកជាមួយភាសាដើមអង់គ្លេស ដូចនេះបើយើងមិនជាសូវយល់ពីពាក្យទាំងនោះទេ គឺប្រៀបដូចជាយើងរៀនទន្ទេញរបៀបសរសេរនិងការប្រើប្រាស់ដែរ មិនមែនជាការយល់ពីគោលដៅដែលគេបានបង្កើតមកទេ ហើយម្យ៉ាងវិញទៀតឯកសារដើមក៏ជាភាសាអង់គ្លេសដែរ នេះក្នុងករណីយើងចង់ស្វែងយល់ពីដើមមកក៏ផ្តោតជាបញ្ហដែរ។

ជាមតិផ្ទាល់ខ្លួនរបស់ខ្ញុំ អ្នកដែលចង់រៀនកូដគួណាស់តែដោះស្រាយរឿងភាសាអង់គ្លេសឲ្យបានប្រសើរទើបជាការល្អ នេះខ្ញុំមិនសំដៅលើកម្រិតភាសាអង់គ្លេសផ្លូវការដូច TOEFL ឫ IELTS នោះទេ គឺកម្រិតភាសាដែលយើងអាចអាននិងយល់ពីឯកសារទាក់ទងនានាបាន។

១. ការស្គាល់ពីខ្លួនឯង និងគោលដៅ


មិនថារៀនអ្វីក៏ដោយគឺយើងត្រូវតែស្គាល់ខ្លួនឯង​ និងគោលដៅរបស់យើងឲ្យច្បាស់បំផុត បើពុំនោះទេយើងនឹងវង្វេងនៅលើផ្លូវមួយដែលវែងមិនចេះដល់គោលដៅ។ ហើយគោលដៅក៏ត្រូវតែដាក់ម្តងមួយៗអោយបានច្បាស់ដែរ ដើម្បីងាយស្រួលផ្តោតអារម្មណ៍ក្នុងការរៀន។

ឧ. កាលពីរៀនឆ្នាំទី៣នៅមហាវិទ្យាល័យខ្ញុំមិនទាន់ស្គាល់អ្វីទៅជាការសរសេកូដអេឡិចត្រូនិចនៅឡើយទេ តែខ្ញុំពិតជាយល់នឹងទទួលយកនៅការរៀនសរសេរកូដបានលឿន ពី C programming (នេះជាការស្គាល់ខ្លួនឯង) ខណៈនោះដែរខ្ញុំពិតជាចង់ចេះប្រើនិងសរសេរកូដ Arduino ដើម្បីធ្វើរ៉ូបូតដូចគេណាស់ ហើយខ្ញុំក៏ដាក់ចិត្តធ្វើយ៉ាងណាត្រូវតែស្គាល់វាអោយបាន(នេះជាគោលដៅ)។ កុំដាក់គោលដៅដោយគ្រាន់តែចង់នេះផងចង់នោះផង ម្តងរៀននេះម្តងរៀននោះគឺមិនមានលទ្ធផលល្អឡើយ អាចនឹងចំណាយពេលចោល។

២. យកល្អគួចាប់ផ្តើមពីមូលដ្ឋានគ្រឹះ


 កូដសម្រាប់អេឡិចត្រូនិចមិនមានភាសាច្រើនទេដូចកូដរបស់អ្នកITនោះទេ  ភាសាដែលគេប្រើច្រើនមានដូចជា C program, C++, Pyton, ... ។​ ដែលអ្នកចាប់ផ្តើមដំបូងរៀនគួតែចាប់រៀនពីមូលដ្ឋានគ្រឹះរបស់ភាសាកូដនីមួយៗខាងលើ ជាជាងការចូលទៅរៀនសរសេរសម្រាប់ Controller តែម្តង ពីព្រោះការរៀនភាសាដើមប្រៀបដូចជាការដែលយើងរៀនវេយ្យាករណ៍នៅក្នុងភាសាមួយមុននឹងឈានទៅការសរសេរជាប្រភេទអត្ថបទផ្សេងៗ។ ត្រង់នេះខ្ញុំចង់មានន័យថា បើសិនជាយើងបានយល់ដឹងនិងសាំជាមួយភាសាកូដរួចហើយ ការសរសេរនៅលើ Controller ក៏មិនជាបញ្ហាដែរ គឺយើងនៅសល់តែការស្វែងយល់ពីដំណើរការ និងការបញ្ជារវាតែប៉ុណ្នោះ។

ឧ. មុននឹងខ្ញុំចាប់ផ្តើមការសរសេរកូដ Arduino ខ្ញុំបានរៀនពីមូលដ្ឋានគ្រឹះនៃ C program យល់បានច្រើនទៅហើយ ដល់ពេលទៅរៀន Arduino ខ្ញុំមិនសូវជាមានបញ្ហាជាមួយ Syntax (របៀបសរសេរ)នៃកូដនោះទេ គឺព្យាយាមយល់ពីដំណើរការ និង Syntax ក្នុងការបញ្ជាដូចជាជើងរបស់វាជាការស្រេច។

ក្នុងករណីនេះយើងក៏មិនជាចាំបាច់ថាទាល់តែបានរៀនជាមួយគ្រូក៏បាន យើងអាចប្រើពេលមួយចំនួនទៅរៀនតាម យូធូប ឫមើលសៀភៅពីអ៊ីនធើណែតក៏បាន។ ខាងក្រោមនេះជាកន្លែងដែលខ្ញុំតែងតែរៀន៖
- យូធូប ៖ thenewboston
- វែបសាយ ៖ Tutorialspoint

៣. សិក្សាពីគម្រូតូចៗនៅលើអ៊ីនធើណែត


ដំណាក់កាលនេះជាដំណាក់កាលដែលអ្នករៀនត្រូវតែឧស្សាហ៍ព្យាយាមបំផុត ដោយសារតែចំនេះដឹងដែលនឹងទទួលបានវាសមមាត្រទៅនឹងការរៀនពីគម្រោងទាំងនេះ ស្រាវជ្រាវកាន់តែច្រើនគឺយល់កាន់តែច្រើន នឹងមិនងាយភ្លេចទៅវិញ។ យើងអាចលើកឧទាហ៍ជាមួយ Arduino បានដូចជា ការប្រើប្រាស់ Bluetooth, RFID, Keypad ជាដើម​ ដែលនឹងត្រូវបានស្វែងយល់ជាមួយគម្រោងទាំងនោះ។ 

ហើយអ្វីដែលខ្ញុំបានរកឃើញគឺការចូលទៅអាននៅក្នុងវែបសាយអាចទទួលបានពត៌មានលម្អិតច្រើនជាងការមើលវីឌីអូ​ ហើយធ្វើតែតាមគេ ពេលធ្វើចប់អាចបានដំណើរការដែរតែមិនសូវជាយល់បានច្រើន។

កន្លែងខ្ញុំតែងទៅរកគឺ google និង youtube ហើយខាងក្រោមនេះជាកន្លែងដែលខ្ញុំឧស្សាហ៍ចូលទៅមើល និងតាមដាន៖
...

៤. ធ្វើគម្រោងដែលខ្លួនឯងចង់បាន


ក្រោយពីបានសិក្សាស្វែងយល់ពីគម្រោងតូចបានច្រើនហើយ ដើម្បីជាការសាកល្បងនិងបំពេញបន្ថែមនូវចំនេះដឹងដែលយើងមាន យើងត្រូវបង្កើតការស្រម៉ៃនៃគម្រោងតូចៗដើម្បីធ្វើឲ្យបានជាលទ្ធផលទោះបីជាត្រូវការប្រើប្រាស់ពេលនិងការស្វែងបន្ថែមដោយរបៀបណាក៏ដោយ។ ការធ្វើបែបនេះនឹងធ្វើឲ្យស្គាល់កាន់តែច្បាស់ថាខ្លួនឯស្ថិតនៅកម្រិតណា និងត្រូវការអ្វីខ្លះទៀតមកបំពេញបន្ថែមដើម្បីឲ្យខ្លួនឯងអាចទៅដល់ទីតាំងគោលដៅរបស់ខ្លួន។

៥. ស្វែងយល់ពីគម្រូកម្រិតខ្ពស់

Embedded Archives - Zenturion Automation

បន្ថែមពីលើនេះទៀតយើងអាចសិក្សាទៅលើកម្រិតខ្ពស់ជាងនេះបាន​ដូចជា Advanced control, Program optimization, IoT, Bare-metal programming, RTOS ដែលធ្វើឲ្យយើងអាចប្រើប្រាស់ប្រព័ន្ធអេឡិចត្រូនិចបានច្រើនជាងមុន ដំណើរការរលូនជាងមុន និងអាចប្រើប្រាស់បាននៅក្នុងប្រព័ន្ធផ្សេងៗបានដូចជា Automation, Industrial ... ។

នៅក្នុងចំនុចនេះខ្ញុំមិនបទពិសោធន៍ច្រើននោះទេ គឺកំពុងតែសិក្សាស្រាវជ្រាវបន្ថែមដូចគ្នា តែដោយផ្អែកលើបទពិសោធន៍តិចតួចដែលខ្ញុំបានប្រើប្រាស់ដូចជា Arduino នៅក្នុងវិស័យ Industrial Automation ដែលតម្រូវឲ្យដំណើរការលឿននិងក្នុងរយៈពេលរាប់ខែឆ្នាំគឺដំណើរការបានល្អមិនទាន់មានបញ្ហានៅឡើយ។​ ក៏ដូចជាការប្រើប្រាស់ប្រភេទ ARM controller ក្នុង Advanced Control ទទួលបានទិន្នផលខ្ពស់និងដំណើរការល្អ។

៦. ការព្យាយាមចែករំលែក និងចំណាប់អារម្មណ៍ទៅលើអ្វីដែលទាក់ទង


ចំនុចចុងក្រោយដែលធ្វើឲ្យយើងកាន់តែទទួលបានចំនេះដឹងបន្ថែមនោះគឺការចែករំលែកគ្នាទៅវិញទៅមក និងផ្តល់ចំណាប់អារម្មណ៍ទៅលើអ្វីថ្មីៗដែលត្រូវបានអភិវឌ្ឍនិងដាក់ឲ្យប្រើប្រាស់ជារៀងរាល់ថ្ងៃ។

ការចែករំលែកនឹងធ្វើឲ្យយើងកាន់ចងចាំនិងមានទឹកចិត្តក្នុងការសិក្សាបន្ថែមជានិច្ច ជាពិសេសធ្វើយើងនឹងទទួលបានការចែករំលែកមកវិញផងដែរនូវអ្វីដែលយើងអាចនឹងខ្វះខាត។

ជាឧទាហរណ៍ជាក់ស្តែង នៅប្រទេសជិតខាងយើងមានការចែករំលែកសន្ធឹកសន្ធាប់បើប្រៀបធៀបនឹងយើងនាពេលបច្ចុប្បន្នដែលធ្វើឲ្យគេទៅមុខបានយ៉ាងលឿនលើវិស័យនេះ ហើយខ្ញុំក៏ស្ថិតនៅក្នុងក្រុមរបស់ពួកគេដែរ ដែលពួកគេចែករំលែកជាភាសាជាតិរបស់គេនីមួយៗមានទាំងសំនួរតូចៗរហូតដល់គម្រោងកម្រិតខ្ពស់ ហើយក៏អរគុណដែលយើងមាន google translate ដែលអាចឲ្យខ្ញុំបានស្វែងយល់ពីការចែករំលែករបស់ពួក។

កត្តានេះហើយទើបផ្តល់អោយខ្ញុំនូវកម្លាំងចិត្តក្នុងការចែករំលែកបន្តជាភាសាជាតិដើម្បីឲ្យយើងអាចរីកចម្រើនទៅមុខលើវិស័យនេះ៕