[MS Cert] The Road to MCSD#01 (Intro)

ผ่านไปแล้วการสอบ Certification ที่ผมคิดว่า โหดพอสมควรเลยครับ ถ้าเทียบกับระยะเวลาสั้นๆ ในช่วง 1 เดือนกว่าๆ ครับ สำหรับตัว MCSD ครับ หลังจากที่ได้ยินตัวย่อนี้มา สิ่งที่ผมลอง Search Google ในเว็บของไทย สิ่งที่พบ คือ พอเข้าไปลิงค์แรก แล้ว ข้อมูลเก่าเหมือนกันนะ คิดถึง Internet Explorer 6 (IE6 ฺBrowser ระดับตำนานครับ) ข้อมูลในเว็บของไทย ณ ปี 2017 ไม่น่าจะเอามาอ้างอิงได้ ผมเลยเปลี่ยนไปดูของต่างประเทศแทนดีกว่า ดูง่ายสบายตาดีครับ ข้อมูล Update กว่า และจากหลังจากที่ผมดูแล้ว ข้อมูลมันของเว็บไทยมันเก่าพอสมควร เลยคิดว่ามาเขียน Blog ไว้ดีกว่าครับ โดยอิงจากข้อมูลของปี 2017 เพื่อให้คนอื่นที่สนใจสอบ มีข้อมูลใหม่ๆด้วยครับ หลังจากเกริ่นนำไปพอสมควรแล้ว มาดูภาพรวมของ Certification ของฝั่ง Microsoft กันครับ มี 6 สาย ได้แก่ Mobility, Cloud, Productivity, Data และ App Builder ครับ ซึ่งปลายทางเป็น Certification ในกลุ่ม MCSE และ MCSD ครับ โดยผมทำแผนภาพ ตามความเข้าใจของผมมาให้ดูกันครับ จากแผนภาพด้านบน เราเห็น Certification อยู่ 4 แบบครับ ข้อมูลทั่วไปเกี่ยวกับวิชาที่สอบ และใบ Certification สิทธิประโยชน์ที่ได้ หากสอบผ่าน และได้ Certification เขียนมายาวเหมือนกัน 5555 ไม่รู้ว่าถูกต้อง หรือป่าว สำหรับ Blog ตอนต่อไปผมเขียนเจาะลงในส่วนของ MCSD ครับ หากสงสัยข้อมูลอะไร สามารถดูเพิ่มเติมได้จาก Reference เลยครับ…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python

2 เดือนมันผ่านไปไวมาก สำหรับการลองเรียนผ่านตัว Edx ในวิชา [MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python ของทาง MITx ครับ โดยสำหรับการเรียนครั้งนี้ ผมว่าอาจารย์สอนง่ายครับ และมีตัวอย่างประกอบที่ชัดเจน รวมถึงการจัดเรียงลำดับของเนื้อหาที่โอเคกว่าหนังสือในไทยซะส่วนใหญ่ครับ เพราะ บางเล่มอยู่ก็โผล่มา OOP เฉยเลย แต่ขาดเหตุจูงใจว่าทำไมต้อง OOP หละ จริงน่าจะเป็นปัญหาของการศึกษาไทยเลยก็ได้ เรียนไป แต่ไม่รู้ว่ามันเกี่ยวยังไง ทำไมต้องมี และเอาไปใช้ทำอะไรต่อได้  และเนื้อหาลงมากกว่าหนังสือของไทยนะ ตัว Edx ถ้าถามผม ผมชอบอะไร สิ่งที่ผมชอบ ส่วนที่ผมยังไม่เคยใช้เลย ปัญหาที่พบ สำหรับคนอื่นที่อยากเรียน หรืออยากรู้ว่า แต่ละ Week มีอะไรบ้าง ผมได้เขียน Blog ของแต่ละ Week ไว้ ดังนี้ ครับ คะแนนสอบครับ ไม่ยากเลยครับ หากเรามีความตั้งใจ และนี้ตัว Cert ของทาง EDX ครับ สวยงามดี ^__^

[MSSQL] สรุปงาน SQL Server Community Thailand Meeting #03

วันนี้หลังจาก Train C# เสร็จ ผมรีบออกจากบริษัท ให้มาถึง BTS เร็วที่สุด เพราะกลัวฝนจะตกอีกรอบ เพื่อมางาน SQL Server Community Thailand Meeting ครั้งที่ 3 ครับ โดยครั้งนี้จัดที่ Agoda ที่เดิมครับ ซึ่งในงาน Meetup ครั้งนี้มี 2 หัวข้อครับ ได้แก่ คำเดือน Blog นี้เขียนโดยมุมมองของ Developer อาจจะมีบางเรื่องที่เขียนผิดไปบ้างนะครับ ขอเข้าเรื่องเลยและกัน Microsoft SQL Server Index (Row Store Index) & Statistics by Chulladej Aramsri – Heap table vs Clustered table – ปัญหา Index Fragmentation – Index Statistics Power BI with R by Chawalit Pusitdhikul ปิดท้ายของ Blog อาหารการกินครับ มี KFC กับโดนัท อิ่มทั้งท้อง อิ่มทั้งสมองเลยครับ

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Final Exam)

