Code Mania 11: Raise the Bar

งานใหญ่สำหรับชาวโปรแกรมเมอร์ไทยครั้งแรกของปีนี้! จัดเป็นครั้งที่ 3 แล้ว มีคอนเซปคือ Raise the Bar โดยสมาคมโปรแกรมเมอร์ไทย ซึ่งตอนนี้ทีมงานเค้าได้จดทะเบียนใช้ชื่อสมาคมอย่างเป็นทางการเป็นที่เรียบร้อย แล้วก็มาเปิดตัวในงานนี้ด้วย มีวัตถุประสงค์หล่อๆ ตามนี้

  1. พัฒนาทักษะ
  2. สร้างเครือข่าย
  3. ยกระดับภาพลักษณ์
  4. ช่วยเหลือนักพัฒนาและผู้ว่าจ้าง
  5. สร้างพื้นที่และโอกาสใหม่ๆ
  6. สนับสนุนและจัดกิจกรรม

ถือว่าเป็นข่าวดีสำหรับวงการโปรแกรมเมอร์เมืองไทยเลยนะ สู้ๆ นะครับ ร่วมกันพัฒนาวงการนี้ไปด้วยกัน 🙂 ใครสนใจสมัครสมาชิกก็ติดต่อไปเลยนะครับ สมัครง่ายได้ผลประโยชน์เพียบ! จบช่วงโฆษณา.. ว่าแล้วก็เขียนบอกเล่าสิ่งที่ไปฟังมาบ้างดีกว่า ขอเขียนแค่บางประเด็นนะครับ ใครอยากฟังเต็มๆ คอยติดตาม Thai Programmer Network ทาง YouTube กันเอานะ ส่วนพวกสไลด์ต่างๆ ตามเก็บได้ที่ Code Mania 11 : Raise the bar

Continue reading "Code Mania 11: Raise the Bar"

เป้าหมายพัฒนาตัวเองในปี 2013

ปณิธาน 12 ข้อของปีนี้ ยกยอดบางข้อมาจากปีที่แล้วด้วยเพราะทำไม่สำเร็จ

  1. Learn Hadoop MapReduce.
    ปีนี้ขอศึกษา Hadoop และ MapReduce แบบจริงๆ จังๆ ต้อนรับ Big data 🙂
  2. Embrace the uncomfortable.
    ปีที่แล้วลองงดใช้เม้าส์ไป 1 เดือน ผลออกมาเป็นที่น่าพอใจ สามารถพิมพ์งานได้เร็วขึ้นด้วยเพราะไม่ต้องเอื้อมมือไปจับเม้าส์ แต่สำหรับปีนี้มีสิ่งที่อยากทำเพิ่มคือ เลิกใช้ gedit ไปเลย แล้วใช้ vim แทน!
  3. Publish at least one paper in an international conference.
    ขออย่างน้อยสัก 1 งานตีพิมพ์ เพื่อยังคงสถานะใน Academia ไว้
  4. Learn more mathematics.
    เพื่ออนาคตที่อยากจะเป็น Data scientist ที่ดีให้ได้ เรื่องที่จำเป็นต้องเรียนให้ถึงแก่นคือ Probability และ Statistics
  5. Learn more theory.
    ปีนี้จะเน้นทางด้าน Algorithms and data structures
  6. Learn a new programming language.
    ปีที่แล้วเรียนภาษา Python ไป ปีนี้ขอ Ruby on Rails
  7. Complete a personal project.
    ผลต่อเนื่องมาจากข้อ 6 แน่นอนว่าคงใช้ Ruby on Rails พัฒนา
  8. Go analog.
    จะปั่นจักรยานให้มากขึ้น และจะลองทำกับข้าวอย่างน้อยสัก 1 อย่าง 🙂
  9. Stay healthy.
    เพราะโปรแกรมเมอร์ต้องมี Six Pack
  10. Read at least one fiction or autobiography book.
    ปีนี้จะอ่าน Obama: From Promise to Power ฉบับแปลไทยให้จบ! (น่าจะถือว่าเป็น autobiography?)
  11. Learn new software or tool.
    คงจะเกี่ยวกับ Data visualization ที่เล็งไว้คือ Tableau กับ D3
  12. Automate.
    จะพยายามใช้ cron ให้เป็นจริงๆ แล้วก็จะใช้ shell scripts ทำสิ่งต่างๆ ที่เราทำบ่อยๆ แทนเรา แล้วก็จะใช้ช่วยในการเขียนบทความต่างๆ

ซึ่งต้องขอบคุณท่าน อ. Matt Might อีกครั้งที่เป็นแรงบันดาลใจเสมอมา Orz

