เรื่องน่ารู้สำหรับเด็กจบใหม่ที่อยากทำงานเป็น Programmer

ปัญหาที่ผมเจอมาตลอดหลายปีที่ทำงานในวงการไอทีเมืองไทยก็คือ บุคลากรทางไอทีเน้นที่โปรแกรมเมอร์ที่จบใหม่ๆมาจากรั้วมหาวิทยาลัยนั้นไม่มีความพร้อมที่จะเข้าทำงานตามสายงานที่ตัวเองร่ำเรียนมาได้ทันที ร้อยทั้งร้อยจะต้องผ่านการฝึกหัดให้เข้าที่เข้าทาง ซึ่งนี่ก็เป็นอีกหนึ่งการลงทุนที่ค่อนข้างเสี่ยงอยู่เหมือนกันสำหรับบริษัท สอนไปสอนมากลายเป็นสอนเพื่อให้ไปทำงานบริษัทอื่นซะหรือเปล่าก็ไม่รู้ (นอกเรื่อง) คิดแล้วก็ไม่เข้าใจเหมือนกันว่าทำไมสถาบันการศึกษาที่ผลิตบุคลากรทางเหล่านี้ถึงไม่ปรับปรุงหลักสูตรให้ทันสมัย และให้ตรงกับความต้องการของตลาดในโลกแห่งความเป็นจริงบ้าง จริงอยู่ผมไม่เถียงที่เด็กๆที่จบมาจากสถาบันเหล่านี้ส่วนมากค่อนข้างจะเก่ง โดยเฉพาะทางโปรแกรมเมอร์แล้วยิ่งเก่ง แต่จะพูดไปมันก็เหมือนคนไทยชกมวยเก่ง แต่แตะบอลไม่ค่อยดี ยังไงยังงั้น…. 

บทความนี้ตั้งใจจริงๆที่จะเขียนเพื่อจะเป็นแนวทางให้เด็กๆน้องๆรุ่นใหม่เตรียมความพร้อมให้ตัวเองให้มากที่สุด ทำตัวเองให้อยู่ในสถานะที่ได้เปรียบคู้แข่ง(ในการหางาน)ที่สุด จริงอยู่การเขียนโปรแกรมเก่ง การคิดโลจิก ตีโจทย์ได้นั้น ก็สำคัญ แต่สิ่งที่สำคัญมากกว่าในโลกแห่งความเป็นจริงของการเข้าทำงานในสายนี้ก็คือ “มาตรฐาน” ครับคำเดียวสั้นๆ แต่มีความหมาย มาตรฐานในที่นี้ก็คือการทำงานโปรแกรมให้อยู่ในมาตรฐานของสากลหรือมาตรฐานของการพัฒนาซอฟท์แวร์นั้นๆ ซึ่งมาตรฐานที่กล่าวมานี้นั้นก็มีมากมายหลากหลายกรรมวิธี ก็แล้วแต่ว่าสำนักไหนจะเลือกใช้อะไร ถ้าเป็นบริษัทใหญ่ๆหน่อยก็มักจะเป็นพวก ISO หรือ CMM http://www.sei.cmu.edu/cmm ถ้าเป็นบริษัทที่ทำพวก web application ก็มักจะเป็นพวกเฟรมเวิร์ค (framework) ต่างๆอาธิเช่น fusebox http://www.fusebox.org หรือ Ruby on Rails http://www.rubyonrails.org เป็นต้น ซึ่งบทความนี้ไม่ขอลงลึกไปถึงการอธิบายมาตรฐาน หรือเฟรมเวิร์คต่างๆเพราะว่ามันเยอะ (ขี้เกียจเขียน ว่ากันตรงๆ) แต่จะเป็นการแนะแนวทางในสิ่งที่ควรจะต้องฝึกซ้อมไว้ให้ชินเพื่อสร้างความได้เปรียบในการทำงานจริงเป็นข้อๆดังนี้ 

1. หัดทำงานเอกสารให้เคยชิน 
ผมเข้าใจและรู้ซึ้งดีว่าโปรแกรมเมอร์กับงานเอกสารนั้นเป็นไม้เบื่อไม้เมากันมาตั้งแต่ยุคสมัยขอมยังเรืองอำนาจ ว่าไปนั่น แต่เอาเข้าจริงๆแล้ว นี่คือสิ่งที่บริษัทไอทีชั้นนำเกือบจะร้อยทั้งร้อยมองหามากที่สุดเวลาจะจ้างพนักงานโปรแกรมเมอร์ อาจจะมีคนแย้งว่าก็ทำไมไม่ให้ SA (system analyst) หรือนักวิเคราะห์ระบบ ทำงานเอกสารละ โปรแกรมเมอร์ก็โค้ดงานตามสั่งไปสิ ผมอยากจะขอให้คนแย้งคิดนอกกรอบไปอีกสักนิดว่า ถ้าเลือกได้ระหว่างเด็กจบใหม่เหมือนกัน เงินเดือนเท่ากัน เก่งพอกัน คนนึงเป็นโปรแกรมเมอร์ อีกคนนึงเป็นได้ทั้งโปรแกรมเมอร์และนักวิเคราะห์ระบบ ถ้าคุณเป็นคนจ้างคุณจะเลือกใคร

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