สำหรับ Blog อันนี้เขียนหลังสอบ Final Exam ครับ โดยการสอบครั้งนี้ น่าจะเป็น One Week Miracle มากๆ ครับ เพราะจากการที่ผมไปเน้นตัว MCSD เป็นหลักครับ ทำเหลือเวลาเตรียมตัวในการสอบครั้งนี้น้อยพอสมควรครับ จริงๆ อยากรีบให้มันจบไปด้วย ฮ่าๆ รู้สึกว่า Project ใหม่ ตัว Equity Rebalance เข้ามาบีบแล้ว เข้ามาที่ตัวข้อสอบเลยดีกว่าครับ สำหรับข้อสอบโครงสร้างคล้ายๆกับ Mid-Term ครับ คือ ตัวที่ยากสำหรับผมน่าเป็น Final-Exam Problem 4: ที่ให้หาค่ามากที่สุดใน Tuple ครับ โดยสิ่งที่โจทย์ให้มา ดังนี้ ที่ผมว่ามันโหด และยาก เพราะ ว่าตัว Final-Exam เค้าถึงว่า ผู้เรียนได้ผ่านบทเรียนเรื่อง Testing & Debugging ของ Week ที่ 4 แล้วครับ นั่นแสดงว่า เราต้องคิด Test Case เองครับ แต่นั่นทำให้ผมรู้ว่าตัว tuple มีลูกเล่นเยอะครับ เช่น และ Code ที่ผมได้เขียนตัว Method หลักๆ ผมยังใช้ Loop ครับ ในโจทย์ข้อนี้เน้นแนวคิดในการเล่นข้อมูลใน Tuple ที่มีความหลากหลายตาม Test Case ซึ่งผมพบว่าสิ่งที่ tuple กับ List มีเหมือนกัน คือ มัน Iterable ได้ ผมจึงทำ Helper flatten (เอา Recusive มาช่วย) เพื่อทำให้ข้อมูลมันแบนลง โดยใช้ Python Package Collection มาช่วยครับ ซึ่งถ้าใน…

Export ข้อมูลใน Task Manager ลง Excel(CSV)

หลายครั้งเวลาที่เราตรวจสอบอะไรบางอย่าง เช่น แรมที่ใช้ไป อย่าง Chrome เองเปิดไปเป็น 10 Process อยากรู้แล้วว่ามันกินทั้งหมดเท่าไหร่ ถ้าไปนั่งนับจาก Task Manager ก็ยากนิดหน่อยข้อมูลมัน Realtime วิ่งไปวิ่งมา ครั้นไปหาโปรแกรมมาก็ติดว่าไม่จำเป็น เลยลองส่องๆดูใน cmd ว่าทาง Microsoft ได้มีทำลูกเล่นอะไรไว้กับตัว Task Manager หรือป่าว ปรากฏว่ามีด้วย โดยพบว่ามีคำสั่ง tasklist และเปิด help ด้วยคำสั่ง tasklist /? งั้นลองมา Export ข้อมูลในหน้าจอ Task Manager ลง Excel ดีกว่าครับ โดยมีขั้นตอน ดังนี้ เปิดหน้า cmd มาในแบบ Adminsitrator Mode พิมพ์ tasklist ตอนนี้ตัว Task Manager Export ข้อมูลออกมา ถ้าอยาก Export ข้อมูลในหน้าจอ Task Manager ออกมาเป็น csv ด้วยคำสั่ง tasklist /FO csv > “%userprofile%\desktop\taskManager.csv” ไฟล์ที่ได้อยู่ที่ Desktop ครับ เมื่อเปิดออกมา ก็สามารถเอาข้อมูลที่ได้ไปใช้งานต่อได้ครับ Reference Tasklist

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 7) – Simple Plot

