จะเริ่มต้นเขียนโปรแกรมอย่างไรดี?

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

 

เมื่อประมาณเกือบ ๆ 10 ปีที่แล้ว เราก็เป็นคนหนึ่งที่เคยตั้งคำถามเหล่านี้และแสวงหาคำตอบมาก่อน ประสบการณ์การเรียนรู้ในยุคก่อนกับยุคนี้แตกต่างกันมาก ข่าวดีอีกข้อนึ่ง! สำหรับคนที่สนใจที่จะพัฒนาตัวเองเพื่อก้าวเข้ามาสู่สาขาอาชีพนี้ก็คือ ในยุคนี้มีเครื่องไม้เครื่องมือมากมายที่คอยอำนวยความสะดวกให้เราสามารถสร้างสรรค์ผลงานต่าง ๆ ออกมาได้อย่างง่ายดาย

 

ในยุคนี้เราจะเห็นผู้คนจากหลากหลายสาขาอาชีพก้าวเข้ามาเป็นนักพัฒนาโปรแกรม หรือแม้แต่เด็ก 9 ขวบ ก็สามารถสร้างแอพลิเคชั่นได้แล้ว คำถามต่อมาคือ “แล้วเราจะเริ่มต้นยังไงล่ะ ?

 

คำตอบง่าย ๆ เลยค่ะ คือเริ่มต้นจากชีวิตประจำวันของเรานั่นแหละ ตื่นเช้าขึ้นมาเราเปิดโทรศัพท์มือถือ เช็คอีเมล์ เข้า facebook เปิดเพลงฟัง ไปที่ทำงานเปิดคอมพิวเตอร์ เข้าเว็บไซต์ดูข่าวสารต่าง ๆ สิ่งเหล่านี้นั่นก็คือการเรียนรู้แล้วค่ะ แต่เป็นการเรียนรู้ในฐานะผู้ใช้งาน (user) เราได้ประสบการณ์เกี่ยวกับการใช้โปรแกรมและแอพลิเคชั่นต่าง ๆ บางครั้งเรารู้สึกดีที่เข้าเว็บนี้ แต่บางครั้งเราอาจจะรู้สึกว่า ทำไมเว็บนี้ออกแบบมาให้ใช้งานยากจัง! เป็นต้น

 

การที่เราจะเป็นนักพัฒนาโปรแกรมก็แค่มองให้ลึกลงไปกว่านั้น คือมองไปถึงเบื้องหลังการทำงานของเว็บไซต์หรือแอพฯ ที่เราได้ใช้งาน เบื้องหลังของซอฟต์แวร์ต่าง ๆ มันคือโค้ดมากมายที่คอยควบคุมการทำงานอยู่ ยกตัวอย่างเช่น เราเปิด facebook ผ่านหน้าเว็บ ในมุมของผู้ใช้งานเราจะเห็นแบบนี้

Java-Basic-ง่ายนิดเดียว-1

 

แต่มุมของนักพัฒนาโปรแกรมนอกจากหน้านี้แล้ว เค้าจะมองเห็นโค้ดต่าง ๆ ที่อยู่เบื้องหลังของหน้าจอนี้ด้วย ลองคลิกขวาและเลือกที่  “ตรวจสอบ” หรือกดปุ่ม Ctrl+Shift+I (Google Chrome) เราจะเห็นโค้ดต่าง ๆ ดังนี้

 

Java-Basic-ง่ายนิดเดียว-2

 

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

 

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

 

