Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม

10 เคล็ดลับสำหรับความสำเร็จเมื่อคุณเรียนเขียนโค้ด

หากคุณสอนตัวเองเขียนโค้ด อาจมีคำถามมากกว่าคำตอบตอนเริ่มต้น

ควรเรียนอะไร? จะหาวิธีแก้ Bug ได้อย่างไร? และจะรักษาแรงจูงใจได้อย่างไรเมื่อมันดูเหมือนภารกิจที่เป็นไปไม่ได้?

หากคุณกังวลเกี่ยวกับโอกาสความสำเร็จในการเขียนโค้ด ผมหวังว่า 10 เคล็ดลับนี้จะให้กำลังใจและแรงจูงใจ!

1. มีเป้าหมายที่ชัดเจนในใจเมื่อเริ่มต้น

คำถามที่พบบ่อยที่สุดจากคนอยากเป็นโค้ดเดอร์คือ "ควรเรียนภาษาอะไร?"

เข้าใจได้ แต่นี่คือคำถามผิดที่ควรเริ่มต้น

คำถามแรกที่ควรถามคือ "เป้าหมายสุดท้ายของฉันในการเรียนเขียนโค้ดคืออะไร?"

เหมือนไปเที่ยว—ไม่มีใครไปเที่ยวโดยไม่มีที่หมายเฉพาะ และไม่มีใครเรียนโค้ดแค่เพื่อเรียนโค้ด ต้องมีเหตุผลเสมอ

คุณอยากเรียนเขียนโค้ดเพื่อ…. อะไร?

ลองนั่งคิดดูว่าเป้าหมายสุดท้ายคืออะไร เมื่อมีแล้ว คุณสามารถย้อนกลับมาวางแผนว่าต้องทำอะไรเพื่อบรรลุเป้าหมายนั้น!

ยังไม่แน่ใจเป้าหมายในการเรียนโค้ดคืออะไร? นี่คือเป้าหมายทั่วไป:

  • อยากได้งานที่บริษัทในเมืองเพื่อรายได้มั่นคง
  • อยากเริ่มธุรกิจทำเว็บไซต์ให้ธุรกิจขนาดเล็ก
  • อยากทำเงินจากการสร้าง Mobile Apps
  • อยากทำงานที่ Tech Startup

หากไม่อยากเสียเวลาและไม่อยากเดินทาง بلاهدف คุณต้องกำหนดเป้าหมาย #1 ของคุณในทั้งหมดนี้ให้ชัดเจน

2. เลือกแผนและมั่นคงอยู่กับมัน

สิ่งดีๆ ของการสอนตัวเองเขียนโค้ดออนไลน์ตอนนี้คือมี Tutorials และ Articles ให้เรียนเยอะมาก! เรียนรู้อะไรก็ได้แค่ค้นหาวิดีโอหรือบทความ

แต่ข้อเสียคือ เพราะแหล่งข้อมูลเยอะเกิน หาที่ดีที่สุดยาก จำนวนมากทำให้ overwhelming เข้าใจได้

คำแนะนำ? อย่ากังวลหา Tutorial ตัวเลข 1 ที่ดีที่สุดสำหรับการเรียน X, Y, หรือ Z

แค่เลือกหนึ่ง

แม้จะไม่ใช่ที่ดีที่สุดในโลก ก็น่าจะดีพอสมควร! สำคัญกว่าคือคุณเรียนจบ ไม่ใช่แน่ใจว่าคุณมี Tutorial ที่สุด

และ ตรงไปตรงมา—การใช้เวลาซื้อคอร์สออนไลน์และข้ามไปข้ามมา อาจเป็นเพียงการเลื่อนลุกและขาด Focus

แค่เลือกอย่างหนึ่ง และมั่นคงจนจบ (เว้นแต่จะแย่จริงๆ) คุณสามารถเรียน Tutorial อีกตัวได้ทีหลัง!

3. มันเป็นการวิ่งมาราธอน ไม่ใช่สปรินต์

มี Blog Posts และ Videos เยอะที่สัญญาว่าเรียน Programming ได้งานใน 3 หรือ 6 เดือน อาจเป็นไปได้ แต่มีเงื่อนไขเยอะ

