- คอร์สเรียนฟรี
- 1. Intro to Programming - บทนำของสายอาชีพพัฒนาโปรแกรม
- 3. โปรแกรมเมอร์ทำอะไรบ้างในที่ทำงาน?
3. โปรแกรมเมอร์ทำอะไรบ้างในที่ทำงาน?
- ความยาวของวิดีโอ: 48 นาที 54 วินาที
เคยสงสัยกันไหมว่าโปรแกรมเมอร์เขาทำอะไรกันบ้างวันๆ? ในที่ทำงานออฟฟิศ ทำงานที่บ้าน หรือเป็นงานส่วนตัว ในบทนี้เราจะมาเล่าให้ฟังกับประสบการณ์จริง ว่าส่วนมากต้องทำอะไรกันบ้าง
สิ่งที่จะได้เรียนรู้ในบทนี้:
- เข้าใจถึงหน้าที่และบรรยากาศของการทำงานเป็นโปรแกรมเมอร์
- รูปแบบการทำงานที่แตกต่างกัน ระหว่างทำงานบริษัทกับฟรีแลนซ์
- รู้จักกับกระบวนการพัฒนาโปรแกรมโดยพื้นฐาน
สิ่งที่โปรแกรมเมอร์ต้องทำในงานประจำบริษัท
ตรงนี้จะเล่าจาก ประสบการณ์ของผม ผสมกับสิ่งที่ พบเห็นตามในเน็ต ว่าส่วนมาก เกี่ยวกับโปรแกรมเมอร์จะต้องทำอะไรกันบ้าง และมีบรรยายกาศอย่างไร
- เหมือนกับบริษัทอื่นๆ ที่จะทำงานวันละประมาณ 7-9 ชั่วโมง เป็นจำนวน 5 วันต่อสัปดาห์ มีเวลาพักกินข้าว 1 ชั่วโมง
- บางที่ทำงานจะเริ่มเข้างานประมาณ 12:00 - 20:00 เพื่อเลี่ยงรถติด
- ส่วนมากไม่จำเป็นต้องตอกบัตรในการเข้าทำงาน และพนักงานหลายคนเองก็มักจะ มาทำงานไม่ตรงเวลา แต่ก็มาทำงานให้ครบตามที่ได้รับมอบหมาย
- บางที่ทำงานจะมี ประชุมช่วงเช้าเล็กๆ ทุกวัน ประมาณ 2-30 นาที เพื่ออัปเดตว่าวันนี้จะทำอะไร รายงานผล และแบ่งงานต่างๆ
- ในบริษัทจะมีการ แบ่งกลุ่มงานเป็นแผนก ทั้งส่วนที่เกี่ยวข้องกับการพัฒนาโปรแกรมเป็นแผนกย่อย หรืออื่นๆที่ไม่ใช้การพัฒนาโปรแกรม ต่างจะมีหน้าที่ต่างกันไป
- ตัวงานที่ต้องทำ ก็มักจะตรง ตามข้อมูลที่ได้สมัครงานตามตำแหน่ง ไว้ แต่ก็มีบ้างที่ต้อง ทำนอกเหนือจากนั้น
- การมอบหมายงาน จะมาทั้งในรูปแบบผ่านคำพูด โปรแกรมมอบหมายงานผ่านออนไลน์ หรือแปะกระดาษไว้ที่บอร์ด
- โปรแกรมเมอร์จะ มีหลายประเภท ในการทำงาน ทั้งแบบเขียนโค้ดอย่างเดียว ออกแบบระบบ ออกแบบหน้าจอโปรแกรม พูดคุยกับลูกค้าหน้างาน ประสานงานระหว่างแผนกต่างๆ เข้าประชุมและมีส่วนหลักในการวางแผน ทั้งนี้จะขึ้นอยู่กับว่าเราเข้ามาเป็นใครในฐานะอะไร จะทำให้รูปแบบทำงานในบริษัทต่างกันด้วย แต่ ส่วนมากก็ต้องมีเขียนโค้ด อยู่แล้ว เพราะนั้นคืองานโปรแกรมเมอร์
- หากเราเพิ่งเริ่มทำงานใหม่ ยังไม่มีประสบการณ์ เราอาจจะจำเป็นต้อง ศึกษาหลายเรื่อง ระหว่างทำงานจริง ก็คือเรียนไปและทำงานไป
- หากมีเพื่อนร่วมงานในแผนกเดียวกัน โดยเฉพาะมีรุ่นพี่หรือหัวหน้าในที่ทำงาน มักจะคอย ให้คำแนะนำ ได้เมื่อเราสงสัยบางเรื่องเกี่ยวกับการพัฒนาโปรแกรม
- เป็นเรื่องปกติที่ต่อให้เราเก่งแล้ว เราก็จะต้อง พบปัญหาใหม่ๆ เสมอที่ทำให้เราต้องไปศึกษาบางเรื่อง ก่อนเริ่มเขียนโค้ดต่อ
- ในยุคนี้เรามี ChatGPT และอื่นๆ ทำให้เราทำงานเร็วขึ้นมากจริง และมีประโยชน์ โดยบางบริษัทอาจจะมีการลงทุนเช่าบริการ Generative AI ที่ดีกว่านี้ให้พนักงานใช้ได้ และเราก็สามารถนำมาใช้กับเรื่องส่วนตัวได้เช่นกัน
- แต่ Generative AI ก็ ไม่สามารถแก้ไขปัญหา หลายเรื่อง ทำให้หลายครั้งก็ต้องเปิด Stack Overflow หรืออื่นๆ เพื่อหาวิธีแก้ไขปัญหาต่างๆ
- เมื่อเราเขียนโค้ดเสร็จ ขั้นตอนการทดสอบระบบก็จะเริ่มจาก Manual Testing ด้วยเราเอง ถ้าบริษัทมีระบบระเบียบมากขึ้นอาจจะมี Unit Testing, Integration Testing, System Testing และอื่นๆ ขึ้นอยู่กับความใส่ใจ หรือขนาดของตัวโปรเจกต์
- บางบริษัทที่มีระบบ DevOps ครบถ้วน จะมีแผนกที่คอยดูแลเรื่องนี้เฉพาะ และถ้าเรารับหน้าที่เป็นโปรแกรมเมอร์คอยโค้ดเพื่อพัฒนาโปรแกรม จะทำให้เรารู้สึกทำงานสะดวกอย่างมาก
- กลับกัน ถ้าบริษัทไหนไม่ได้มีโครงสร้างของ DevOps ที่ไม่ดีมากนัก ก็จะทำให้ ทำงานลำบาก มากขึ้น แต่เราเองอาจจะมีส่วนร่วมการพัฒนา DevOps ด้วยตนเองได้ หากบริษัทเปิดโอกาสให้เราลงมือทำ
- โดยทั่วไปเราจะใช้ Git เพื่อบันทึกชุดโค้ด ทำงานร่วมกัน และควบคุมเวอร์ชั่นของโปรแกรมเรา แล้วแต่ว่าบริษัทจะใช้รูปแบบไหน โดยทั่วไปควรจะเป็น Gitflow
- กระบวนการทำงานส่วนมากจะเป็นแบบ Agile โดยคร่าวๆคือวางแผน, ออกแบบ, พัฒนา, ทดสอบ, เตรียมใช้งานจริง, รีวิว, นำไปใช้งานจริง และจะทำแบบนี้วนไปตามจำนวนคุณสมบัติของโปรแกรมที่จะอยากเพิ่มเติม
- บางครั้งอาจจะต้อง ทำเอกสาร ซึ่งจะมีหลายรูปแบบขึ้นอยู่กับงาน เช่น ทำเป็นไฟล์ PDF หรือ Markdown จะมีทั้งแบบทำให้ลูกค้า หรือทำไว้ให้นักพัฒนาโปรแกรมอ่านกันเอง บางทีอาจจะต้องเขียนเป็นลักษณะ API Documents อย่างทางการ
- มีบ้างที่ต้อง ทำงานกราฟฟิค เช่น ตัดต่อรูปภาพบางอย่าง เพื่อนำไปใช้งานกับระบบของเรา หรือต้องไปหารูปภาพมาด้วยตนเองจากออนไลน์ที่ไม่ละเมิดลิขสิทธิ์
- อาจจะมีเป็นครั้งคราว ที่เรา ถูกบังคับ ต้องลองใช้ Framework หรือภาษาโปรแกรมใหม่ๆ เพื่อทดลองและเปลี่ยนแปลงรูปแบบการทำงานภายในองค์กร จึงเป็นเรื่องที่โปรแกรมเมอร์จำเป็นต้อง ปรับตัวให้เร็ว เมื่อบริษัทพร้อมใช้ของใหม่
- ส่วนของการทำงาน เรามักจะมีโอกาสได้ดูโค้ดที่เราไม่เคยเห็นมาก่อน หรือโครงสร้างการวางแผนของบริษัท ที่จะทำให้เรา รู้จักวิธีการทำงานระดับบริษัท มากขึ้น
- หากตัวงานเกิดปัญหาขึ้น มักจะส่งผลกระทบรุนแรง เช่น ลูกค้าใช้งานไม่ได้ แผนกอื่นไม่สามารถทำงานต่อได้ อาจจะมีความผิดเพราะเรา หรือคนอื่นในทีมเรา เราก็จะต้องแก้ไขปัญหาอย่างเร่งด่วน หรือหากสุดท้ายเราเป็นผู้สร้างปัญหาบ่อยครั้ง สามารถถูกพิจารณาไล่ออกได้เช่นกัน จึงเป็นงานที่มีความรับผิดชอบสูง และไม่ควรเกิดข้อผิดพลาดบ่อยครั้ง ทำให้การวางแผนแก้ปัญหาเมื่อเกิดข้อผิดพลาด จึงเป็นเรื่องสำคัญ
- บรรยากาศ ในการทำงาน อาจจะดู ตึง บ้างดูธรรมดาบ้างแล้วแต่วัน ตึงในที่นี่คือรู้สึกถึงความเครียดจากรอบตัว เช่น บางคนที่ปกติจะชอบไปคุยกับโต๊ะอื่น แต่วันนี้นั่งทำงานเงียบหน้าคอมตัวเอง หรือบางคนที่เห็นทำแต่งาน แต่วันนี้นั่งดูแต่ Netflix ทั้งวัน
- บางที่ทำงานจะแต่งตัวสบาย ชุดไปรเวทได้ แต่ถ้าวันไหนต้องพบลูกค้า หรือสถานที่ทำงานอยู่หน้างาน เราจะจำเป็นต้องแต่งสุภาพหรือเครื่องแบบที่บริษัทกำหนดมาให้
- แผนกโปรแกรมเมอร์ จะเป็น ผู้ชายไปแล้ว 90% ส่วนผู้หญิง 10%
- บุคคลิกของเพื่อนร่วมงานเรา จะ มีความหลากหลาย ระดับหนึ่ง แต่อาจจะมีสิ่งที่สนใจเหมือนกันจึงทำให้คุยเรื่องเดียวกันได้ถูกคอมากกว่า หรือทะเลาะกันง่ายกว่าเช่นกัน อาจจะเพราะความเห็นไม่ตรงกัน
- เราจะเห็นคนรุ่นใหม่ ย้ายที่ทำงาน บ่อยขึ้น จนคนรุ่น Senior เขาจะพูดถึงบ่อยครั้งว่าเด็กรุ่นนี้ชอบเปลี่ยนที่ทำงานบ่อย ทั้งนี้อาจจะมีหลายปัจจัย เช่น เบื่อที่ทำงานเดิม ที่ใหม่เสนอให้เงินเดือนสูงกว่า ที่เก่าไม่รู้สึกว่าจะมีความก้าวหน้า อยากทำงานใกล้บ้าน หรือแม้กระทั่งออกจากการเป็นโปรแกรมเมอร์แล้วไปทำอาชีพอื่น
สำหรับบริษัทที่ต้องทำงานที่บ้าน
จะมีข้อแตกต่างเล็กน้อย เพราะสุดท้ายตัวงานก็ต้องทำเหมือนๆกัน เช่น
- จะต้องใช้ เครื่องมือผ่านออนไลน์ เยอะกว่า เพื่อการสื่อสารระหว่างทำงาน เช่น การใช้ Discord หรือถ้าเป็นทางการหน่อยจะเป็นพวก Slack, Teams และอื่นๆ
- การ เช็คอีเมลรายวัน จะมีความสำคัญมากขึ้น เพราะอาจจะมีงานที่ได้รับมอบหมาย หรือสื่อสารรายละเอียดอื่นๆ
- เมื่อต้องช่วยเหลือเพื่อนร่วมงานที่ต่างก็ทำงานที่บ้าน จะต้องใช้เครื่องมือ Remote Desktop เพิ่มเติม เช่น TeamViewer, Chrome Remote Desktop และอื่นๆ
- การทำงานที่บ้าน อาจจะหมายถึงเรา ทำงานที่ใดก็ได้ ระหว่างเวลางานเราสามารถไปเที่ยวได้เช่นกัน แต่ก็ต้องสามารถติดต่อในเวลางานได้ตลอดเวลา และควรพกสัมภาระที่ครบถ้วนเพื่อใช้ในการพัฒนาโปรแกรม
- สามารถปรับสภาพแวดล้อมการทำงานของเราได้ เช่น แอร์หนาวก็ปิด ร้อนมากก็เปิดแอร์แรงๆ ไม่มีเพื่อนร่วมงานเดินเข้ามาคุยเป็นการรบกวน สามารถทำกับข้าวกินเองได้ ไปทำธุระให้คนอื่นในเวลางานได้
สำหรับงานประเภทฟรีแลนซ์
- ขั้นตอนการทำงานพัฒนาโปรแกรม จะไม่แตกต่างกับประเภทอื่น เพียงแต่เราอาจจะทำคนเดียวทั้งหมด
- เราอาจจะมีการ จ้างคนอื่น ต่อเพื่อช่วยเหลือบางส่วน เช่น การจ้างกราฟฟิคดีไซน์เนอร์ออกแบบหน้าโปรแกรม
- รายได้จะไม่มั่นคง หากไม่มีงานก็ไม่มีเงิน แต่บางคนอาจจะได้จากค่าดูแลระบบรายเดือนหรือรายปี ทำให้มีรายได้บางส่วนเป็นประจำได้
- เราจะต้องมี โปรไฟล์ที่ดี ระดับหนึ่ง โดยการสร้างความน่าเชื่อถือรูปแบบต่างๆ เช่น การทำตัวอย่างระบบที่เรามี ตัวอย่างลูกค้าที่ทำสำเร็จ ระดับการศึกษาของเรา ประสบการณ์ทำงานจริงของเรา
- ปกติแล้วก็มักจะ หางานตามในเว็บ ต่างๆ เช่น เว็บประกาศหางานฟรีแลนซ์ สังคมออนไลน์ที่มีคนถามหาจ้างให้พัฒนาระบบ
- ถ้าเรามีญาติ มีคนรู้จัก มี Connection ที่ดี ก็จะสามารถหางานได้จากรอบตัวแทนได้ เช่น เราเคยทำระบบหนึ่งให้บริษัทใช้งาน เจ้าของบริษัทอาจจะมีการบอกต่อแก่ผู้อื่นที่ต้องการเหมือนกันได้
- เรามักจะต้อง ทำความรู้จักกับคนใหม่ๆ เสมอ ต่างกับทำงานในบริษัทที่จะต้องพบเจอกับคนเดิมๆ
- ปัญหา ของการทำงานฟรีแลนซ์ จะเหมือนกับเราเป็นเจ้านายบริษัท ที่จะรับเหมาสร้างโปรแกรมขนาดใหญ่หรือเล็กก็ตาม อาจจะมีปัญหาการไม่จ่ายเงินครบถ้วน หรือยกเลิกงานกลางคันได้
- การคิดมูลค่าของงานแล้วแต่ ความพอใจ ส่วนมากจะมีคำแนะนำว่าถ้าเราคาดหวังเงินเดือนเท่าไหร่ ให้คิดตามเวลางานเท่านั้น เช่น คาดหวังเงินเดือน 30,000 บาท ถ้าเราใช้เวลาทำโปรเจกต์ 15 วัน อาจจะคิดราคา 15,000 บาท แต่ทั้งนี้ก็อาจจะมีปัจจัยอื่นๆด้วย เช่น ค่าเช่าบริการออนไลน์
บทสรุป
ไม่ว่าเราจะเป็นโปรแกรมเมอร์ประเภทไหน ล้วนก็ต้องทำงานหน้าคอม เขียนโค้ด ออกแบบระบบ พัฒนาโปรแกรม และทดสอบระบบของเรา แต่บางงานอาจจะมีข้อแตกต่างกันไป เพราะงานโปรแกรมเมอร์นั้นคือการเพิ่มความสะดวกสบายแก่อาชีพอื่นๆ ที่โปรแกรมเราก็จะมีกลไกทำงานต่างกันไป
- Tags:
- programmer
- หน้าที่โปรแกรมเมอร์
- โปรแกรมเมอร์
- การทำงาน
- ภารกิจประจำวัน
- งานโปรแกรมเมอร์
- ชีวิตการทำงาน
- บทบาทโปรแกรมเมอร์
- programmer-tasks
- daily-programmer-tasks
- programmer-responsibilities
- what-programmers-do
- work-duties
- programming-career
- programmer-job
- งานประจำวันโปรแกรมเมอร์
- โปรแกรมเมอร์ในองค์กร
- ทำงานอย่างไร
- programmer-duties
- software-developer
- developer-workday
- โปรแกรมเมอร์ประจำวัน
- การเขียนโค้ด
- coding-daily-life
- developer-tasks