สำหรับ Blog อันนี้เป็น Lecture สุดท้ายสำหรับในการเรียน หลังจากการเรียนที่ผมเขียนไปใน Blog ตอนที่แล้ว ในตอนนี้เรานำข้อมูลมาแสดงให้เห็นภาพ (Visualize) โดยนำข้อมูลมา Plot เป็นกราฟ โดยใช้ Library ตัว PyLab ครับ สำหรับการใช้เรานั้น เราต้อง import ข้อมูลก่อนครับ โดยใช้คำสั่ง ดังนี้ ลองกำหนด Sample Data กัน 📊 การกำหนด Sample Data ใน Class นี้ คุณ Eric Grimson พยายามเชื่อมโยงไปถึงบทที่แล้วครับ โดยใข้ Code ดังนี้ Plot Graph กันเถอะ 📊 Version แรกครับ ใช้ Code แบบ Simple เลยครับ เอาให้มี Graph ขึ้นมาก่อนครับ โดยใช้ Code ดังนี้ 📊 ผลลัพธ์ที่ได้ 📊 จาก Version แรก พบปัญหา ดังนี้ 📊 มาดูผลลัพธ์ที่ปรับกันครับ 📶 ข้อสังเกตุ 1: อยากแยก กราฟออกจากกัน ใช้ Figure ช่วยได้ 📶 ข้อสังเกตุ 2: ปัญหา ใน Method Plot แรก คือ การกำหนดพื้นที่การเขียนครับ จาก Code ตัวอย่างคือ mySamples ตัว PyLab มันจองยาวจนกว่าจะปิดโปรแกรมครับ ถ้าอ้างอิงไม่ดีข้อมูลมาเขียนทับกันครับ ซึ่งสามารถแก้ไขแก้ไข โดยใช้คำสั่ง Clear ก่อน Plot…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 6) – Algorithm + Big O

สำหรับ Blog ในตอนนี้ จากที่เรียนมาทั้งหมด พวกว่าทุกคนอยากให้ Code ที่เขียนขึ้นมามีแนวคิดการทำงานต่างกัน หรือที่มีคำเท่ห์ที่เรียกว่า Algorithm ส่วนทำได้มีประสิทธิผล( Performance) และถูกต้อง แล้วอะไรที่บอกว่าเร็วหละ ตอนนี้เน้นส่วนเรื่องที่บอกว่าเร็ว Performance ดี เรามองได้ใน 2 มุมมอง การมาวัดมันมีหลายแบบ เช่น จับเวลา, นับ Operation ที่ใช้ หรือแม้แต่การดูพื้นที่ที่ใช้ไป แต่มันมีปัญหาจุกจิกมากมาย ทั้งที่เรื่องจำนวนข้อมูลนำเข้า(Data Set) และ Enviroment(เช่น พวก Hardware ต่างๆ) ในทาง Computer Science ก็เลยมี Idea ในการวัดอีกแบบ คือ Abstract Notation Order of Growth ครับ Abstract Notation Order of Growth คือ อะไร ⚡แล้วเรามองมุมไหนดีหละ ⚡ปกติ เราสนใจเคสที่แย่ที่สุดครับ โดยตัว Order of Growth สามารถแบ่งกลุ่มได้ ดังนี้ ⚡เราตีความ Algorithm โดยใช้วิธีการที่เป็นมาตรฐาน โดยมีหลักการนับ ดังนี้ Note: สำหรับในเคส Loop ที่มีเงื่อนไขมาเกี่ยวข้อง เราต้องคิดแยก Case ฺBest Case และ Worst Case TIP: การดู Order of Growth เราไม่สามารถมองจุดเดียวแล้วบอกได้เลย เราต้องไล่การทำของ Code ในสาย Software  Engineering เรียกว่า Control Flow จากนั้นจึงค่อยมาจาก Best Case และ Worst Case ของโปรแกรม ⚡ตัวอย่างการคำนวณของ Fibonacci Note: เห็นว่าแต่ละวิธี…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 5) – OOP

