ใช้ RVM จัดการ Environment สำหรับการเขียน Ruby

ในการพัฒนา Ruby แอพพลิเคชั่นแต่ละโปรเจค เราจะใช้ไลบรารี่หรือสภาพแวดล้อมในการพัฒนา (development environment) ที่แตกต่างกัน อีกทั้งเวอร์ชั่นของ Ruby ที่อาจจะแตกต่างกันด้วย ตัวช่วยที่ทำให้เราสามารถพัฒนาแอพพลิเคชั่นต่างๆ กันบนเครื่องของเราเครื่องเดียวได้นั้นคือ Ruby Version Manger (RVM)

การเขียน Git Commit Message

การเขียน commit message นั้นสำคัญมาก เพราะว่ามันเป็นอีกช่องทางการสื่อสารหนึ่งระหว่างโปรแกรมเมอร์ด้วยกัน และยังเป็นช่องทางที่ดีที่สุดในการบอก context ของการแก้โค้ดนั้นๆ อีกด้วย การเขียน commit message นั้น ควรจะเป็นข้อตกลงของทีม เป็นสิ่งที่ทุกคนควรจะร่วมแรงร่วมใจกันทำนะครับ

Read more 2 Comments

มาเขียน Unit Test ใน Python กัน

แนวคิดการเขียนโค้ดเพื่อทดสอบโค้ดของเรานั้นอาจจะไม่ใช่แนวคิดที่ใหม่แต่อย่างใด แต่การเขียนโค้ดเพื่อทดสอบ “ก่อน” เขียนโค้ด (Test-Driven Development หรือ TDD) ยังคงเป็นเรื่องใหม่สำหรับหลายๆ คน ปัญหาหลักอีกอย่างหนึ่งก็คงเป็นเพราะเราไม่รู้ว่าจะเริ่มต้นเขียนอย่างไร เราจะมาเริ่มต้นเขียนโค้ดเพื่อทดสอบ และเขียน “ก่อน” ที่เราจะเขียนโค้ดเพื่อทำงานจริงๆ กันโดยใช้ Python ในบทความนี้

Soft Skill คืออะไร ?

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

Soft Skill ก็คือ ความรู้และทักษะความชำนาญที่ไม่เกี่ยวโดยตรงกับสายงาน แต่เป็นตัวช่วยหนุนให้การทำงานดีขึ้น ดีมากขึ้น จนถึงยอดเยี่ยม

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

สมรรถนะด้านเก่งงาน (Work Related Competency)
สมรรถนะด้านเก่งคน (People Management Competency)

ด้านบริหารตนเอง-บริหารเวลา จัดการตนเอง จูงใจตนเอง ความมั่นใจในตนเอง เชาวน์อารมณ์
ด้านทำงานร่วมกับคนอื่น-การจูงใจ การบริหารทีมงาน การสื่อสาร การนำเสนอ การจัดการข้อโต้แย้ง การบริหารคนดื้อ การจัดการการเปลี่ยนแปลง เป็นต้น

การบริหารตนเอง

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

การบริหารเวลา

