See the original English version of this article here
สำหรับคนที่เป็น Programmer/Developer อยากให้ลองอ่านบทความนี้ เพราะคุณ Catherine Smith ได้มาแชร์ประสบการณ์ชีวิตของการทำงานของเธอซึ่งไม่ได้จบด้านไอที แต่มาลงเอยที่งานด้านไอที มาดูกันว่า Programming เข้ามาเป็นส่วนหนึ่งในชีวิตของเธอได้อย่างไร
Catherine เริ่มรู้จักกับ Computer ตั้งแต่อายุ 7 ปี ครอบครัวของเธอได้ของขวัญมาเป็น Computer เก่าๆ เครื่องหนึ่งที่มาพร้อมกับ Keyboard และไม่มี Interface ใด ๆ นอกจาก MS-DOS Command-Line ซึ่งพี่ชายของ Catherine และตัวเธอเองก็เล่น Computer เครื่องนั้นแบบลองนั่นลองนี่ไปเรื่อยๆ ตัวเธอเองเป็นเด็กที่ชอบกีฬาและศิลปะ แต่พี่ชายของเธอนั้นสามารถเรียกได้ว่าเป็น Computer Geek เลยก็ว่าได้
ในช่วง High School พี่ชายของเธอได้สร้าง Website เอง ส่วนเธอเองก็นั่งข้าง ๆ เขาและดูเขาปรับแต่ง CSS / HTML และจดบันทึกการทำงานของ Syntax ต่าง ๆ แต่ถึงอย่างนั้น เธอก็ไม่เคยคิดว่าการเขียน Program จะเป็นงานจริง ๆ ได้ ในแบบทดสอบทางอาชีพสมัยเรียนประถม เธอเหมาะกับอาชีพ “Aerospace Engineer” ซึ่งตอนนั้น Software Engineer ยังไม่ได้อยู่ใน List อาชีพดังกล่าว พอเข้าเรียนวิทยาลัย เธอก็ตัดสินใจเลือกเรียนทางด้านดนตรี
หาประสบการณ์ด้วยการลงมือทำจริง ๆ
ช่วงที่เรียนปี 3 เริ่มหมด Passion ในดนตรี แต่เนื่องจากเธอได้รับทุนการศึกษาด้านดนตรีและใกล้จะเรียนจบแล้ว เธอจึงตัดสินใจเรียนต่อไปแต่ขณะเดียวกันก็เริ่มลองศึกษาเรียนรู้สิ่งอื่นๆ ไปด้วย ในปีนั้นเธอได้ลองเรียนวิชาฟิสิกส์ รวมทั้ง JavaScript Course ใน Codecademy ด้วย แต่เธอไม่เข้าใจและไม่รู้ว่า Function มันทำงานอย่างไร แม้จะรู้สึกท้อแท้บ้าง แต่เธอก็พยายามต่อไป
ช่วงที่เรียนปี 4 Catherine ได้ทำงาน Part-time เกี่ยวกับการจัดการ Account ลูกค้ารวมถึงช่วยสร้าง Website ด้วย เธอได้เรียนรู้วิธีใช้ทั้ง Code Editor และ Version Control ในเวลานั้นเธอยังไม่ได้เขียน Program จริงจังมากนัก แต่เธอก็เริ่มคุ้นเคยกับพื้นฐานของการพัฒนา Web มากขึ้น
ด้วยความที่เป็นบริษัทเล็ก ๆ เพื่อนร่วมงานของเธอจึงดูจะไม่ค่อยยุ่งกันนัก ในขณะที่เธอเองกลับต้องทำหลายอย่าง ต้องรับผิดชอบในส่วนการส่งมอบงานเป็นหลักและดีลงานกับลูกค้า
Catherine ต้องเจอกับปัญหาหลายอย่าง ซึ่งหนีไม่พ้นการแก้ไขปัญหาหรือหาทางออกที่ดีที่สุด แต่มันก็ช่วยกระตุ้นให้เธอเติบโตขึ้นอย่างมาก จุดเปลี่ยนสำหรับเธอคือ การตระหนักว่า เธอสามารถเรียนรู้เพื่อที่จะทำอะไรก็ได้ด้วยการ Research เพิ่มเติมเล็ก ๆ น้อย ๆ และในที่สุดเธอก็สำเร็จการศึกษาด้านดนตรีในปีนั้น
ถอยกลับมาตั้งหลักใหม่
หลังจากเรียนจบ Catherine ก็พยายามมองหาสิ่งที่เธอคิดว่า จะเป็น “งานจริง ๆ ” ของเธอ หลังจากที่ปฏิเสธไปหลายงาน เธอก็พบ Job Description ที่กล่าวถึงการทำงานกับ HTML ดังนั้น เธอจึงสมัครและในที่สุดเธอก็ได้งานนี้
งานนี้เป็นของบริษัทด้าน Communication ขนาดใหญ่ ซึ่งทำการแก้ไขเอกสารทางการแพทย์ที่กำหนดไว้ล่วงหน้า โดยเป็นงานที่ที่นั่งทำงานในห้องเล็ก ๆ ซึ่งเธอรู้สึกว่ามันน่าเบื่อมาก เธอเริ่มหันมาสนใจสิ่งที่ Programmer ทำอยู่มากกว่างานที่เธอต้องทำ มันทำให้เธอกลับยิ่งรู้สึกอยากที่จะรู้เรื่องเหล่านั้นทั้งจาก Programmer และ Manager ของเธอ
หลังจากทำงานได้ 3 เดือน เธอก็ตัดสินใจลาออกแล้วกลับบ้านไปอยู่กับพ่อแม่ แม้มันอาจเป็นการตัดสินใจที่น่ากลัว แต่มันก็เป็นการตัดสินใจดีที่สุดเท่าที่เธอเคยทำมา
Concepts เกี่ยวกับพื้นฐาน Programming
ในขณะที่อยู่บ้าน Catherine ตั้งใจว่าอยากจะออกไปสู่โลกของความเป็นจริงให้เร็วที่สุด เธอจึงตัดสินใจเรียนรู้ภาษา R (Statistical Programming Language) เพราะค่อนข้างแน่ใจว่า มันอาจจะเป็นประโยชน์ในการช่วยสนับสนุนความเชี่ยวชาญด้านการวิเคราะห์ข้อมูลของเธอ
แต่ละวัน Catherine ใช้เวลาอยู่กับ Laptop เพื่อศึกษาภาษา R และเขียน Blog เกี่ยวกับสิ่งที่เธอได้เรียนรู้ เธอกำลังเรียน Data Formats และ Data Structures เมื่อเธอออกนอกบ้านก็มักจะติดหนังสือเรื่องการ Transform Data โดยใช้ภาษา R ออกไปอ่านด้วย เธอใช้ชีวิตแบบนั้นอยู่ 2 เดือน ซึ่งหลายคนอาจเรียกมันว่าเป็น Bootcamp ก็ได้
เมื่อมองย้อนกลับไป เธอก็ตระหนักว่า แม้มันจะไม่ใช่ภาษา Programming ที่สำคัญมากมายอะไร แต่มันก็ทำให้เธอคิดถึง Concept ของพื้นฐานการเขียน Program ขึ้นมา ในที่สุดเธอก็สมัครตำแหน่ง Data Analyst ที่ Marketing Agency แห่งหนึ่ง และเธอก็ได้งานนั้น
สร้าง Portfolio ของตัวเอง
ในฐานะของ Data Analyst แม้ว่าการเขียน Code จะไม่ใช่หน้าที่รับผิดชอบของ Catherine แต่เธอก็พบวิธีที่จะรักษาทักษะนั้นไว้
ใน Data Visualization Tool ของบริษัทได้มีส่วนของการจัดเตรียมวิธีการทั้ง Extract และ Visualize ข้อมูล แต่เพราะเหตุนี้ จึงไม่มี Version Control และมีความยืดหยุ่นเพียงเล็กน้อย
Catherine ลงเอยด้วยการใช้ Python หรือ R เพื่อ Extract, Transform และ Visualize ข้อมูล เนื่องจากเธอพบวิธีการเขียน Program ที่สามารถ Debug, Replicate และ Transfer ไปยัง Industry และงานอื่น ๆ ได้
ในขณะเดียวกัน Catherine พยายามเรียน Online Course ในสาขา Applied Stats และ Data Management เธอตั้งเป้าหมายว่าจะสมัครปริญญาโทด้าน Data Science หรือ Analytics ในภายหลัง แต่ Course มันช่างไม่สนุกเอาซะเลย
เธอต้องเขียน Program ใน SAS ซึ่งเป็น Compiled Language ที่ใช้สำหรับการวิเคราะห์ทางสถิติ การบรรยายก็ดำเนินไปอย่างเชื่องช้าและเนื้อหาก็เริ่มไม่น่าสนใจ เธอจึงตัดสินใจหยุดเรียนไปก่อนหลังจากที่เรียนไปได้แค่ 2-3 สัปดาห์ แต่ Catherine ยังคงทำงานที่บริษัทเดิมและได้สร้าง 2-3 Tools ที่ช่วยให้คนอื่นทำงานง่ายขึ้น
ในช่วงเวลานั้น Catherine ก็เริ่มออกเดทกับ Software Engineer คนหนึ่ง ซึ่งเป็นแรงบันดาลใจให้เธอและคอยช่วยเหลือเมื่อเธอติดขัด การมีคนที่คอยให้คำปรึกษาอยู่ข้าง ๆ นั้นเป็นสิ่งมีค่ามากในระหว่างที่กำลังเรียนรู้อยู่
มี 3 เรื่องที่ Catherine ได้เรียนรู้:
- การ Debug ที่มีประสิทธิภาพ: วิธีการใช้ Dev Tools เพื่อ Verify มาตรฐานที่คาดหวัง ในจุดต่าง ๆ ของ Code
- Scope: วิธีที่ตัวแปรสามารถเข้าถึงได้แบบ Global และภายใน Function
- การ Refactor: วิธีเขียน Function การทำงานที่ Clean และสามารถ Reuse ได้มากขึ้น
Catherine ได้สร้าง Web App ตัวแรกและพัฒนา Reusable Python Scripts เธอสามารถนำ Tools เหล่านี้ไปใส่ใน GitHub Account ซึ่งถือเป็นส่วนหนึ่งของ Portfolio เธอ มันเป็นช่วงเวลาที่ Catherine รู้สึกถึงความเชื่อมโยงระหว่างสิ่งที่เธอสร้างขึ้นกับสิ่งที่ส่งผลกระทบต่อคนอื่น เธอรู้สึกหลงไหลมันและค้นพบว่า เธอสามารถช่วยทำให้ชีวิตคนดีขึ้นได้ด้วยการเขียน Code
ตอนที่ Catherine สร้าง Tools เหล่านี้ ทีมงาน Dev ก็เริ่มสังเกตเห็นว่า เธอเริ่มเปลี่ยนบทบาทเป็นได้ทั้ง Analyst/Dev ซึ่งหมายความว่า เธอสามารถช่วยเขียน jQuery เพื่อ Set up Rules ใน Tag Manager ได้
ในท้ายที่สุด Catherine ก็พบว่าตัวเองสนุกกับการสร้าง Tool และการเขียน Code มากกว่าการวิเคราะห์ข้อมูล ดังนั้นเธอจึงเริ่มหางานที่เกี่ยวกับการเขียน Program
เติมเต็มส่วนที่ยังขาดอยู่
ช่วงที่สมัครงาน Catherine ได้เรียนรู้ด้วยตนเองเกี่ยวกับวิธีการทำงานของ Computer และ Web Infrastructure แต่เธอรู้สึกว่ายังขาดรากฐานอีกหลายเรื่องเนื่องจาก เธอไม่ได้เรียนทางด้าน Computer Science มา
Catherine ลงท้ายด้วยการอ่าน Code ซึ่งใช้วิธีการวิเคราะห์แบบ Bottom-up เพื่อดูการทำงานของ Computers work, เริ่มดูจาก Binary และ Logic ไปถึง Assemblers, Compilers และ ภาษา Programming ระดับสูง
นอกจากนี้ Catherine ได้ทำ Independent Research ในหัวข้อที่น่าสนใจ เช่น ‘เปิด Web Page โดยไม่ใช้ Browser ได้อย่างไร’ หรือ ‘DNS ทำงานอย่างไร’ หรือการใช้ Tool เช่น Ping และ Traceroute รวมทั้งความหมายของพวกมัน โดยพื้นฐานแล้วเมื่อเธอเจอคำศัพท์หรือ Tool ที่ฟังดูแล้วน่าสนใจ เธอก็จะเรียนรู้แบบลงลึกเกี่ยวกับพวกมัน
ความคุ้นเคยกับหัวข้อเหล่านี้ช่วยให้ Catherine พูดคุยเกี่ยวกับ Computer Concepts กับผู้อื่นได้ง่ายขึ้น และทำให้เธอมีพื้นฐานเพื่อทำความเข้าใจ Concepts ของการพัฒนา Web ในระดับที่สูงขึ้น
หลังจาก 2-3 เดือน และการปฏิเสธจำนวนมาก Catherine ก็พบบริษัทที่ยินดีให้โอกาสเธอทั้งที่ไม่มีประสบการณ์ที่เชี่ยวชาญในการเขียน Program แต่มี Portfolio และ Blog เล็ก ๆ ที่แสดงว่าให้เห็นว่า เธอมีศักยภาพและมีความสนใจ แม้จะผ่านมา 2 ปีแล้ว แต่เธอก็ยังไม่หยุดที่จะเรียนรู้
ISM Technology Recruitment Ltd. (#1 Tech Recruiter in Thailand) เราเชี่ยวชาญในธุรกิจ IT Recruitment & IT Outsourcing โดยเฉพาะ เปิดทำการกว่า 28 ปี มีพนักงานทุกสายและทุกระดับทางด้าน IT ที่ได้ร่วมงานกับลูกค้าองค์กรใหญ่ที่มีชื่อเสียงและบริษัทข้ามชาติมากมาย หากคุณเป็นคน IT ที่อยากทำงานท้าทายและร่วมงานกับองค์กรชั้นนำ สามารถฝากประวัติการทำงาน (Resume) ของคุณไว้กับ ISM ได้ที่ https://www.ismtech.net/submit-your-resume แล้วคุณจะพบว่าอนาคตและโอกาสก้าวหน้ากำลังรอคุณอยู่