แรงจูงใจของพนักงาน Software Tester
บทความนี้มีจุดประสงค์เพื่อพยายามส่งต่อประสบการณ์ที่ผมเตรียมสอบ Java-OCA ที่เป็นการสอบยากที่สุดในชีวิตครั้งนึง เพราะว่าตัวเองแก่แล้ว 40+ พ้นวัยที่จะอ่านตำราเรียน (เขาว่าแบบนั้น) และเป็นการสอบในเรื่องที่เราไม่ถนัด (ตอนเรียนวิศวะได้ programming D-) เลยเอาประสบการณ์มาแชร์กันครับ
เมื่อช่วงปลายปี 2561 บริษัทที่ทำงานได้จัดคอร์สอบรม Basic Java Programming ให้กับพนักงานที่สนใจ เนื่องจากผมทำงานในส่วนของ Tester และมีประสบการณ์เขียนโปรแกรมน้อยมาก เคยเขียนก็แต่ VB Macro กับ Script test tool เล็กๆน้อยๆซึ่งเป็นแบบ record & playback ไม่ต้องเอ่ยถึง OOP เลยแทบไม่รู้เรื่อง ยังไงก็ดีความรู้ Programming ก็มีประโยชน์กับงาน ผมจึงขอลงทะเบียนคอร์สนี้ร่วมกับน้องๆในแผนกที่เก่ง coding (กว่าผม) อีกสองคน หัวหน้าก็อนุมัติและส่งไปเทรน
ในการอบรม บริษัทตั้งเกณฑ์ไว้ว่าหลังเรียนจบ จะต้องสอบและต้องมีคะแนนขั้นต่ำ 60 คะแนนจึงจะผ่าน จากการอบรมครั้งนั้น ผมได้รับความรู้จากอาจารย์ที่เก่งและมีเทคนิกดีมากจนทำให้พนักงานส่วนใหญ่ใน class สอบผ่านการอบรม ยกเว้นแต่ผมที่นอกจากจะสอบตกแล้วยังได้คะแนนต่ำที่สุดในแผนกอีกด้วย (อาจต่ำสุดใน class แต่ไม่กล้าสำรวจ)
ในขณะนั้น ประกอบกับวัย 40+ ของผม กระแสความคิดจของคนส่วนใหญ่ก็ชี้ว่าเราควรไปทำด้านบริหารจัดการจะดีกว่า แล้วปล่อยให้งาน coding เป็นงานของน้องๆไป เพราะถ้าบริหารจัดการ โปรแกรมที่ผมจะต้องเชี่ยวชาญก็ไม่ลำบากนัก อาจมีแค่ Excel, Powerpoint, Word สำหรับทำรายงานก็เท่านั้น และที่สำคัญรายได้กับหน้าที่ที่เรารับผิดชอบอยู่ ก็ไม่ได้ขึ้นกับการ coding เองเลย จะไปเหนื่อยเรียนรู้ Programming ไปทำไม
แต่พอมองในมุมกลับ ในแผนกเรา หรือแม้แต่บริษัทเอง แทบไม่มีใครมี certificate ด้าน Java programming เลย ทั้งที่แอพพลิเคชั่นส่วนใหญ่ที่บริษัททำอยู่ล้วนมาจากภาษา Java เกือบ 100% และ Opensource Tool ที่บริษัทหามาใช้งานส่วนใหญ่ก็ใช้ Java อีก จึงคิดว่าการมีความรู้ในด้านนี้ จะช่วยพัฒนาตัวเอง และช่วยทีมได้ (ทีมที่น้องอบรมผ่านแต่ตัวเองสอบตก) จึงเริ่มมาสนใจ Java และใช้เวลาราว 6 เดือนหลังจากนั้นเตรียมสอบ cer นี้
เตรียมสอบหลังสอบตก
ปกติในการทำงานด้าน IT เวลาเจองานอะไรใหม่ๆ ผมมักจะข้ามเนื้อหาทฤษฎี และไปทำ how-to หรือทำแบบฝึกหัดทันทีแล้วใช้พี่กรูเกิ้ลค้นหาเฉพาะเรื่องที่ไม่รู้ เพราะเน้นให้งานเสร็จทันเวลา การรื้อฟื้นเตรียมสอบ ผมก็ใช้วิธีการเดียวกันแต่การเตรียมสอบ OCA โดยใช้แนวทางนี้ ผมมาพบภายหลังว่าใช้ไม่ได้เลย วิธี Shortcut แบบนี้จะใช้ได้ก็ต่อเมื่อคุณเป็นโปรแกรมเมอร์มืออาชีพหรือเคยถ่องแท้กับภาษา Java มาก่อน ซึ่งไม่ใช่ผม > <
หนังสือที่ผมใช้เตรียมสอบชื่อ OCA:Oracle Certified Associate Java SE 8 Programmer ของ ฺBoyarsky เล่มนี้ผมซื้อเป็น kindle edition จาก Amazon หนังสืออธิบายละเอียดมาก และแบบฝึกหัดก็ยากเอาการ ซึ่งเป็นสิ่งจำเป็นเพราะข้อสอบ OCA นั้นมักไม่ถามตรงๆและจะซ่อนประเด็นไว้เสมอ ส่วนข้อสอบ OCA simulation ที่มีการทำคล้ายระบบการสอบของ Pearson Vue ผมหาจากเวป Udemy ซึ่งทำ Clip สอน online และจะมี favorite rating ของผู้สอนให้เราเลือก ข้อสอบออนไลน์นี้ผู้แต่ง Udayan Khattry ทำระบบไว้ดีและเฉลยไว้ละเอียดมากๆ
พอมีหนังสือ ก็ฟิตจัด ผมอ่านหนังสือของ Boyarsky ทุกหน้าไป 1 จบ เป็นการอ่านผ่านๆ จะเน้นอ่านตัวอย่าง และทำแบบฝึกหัดทุกข้อ ข้อดีของวิธีนี้คือ ได้คุ้นแนวข้อสอบ แต่ข้อเสียคือถ้าข้อสอบพลิกแพลง ผมจะทำไม่ได้เลย เพราะไม่ได้เข้าใจเนื้อหาจริงๆท่องแต่ข้อสอบ ผมลองหาแนวข้อสอบ OCA มาทำจับเวลาคล้ายสอบจริง ผลคือตกทุกชุด (score < 65%) ท้ายสุดจึงต้องเปลี่ยนวิธี
หลังจากรู้ตัวว่าเตรียมตัวแบบเดิมไม่มีทางสอบได้แน่ ผมจึงเปลี่ยนมาใช้วิธีท่องเฉลยของข้อสอบ จำ solutions อ่านหลายรอบจนเข้าใจและนำ code snippet ที่อยู่ในแบบฝึกหัด มาหัดเขียน debug บน Java IDE (run on eclipse) อาศัยว่าผมเป็น tester เลยลอง debug โปรแกรมทั้งแบบ positive และ negative cases วิธีนี้ได้ผลกว่าวิธีแรกครับ เหมาะกับคนพื้นฐานอ่อนอย่างผม และหากพูดจริงๆ Programming เป็นวิชาที่จะเข้าใจถ้าเราเขียน code บ่อยๆ
เนื้อหาเตรียมตัวสอบ OCA
OCA มีเนื้อหาที่ออกสอบแบ่งออกเป็น 6 บทหลักๆ ซึ่งขอ Blogs ต่อไปผมจะนำแต่ละเรื่องมาอธิบายพร้อมกับแนวข้อสอบ และตัวอย่าง code นะครับ
Chapter 1: Java Building Blocks
- อธิบายเรื่อง members ซึ่งแบ่งเป็น fields กับ methods
- data primitive types
- packages
- constructors
- ตัวแปร ทั้งประเภท instance, class, local variables
Chapter 2: Operators and Statements
- control structures ทั้ง decision control และ repetition control
- operator
- nested loop
- break and continue statement
Chapter 3: Core Java APIs
- immutable and mutable
- String and StringBuilder
- arrays and ArrayList
- Date and Time
Chapter 4: Methods and Encapsulation
- access modifier
- pass by value, pass by reference
- lambda expression
Chapter 5: Class design
- overloaded and overridden
- interface and abstract class
- polymorphism
Chapter 6: Exceptions
- check and uncheck exceptions
- try catch statement
ขอบคุณครับ ^ ^
"Failure is success if we learn from it" - Malcolm Forbes
อ้างอิง
1. Jeanne Boyarsky and Scott Selikoff - OCA:Oracle Certified Associate Java SE 8 Programmer (2015,Sybex)
2. www.udemy.com
3. www.amazon.com




ขอบคุณมากค่ะที่แชร์ปสก.และเทคนิคการอ่านเพื่อสอบ /|\
ReplyDelete