เราชาวไอทีก็มีโปรแกรมที่บริหารมากมาย อย่างเช่น Microsoft Project , Todo List , Trello ถ้าจะให้ลิสต์ออกมาคงไม่ต่ำกว่า 50 ตัว ข้ออ้างในการบริหารเวลาไม่ดีที่มักจะได้ยินบ่อยๆคือ รถติด บ้านไกล ถ้านักบริหารได้ยินคำเหล่านี้เขาไม่สนใจปัญหาเหล่านั้นและไม่ได้อยากได้ยินมันบ่อยๆหรอก เพราะนั่นหมายถึงคุณไม่มีความสามารถในการบริหารแม้กระทั่งตัวคุณเองถ้าไม่ได้เกิดเพราะเหตุสุดวิสัยจริงๆ ถ้าคุณมาทำงานสายทุกวันแล้วบอกว่าบ้านไกล รถติด คุณต้องเดินทางโดยรถเมล์ คุณก็ต้องประเมินเวลารถเมล์เที่ยวแรกได้ว่าออกกี่โมง ใช้ระยะเวลาเท่าไรถึงออฟฟิศ ถ้าครั้งแรกสาย คุณก็ต้องปรับปรุงประเมินเวลาใหม่สิ ถ้ายังสายตลอดแสดงว่าคุณไม่ได้มีการพัฒนาอะไรขึ้นเลย แล้วใครจะกล้าเชื่อมั่นกับเวลาที่คุณสัญญากับงานต่างๆของคุณ มันก็แสดงว่าคุณไม่ให้ความสำคัญ สำหรับชาวต่างประเทศเรื่องการรักษาเวลาเป็นเรื่องใหญ่มาก ทุกคนมีเวลา 24 ชม.เท่ากัน การที่คุณไม่รักษาเวลาคนอื่นนั่นหมายความว่าคุณไม่ให้ความสำคัญเขา เป็นการดูถูกความสำคัญเวลาของคนอื่น ทำให้เวลาของเขาเสียไปโดยปล่าวประโยชน์ ฉะนั้นไม่ว่าอาชีพไหนๆการบริหารเวลาเป็นการฝึกพัฒนาตนเองที่สำคัญมาก ใครสนใจเรื่องการบริหารเวลาในการทำงานลองศึกษาเรื่อง GTD (Get things done) http://gettingthingsdone.

Read more 1 Comment

พื้นฐาน JavaScript ตอนที่ 1

การพัฒนา และสร้างเว็บเพจ มีหัวใจหลักอยู่ด้วยกัน 3 ส่วน คือ HTML, CSS และ JavaScript โดย HTML เป็นส่วนโครงสร้างหลักของเว็บเพจ CSS ใช้เพื่อปรับแต่งหน้าตาของเว็บเพจให้สวยงาม ส่วน JavaScript ใช้เพิ่มแต่งเติมลูกเล่นในการแสดงผลบนเว็บเพจ เช่น คลิกเมาส์ การตรวจสอบการกรอกข้อมูลในฟอร์ม การเลื่อนหน้าจออัตโนมัติตามเวลาที่กำหนด ฯลฯ
JavaScript เป็น Script Language
สิ่งแรกที่เราต้องทราบเกี่ยวกับ JavaScript คือ เป็นภาษาคอมพิวเตอร์ที่เขียนลงบนเว็บเพจ โดย Web Browser จะเป็นผู้อ่านโค๊ตและตีความหมาย แล้วจึงแสดงผลออกบนหน้าจอ จะเห็นได้ว่า JavaScript จะต้องอาศัย Web Browser จึงไม่สามารถเขียนโปรแกรมแยกเป็นอิสระได้ เช่น ไม่สามารถเข้าถึงฐานข้อมูลได้โดยตรง หรือไม่สามารถเข้าใช้งานฮาร์ดแวร์ต่างๆ เช่น USB, CD-Rom เป็นต้น
JavaScript เป็น Client Side Script ซึ่งหมายความว่ามีการแปลโค๊ตในฝั่งของ Client ซึ่งหมายความว่า หากเราเขียนโค๊ต JavaScript เราก็สามารถใช้เครื่องคอมพิวเตอร์ของเราแสดงผลลัพธ์ได้นั้นเอง แต่ก็มีข้อยกเว้น คือ Node.

PHP กับ OOP มาปูพื้นฐานกันเสียใหม่ก่อน

วันนี้จะมาคุยถึงเรื่อง Object-oriented programming (OOP) ในภาษา PHP กันซะพอหอมปากหอมคอ

ก่อนอื่นนั้น เท่าที่สังเกตุส่วนมาก Developers สมัยนี้แทบจะเรียกว่า เขียนโปรแกรมแบบ OOP “เป็น” กันหมดแล้ว เพราะว่าสมัยนี้ Framework หรือว่า Components ต่างๆ นั้นถูกผลิตมาแบบ OOP เป็นเสียส่วนใหญ่ จริงๆ ก็เรียกได้ว่า แทบจะ 100% เลยทีเดียว ทั้ง Yii, CI, Zend, etc.