ช่วงนี้ผมอัพ Blog เกี่ยว Course Python ของทาง MITx รัวๆ นะครับ เพราะ ใกล้สอบ Final แล้ว โดยสำหรับใน Week นี้เป็นเรื่องของ OOP เป็นหลัก มาเริ่มกันเลย Type Hint บอก Type ข้อมูล Lambda Function เอาไว้เขียน function สั้นๆง่ายรูปแบบ lambda arguments: expression โดยมีตัวอย่าง ปกติใช้ในการที่ต้องทำการ Function เล็ก ในการจัดการข้อมูล เช่น ใน List หรือ Stream ตัวอย่างเอามาช่วยหาที่เลขคู่ Object Oriented Programming 📌 ทุกอย่างใน Python เป็น Object แต่มี Type ของตัวเอง 📌 การทำเป็น Object มันเพิ่มตัว Data Abstraction มากขึ้นครับ โดยรวมสิ่งที่ใช้อยู่ด้วยกัน ผ่านทาง 📌 Class & Instance 📌 ตัว Python เอง มี Object พื้นฐานที่จำเป็นมาให้อยู่แล้ว อาทิ เช่น พวก Data Type ต่างๆ หรือ เป็นเฉพาะด้านอย่าง Math, String เป็นต้น ครับ 📌 ทำเป็น OOP แล้วได้อะไรบ้าง ลองมาสร้าง Object ของตัวเองดีกว่า 📌 สร้าง Class – ทุก Class สืบทอดมาจาก…

[MITx: 6.00.1x] Introduction to Computer Science and Programming Using Python (Week 4) – Testing

หลังจากพักสำหรับการเขียน Blog ของการเรียน Python มานาน เพื่อไปเตรียมสอบ MCSD ตอนนี้ได้เวลามาอัพ Blog ต่อแล้วครับ สำหรับใน Week 4 เน้นไป 5 เรื่อง ดังนี้ การทดสอบ(Testing) 📚 ที่มาของ ฺBug มันมีที่มาจากแมลงจริงๆ ที่ดันเข้าไปติดในคอมพิวเตอร์สมัยก่อนครับ ตอนแรกDev เองนึกว่า Code ผิด แต่ป่าวมีแมลงไปติดที่วงจรซะงั้น 📚 ในเรื่องนี้ผู้สอน เค้าได้นำเสนอแนวคิด Defensive Programming ครับ ❓ เมื่อไหร่ถึง Test หละ 📚 ทุกอย่างมันอยู่ในมือเราแล้ว ทำอย่างไรให้มัน Testing และ Debug ง่ายหละ 📚 Class of Tests Testing Approach 🗳️ Black Box Testing – โยน Input เข้าไป ดูผลลัพธ์ที่ออกมา 🥛Glass Box Testing – เรียกยังไงดี บอกว่ามันดีจากภายใน เพราะ การ Test เราต้อง Design Test Cases มาจาก Code ที่เขียน การติดตามพฤติกรรมของโปรแกรม (Debug) 🐞Runtime Bug นิยามของคำว่า Debug  = การติดตามพฤติกรรมของโปรแกรม อันนี้ผมเขียนขึ้นมาเองนะ จริงๆ การ Debug มันเหมือนว่าตัว Dev เอากำลังสวมบทบาทเป็นคุณหมอวินิจฉัย และผ่าตัดเอาสิ่งที่ผิดปกติออกจากโปรแกรมที่เขียนขึ้นครับ 🐞 แนวทาง Debug เพื่อจับ Bug Note: นำแนวคิดของ Defense Programming…