พอดีว่าทางสำนักพิมพ์ Provision (หรือ dplusshop.com) ได้ส่งหนังสือสอนเขียนโปรแกรมด้วยภาษา Python มาให้เราลองอ่าน ดังนั้นวันนี้เราจะมารีวิวหนังสือเล่นนี้กันซักหน่อย
หลังจากอ่านแล้ว...
ในเล่มครอบคลุมเนื้อหาสำหรับการเขียนโปรแกรมภาษา Python แทบจะทั้งหมด (เฉพาะเนื้อหาพื้นฐานนะ ไม่รวมเนื้อหาในเรื่อง OOP และ Machine Learning)
สำหรับเนื้อหา ความรู้เบสิกได้แก่
- Variable (ตัวแปร)
- Expression (นิพจน์หรือสมการ)
- Operator (ตัวดำเนินการ เช่น + - * /)
- String หรือก็คือการทำงานกับข้อความ
- Data Structure ทั้งหลายเช่น List, Tuple, Set, Dictionary
- Program Flow Control การสร้างคำสั่งควบคุมทิศทางทำงานของโปรแกรม
- File I/O การจัดการ อ่าน-เขียน ไฟล์
- การจัดการข้อผิดพลาดของโปรแกรม (Exception)
- การสร้างและใช้งาน Function
นอกจากนี้ยังมีเนื้อหาที่ไม่ค่อยเจอในหนังสือสอน Python พื้นฐานเล่มอื่นๆคือ
- การเขียนโปรแกรมเพื่อทำงาน อ่าน-เขียน ข้อมูลจาก Database (ใช้ฐานข้อมูล MySQL/MariaDB ซึ่งถือว่าโอเคนะ! เพราะง่ายและคนใช้กันเยอะ)
- การใช้งาน Module และ Package (การแยกโปรแกรมออกเป็นส่วนๆ และเอามาประกอบกัน หรือการใช้ Module สำเร็จรูปของคนอื่น)
- การสร้างโปรแกรม GUI หรือ การเขียนโปรแกรมแบบ Graphic (ปกติเราจะเรียนเขียนโปรแกรมกันในโหมด command line)
สิ่งที่ชอบอีกอย่างคือ Tools ที่ใช้ในเล่มสอนอยู่ 2 ตัวคือ
- Anaconda: Jupiter Notebook - เป็น Tool สำหรับเขียน Python ที่มีคนใช้งานเยอะมาก (ปี 2018) และสามารถต่อยอดไปยังเรื่อง Machine Learning ได้ด้วย
- PyCharm - เป็น Tool แบบ IDE (โปรแกรมที่รวม Environment ทุกอย่างสำหรับเขียน Python) โดยบริษัท JetBrains ที่เป็นผู้สร้าง Android Studio จริงๆ โปรแกรมนี้ไม่ฟรีนะ แต่มีเวอร์ชั่น Education ให้ใช้ฟรีได้
สรุป
สิ่งที่ชอบ
เนื้อหาค่อนข้างครบและแน่น ใช้เป็นหนังสืออ้างอิงได้เลย (แต่ไม่ได้พูดถึงการคิด Algorithm ของโปรแกรมเท่าไหร่)
แถมมีการพูดถึงวิธีการเขียนโปรแกรมติดต่อกับ Database และสร้างโปรแกรมในโหมด Graphic ด้วย
เอาเป็นว่าเหมาะสำหรับนักเรียนและผู้สนใจที่กำลังศึกษา Python อยู่ หรือโปรแกรมเมอร์ที่เขียน Python เป็นอยู่แล้วแต่ต้องการหนังสือ reference ก็ซื้อมาเก็บไว้ให้อุ่นใจได้ นี่บอกเลยว่าตอนแรกเห็นเล่มนี้ในร้านหนังสือก็หยิบแล้วเดินไปที่จ่ายเงินเลย (แต่เพิ่งมานึกได้ว่าสำนักพิมพ์ใจดี บอกว่าจะส่งมาให้เล่มนึง เลยวางกลับไป ฮา)
สิ่งที่ไม่ค่อยชอบ
ไม่มีการพูดถึงวิธีสร้าง Class-Object (แต่ถ้ามองว่ามันไม่ใช่หนังสือสอน OOP ก็พอหยวนๆ ได้)
และตัวอย่างโค้ดในหนังสือทั้งหมดจะใช้วิธีแคปหน้าจอจากตัวโปรแกรมมาเลย ไม่ใช่พิมพ์และจัดหน้าหนังสือใหม่ ตัวหนังสือเลยอาจจะไม่ชัดเท่าการจัดหน้าพิมพ์ใหม่ (แต่อ่านรู้เรื่องนะ ไม่ใช่อ่านยาก) ซึ่งในข้อนี้อาจจะเป็นข้อดีก็ได้เพราะจะได้เห็นเลยว่าถ้าเราเอาไปพิมพ์โค้ดเองจะเห็นออกมาเป็นยังไง และอีกอย่างคือเคยเจอบางสำนักใช้วิธีเอาโค้ดมาจัดหน้าใหม่เอง แต่คนเรียงพิมพ์ดันเขียนโปรแกรมไม่เป็นก็จัดหน้าเพี้ยนอีก (โดยเฉพาะกับภาษา Python ที่การเว้นวรรคและแท็บมีผลต่อโค้ดมาก)
หากสนใจสามารถสั่งซื้อได้ที่ https://www.dplusshop.com/product/493/
แนะนำ Tool สำหรับเขียน
ทั้ง Jupiter Notebook
และ PyCharm
เนื้อหาส่วนเบสิก
Control Statement
สอนการติดตั้ง Database
สอนสร้างโปรแกรมในโหมด Graphic ด้วย