ถ้าคุณไม่ต้องทำงาน Full-time มีเงิน (Coding Bootcamps ราคา $10,000+), และอัพทันได้... ใช่ อาจได้งาน Full-time Web Developer

ปัญหาของผมคือ Over-promotion ให้ภาพลักษณ์มากเกินไปว่าง่ายแค่ไหน คุณจะตื่นตัวตกตะลึงเมื่อรู้ว่ายากจริงๆ

ผมมีเพื่อนที่ผ่าน Bootcamp ได้งาน Programmer ในไม่กี่เดือน แต่จากคนที่ผมรู้หรือได้ยินที่ไม่ได้ Bootcamp เรียนเอง ใช้เวลานานกว่ามาก 1-2 ปี

อยากได้เรื่องราวจริงคนเรียนโค้ดเอง อ่านสัมภาษณ์กับ Owen (ลิงก์) เขาทำงาน Full-time และมีลูกเล็ก แต่สอนตัวเองโค้ดด้วยการตื่นก่อนแสงสว่างเกือบทุกวัน และเหนื่อยล้าทุกวัน 2 ปี

เขาได้งาน Full-time Web Developer แต่หลังจากทำงานหนักมากนาน

ผมไม่ได้勸阻 (discourage) คุณ แค่อยากให้ภาพจริงของการเรียนโค้ด ความเป็นไปได้แน่นอน! แต่คาดการณ์ว่าจะใช้ 1 ปีขึ้นไปถึงเป้าหมาย ไม่ใช่แค่ไม่กี่เดือน

4. ช้าแน่นอน ชนะการแข่งขัน

ตอนนี้คุณรู้ว่าเรียนโค้ดยาก แต่พยายามหลีกเลี่ยง Burnout ขณะเผาเทียนกลางคืนหรือตี 5

บางคนอยากเรียนทั้งหมดเร็วที่สุด เริ่มพยายามทำ 5 ชั่วโมงต่อวันหลังเลิกงาน

อาจเป็นไปได้บางคน แต่อาจมากเกินไปสำหรับคนอื่น มีความเสี่ยงจริงจะหมดแรงและเลิกเลิก แล้วการเลิกคือสิ่งที่คุณอยากหลีกเลี่ยงมากที่สุด!

เรียนโค้ดโดยไม่ Burnout และเลิก ยังไง?

มุ่งเป้าหมายความคืบหน้าที่ยั่งยืน เริ่มช้า 30 นาที หรือ 1 ชั่วโมงต่อวัน หรือ 1-2 ชั่วโมง สัปดาห์ละ 2-3 ครั้ง

ชัดเจน ยิ่งเวลามาก ยิ่งความคืบหน้ามาก แต่ถ้าเริ่มช้า คุณเพิ่มเวลาได้เรื่อยๆ

และเมื่อพัฒนานิสัยแล้ว จะง่ายขึ้นที่จะต่อยอดบนเส้นทางการเรียนรู้ โดยไม่ยอมแพ้และเลิก

5. อย่าเปรียบเทียบความคืบหน้าของคุณกับคนอื่น…

คำแนะนำนี้ยาก แต่เมื่อคุณก้าวหน้าสู่เป้าหมาย ลองอย่าเปรียบเทียบตัวเองกับคนอื่น

ข้อดีคือเห็นว่าคุณอยู่ที่ไหนเทียบกับคนอื่นทำอย่างเดียวกัน แต่ข้อเสียในยุค Social Media ความเปรียบเทียบมักทำให้ discouraged

กุญแจความสำเร็จคือ กระชับหัว และไม่กังวลความคืบหน้าของคนอื่น แค่กังวลของตัวเอง

คนอื่นอาจเรียนเร็วหรือช้ากว่าคุณ และไม่เป็นไร ทุกคนมีสถานการณ์ชีวิตและอัตราการเรียนรู้ต่างกัน

ยิ่งคิดน้อยเกี่ยวกับการเปรียบเทียบ ยิ่ง Focus บนเส้นทางของตัวเองได้มาก

… แต่ สร้างมิตรภาพกับเพื่อนร่วมทาง!