ตอบง่าย ๆ อีกเช่นกันว่า “ให้เลือกภาษาที่เราชอบ” อ่าว! แล้วเราจะรู้ได้ยังไงว่าชอบภาษาอะไร? ก็ลองหาประวัติของภาษาต่าง ๆ มาอ่านดู และดูรูปแบบการเขียนของมัน หรือลองเขียนดูก็ได้ เดี๋ยวก็รู้เองว่าเราชอบแบบไหน ส่วนตัวเราเองเราชอบภาษาจาวา (Java) เพราะประโยคนี้ “Write Once, Run Anywhere.” คือเขียนครั้งเดียวแล้วนำไปใช้งานได้ทุกที (ตอนนั้นคิดในใจว่า…เราน่าจะเขียนมันขึ้นมาควบคุมหุ่นยนต์ได้นะ ส่วนตัวเราหลงไหลในหุ่นยนต์มาก) พอมาเห็นรูปแบบการเขียนโปรแกรมก็ยิ่งชอบเข้าไปใหญ่ เพราะดูเป็นระเบียบเรียบร้อยดี เราหลงรักภาษา Java และเริ่มต้นเรียนรู้ตั้งแต่วันนั้นเป็นต้นมา

 

ในระหว่างนี้ภาษา PHP ก็เป็นอีกหนึ่งภาษาที่เพื่อน ๆ บอกว่าเรียนรู้ง่ายดี ใคร ๆ ก็สนใจในความง่ายของมัน แต่ความรู้สึกส่วนตัวเราไม่ชอบ ด้วยความที่สมัยนั้น PHP ยังไม่มีความเป็น OOP เหมือนทุกวันนี้ รูปแบบการเขียนก็ดูวุ่นวายไปหมด เวลาจะประกาศตัวแปรต้องกดปุ่ม Shift ทุกครั้งด้วย (สัญลักษณ์ $) แต่ทุกวันนี้รูปแบบภาษา PHP ก็สวยงามและน่าสนใจมากขึ้น เพราะถูกพัฒนามาเป็นการเขียนเชิงออบเจ็กต์แล้ว และด้วยความที่เรามีพื้นฐานภาษา Java ก็ทำให้เราหันมาเรียนรู้ภาษา PHP รวมถึงภาษาในการเขียนโปรแกรมอื่น ๆ ได้ง่ายยิ่งขึ้น (ดังนั้น ต้องหาภาษาแรกของคุณให้เจอก่อน)

 

ในบางครั้งเราอาจจะเลือกภาษาจากการที่เราได้ใช้แอพลิเคชั่นหนึ่ง แล้วเกิดไปชอบมันมาก ๆ ถึงขั้นที่อยากจะสร้างมันขึ้นมาบ้าง แล้วเราก็ค่อยไปศึกษาดูว่าแอพฯ นี้มันเกิดขึ้นมาได้อย่างไร ? ใช้ภาษาอะไรบ้าง และตามไปศึกษาเรียนรู้มันก็ได้ อย่าลืมว่าเราเลือกภาษา Java เพราะเราเชื่อว่ามันจะใช้สร้างหุ่นยนต์ได้ซึ่งเป็นสิ่งที่เราหลงไหลอยู่แล้ว (แม้ว่าความเป็นจริงอาจจะต้องใช้ภาษาอื่นก็ตาม แต่ถ้าเรามีพื้นฐานภาษาใดภาษาหนึ่งแล้วก็เรียนรู้ต่อได้ไม่ยาก)

 

หรือบางครั้งนวัตกรรมใหม่ ๆ ก็เกิดจากการที่สิ่งของในปัจจุบันมันยังดีไม่พอ อย่างที่ สตีฟ จอบส์ มองเห็นสิ่งเหล่านั้นเป็นปัญหามากกว่าคิดว่ามันเกิดมาสร้างความสะดวกสบายให้กับผู้คนบนโลก เค้าถึงได้สร้างผลิตภัณฑ์ยี่ห้อ Apple ขึ้นมา และสินค้าของเค้าก็ได้เปลี่ยนโลกใบเดิมไปอย่างสิ้นเชิง

 