สรุปผลการพัฒนาตัวเองในปี 2012

อ้างอิงจากบล็อกที่เคยเขียนไว้ตอนต้นปี ที่ตั้งไว้จริงๆ แล้วจะเน้นแต่ละข้อเป็นเดือนๆ ไป แต่เนื่องจากทำได้ยาก ก็เลยสรุปรวมๆ กันทั้งปีแทนละกัน

  1. Go analog.
    ถือว่าผ่าน เพราะได้มีการออกไปวิ่ง ออกไปปั่นจักรยาน ดูหลักฐานได้ที่ MapMyRun กับ Endomondo ช่วงต้นปีใช้ MapMyRun แต่หลังๆ เปลี่ยนไปใช้ Endomondo แหละ รู้สึกเหมือนจะมีอะไรให้เล่นมากกว่า 🙂
  2. Stay healthy.
    ข้อนี้ต้องปรับปรุง น้ำหนักลดลงไปได้เล็กน้อย และไม่เคยไปตรวจสุขภาพเลย ถึงแม้ว่าจะไม่ค่อยป่วยก็เถอะ ถือว่าไม่ผ่าน
  3. Embrace the uncomfortable.
    ถือว่าผ่าน หยุดใช้เม้าส์ไป 1 เดือนเต็มๆ ช่วงแรกๆ มีปัญหาบ้าง แต่พอผ่านไปสัก 1 อาทิตย์จะเริ่มชิน ผลที่ได้จากการทำแบบนี้รู้สึกได้ว่าจะมีเม้าส์หรือไม่มีเม้าส์ก็ไม่เป็นปัญหาในการทำงานอีกต่อไป
  4. Learn a new programming language.
    ตามที่คิดไว้ว่าจะเรียน Python และก็ทำได้จริงๆ แม้ว่าจะไม่ลึกซึ้งมากก็ตาม มีหลักฐานแปะมาให้ดูด้วย
    Udacity Certificate on WAEรูปข้างบนเป็น Certificate จาก Udacity วิชา Web Application Engineering ใช้ Python เขียนCoursera Certificate on LTPและรูปข้างบนเป็น Certificate จาก Coursera วิชา Learn to Program: The Fundamentals ใช้ Python เขียนอีกเช่นกัน
  5. Automate.
    อันนี้ทำเป็นประจำอยู่แล้ว ใช้ Perl เขียน สบาย
  6. Learn more mathematics.
    กลับไปอ่าน Discrete mathematics ได้หน่อย อ่านพวก Bayesian inference เพิ่มเติม แม้ข้อนี้จะทำได้ไม่เต็มที่ แต่ก็ถือว่าผ่านนะ
  7. Focus on security.
    ใช้รหัสไม่ค่อยซ้ำกันแล้ว และเก็บไฟล์รหัสไว้ในเครื่อง Local ก็ถือว่าปลอดภัยในระดับหนึ่ง มีการใช้โปรแกรมล็อกโฟลเดอร์ ล็อกไฟล์บ้าง แต่ยังไม่ถึงกับใช้เป็นประจำ ข้อนี้ผ่าน
  8. Back up your data.
    ใช้ทั้ง svn และ git ในการสำรองข้อมูลและโค้ดต่างๆ ใช้ Dropbox เก็บไฟล์และแชร์ไฟล์ระหว่างเครื่อง อีกทั้งยังใช้ rsync สำรองข้อมูลพวกไฟล์หรือวีดีโอไว้ในฮาร์ดดิสสำรอง ทำให้ข้อนี้ผ่านฉลุย
  9. Learn more theory.
    ไม่ได้เรียนรู้ทฤษฎีอะไรใหม่เลย.. ข้อนี้ไม่ผ่าน
  10. Engage the arts and humanities.
    นิยายก็ซื้อมาอ่านบ้างไม่อ่านบ้าง เพลงก็ลองฟังแนวใหม่ๆ ดู ก็โอเคนะ ถือว่าทำ
  11. Learn new software.
    ข้อนี้ถือว่าไม่ผ่านก็แล้วกัน เพราะไม่ได้ลองโปรแกรมที่แปลกใหม่จริงๆ สำหรับตัวเอง
  12. Complete a personal project.
    เนื่องจากลงเรียนวิชา Web Development ของ Udacity ไป ทำให้ได้โปรเจคง่ายๆ ที่เป็นส่วนตัวจริงๆ มา นั่นก็คือ MISCmarks ซึ่งเป็นที่ๆ ผมเอาไว้เก็บลิงค์ไปยังเว็บหรือบทความที่ชอบ ใช้ Python เขียน แล้วก็โฮสต์ไว้บน Google App Engine ส่วนโค้ดก็อยู่ที่ GitHub