แม้ไม่ควรเปรียบเทียบตลอด ผมไม่ได้ว่าคุณควรปิดตัวจากโลกภายนอก

จริงๆ แล้ว หากเรียนโค้ดออนไลน์คนเดียว อาจเหงาได้เร็วมาก

หาคนอื่นทำอย่างเดียวกัน และเป็นเพื่อน สามารถเป็นแรงจูงใจสำคัญ

ทำไม?

อันหนึ่ง แค่รู้ว่ามีคนอื่น掙扎 (struggle) กับปัญหาเดียวกัน ก็สร้างกำลังใจมาก

และเพื่อนช่วยกันแก้ปัญหา มุมมองมากกว่าหนึ่งช่วยหา Solution ดีกว่า ขึ้นอยู่กับตัวเองคนเดียว

หากเรียนโค้ดในโรงเรียนจริง ลองเรียนร่วมกับนักเรียนคนอื่น หากเรียนออนไลน์ หา Coding Communities ไม่ว่าจะ Meetups, Facebook Groups Web Development, หรือ Social Media อย่าง Instagram

สร้างมิตรภาพและเครือข่าย จะช่วยคุณอยู่ในแรงจูงใจขณะไล่ตามเป้าหมาย และคุณช่วยให้เพื่อนๆ มีแรงจูงใจด้วย!

6. สร้างนิสัย ใส่โค้ดเข้าในตารางเวลาประจำวัน

หาเวลาเขียนโค้ดอาจยาก เพราะเราทุกคนมีชีวิตวุ่นวาย หน่ะ?

แต่หากคุณพัฒนานิสัยเขียนโค้ดทุกวัน หรือสัปดาห์ละหลายครั้ง คุณจะอยู่บนเส้นทางที่ถูกต้อง

การสร้างนิสัย (ดีหรือแย่) เหมือนเปิดทางในป่าเบญจลักษณ์ ครั้งแรกเดินทางยาก เพราะไม่มีทางชัด แต่ยิ่งเดินซ้ำ ยิ่งชัดเจน ตอนท้าย ทางจะราบเรียบและเดินง่าย

สร้างนิสัยแบบนั้น—ครั้งแรกๆ นั่งโค้ดอาจยากมาก แต่ถ้าคงที่ สมองจะเคยชินกับ Pattern สมองชอบ Routine ดังนั้นจะรู้สึกง่ายขึ้นที่จะเริ่มนิสัย

มีวิธีช่วยให้นิสัยค้างได้:

หลักสำคัญคือตั้ง "Trigger" ที่เกิดขึ้นก่อนนิสัยใหม่ ตัวอย่าง ใส่โค้ดใน Morning Routine โดยนั่งโค้ดทันทีหลังทำกาแฟ/ชาแก้วแรกของวัน

หรือเย็น เริ่มโค้ดทันทีหลังทำความสะอาดหลังอาหารเย็น

อะไรก็ตาม สิ่งสำคัญคือทำซ้ำไปเรื่อยๆ ตามเวลา

7. เรียนรู้วิธีค้นคว้าหัวข้อและแก้ปัญหา

การรู้วิธี Problem-solve เองเป็นทักษะสำคัญที่สุด (ถ้าไม่ใช่ THE 最重要) สำหรับ Web Developer

คุณอาจคิดว่า Web Devs มีประสบการณ์รู้คำตอบทุกอย่างทันที ไม่จริงเลย!

แน่นอน พวกเขารู้บางอย่าง عنใจ แต่มีอะไรมากที่ยังต้อง Google (หรือ DuckDuckGo) นี้จริงสำหรับผม และผมอยู่ในอุตสาหกรรม 7 ปีแล้ว!

ตอนนี้คุณรู้ความลับของ Web Devs แล้ว จะเก่งทักษะสำคัญนี้ยังไง?

Practice (ฝึกฝน)!

ติดขัด ก่อนขอความช่วยเหลือ ใช้เวลาค้นหาปัญหาที่เจอ หรือ Error Message ที่ได้

ผมมักค้น "XXX doesn't work" เพราะจะเจอ Stack Overflow Posts ของคนเจอปัญหาเดียวกัน

เคล็ดลับอีกอย่าง อ่าน Documentation ของ Tool หรือ Software ที่หาได้

