เส้นทางการคว้า Spring Professional Certificate

Javaverse
Javaverse
Nov 1 · 4 min read
Photo by Ian Schneider on Unsplash

“อยากได้ ใบ Cert Spring ว่ะ”


ประโยคนี้ลอยไปลอยมาอยู่ในหัวผมมากว่า 8 เดือน

มาวันนึงผมได้ลอง Google ดูว่าถ้าจะสอบ ต้องทำยังไงบ้างจนไปเจอข้อมูลใน

ในนั้นมี Cert ต่างๆมากมาย ให้เราได้เลือกสอบ

มี Java, .Net ด้วย !

แต่ถ้าจะสอบ Cert Java มันต้อง ของ Oracle สิ ส่วน .Net ก็ต้องของ Microsoft

และแน่นอน ถ้าจะสอบ Cert Spring มันก็ต้องของ Pivotal !

ผมกวาดสายตามองหา Spring Professional จนไปเจอว่ามันอยู่มุมขวาล่าง ผมกดเข้าไปด้วยความอยากรู้อยากเห็นเพื่ออ่านรายละเอียด

ซึ่ง Exam Registration Process นั้นมีอยู่ 2 ข้อ คือ

  1. Complete the Core Spring course (ต้องจบ Core Spring Course นี้ก่อน)
  2. 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 แบบคือ

  1. ไปสอบในสถานที่ๆเค้าจัดให้ (ต้องเดินทางไปสอบ ที่ต่างประเทศ)
  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 อย่างคือ

  1. ไล่หาอ่าน Notes ของพวกฝรั่ง ที่เค้าทำไว้แล้ว (น่าจะสบาย อ่านวันเดียวสอบเลย แต่อย่าลืมว่า แต่ละคนอ่านและสรุปออกมาไม่เหมือนกัน และ Notes ไม่ใช่ เฉลย)
  2. ไล่อ่าน 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

เค้าจะบอกให้เรา ทำตาม คือ

  1. ขอดู บัตรประชาชน
  2. Share Desktop
  3. Share Front Camera
  4. Share Microphone
  5. ขอให้เรา หมุนกล้องไปรอบๆห้อง เพื่อดูว่ามีใครคนอื่นอยู่ไหม
  6. ขอให้เรา หันกล้องเพื่อขอดู โต๊ะ (และให้เคลียร์ของต่างๆออกหมด)
  7. ขอให้เรากดเปิด Task Manager ว่าเราแอบเปิด Program อะไรไว้ไหม
  8. ขอให้เราปิด Tab อื่นๆทั้งหมด
  9. ขอ 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 ทั่วๆไปครับ

Javaverse

Written by

Javaverse

A man who’s falling in love with Java language.

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade