วิธีเรียนรู้ Technology ใหม่ๆ

คำเตือน: บทความนี้มีรูปเดียว ถ้าใครรีบ อ่านย่อหน้าแรกก็พอ

ผมเคยใช้วิธีผิดๆ ในการเรียนรู้ Technology ใหม่ๆ มันทำให้เสียเวลาและไม่เกิดประโยชน์ ผมจึงอยากจะมาเล่าวิธีเรียนรู้ของผมให้ทุกคนได้อ่านกัน ซึ่งหัวใจสำคัญมีแค่ 2 อย่าง คือ เริ่มลงมือทำจากศูนย์ และ กลับไปเรียนพื้นฐานให้แน่น มาดูกันว่าแต่ละอย่างต้องทำอย่างไร

ย้อนกลับไปเมื่อตอนที่เริ่มต้นเรียน Spring Framework, Node.js, ReactJS และ Ruby on Rails ผมเจอเหตุการณ์เหมือนกัน คือ ผมมักใช้วิธีการผิดๆ ในการเรียนรู้สิ่งใหม่ๆ

วิธีการที่ผิดนั้นคืออะไร?

เมื่อผมจะเรียน Programming Language ใหม่ๆ หรือ Framework ใหม่ๆ ผมเลือกที่จะอ่านและดู ไม่ว่าจะเป็นบทความ หนังสือ วิดีโอ โดยไม่ลงมือทำตาม เพราะผมคิดว่ามันเร็วกว่านั่นเอง

เมื่อถึงเวลาที่จะนำ Technology เหล่านั้นมา implement กับงานจริงๆ ผมก็เลือกที่จะใช้ Boilerplate หรือ Template หรือ “โครง” ที่คนอื่นทำเตรียมเองไว้ก่อน เพื่อให้มันง่ายขึ้น สะดวกขึ้น เร็วขึ้น

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

เมื่อเพื่อนขอให้เราช่วยสอน

ย้อนกลับไปในตอนที่ยังเรียนมหาวิทยาลัย ช่วงนั้นผมบ้าเขียน Ruby on Rails มาก เพื่อนๆ เห็นความเทพของ Ruby on Rails จึงอยากใช้ทำ Project บ้างเลยมาขอให้ผมช่วยสอน

เนื่องภาษา Ruby เป็นภาษาที่โคตรเทพ อยากทำอะไรก็ทำได้ดั่งใจ งานยากๆ แค่ใส่คำสั่งไป 1 บรรทัด งานก็เสร็จได้โดยง่าย เหมือนร่ายเวทย์มนตร์

วิธีที่ผมใช้สอนเพื่อนก็คือ ผมจะถามเพื่อนว่า “อยากจะทำอะไร?” เพื่อนบอกว่า “อยากให้ user อัพรูป profile ได้” ผมก็บอกว่า “ไปใส่ gem paperclip ใส่คำสั่ง 1 บรรทัดใน model และใส่ field ใน form แค่นี้ก็เสร็จ” และก็เป็นอย่างนี้ไปแทบทุก feature

ผ่านไปสักพัก ผลปรากฎว่า เพื่อนแทบไม่มีความเข้าใจใดๆ เกี่ยวกับภาษา Ruby เลย และก็แทบจะไม่เข้าใจตัว Rails Framework ด้วย แต่งานดันเสร็จ! แล้วก็จบกันไป

เมื่อผมตระหนักขึ้นได้!

ย้อนกลับไปในตอนที่ผมกลับมาปัดฝุ่น ReactJS ผมหลงใช้วิธีผิดๆ แล้วก็สำนึกตัวเองขึ้นมาได้ว่า “เห้ย เรานั่งอ่าน เราดูวิดีโอ เราใช้ boilerplate แต่ไม่เห็นจะเข้าใจอะไรสักอย่าง” ผมจึงลบทุกอย่างทิ้ง กลับไปนั่งเริ่มต้นใหม่กับ terminal สีดำๆ แล้วก็เริ่มพิมพ์คำสั่ง

mkdir newreact
cd newreact
npm init -y
npm install --save-dev webpack
npm install --save react

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

นี่คือความมหัศจรรย์ของหัวใจข้อแรก นั่นก็คือ “เริ่มลงมือทำจากศูนย์”

เหมือนในช่วง Fireside Chat ของงาน ReactJS Bangkok 1.0.0 Speaker ทุกท่านต่างบอกเป็นเสียงเดียวกันว่า “เริ่มลงมือทำจากศูนย์” ลองดูครับ ลองเริ่มทุกอย่างขึ้นมาด้วยมือเราเอง แล้วคุณจะเข้าใจ

หัวใจข้อที่สอง “กลับไปเรียนพื้นฐานให้แน่น”

บางครั้งผมก็รู้สึกว่า เรามาอยู่กับ Cutting-Edge Technology มากเกินไป ไม่ว่าจะ Framework ใหม่ล่าสุด Library ใหม่ล่าสุด อะไรที่เจ๋ง อะไรที่แจ๋ว เล่นไปซะทุกอย่าง รู้ไปซะทุกอย่าง

แล้วก็ต้องย้อนกลับมามองตัวเองว่า วันนี้มองลงไปข้างล่าง มองลงไปที่ Fundamental เรามีสิ่งเหล่านี้แน่นพอหรือยัง? เราเข้าใจการทำงานระดับ Low-level ของมันจริงๆ หรือยัง?

เหมือนตอนที่ผมสอนเพื่อนเขียน Ruby on Rails ผมบอกแต่สิ่งที่เป็น High-level ไม่เคยบอกสิ่งที่เป็น Low-level เพราะคิดว่ามันไม่สำคัญ มันไม่จำเป็น ผลลัพธ์ที่ออกมามันเลยเป็นอย่างที่ผมเล่าไป มันทำให้ผมรู้สึกผิดมาจนถึงทุกวันนี้

ทุกวันนี้เมื่อผมมีเวลาว่าง เมื่อมีโอกาส ไม่ว่าจะระหว่างทานข้าว เดินทาง หรือแม้แต่นั่งรอคิว ผมจะหยิบโทรศัพท์มาอ่าน e-book กลับไปอ่านหนังสือพวก Operating System, Network, Database หรือแม้แต่สอนเขียน JavaScript, เขียน Java, Software Testing, Design Pattern, สอนใช้ Unix เป็นต้น อ่านวันละนิด วันละหน่อย 5 หน้า 10 หน้า มีเวลามากก็อ่านมาก

ผมเชื่อว่า Fundamental เป็นสิ่งที่ไม่เคยเปลี่ยน เมื่อรากฐานเรามั่นคง เราอยากจะให้ยอดเป็นอะไรก็เป็นได้ มันจะไม่หัก ไม่โค่น ไม่ถล่ม แน่นอน

ส่งท้าย

ผมขอสัญญากับตัวเองว่า เมื่อต้องเรียนรู้อะไรใหม่ จะต้องเริ่มทำจากศูนย์ และหมั่นกลับไปเรียนรู้ Fundamental ให้แน่นอยู่ตลอดเวลา ผมเชื่อว่าทุกคนสามารถทำได้เช่นเดียวกัน ทดลองด้วยตัวเองดูครับ ว่าสิ่งที่ผมบอกมันจริงหรือไม่

Show your support

Clapping shows how much you appreciated Tanapol Nearunchorn’s story.