ย้ายเว็บไซต์ไปแห่งใหม่แล้วครับ

ต่อไปจะเพิ่มเนื้อหาต่าง ๆ ในเว็บทั้งหมดลงในเว็บไซต์ใหม่นะครับ สามารถติดตามได้ที่นี่ http://www.khunkrookrub.com

5 เทคนิคสำหรับการเขียนโปรแกรมให้เทพ!

คิดว่าหลายๆคนที่เข้ามาอ่านบทความในบล๊อกเทพน่าจะมีความรู้ความสามารถในการเขียนโปรแกรม ไม่ว่าจะเป็นภาษาซี(C), ภาษาเบสิค(Basic), ภาษาไพธอน(Python) และอื่นๆ อีกมากมาย ไม่ภาษาใดก็ภาษาหนึ่ง คงเคยประสบปัญหามากมายระหว่างการเขียนโปรแกรม อาจเป็นสิ่งเล็กๆอย่างพิมพ์ผิดพิมพ์ตก หรือแม้กระทั่งสิ่งใหญ่ๆที่เรียกว่า ‘บั๊ก’

คงไม่มีใครชอบแน่ใช่ใหม่ครับ กับความผิดพลาดที่เข้ามาหลอกหลอนซ้ำแล้วซ้ำเล่า วันนี้ผมมีเทคนิคเล็กๆ น้อยในการเขียนโปรแกรมมาฝากกันครับ

1. ศึกษาหาข้อมูลก่อนลงมือเขียนโปรแกรม
ดังภาษิตว่าไว้ ‘รู้เขา รู้เรา รบร้อยครั้ง ชนะร้อยครั้ง’ การศึกษาหาข้อมูลก่อนลงมือเขียนโปรแกรมจึงเป็นสิ่งสำคัญที่สุด เราต้องรู้ก่อนว่าเราจะเขียนโปรแกรมอะไร เขียนด้วยภาษาอะไร เขียนอย่างไร มีอุปกรณ์ช่วยเหลือ เฟรมเวิร์ก หรือโมดูลอะไรที่ต้องใช้บ้าง อุปกรณ์ช่วยเหลือเหล่านั้นใช้งานอย่างไร และสุดท้าย เราเขียนโปรแกรมนี้ขึ้นมาเพื่อนำไปให้ใครใช้งาน
2. เขียนโปรแกรมอย่างเรียบง่ายพอเพียง
เขียนโปรแกรมตามความต้องการของผู้ใช้ ไม่จำเป็นต้องเพิ่มฟังก์ชั่นการทำงานอื่นๆที่ผู้ใช้ไม่ต้องการ เพราะนอกจากฟังก์ชั่นดังกล่าวทำให้โปรแกรมมีขนาดใหญ่โดยไม่จำเป็นแล้ว ยังทำให้เราซึ่งเป็นผู้เขียนโปรแกรมทำการตรวจทานได้ยากด้วย เนื่องจากโปรแกรมมีความซับซ้อนเกินไป
3. Tools Independence ไม่ยึดติดกับอุปกรณ์ที่ใช้เขียน
สักวันหนึ่งเราอาจต้องทำการปรับปรุงแก้ไขโปรแกรมที่เราเคยเขียนเอาไว้โดยไม่ มีโปรแกรมที่เราเคยใช้เหมือนแต่ก่อน การที่เราสามารถใช้อุปกรณ์เขียนโปรแกรมได้หลากหลายทำให้เราสามารถเขียน โปรแกรมได้ในทุกสถานการณ์โดยไม่ติดขัด อย่าลืมว่าไม่ว่าเราจะใช้อุปกรณ์ใดเขียน โปรแกรม ‘Hello World’ ก็ยังคงเป็นโปรแกรม ‘Hello World’
4. Tools Dependence ยึดติดกับอุปกรณ์ที่ใช้เขียน
ข้อที่แล้วบอกอย่ายึดติด ข้อนี้บอกให้ยึดติด!? อย่าพึ่งงงครับ ความหมายจริงๆของข้อนี้คือ เราควรมี และใช้อุปกรณ์หรือโปรแกรมที่เราถนัดที่สุด จึงจะสามารถเขียนโปรแกรมได้อย่างมีประสิทธิภาพสูงสุด ยิ่งเราใช้อุปกรณ์ได้ดีเท่าใด ก็สามารถเขียนโปรแกรมได้ดีเท่านั้น ไม่มีอะไรดีไปกว่าการได้ใช้ท่าไม้ตายของเราเอง
5. บันทึกงานอย่างสม่ำเสมอ
อย่าให้ชีวิตคุณแขวนอยู่บนสายไฟฟ้า อย่าให้พริบตาเดียวงานที่คุณเขียนมานานแสนนานต้องหายวับไปกับตา เพียงเพราะไม่ได้เซฟงานเอาไว้ ไม่ว่าจะเป็นเรื่องไหนๆ ความปลอดภัยก็ยังคงเป็นสิ่งสำคัญ ถ้าหากยังไม่อยากน้ำตาตกกับเรื่องเหล่านี้ เราควรบันทึกผลงานที่เราสร้างเอาไว้เสมอๆ ก่อนที่จะไม่มีโอกาสได้บันทึกมันอีก

เทคนิคทั้ง 5 ข้อนี้เป็นเพียงเทคนิคเล็กๆน้อยๆเพื่อการก้าวไปสู่การเป็นโปรแกรมเมอร์เทพ คาดว่าคงเป็นประโยชน์กับทุกคนไม่มากก็น้อย สำหรับใครที่ไม่ได้เป็นโปรแกรมเมอร์อาจลองนำไปประยุกต์ใช้ในงานของท่านได้นะ ครับ ได้ผลอย่างไรก็แวะนำมาบอกกล่าวกันด้วย ส่วนผมขอไปฝึกตนเป็นโปรแกรมเมอร์เทพก่อนนะครับ ฟี้วๆ
—————————————————————————
ขอบคุณข้อมูลจาก http://www.ninemee.com

รูปจาก bostinnovation.com

ก้าวแรกสู่การเป็นนักเขียนโปรแกรม(1st step of a programmer)

“หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?“… คงจะมีหลาย ๆ คนสงสัยว่าโดยเฉพาะน้อง ๆ ที่เพิ่งจะเริ่มก้าวเข้ามาสู่วงการเขียนโปรแกรม หรือเพิ่งจะหันมาสนใจงานด้านเขียนโปรแกรม วันนี้เราจะมาคุยกันเรื่องนี้แหละครับ
บอกไว้ก่อนนะครับ อย่าพยายามตามหาบทความที่เป็นหลักวิชาการ… ที่นี่ไม่มีครับ บล็อกแนวนั้นมีเยอะแล้วครับ ผมเพียงแค่อยากจะมาเสริมในส่วนที่ไม่ค่อยจะไม่ใครถ่ายทอดให้ทราบ… เรื่องของประสบการณ์ในงานเขียนโปรแกรมจริง ๆ อันนี้ต่างหากครับ ที่ไม่ค่อยมีใครเขียนถึง… เอาล่ะ มาว่ากันที่หัวข้อของเราต่อ “หลักการพื้นฐานในการเขียนโปรแกรม คืออะไร?”… ผมตอบแบบสั้น ๆ ให้ครับ มันคือ “ตรรกะ” หรือ “Logic” สั้น ๆ เลยนะ
“ตรรกะ” คือ แนวคิด วิธีคิด แนวทางแก้ปัญหา หรืออะไรก็ตามช่างมันเถอะ เอาเป็นเข้าใจง่าย ๆ นะครับ มันคือการที่เราได้รับโจทย์มาให้เขียนโปรแกรม แล้วเราสามารถคิดขั้นตอนในการแก้ปัญหาออกมาเป็นแนวทางแก้ปัญหาได้ เช่น ให้หาค่าเฉลี่ย เราต้องทำอะไรบ้าง ใช่แล้วครับ บวกค่าทั้งหมดเข้าด้วยกัน นับว่าโจทย์ให้มากี่ค่า แล้วเอาสองตัวมาหารกัน แม่นบ่…
“ตรรกะ” เน้นเลยนะครับ ตรงนี้สำคัญมาก โดยเฉพาะน้อง ๆ ที่ยังเรียนอยู่ หรือ junior programmer ก็ตามแต่ เราสามารถที่จะแก้โจทย์หนึ่ง ๆ โดยวาดภาพขั้นตอนการทำงานในอากาศได้หรือยัง? ถ้ายัง “ฝึก” ซะ! ..จุดเริ่มต้นตรงนี้ ไม่มีใครเก่งกว่าใครหรอก มันอยู่ที่การฝึกฝน บางคนอาจจะทำได้เร็วหน่อย ไม่เป็นไร ช่างหัวเขา ลองเทียบกับกีฬาดู ของพวกนี้มันสำคัญที่เราอยู่กับมันมากแค่ใหน งานเขียนโปรแกรมก็เหมือนกัน บางคนอาจจะมีพรสวรรค์ ก็ไม่ว่ากัน แต่ถ้า “มวยค่ายไม่ซ้อม ก็มีสิทธิ์แพ้มวยวัดได้เหมือนกัน” เห็นด้วยหรือเปล่า
เดี๋ยวจะหาว่าผม “พล่าม“… มาดูกันดีกว่าว่างานอะไรบ้างที่เราต้อง “วาดภาพในอากาศ” ให้ได้