และ แม้เจอ Solution แล้ว หากยังมีเวลา ทำ Research ในพื้นที่ทั่วไป ด้วยวิธีนี้ คุณทำให้ทุก Bug Fix ที่ขี้ขลาด กลายเป็นโอกาสยกระดับทักษะ

คิดว่าครั้งแรกที่ต้องค้นหาปัญหา อาจใช้ 3 ชั่วโมงหา Solution หากจำวิธีที่ไปถึงได้ ครั้งหน้าที่เจอปัญหาเดิม จะใช้เวลาน้อยมาก

เรียนรู้การแก้ไข Issues ที่เจอบ่อยที่สุด จะทำให้คุณเป็น Web Developer ที่เร็วและมีประสิทธิภาพมากขึ้น

8. อย่าดู Tutorials อย่างเดียว— สร้างของจริง!

หลุมที่ล่อลวงมากที่สุดตอนเรียนโค้ดคือ อ่าน Tutorials และดู Videos เยอะ แต่ไม่เคย Practice ทักษะจริงที่เรียน

คิดดู—ถ้าคุยกับคนบอกว่า Train วิ่ง แต่จริงๆ แทบไม่วิ่ง คุณคิดว่า All Talk ใช่ไหม? ใช่ ใช้เวลาเรียนเทคนิคและรองเท้าได้ แต่ที่สุด ยางรถต้องทุบถนน

Web Development เหมือนกัน ใช่ เรียนทักษะและ Tools/Software ช่วยทำให้ง่าย สำคัญมาก แต่ถ้าใช้เวลาทั้งหมด Passive ผ่าน Tutorials คุณไม่ได้เรียนรู้อะไรเลย

ผมเรียน Web Development On the job — ไม่มี Option Browse YouTube หา Coding Videos เลย ไม่มีเวลา! มี Deadlines ต้อง Figure Out ให้หน้าเว็บทำงานก่อนกำหนด

เป็น Trial by Fire และ стреส (stressful) แน่นอน แต่ย้อนดูแล้ว เป็นวิธีที่ดีที่สุดที่ผมเรียนได้ ในไม่กี่ปีทำ Web Developer ผมเรียน Practical Skills เยอะมาก และมาจากการสร้างของจริง!

คำแนะนำของผม:

Tutorials และ หนังสือ ดีเยี่ยม แต่อ่านจบ Section หรือ Chapter ให้ Pause เปิด Code Editor กลับไปซ้ำสิ่งที่เรียนรู้ ลอง Replicate Examples ที่ Material สอน

จะยากกว่าอ่านหรือฟังมาก แต่ผมรับรอง Practice จริงจะทำให้ Concepts ค้างในหัว

9. เปิดใจรับความล้มเหลว

ความล้มเหลวแย่ เราอยากทำดี ไม่อยากผิดพลาด

แตการหลีกเลี่ยงความล้มเหลวและข้อผิดพลาด คือวิธีรุนแรงที่จะก้าวหน้า เพราะแค่ผ่านการสcrew up เราจะเรียนรู้วิธีทำถูกต้อง

ตอนเริ่มต้น Junior Web Developer ผมกลัวทำผิดมาก หากติดอะไร ไม่ชอบขอช่วยจากบอส เพราะหมายถึง承認 (admit) ว่าล้มเหลวทำเองไม่ได้

หรือแย่กว่านั้น หากทำผิด โดยเฉพาะถ้าส่งผลต่อ Live Website นั่นคือผิดใหญ่สุด! เพราะผมทำผิดใหญ่จริงๆ

Reaction แรกของผมคือ ไม่อยากให้ใครรู้ว่าผมล้มเหลว

แต่ ผมรู้ดีกว่า ว่าวิธีเร็วที่สุด (และซื่อสัตย์ที่สุด) แก้สถานการณ์คือ รับฟังและคุยกับบอสขอช่วย

ชัดเจน ขึ้นอยู่กับ Work Environment แต่ในประสบการณ์ของผม ไม่เคยได้รับความรุกลึกลับแม้ทำผิดหรือ承認 ไม่รู้ทำอย่างไร