หากคนอื่นแนะนำคุณ เค้าอาจจะบอกให้คุณมองที่ความต้องการของตลาด มองที่ตำแหน่งงาน มองไปที่อื่น ๆ ที่ไม่บอกให้คุณมองตัวเองและฟังเสียงหัวใจของตัวเอง หรือไม่บอกให้คุณเลือกภาษาโปรแกรมที่คุณอยากจะเรียนรู้ ซึ่งสิ่งเหล่านี้จะก่อให้เกิดปัญหาต่าง ๆ ตามมามากมาย

 

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

 

ก่อนที่จะก้าวเข้ามาเป็นนักพัฒนาโปรแกรม เราอยากให้คุณถามใจตัวเองให้ดี “คุณรักมันจริงมั้ย ?” พร้อมที่จะทุ่มเทศึกษา พร้อมที่จะสละเวลาอันมีค่าเพื่อเรียนรู้มันอย่างจริงจังหรือเปล่า ? ถ้าใช่! แสดงว่าคุณมาถูกทางแล้ว และเมื่อคุณก้าวเข้ามาใหม่ ๆ คุณอาจจะมองเห็นแต่หลังของคนอื่น และคิดว่าคนอื่น ๆ เค้าวิ่งไปไกลกว่าคุณมากแล้ว มันเป็นธรรมดาที่คุณจะไม่รู้อะไรเลยในเบื้องต้น นั่นเป็นจุดเริ่มต้นสำคัญตามมา คือ “การตั้งคำถาม

 

การตั้งคำถามที่ดี” มักจะได้รับคำตอบที่ดีเสมอ แรก ๆ เราอาจจะไม่รู้ด้วยซ้ำว่าจะถามอะไร เพราะในหัวของมือใหม่ไม่มีคำศัพท์เหล่านี้อยู่เลย ไม่ต้องกังวลค่ะ ถามไปเลยด้วยภาษาของคุณนั้นแหละ ถ้าคนถูกถามไม่เข้าใจเค้าจะถามคุณกลับมาเองว่าคุณหมายถึงอะไร และคุณก็จะได้คำตอบในท้ายที่สุด

 

สรุป

บทความนี้ เป็นการเขียนถึงการเริ่มต้นเขียนโปรแกรม โดยที่ไม่ได้เขียนโค้ดแม้แต่ตัวเดียว แต่เราเชื่อว่ามันจะทำให้ผู้อ่านหันกลับมามองตัวเองมากขึ้น และหลังจากนั้นลองมองไปที่คนที่ประสบความสำเร็จในชีวิต “ไม่มีใครประสบความสำเร็จในชีวิตจากการทำในสิ่งที่ตัวเองไม่ชอบ” ดังนั้นสิ่งแรกที่สุดที่เราอยากให้คุณทำ คือ “การค้นหาตัวเอง” และ “ลงมือทำ” มันจะทำให้เรารู้ได้เร็วมากขึ้นว่าจริง ๆ แล้วเราหลงไหลในสิ่งนั้นจริงหรือไม่? และถ้ารู้ตัวว่าใช่! สิ่งต่อไปก็แค่ทุ่มเทศึกษาเรียนรู้ รับรองว่ามันจะเป็นการเรียนรู้ที่มีความสุข และเมื่อคุณก้าวเข้าไปทำงาน คุณก็จะทำงานมีความสุขเช่นกัน 🙂

 

ธมนวรรณ มณีจันทร์

ธมนวรรณ มณีจันทร์

|:- เราเชื่อมั่นว่าการเสียสละและการแบ่งปันจะทำให้โลกใบนี้สวยงามมากขึ้น ทุกๆ จุดเริ่มต้นของการเรียนรู้ นำไปสู่การเรียนรู้ถัดไป เว็บไซต์แห่งนี้ขอเป็นส่วนหนึ่งของการแบ่งปันความรู้ที่ไม่มีที่สิ้นสุด มาร่วมกันผลักดันโลกของเราให้หมุนไปพร้อมกับพลังแห่งความรักด้วยกันนะคะ :) >>> |:- About Me! -:|