หลังจากที่ทางคณะเทคโนโลยีสารสนเทศ ได้มีการจัด Programming BootCamp ก็เลยอยากจะมาขีดๆเขียนๆ
เล่าประสบการณ์ และ วิธีการคร่าวๆในค่าย
เริ่มจาก BootCamp นี่มีทั้งหมด 4 คืน 5 วัน ตั้งแต่วันที่ 29 – 2 มิย 58
โดยเราจะมีเวลาทำโปรเจ็ค 48 ชั่วโมง (จัดการเวลานอนเอง)
โดยกลุ่มที่แบ่งในค่ายครั้งนี้อาจาร์ยว่าเกิดจากการ Random แต่เห้ยยย ทำไมชื่อแรกๆกลุ่มแรกๆ มีแต่คนที่ได้เกรดวิชา programming ระดับดีๆ
แต่ภายหลังเมื่อได้พูดคุยกับ 1 ในคนจัดงาน ทำให้เข้าใจว่า จริงๆแล้วการตัดสินจะใช้การแบ่งกลุ่มย่อยๆอยู่แล้ว และ เพื่อแก้ปัญหาหากเป็นการ random จริงๆ
อาจส่งผลให้คนที่ไม่ค่อยจะได้ในทีมอาจไม่ได้ทำงาน จึงใช้วิธีนี้เพื่อผลักให้ทุกทีม ทุกคนพยายามไปด้วยกัน
และนั้นละครับ ผลที่ออกมาเหมือนฟลุ๊ค ทันทีที่ประกาศรายชื่อทีมออกมา ถึงกับนั่งไม่ติด
เนื่องจากสมาชิกในทีมล้วนเป็นคนที่มีความสามารถระดับต้นๆของรุ่น + กับรุ่นพี่ที่เป็นคนดูแลดันเป็นเทพ!!
ทันใดนั้นก็เกิดคำถามขึ้นในใจ ?? ถ้าแพ้จะทำยังไง . . ? กดดันสิครับ !!
ไหนๆ ก็ไหนๆ จึงได้โพสตัสลงในเฟส เพื่อเป็นการกดดันตัวเองเพิ่มขึ้นอีกหน่อย
วันที่ 1 และ วันที่ 2 จะเป็นการอบรมให้ความรู้ในด้านต่างๆ ดังนี้
เรียกได้ว่าจัดเต็ม ครบทุกด้าน ตั้งแต่ Front-end ไปจนถึง Back-end
แต่เป็นเรื่องน่าเสียดาย เนื่องจากวันที่ 2 จำเป็นจะต้องเดินทางไปเข้าอบรมอีกโครงการหนึ่ง จึงต้องแอบโดดค่ายออกมา
ทำให้ต้องเลือกเข้าอบรมเฉพาะ JSP ซึ่งไม่คิดว่า เวลาแค่ 6 ชั่วโมง กว่าๆ สามารถทำให้เห็นภาพรวมของ JSP ได้ขนาดนี้ กราบบบบบ Aj.pichet
พอตกเย็นวันที่สองต้องรีบเดินทางกลับมาเข้าค่าย เพื่อรอฟังประกาศธีมในการแข่งขันครั้งนี้
โดยธีมในปีนี้คือ alumni หรือ ศิษย์เก่า
ถึงกับสตั๊นไป 3.12 วิ . . .
เอาละสิ๊ จะทำยังไง จะทำยังไง บวก กับตอนนั้นพึ่งกลับจากการอบรมธุรกิจ สมองนี่มึนไปหมด
และหัวข้อโปรเจ็คต้องเสร็จภายใน 3 ชั่วโมง เอาละสิครับ
หลังจากที่ได้ลองปล่อยให้เพื่อนได้ ปล่อยไอเดียกันออกมา จึงได้ลองเสนอไอเดียหนึ่ง
ในก็คือ ส่งต่อหนังสือจากรุ่นพี่สู่รุ่นน้อง
เมื่อได้คุยๆกัน ทุกคนชอบ และเห็นด้วย จึงได้ลองเอาไอเดียไปปรึกษารุ่นพี่
ก็ได้พบกับคำถามหนึ่งกลับมา “จะเช็คว่ารับหนังสือซ้ำได้มั้ย” เป็นคำถามสั้นๆ แต่กระบวนการมันไม่สั้นเลย
ทำให้เราต้องมานั่งคิดว่า จะเช็คยังไง ?? จึงได้ว่าเลข ISBN ไง แต่เอ้ะจะเอาเลขนี่มาได้ยังไง
รุ่นพี่จะอัพหนังสือ จะต้องกรอกข้อมูลทุกอย่างเองหรอ มันก็ดูไม่ใช่ปะ
พอลองหาฐานข้อมูลหนังสือไทย พร้อมเลข ISBN ก็ไม่เจอเฉย Y_Y
จึงได้เกิดไอเดียว่า เห้ย เมื่อ opendata มันไม่มีก็สายดำสิ๊ครับ
จึงได้ลองจัดการเขียน BOT ไปดูดข้อมูลหนังสือมาจากที่ที่หนึ่ง
ทำให้ในค่ายเราสามารถมีหนังสือในระบบมากกว่า 800 เล่ม โดยใช้เวลารัน bot ไปดูดมาไม่ถึง 5 นาที :3
และอีกเรื่องที่ยากสำหรับงานนี้
นั้นก็คือจะทำยังไงให้ทุกคนในทีมได้ทำงานทุกคน จะแบ่งงานยังไง ขอบเขตรับผิดชอบยังไง และเรื่องพวกนี้ยังเป็นส่วนสำคัญ
ในการคิดว่าจะเอา function อะไรบ้าง ถ้าเอาแต่ละ function จะต้องใช้เวลาเท่าไหร่ แบ่งงานกันยังไงแต่ละ function
นี่คือสิ่งที่ต้องคิดภายในไม่กี่นาที ต้องตัดสินใจเลือกหรือตัด function ต่างๆ ให้สามารถสรุปออกมาเป็น project ได้
และนี่คือสิ่งที่ได้หลังจากที่ได้นั่งคิด จนมีเพื่อนทักว่า “คิดอะไรอยู่ ดูเครียดๆ”
ปิ๊งงง ออกมาแว้วว
function bootsharing
- login
- ลงหนังสือที่อยากส่งต่อให้น้อง
- ค้นหาหนังสือ
- จองหนังสือ
- เก็บสถิติการแลกเปลี่ยน
- ห้ามจองซ้ำ
พอมองคร่าวๆก็อาจจะ เอ๊ะ มันดูธรรมดาไปหรือปล่าว
แต่สิ่งที่ปรากฏคือทุก function ที่เลือกมาทำเกิดจากเหตุผลเพียงข้อเดียวว่า “อยากให้เพื่อนทุกคนในกลุ่มสามารถช่วยกันทำได้”
แต่ถ้าจะทำแค่นี้ ต้องพรีเซ็นตัดสิน อาจทำให้ไม่ได้รางวัลก็เป็นได้ อาจจะดูเฉยๆไป
จึงได้แบ่งเวลาไปแอบเขียนสิ่งที่น่าจะช่วยให้ดึงดูดตากรรมการได้นิ๊ดนึง
นั้นก็คืออออ
- login ด้วย facebook ช่วยเพิ่มความสะดวกในการใช้งาน และ เพิ่มความ WOW
- login ด้วยรหัสนักศึกษาโดยไม่จำเป็นต้องลงทะเบียนในระบบเราก่อน สิ่งที่เลือกมาทำเนื่องจากสองเหตุผล 1. จะทำยังไงให้เราสามารถยืนยันตัวว่าเป็นศิษย์เก่าหรือศิษย์ปัจจุบันได้อย่างอัตโนมัส ไม่ต้องมี admin มาค่อยจัดการทีหลัง และ 2. ช่วยเพิ่มความ WOW เนื่องจากรหัสที่ล็อกอินเป็นรหัสที่ล็อกอินเข้าระบบของมหาลัยจริงๆ
- Bot ข้อมูลหนังสือ จะให้มาเพิ่มข้อมูลเอง ก็ดูจะไม่ WOW พอเลยได้แบ่งเวลาไปเขียน bot เพื่อให้ไป dump ข้อมูลหนังสือออกมาปัจจุบันมีใน Database ประมาณ 800 เล่ม
- ค้นหาหนังสือด้วย autocomplete จะให้มานั่งค้นหาหนังสือแบบปกติก็ดูเฉยๆไป เลยหยิบ ajax + jquery มาทำ autocomplete เพิ่มความ WOW
- responsive เพื่อป้องกันพังตอนใช้พรีเซ็น และ โชว์ในรูปแบบจอต่างๆกันไป
และนั้นละครับ เป็นโจทย์ที่แมกจะต้องจัดการว่า จะทำยังไงให้เราสามารถทำสิ่งที่อยู่ข้างต้นได้ออกมาสำเร็จในเวลาที่จำกัดมากๆ
เพียง 2 วัน !! ต้องขอบคุณเพื่อนร่วมทีม ที่ทุกคนไว้ใจแมก ยินดีที่จะช่วยและทุ่มเทไปกับมันอย่างเต็มที่
สรุปสิ่งต่างๆที่ใช้ในครั้งนี้
- html5+css3+bootstrap เพื่อจัดหน้าเว็บให้ออกมาเป็น responsive
- PHP Codeigniter เพื่อให้สามารถจัดการในรูปแบบ MVC เพื่อให้สามารถทำงานร่วมกันได้ง่าย
- Git เก็บโค้ดเวอร์ชั่นต่างๆ
- jquery + ajax ในการทำลูกเล่นต่างๆให้ WOW
สรุปสิ่งที่มีในการทำโปรเจ็ค 48 ชั่วโมงครั้งนี้
- ออกแบบ function ให้เหมาะสมกับเวลา
- คำนวณเวลาในการทำแต่ละ function พร้อมกับคิดว่าใครจะทำอะไร ใช้เวลาประมาณเท่าไหร่
- คิดว่าอะไรคือสิ่งที่จะช่วยให้ดึงดูดกรรมการ
- ลุยยย เต็มทีกับมัน !!
และนั้นละครับ กลุ่ม 10 We are the champions
We are the champions
BookSharing
โปรเจ็ค 48 ชั่วโมงจากค่าย Programming BootCamp @SIT KMUTT
ขอบคุณทุกคนมากครับ
Ima8.
03/06/2558