จาก 12 ข้อ ทำไปได้ 9 ข้อ คิดเป็น 75% เกินครึ่ง ปีหน้าจะตั้งใหม่อีก 12 ข้อ แล้วก็จะพยายามทำให้ได้ครบทุกข้อ 🙂

เป้าหมายพัฒนาตัวเองในปี 2012 นี้

ได้ไปอ่าน 12 resolutions for programmers ของท่าน Matthew Might (@mattmight) มา แล้วก็รู้สึกว่าปีที่ผ่านๆ มาไม่ได้พัฒนาตัวเองเท่าไหร่ในการเป็นโปรแกรมเมอร์สักเท่าไหร่ ปีนี้เลยต้องเอาสักหน่อย ขอทำตามปณิธาน 12 ข้อนั้นเลยละกัน 🙂

  1. Go analog.
    นอกเหนือจากนั่งอยู่หน้าคอมแล้ว ก็ให้ไปลองทำกิจกรรมอย่างอื่นดูบ้าง เช่น ทำอาหาร หรือวิ่งออกกำลังกาย
  2. Stay healthy.
    ลองไปตรวจตรวจพวกความดัน คอเลสเตอรอล น้ำตาลในเลือด ฝึกตัวเองให้นั่งในท่าที่ถูกสุขลักษณะ และลดน้ำหนัก!
  3. Embrace the uncomfortable.
    ชีวิตเราสุขสบายเกินไป ก็ให้ลองทำสิ่งที่ไม่สบายดู เป็นการฝึกอย่างหนึ่ง เช่น หยุดการใช้เม้าส์ หรืองดการใช้อินเตอร์เนทสักหนึ่งวันในหนึ่งอาทิตย์
  4. Learn a new programming language.
    เรียนรู้ภาษาโปรแกรมใหม่ๆ สัก 1 เดือน กำลังคิดอยู่ว่าจะลองภาษาอะไรดี ระหว่าง Python Haskell และ Scala ตอนนี้มี Python อยู่ในใจ
  5. Automate.
    เขียน shell script สำหรับสิ่งที่ต้องทำอยู่เป็นประจำ
  6. Learn more mathematics.
    "At its heart, computer science is a mathematical discipline." เห็นด้วยทุกประการครับ ว่าจะกลับไปทบทวนใหม่ คงเริ่มจาก Discrete mathematics  🙂
  7. Focus on security.
    ลองทำชีวิตให้ปลอดภัย (ทางด้านข้อมูลมากขึ้น) เช่น จัดการรหัสผ่านให้ดีกว่านี้ (ตอนนี้ยอมรับเลยว่าค่อนข้างแย่ เพราะใช้รหัสผ่านซ้ำๆ กันเกือบทุกเว็บ) และการเข้ารหัสไดร์ฟหรือโฟลเดอร์ไว้
  8. Back up your data.
    ใช้ version control หรือพวก cloud-based backup services ตอนนี้ผมใช้พวก Subversion ของภาค กับ Github สำหรับ version control และใช้ Dropbox สำหรับสำรองข้อมูล
  9. Learn more theory.
    ที่ผมอยากเรียนรู้มากขึ้นคือพวก Formal methods กับ Semantics
  10. Engage the arts and humanities.
    สำหรับปณิธานนี้ ผมคงหานิยายดีๆ หรืออัตชีวประวัติมาอ่าน แล้วก็คงลองฟังเพลงแนวใหม่ๆ
  11. Learn new software.
    ลองโปรแกรมใหม่ๆ ผมว่าจะลองพวก Augmented Reality 🙂
  12. Complete a personal project.
    ใช้เวลาสัก 1 เดือนทำ open source โปรเจคขึ้นมาสัก 1 โปรเจค แน่นอนผมคงนำ OpenCV มาใช้ด้วย

จริงๆ แล้วในแต่ละปณิธานมีหลายอย่างให้เลือกทำ อ. ท่านนี้ได้เสนอไว้ในบทความด้วย ลองติดตามไปอ่านกันดูนะครับ มีทั้งหมด 12 ข้อ ว่าจะเน้นหัวข้อนั้นๆ ในแต่ละเดือนไปจนครบ เพราะบางข้อสามารถทำร่วมกันได้

ก่อนจบบล็อกนี้ ผมขอแนะนำบทความดีๆ อีกเรื่องคือ What every computer science major should know สำหรับคนที่เรียนด้านคอมพิวเตอร์ครับ ควรอ่านกันทุกคน