* Sequence(ลำดับขั้น) : ขอให้แยกแยะขั้นตอนการแก้ปัญหา ออกมาเป็นลำดับ เช่น จะรดน้ำต้นไม้ต้องทำขั้นตอนใหนบ้าง >> เอาถังไปรอ -> เปิดน้ำ -> รอให้น้ำเต็มถัง -> ปิดน้ำ –> หิ้วไปรดต้นไม้ อะไรประมาณนี้ มันมีอยู่ในชีวิตประจำวันอยู่แล้ว เพียงแต่นึกในทางการเขียนโปรแกรมมันต้องเป็นขั้นเป็นตอนนะครับ(คอมพิวเตอร์มันไม่ได้มีวิจาณญาณเหมือนคนเรานะ อย่าลืม!)
* Decision(ตัดสินใจ) : มันคือ IF-THEN-ELSE น่ะแหละ ตัวอย่างเดิม จะรดน้ำต้นไม้ แต่ต้นไม้เยอะเหลือเกิน ต้องเลือกถังน้ำ ถังใหญ่ หรือเล็ก >> เลือกถึงน้ำขนาดใหญ่ “มีหรือไม่” >> มี : ก็กลับไปทำตาม Sequence ข้างบน / ไม่มี : ใช้ถึงเล็ก ทำซ้ำด้วย Repetition ข้อถัดไป
* Repetition/Loop(การทำซ้ำ) : ตัวอย่างต่อเนื่อง กรณีที่ไม่มีถังใบใหญ่ ก็ใช้การ Sequence ข้างบนซ้ำ ๆ จนกว่าจะรดน้ำต้นนไม่ครบทุกต้น

เพียงแค่ 3 อย่างข้างต้น ฝึกซ้ำ ๆ ทำบ่อย ๆ “ตรรกะ” ในหัวเราก็จะดีขึ้นจนสามารถเขียนโปรแกรมได้ “Logic สำคัญกว่า Syntax” จำไว้เลยนะครับ ของเพียงเรามีตรรกะในหัว เราจะสามารถเขียนโปรแกรมได้ทุกภาษา(ใช้เวลาศึกษา Syntax สักหน่อยก็เขียนได้แล้ว)
สำหรับเครื่องมือที่จะฝึกฝน Logic ในการเขียนโปรแกรม ก็ใช้พวก Flow-Chart หรือ Pseudocode อะไรพวกนี้ก็ได้ครับ สำคัญที่จะหาโจทย์มาจากใหนในการฝึก? …search ใน google ด้วยคำนี้ครับ “ข้อสอบ CT211” หรือ “ข้อสอบ CS111” ก็ได้ครับ โจทย์ที่นี่เขาแรง ขอบอก!
ตัวอย่างโจทย์ : จงเขียน flow diagram สำหรับคำนวณหาจำนวนปีที่ใช้เมื่อฝากเงินต้นจำนวนหนึ่งแล้วต้องการให้เงินต้น ที่ฝากนั้นมีค่ามากกว่าหรือเท่ากับ 2 เท่า คิดดอกเบี้ยทบต้นในแต่ละปี โดยรับ input 2 ค่า คือ เงินต้น และอัตราดอกเบี้ย
ลองฝึกเขียนดูนะครับ เมื่อเรามีตรรกะ ก็ไม่ต้องกังวลว่าจะเขียนภาษาอะไรแล้ว และที่สำคัญตัวผู้เขียนเองเขียนโปรแกรมภาษาอะไรก็ไม่เป็น เก่งสุด Pascal แต่ได้งานทำเพราะ “ตรรกะ/Logic” อย่างเดียวเท่านั้นเอง
———————————————————————————————————————
ขอขอบคุณข้อมูลดี ๆ จาก
วัชรากร @Dev24x7.com
ในนามของ นักเขียนโปรแกรม .Net

http://dev24x7.com/%E0%B8%81%E0%B9%89%E0%B8%B2%E0%B8%A7%E0%B9%81%E0%B8%A3%E0%B8%81%E0%B8%AA%E0%B8%B9%E0%B9%88%E0%B8%81%E0%B8%B2%E0%B8%A3%E0%B9%80%E0%B8%9B%E0%B9%87%E0%B8%99%E0%B8%99%E0%B8%B1%E0%B8%81%E0%B9%80%E0%B8%82%E0%B8%B5%E0%B8%A2%E0%B8%99%E0%B9%82%E0%B8%9B%E0%B8%A3%E0%B9%81%E0%B8%81%E0%B8%A3%E0%B8%A11st-step-of-a-programmer/

ด้วยความคิดถึง

ไม่ได้อัพเดทเว็บบล็อคมานานครับ เพราะอยู่ในช่วงเวลาในการปรับตัวให้กับสถานที่ทำงานใหม่ ๆ บรรยากาศใหม่ ๆ และเพื่อนร่วมงานใหม่ ๆ (ที่แทบจะไม่ได้เจอใครเลย อิอิ) เดือนกว่า ๆ แล้วสำหรับการเป็นคนใต้ ได้มาอยู่โรงเรียนวิเชียรมาตุ รู้สึกว่ามีอะไรใหม่ ๆ ให้ได้เรียนรู้อีกเยอะครับ

ตอนนี้ไม่มีภาพของโรงเรียนให้ชม แต่จะพยายามหามาให้ชมในอนาคตอันใกล้ครับ