ความกลัวความล้มเหลว นำไปสู่การพยายาม "Safe" และหลีกเลี่ยงสถานการณ์ที่อาจผิดพลาด แต่จะทำให้คุณไม่โตเต็มที่เท่าที่ควร

แม้ยาก แค่ก้าวต่อไปและลองต่อ หากทำผิด ไม่เป็นไร! สำหรับโค้ด ไม่ค่อยมีโอกาสเป็น Life and Death ตรงตัว ผลที่เป็นไปได้มากคือ รู้สึกโง่หรือถูกวิพากษ์

นั่นคือ Ego ของคุณ วาง Ego ไว้ข้าง และยอมรับความล้มเหลว (คำแนะนำนี้ผมพยายามปฏิบัติเองด้วย— ไม่ง่าย!) หากเรายอมรับความล้มเหลวและข้อผิดพลาด เราจะดีขึ้นในระยะยาว!

10. เรียนรู้ตลอดไป

อย่าหยุดเรียนรู้

ตอนเริ่มต้น โลก Web Development ดู overwhelming มาก เพราะมีทักษะหลายร้อยที่ต้องเรียน

เมื่อเรียนและฝึกฝนไปพักหนึ่ง อาจรู้สึกสบายใจขึ้น แม้ดี เพราะคุณโตทักษะและมั่นใจมากขึ้น แต่อย่า Stagnant (ค้างคืด)!

อุตสาหกรรมนี้เปลี่ยนแปลงตลอดเวลา หากคุณไม่เปลี่ยนไปด้วยนานพอ คุณอาจ Obsolete (ล้าสมัย)

ตัวอย่าง ผมเก่ง Layout ด้วย CSS Float Property ได้ยิน Flexbox เพื่อนร่วมงานบอกดี แต่ผมลังเลเรียนเทคโนโลยีใหม่ หากจริงใจ เพราะขี้เกียจเรียนใหม่ถ้าไม่จำเป็น

สุดท้าย ผมเรียน Flexbox ไม่ใช้เวลานาน และทันทีที่เข้าใจ ผมตีตัวเองว่าทำไมไม่เรียนก่อนหน้านี้

ตอนนี้ ผมเข้าใจความสำคัญของ Stay Up-to-date กับ Technologies แม้เลื่อน Flexbox ไม่ได้ทำลาย Career แต่ถ้าผมไม่เรียน Flexbox เลย! ที่หนึ่งผมจะไม่ Marketable เป็น Web Developer

ตอนนี้ อย่ารู้สึกว่าต้องเรียนทุก Language, Tool, Skill ที่มีในโลก (เว้นแต่อยากจริง) สิ่งที่ทำได้คือ ลองเรียน Tools ใหม่ที่กลายเป็น Mainstream มากจนใช้กันทั่วไป

เช่น React.js และ Node.js ออกมาปีแล้ว ตอนนี้ครอบครองอุตสาหกรรม Stack นี้ดีที่ควรเรียนถ้ายังไม่เคย

จะรู้ว่าอะไรนิยมยังไง?

นี่คือวิธีผม Stay Up-to-date:

  • Syntax.fm Podcast โดย Wes Bos และ Scott Tolinski Fantastic—พูดเรื่องใหม่ใน Web Dev และหัวข้อเกี่ยวข้องอื่นๆ
  • CSS Tricks มี Articles และ Tutorials ใช้ CSS มาก สร้างโดย Chris Coyier ยังช่วยสร้าง Codepen.io สนามเด็กเล่น Web Dev
  • Stack Overflow Survey ปล่อย Survey สถานะ Web Development ทุกปี ดีสำหรับ Update เรื่อง Trend
  • Smashing Magazine พูดเรื่อง Web Development, UX/UI, Web Design หลากหลาย

Just Do It!

หวังว่าเคล็ดลับเหล่านี้ช่วยให้คุณ Less Anxious และ Excited มากขึ้นกับการเรียน Web Development!

เคล็ดลับสุดท้ายคือ Just Do It แม้ไม่รู้ว่าทำอะไร อย่าปลูกให้หยุดคุณ เริ่มที่ไหนก็ได้ และคุณจะค้นพบเพิ่มเติมขณะเดินทาง