3. ศึกษามาตรฐาน และเฟรมเวิร์คให้เข้าใจ 
ไม่ว่าคุณจะถนัดโปรแกรมไหน เขียนภาษาอะไร ส่วนใหญ่เฟรมเวิร์คมักจะไม่หนีกัน เพราะว่าส่วนมากจะประยุกต์มาจากหลักการของ Software engineering ทั้งนั้น ไม่ว่าจะเป็น CMM, ID5, fusebox ศึกษาสิ่งเหล่านี้ให้ถ่องแท้ รับรองจริงๆว่าคุณได้เปรียบแน่ๆครับ 

4. ฝึกทำความเข้าใจเอกสารเทคนิค 
เอกสารเทคนิคในการพัฒนาซอฟท์แวร์นั้นมีไม่ใช่น้อยนะครับ ไม่ว่าจะเป็น UML, Scope of work, ER Diagram, Data dictionary, Functional structure, Test plan, etc เยอะแยะมากๆครับ ถ้าอยากได้เปรียบต้องศึกษาแต่เนิ่นๆ 

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

6. อันนี้ของแถมไม่ทำก็ได้แต่ถ้าทำได้จะดี 
ก็คือฝึกการใช้เครื่องมือต่างๆที่เกี่ยวข้อง ที่นอกเหนือจากเครื่องมือในการพัฒนาซอฟ์ทแวร์ ยกตัวอย่างเช่น Rational Rose ซึ่งจัดอยู่ในประเภท Integrated Development Environment (IDE), พวก Groupware ต่างๆ หรือที่เรียกกันว่าระบบ Collaboration ลองเลือกๆกันดูเถิดครับ แค่นี้ก็เยอะจนจำไม่ไหวแล้ว

