“อยากได้ ใบ Cert Spring ว่ะ”
ประโยคนี้ลอยไปลอยมาอยู่ในหัวผมมากว่า 8 เดือน
มาวันนึงผมได้ลอง Google ดูว่าถ้าจะสอบ ต้องทำยังไงบ้างจนไปเจอข้อมูลใน
ในนั้นมี Cert ต่างๆมากมาย ให้เราได้เลือกสอบ
มี Java, .Net ด้วย !
แต่ถ้าจะสอบ Cert Java มันต้อง ของ Oracle สิ ส่วน .Net ก็ต้องของ Microsoft
และแน่นอน ถ้าจะสอบ Cert Spring มันก็ต้องของ Pivotal !
ผมกวาดสายตามองหา Spring Professional จนไปเจอว่ามันอยู่มุมขวาล่าง ผมกดเข้าไปด้วยความอยากรู้อยากเห็นเพื่ออ่านรายละเอียด
ซึ่ง Exam Registration Process นั้นมีอยู่ 2 ข้อ คือ
- Complete the Core Spring course (ต้องจบ Core Spring Course นี้ก่อน)
- Take the proctored Spring Professional Certification exam (สอบ)
โดยราคา ค่าสอบจะอยู่ที่ 225 USD (ประมาณ 6,7xx บาท) แต่สามารถหาส่วนลดได้
ระยะเวลาในการสอบอยู่ที่ 90 นาที
Cert ตัวนี้เป็นตัวที่ Update เนื้อหา (Spring Version 5.x, After May 2019)
ส่วนหัวข้อในการสอบ ตามที่แจ้งไว้ มีดังนี้
Container 20%
AOP 8%
JDBC 4%
Transaction 8%
MVC 8%
Security 6%
REST 6%
Spring Data JPA 4%
Testing 4%
Boot Into 8%
Boot Auto Config 8%
Boot Actuator 8%
Boot Testing 8%เอาว่ะ ซื้อตั๋วสอบเลยละกัน
ผมบอกกับตัวเองไม่กี่วัน ก่อนที่ผมจะกดชำระเงินจริงๆ
การสอบจะมีให้เลือก 2 แบบคือ
- ไปสอบในสถานที่ๆเค้าจัดให้ (ต้องเดินทางไปสอบ ที่ต่างประเทศ)
- สอบ Online (หวานหมูดิ เปิด Tab, 2จอ, ถามเพื่อนได้ , ฝันไปอะสิ …)
ผมเลือก ข้อ 2 สิครับ HaHa
ผมจองเวลา สอบเอาไว้วันที่ 11–11–2019 ตอนตี 1
ซึ่งตอนหลังผมร้อนวิชา เลยเลื่อนมาสอบไวขึ้น เป็นวันที่ 01–11–2019
Process การจองและสอบทั้งหมด ทำผ่าน ExamsLocal.com
5 วันก่อนสอบ
ผมบอกกับตัวเองว่า ผมจะเอาให้ได้ และเพื่อเพิ่มความหนักแน่น ผม Post Facebook Status ว่าผมกำลังวางแผนและเตรียมตัวจะสอบ Spring Professional Cert
4 วันก่อนสอบ
ผมลองค้นหาข้อมูลว่า คนอื่นๆที่สอบเค้าเตรียมตัวยังไงบ้าง ผมพบว่า คนส่วนมากจะทำ Notes ไล่หาคำตอบ ตามตัวอย่างคำถามที่ทาง Pivotal บอกเอาไว้ใน PDF นี้
https://d1fto35gcfffzn.cloudfront.net/academy/Spring-Professional-Certification-Study-Guide.pdf
ปล. ตอนแรกผมเข้าใจว่า เค้าจะใช้คำถามเหล่านี้เลยในการสอบ (ซึ่งจริงๆไม่มีเลย)
ตอนนั้นผมคิดในใจ 2 อย่างคือ
- ไล่หาอ่าน Notes ของพวกฝรั่ง ที่เค้าทำไว้แล้ว (น่าจะสบาย อ่านวันเดียวสอบเลย แต่อย่าลืมว่า แต่ละคนอ่านและสรุปออกมาไม่เหมือนกัน และ Notes ไม่ใช่ เฉลย)
- ไล่อ่าน Spring current official docs เอาเอง (ท่ายาก น่าจะเหนื่อย แต่คงมันส์)
ผมเลือก ข้อ 2 ครับ เพื่อความสุดจริง และความมันส์
สิ่งที่ผมอ่าน มีดังนี้
Spring Core, Testing, Data Access, Web Servlet, AOP, JDBC
Tips- ApplicationContext (Important)
- Lifecycle ต่างๆ(ต้องเข้าใจ และท่องจำลำดับ)
- AOP (ทำความเข้าใจ)
Pointcut (Before, (3)After, Around)
Advice
Joinpoint
- Transaction Manager (JPA, JTA)
- JDBC Template (RowMapper & ResultsetExtractor)
Spring Boot (Intro, Auto Config, Actuator Features, Testing)
Tips- How Spring Boot Auto Config works ?
- How @SpringBootTest works ?
- What is "Fat jar" in Spring boot 2.x
- @Transactional (ไล่อ่าน attributes ของมันด้วยมีออกสอบ)
- @Bean @Autowired and so on.
- @WebMvcTest & @DataJpaTest
- lib spring-starter-xxx import แล้วได้อะไรมาบ้าง
- Metric (Deepppppp Question !)
Spring Boot Actuator API
Tips - ส่วนมากถามถึง /health, /loggers
- การ config ค่าผ่าน http (ท่องจำ http method get,post,delete)
- การ implement Indicator (ท่องจำชื่อ Interface, methods)
Spring Security
Tipsหัวข้อนี้ถามลึกมาก ถ้าไม่อ่าน และไม่เคยทำจริงๆจะไม่มีทางรู้เลย เช่น
- antMatchers & mvcMatchers
- @RolesAllowed & @PreAuthorize & @Secured
- Filter Chain
3 วันก่อนสอบ
ผมอ่านทบทวนซำ้ๆ แล้วก็เริ่ม สรุปออกมาเป็น Notes ของตัวเอง
(ทำใน Google doc ง่ายๆ)
2 วันก่อนสอบ
ตรงนี้คือ Trick ส่วนตัวของผมเลยนะ คือผมไล่กดดู Code ใน libs ของ Spring
ปล. ผมใช้ IntelliJ IDEA นะ
เช่น @SpringBootApplication
พอกดเข้าไป มันมี Meta-Annotaion อะไรบ้าง ตัวมันเองทำอะไร (มันจะมี Comments บอกเอาไว้) ผมก็ไล่อ่าน และเขียน Notes ของตัวเอง
แล้วก็กดเข้าไปดู Meta-Annotaion แต่ละตัว ว่ามีอะไรบ้าง และทำหน้าที่อะไร ไล่ดูทีละตัวๆ
อย่าลืมดูด้วยนะ ว่า มันอยู่ Package ไหน ?!
เช่น @Controller, @Component, @Repository, @Service
พวกนี้ อยู่ Package เดียวกัน คือ
org.springframework.stereotypeTipsทำความเข้าใจว่า
- อะไรคือ stereotype
- อะไรคือ meta-annotaion
- อะไรคือ annotaion ทั่วๆไป
อ้าวแล้ว @RestController กับ @Configuration ล่ะ ?
org.springframework.web.bind.annotation.RestController
org.springframework.context.annotation.Configurationเห็นไหมครับว่ามันอยู่คนละ Package กันเลย
เอ้อเวลา Google ดู references ต่างๆ ให้เลือกดู ที่เป็น
Spring version 5.2+ และ Spring boot version 2.2+ หรือเลือก Current ด้วยนะ
1 วันก่อนสอบ
ผมทบทวน ทั้งหมด ไล่อ่าน Notes ของตัวเอง ปรับปรุง แก้ไข และเพิ่มเติม Notes
วันสอบ
แล้ววันสอบก็มาถึง…
ผมตื่นเต้นมากๆ กังวล กดดัน บอกไม่ถูก
ทบทวน Notes รัวๆยาวๆ
รวมๆแล้วผมเตรียมตัว ไม่เกิน 6–7 วันครับ ไม่ได้ว่าเก่งหรือประมาทอะไรนะครับ
แต่ผมหลงรักภาษา Java หลงรัก Spring, Spring Boot, Spring Cloud มานานแล้ว
ผมทำงานกับ Tech เหล่านี้มาโดยตลอด (12 ปีกว่า) ทำให้ผมใช้เวลาไม่มากนักในการเตรียมตัว
จะเล่าถึงตอนก่อนสอบให้ฟัง
เราจะต้อง Installs Chrome Plugins ที่ทาง ExamsLocal.com กำหนดไว้
จากนั้นให้เรารอเวลา เพื่อกดเข้า Link สอบ (จะกดได้ก่อนเวลา 15 นาที)
พอกดเข้าไป จะมีคนคุมสอบ โผล่มาในช่อง Live Chat
เค้าจะบอกให้เรา ทำตาม คือ
- ขอดู บัตรประชาชน
- Share Desktop
- Share Front Camera
- Share Microphone
- ขอให้เรา หมุนกล้องไปรอบๆห้อง เพื่อดูว่ามีใครคนอื่นอยู่ไหม
- ขอให้เรา หันกล้องเพื่อขอดู โต๊ะ (และให้เคลียร์ของต่างๆออกหมด)
- ขอให้เรากดเปิด Task Manager ว่าเราแอบเปิด Program อะไรไว้ไหม
- ขอให้เราปิด Tab อื่นๆทั้งหมด
- ขอ Check ว่าเรา มี Second Desktop อื่นๆไหม
จากนั้นเค้าจะบอก กฏกติกา คร่าวๆว่า
ห้ามโกงใดๆทั้งสิ้น ห้ามพูด ห้ามกระซิบ ห้ามลุกไปไหน ห้ามมองไปที่อื่น ห้ามหลบหายไปจากจอ
เอ่อ…. ครับ… ทำตาม จนข้อมูลในหัวจะหลุดออกไปหมดแล้ว HaHa ให้สอบสักที
การสอบ เริ่มขึ้น
ข้อสอบจะเป็นแบบ มี ตัวเลือกมา 4–6 ข้อในแต่ละคำถามนะ
โดยจะถามประมาณว่า
ข้อใดต่อไปนี้จริงหรือพูดถูกเกี่ยวกับ…
ข้อใดต่อไปนี้ไม่จริงหรือพูดผิดเกี่ยวกับ….
โดยจะมีวงเล็บบอกไว้ท้ายคำถามเสมอ ว่าเราต้อง เลือกคำตอบกี่ข้อ
(ส่วนมากจะ 3–4) เราต้องเลือกให้ถูกให้ครบทั้งหมด
ส่วนข้อที่ให้เลือก 1 คำตอบ มักจะเป็น ข้อที่ต้องเรียงลำดับการทำงานเช่น
A. 1–2–3–4
B. 2-1-3-4
C. 4-2-3-1
D. 3-2-1-4ผมทำไปเรื่อยๆ จนถึงข้อที่ 50 ใช้เวลาไปราวๆ 3x นาที (จาก 90 นาทีที่เค้ามีให้)
ผมกดย้อนดูคำถามและคำตอบตัวเองอีกครั้ง (เพื่อ ดูว่ามีข้อไหน ลืมกดคำตอบ หรือกดไม่ครบตามจำนวนไหม)
จากนั้นผมก็ทำการ ส่งคำตอบ…
ทุกอย่างเร็วมาก กดปุ๊บ มันสรุปคะแนนออกมาเลย
(ต้องได้ ≥ 76% ถึงจะผ่าน หรือทำให้ถูก 38 ข้อขึ้นไป)
และมันก็จบลง

สำหรับใครที่อยากสอบก็ ข้อให้โชคดีครับ Good Luck
แถมให้ครับ อันนี้ Notes #2 ของผมเองครับ
แต่อย่าเชื่อมากนะครับ พยายามสรุป Notes ของตัวเองจะดีกว่า เพราะคำถามคำตอบ จะ random ไม่เหมือนกันตาม Standard ของข้อสอบ Cert ทั่วๆไปครับ