9 thoughts on “เรื่องน่ารู้สำหรับเด็กจบใหม่ที่อยากทำงานเป็น Programmer

  1. ขอคำแนะนำหน่อยค่ะ

    คือว่าเป็นเด็ก ที่จบสายสังคม แต่เรียน ไมเนอร์ เป็น วิทยาศาสตร์คอมพิวเตอร์ ซึ่ง วิชาไมเนอร์ที่เรียน

    ยังทำให้มีความรู้ความสามารถและประสบการณ์การเขียนโปรแกรม ซึ่งแถบจะเรียกได้ว่าทำอะไรไม่ได้เลย แต่ชอบมาก

    ไม่ทราบว่าควรต้องทำอย่างไรดีค๊ะ ลองพยายามด้วยตัวเองแล้วไม่ว่าจะหาหนังสืออ่าน หรือลองฝึกดูแต่ก็ยังคงย่ำอยู่กับที่

    ไม่ทราบว่าควรเริ่มต้นอย่างไรดีค๊ะ

    1. ตอบคุณ arthesia ผมเองก็ไม่ได้จบมาทาง Technical โดยตรงครับอาศัยใจรักเลยหัดเองจากหนังสือบ้างไปเรียนคอสพิเศษบ้าง แต่อย่างนึงที่ผมทำสมัยก่อนแล้วรู้สึกว่าทำให้เขียนโปรแกรมดีขึ้นก็คือไปรับทำงานให้คนอื่นเลยครับ จะได้ตังก์นิดหน่อยหรือไม่ได้เลยก็ทำหมด อยากปล่อยของว่างั้น.. สู้ๆนะครับ

  2. นอกเหนือจากคำตอบของคุณ Rittichart S. แล้ว ผมคิดว่าถ้าน้องๆที่ไม่ได้จบสายตรงมาด้าน Computer การมีใบประกาศนียบัตรต่างๆที่เกี่ยวกับการเขียนโปรแกรมหรือการพัฒนาระบบน่าจะช่วยเราได้ในการสมัครงานนะครับ ปัญหามันอยู่ที่ถ้าเราไม่ได้จบตรง หรือไม่มีประสบการณ์ตรงอยู่ใน Resume เนี่ยะ มันก็ยากที่เราจะได้รับเรียกสัมภาษณ์นะครับ

    กรณีเพื่อนผมก็คล้ายๆน้อง arthesia ครับ คือจบมาทางสายสังคมเลยแต่ใจรักคอมพิวเตอร์มาก เค้าก็ฝึกด้วยตัวเองแล้วพยายามสอบใบประกาศนียบัตรอยู่เรื่อยๆ จนตอนนี้ก็ได้ทำงานสายคอมพิวเตอร์สมใจไปแล้วครับ เรื่องแบบนี้อยู่ที่ความพยายามครับ

    อีกมุมหนึ่งที่ผมอยากจะฝากไว้คือตำแหน่งงานที่มีในบริษัทคอมพิวเตอร์มีมากกว่าแค่ Programmer นะครับ ถ้าน้องบางคนเขียนโปรแกรมไม่เก่ง (เหมือนผมนี่แหละ แหะๆ) เรายังมีทางเลือกอื่นๆอีกนะครับ เช่นเป็น Tester สมัยนี้เรียก QA แล้วหละ งานนี้ผมคิดว่ากำลังจะมีบทบาทมากขึ้นในไทยแล้วหละครับ เพราะว่าตอนนี้หลายบริษัทหันมาให้ความสำคัญกับ Quality Assurance มากขึ้น

    งานด้านบริหารโครงการ (Project Management) ก็เป็นอีกทางเลือกหนึ่งของน้องๆครับ โอเคหละว่า มันเป็นไปไม่ได้ที่จะจบมาแล้วไปเป็น Project Manager เลย แต่ถ้าเราสนใจด้านการบริหารมากกว่า Technical เราก็ตั้งเป้าหมาย สะสมประสบการณ์และพัฒนาทักษะของเราไปทางนั้นได้เช่นกันครับ

    สุดท้าย ถ้าสนใจงานด้าน Process เราก็สามารถมองถึงตำแหน่ง SQA (Software Quality Assurance) ซึ่งทำหน้าที่คอยควบคุมให้การพัฒนาซอฟท์แวร์ให้เป็นไปตามกฎเกณฑ์และมาตรฐานที่ถูกต้อง มาตรฐานที่ว่าก็เช่น CMMi, ISO, ITTL เป็นต้นครับ

    ผมเขียนบล็อกเกี่ยวกับ Project Management กับ Software Development Process ไว้ที่ http://chapterpiece.com ครับ หวังว่าจะเป็นประโยชน์กับเพื่อนๆน้องๆครับผม

    ขอบคุณสำหรับบทความดีๆด้วยครับ 🙂

  3. ขอบคุณพี่ๆเพื่อนๆมากเลยค่ะ

    ตอนนี้ก็กำลังค่อยๆเริ่มฝึกอยู่ค่ะ

    แต่อยากทราบอีกค่ะว่า ถ้าจะรับงานคนอื่นมาทำนี้ จะรับจากไหนยังไงดีค๊ะ

    แล้วก็ที่พี่ kannique บอกว่าเพื่อนพี่มีไปสอบนั้น

    จะหาข้อมูลการสอบยังไงบ้างค๊ะ รู้จักแต่การสอบ ccna อย่างเดียวอ่ะค่ะ

    ไม่รู้อย่างอื่นเลยมีใครพอแนะนำ เรื่องการสอบได้บ้างค๊ะ คือว่า ตอนเรียนก็เรียนอย่างเดียว

    มีความรู้เรื่อง รอบๆตัว เกี่ยวกับคอมพิวเตอร์น้อยมากเลยค่ะ

    พยายามหาความรู้อยู่ค่ะตอนนี้

  4. ตอนนี้ต้องการโปรแกรมเมอร์จบใหม่ไฟแรง เป็นพนักงานประจำและก็ทำงานให้กับบริษัทแม่ที่นอร์เวย์
    และอาจจะมีโอกาศได้ไปทำงานที่นอร์เวย์ ถ้าใครสนใจก็ ส่งresume ได้ที่ marisa.tthotmail.com

  5. เพิ่งจบค่ะ แต่ยังหางานไม่ได้เลย ไม่ค่อยมีรับเด็กจบใมห่ไม่มีประสบการณ์เลยค่ะ หายากมาก รบกวนแนะนำต้องสมัครแนวทางไหนก่อนดีค่ะ

ใส่ความเห็น

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  เปลี่ยนแปลง )

Google photo

You are commenting using your Google account. Log Out /  เปลี่ยนแปลง )

Twitter picture

You are commenting using your Twitter account. Log Out /  เปลี่ยนแปลง )

Facebook photo

You are commenting using your Facebook account. Log Out /  เปลี่ยนแปลง )

Connecting to %s