17 มกราคม, 2558

[Review] คอร์ส Android Developer by TheCheeseFactory (nuuneoi.com)





คะแนนของคอร์ส ดูภาพรวมให้ (★★★★☆)
แต่ถ้าความประทับใจส่วนตัวให้ (★★★★★)

เดี๋ยวบอกเหตุผลข้างล่าง

เมื่ออาทิตย์ที่ผ่านมา ได้มีโอกาสไปเข้าคอร์ส Android Developer by The Cheese Factory (nuuneoi.com) มา ... เลยจะเอามารีวิวซะหน่อย




สถานที่เรียน

ครั้งนี้จัดที่ Hubba เอกมัย ซึ่งเป็น Co-Working Space ประมาณว่าพื้นที่/ออฟฟิศให้เช่ามานั่งทำงานนั่นแหละ


โดยรวมก็น่านั่งดี บรรยากาศร่มรื่น เป็นบ้านเดี่ยวสองชั้น ภาพห้องเรียนดูจากรูปถ่ายทั้งคลาสข้างบนได้เลย ถอดรองเท้าด้านนอก (ชอบตรงนี้แหละ) มีสวนเอาไว้นั่งกินข้าวได้ที่หลังบ้าน

แต่ข้อเสียที่เห็นชัดที่สุด (ไม่นับราคาค่าใช้สถานที่นะ) คือมันไกลจาก BTS มากๆๆๆๆ

กะ .. ไกล!

จากรูปนี่คือแค่ระยะทางจากปากซอยก็ไกลพอสมควรแล้วนะ เดินไป BTS เอกมัยไกลกว่าอีก และเรียกรถไม่ค่อยได้ด้วย

รู้สึกว่ารุ่นต่อๆ ไปพี่่เนยเขาจะย้ายไปสอนที่โรงแรมเอเชียแทนแล้วล่ะ แต่ยังไงเช็กกับเว็บต้นทางด้วยนะ เพราะน่าจะเปลี่ยนที่ไปเรื่อยๆ

Welcome to the Class!

สภาพห้องเรียนดูจากรูปด้านบนได้เลย โต๊ะเล็กไปซะหน่อย ส่วนรูปข้างล่างนี่เป็นมุมมองของเราเวลานั่งดูกระดานกับสไลด์ละนะ นั่งกันแถวหน้าสุดเลย (ฮา)

เอ้า! เปิดสกิลเสมียนเลเวล96 ... พิมพ์เข้า! พิมพ์ๆ แกรกๆๆๆๆ

แล้วคอร์สนี้เป็นยังไงบ้าง?

ตามชื่อคอร์สละนะ แน่นอนว่าคอร์สนี้สอนเขียนแอนดรอยด์แอพอยู่แล้ว เป็นการเขียนแอพแบบ Native นะ ใครคิดจะเขียนเกมจะไม่เหมาะกับคอร์สนี้ พวกนั้นพี่เนยแนะนำให้ไปใช้ Unity ดีกว่า

ตัวแอพเขียนด้วย Android Studio (มาถึงยุคที่เราจะบอกลา Eclipse กันแล้วนะ) และรันเทสบนเครื่องจริง ใครไม่มีมือถือแอนดรอยด์สามารถยืมได้ในคลาส .. แต่โน๊ตบุ๊คต้องเอาไปเองนะ


ในคอร์สนี้เราจะได้เอกสารเป็นสไลด์หนาครึ่งรีม (หนามาก เกือบ200หน้าเห็นจะได้ O__O) สรุปโค้ดแบบ "Cheese-Sheet" 1เล่ม และประกาศนียบัตร1ใบ หึหึ

แล้วคอร์สนี้มันดียังไงล่ะ

ปกติแล้วคอร์สสอนอะไรขั้น Advance ในประเทศไทยมักจะหาไม่ค่อยได้ (ไม่ใช่แค่ด้านโปรแกรมมิ่งนะ จะคอร์สเรียนภาษาหรืออะไรพวกนี้ ไม่มีคนเปิดสอนเลย) ดังนั้นส่วนใหญ่เลยถือคติว่า "อยากได้ต้องทำเอง" และมันใช้เวลานานมากกว่าจะได้มา หมายความว่าต้องอ่านเอง Googleเอง ลองผิดลองถูกเอง ... แอนดรอยด์ก็เช่นกัน

แต่พอคอร์สนี้เปิดเท่านั้นแหละ เราก็จะไม่รอช้าที่จะสมัครมาลองเรียนดู

สาเหตุเพราะพี่เนยเป็นคนที่ฝ่าฟันกับเจ้าแอนดรอยด์มาตั้งแต่รุ่นแรกๆ ออกมาเลย ดังนั้นเขาจะเป็นคนที่รู้ค่อนข้างดีว่าสมัยก่อนเขาทำกันยังไง รู้วิธีที่ดีที่สุดสำหรับแอพส่วนใหญ่ว่าควรจะเขียนอย่างไร (เจ็บมาเยอะแล้ว)

09 มกราคม, 2558

[แปล] ภาษาและเฟรมเวิร์คไหนบ้างที่ Developer ควรจะศึกษาประจำปี 2015


พอดีไปอ่าน The Languages And Frameworks That You Should Learn In 2015มาก็เลยเอามาแปลและเรียบเรียงใหม่ อาจจะไม่เหมือนต้นฉบับมากนักนะ

Language / Platforms 

สำหรับภาษาโปรแกรมปีนี้น่าจะเป็นปีของ Node.js ที่มาแรงมากจนทิ้งห่างจาก php ที่เป็นอันดับ2ไปเลย JavaScript ก็ยังคงอยู่ในลำดับต้นๆ แต่มี Swift เพิ่มเข้ามาในอันดับต่อไป

Framework

Laravel ยังคงอยู่แต่มี Ruby on Rails แซงไปพร้อมกับการที่กูเกิลเปิดตัว(นานแล้ว)และโปรโมท Angular JS ทำให้มันเป็นสิ่งที่น่าจับตามองนะ

มาดูตัวสำคัญๆ กัน

JavaScript

ตอนนี้เราสามารถพบเห็น JS ได้เกือบทุกที่จากสมัยก่อนที่มันทำงานอยู่แค่เบราเซอร์ฝั่ง client แต่หลังจากที่ Node.js เปิดตัวมามันก็แสดงให้เห็นว่า JS เอาไปเขียนในฝั่ง Serverได้ด้วยนะ
ข้อดีของ JS คือมันเป็นภาษาที่เขียนได้ง่ายทำให้เรียนรู้ได้เร็ว แต่ข้อเสียคือมันเขียนได้ง่ายเกินไป บางครั้งก็ทำให้กลายเป็นเรื่องยุ่งยากได้ และการที่มันยังไม่มีคำสั่งในการสร้าง Class แบบจริงจังก็ทำให้มันเขียน OOP ได้ไม่ค่อนถนัดเท่าไหร่นัก ... แต่อย่างว่า มันกระจายตัวไปทุกที่แล้วดังนั้นก็เป็นตัวเลือกที่ควรจะเรียนรู้ไว้

AngularJS

JS Framework (เห็นมั้ยว่าเป็น JS อีกแล้ว)  เอาไว้ทำ interactive website ซึ่งทำและสนับสนุนโดย Google ล่าสุดทำคอร์สติวเตอร์ให้ด้วย เข้าไปดูได้ทาง shaping up with angular.js
จุดเด่นของ Angular คือเน้นความสนใจไปที่ข้อมูลContentในหน้าก่อนจะไปสนใจ DOM ถ้าใครเคยเขียน jQuery หรือแม้แต่ JS แบบดั้งเดิม การเขียนแบบนั้นจะเป็นการเขียนในลักษณะของ "How!" คือวางDOMให้เสร็จแล้วค่อยบอกว่าจะให้มันทำอะไรยังไง
แต่ถ้าเป็น Angular ละก็จะใช้วิธีวางข้อมูลก่อน แล้วค่อยจัดการ DOM ข้อดีคือเราไม่ต้องไปบอกว่าจะให้ทำอะไรยังไงละเอียดเท่าพวก jQuery ดูเป็น Framework มากกว่า แต่ต้องจำคำสั่งและ config ให้ถูกด้วยนะ
แล้วถามว่ามันดีกว่า jQuery มั้ย? อันนี้ก็ต้องบอกว่าแล้วแต่ชอบ แต่ Angular น่าจะให้งานได้เร็วกว่า jQuery เพราะมันแทบจะไม่ต้องเขียนโปรแกรมส่วนที่เป็น logicเลย ตัว Frameworkจ ัดการให้หมดแล้ว เราแค่เซ็ตค่าคำสั่งให้ถูกก็พอ แต่ข้อเสียคือถ้าเป็นโปรแกรมที่ซับซ้อน jQuery น่าจะยังได้เปรียบกว่า

React

เป็น JS Library อีกตัวที่น่าสนใจสำหรับสร้าง user interface โดย Facebook + Instagram ถ้ารูปจักโครงสร้างแบบ MVC แล้วละก็ การอธิบายว่า React คือ V น่าจะเข้าใจได้ง่ายกว่า
การเขียน React จะเขียนอยู่ใน <script type="text/jsx"> ซึ่งแน่นอนว่ามันไม่ใช่ JS เพียวๆ แต่เป็น JS ที่เราสามารถใส่ view (ในรูปของ XML + HTML เข้าไปได้เลย)
ลองไปดูตัวอย่างได้ที่ React

Node.js

สร้าง network server application ด้วย JS ซึ่งตอนนี้มี framework ออกมาให้ใช้เยอะมากตั้งแต่ Express, websocket การลงโมดูลใหม่ก็ทำได้ง่ายผ่านการใช้งาน npm
Node.js ใช้ JS ดังนั้นมันเลยทำงานแบบ asyncronous ซึ่งทำให้เวลาได้รับ request มาแต่ละตัวจะไม่จำเป็นต้องรอกัน

NoSQL Database

ฐานข้อมูลแบบ Relational แบบเดิมที่เดิมข้อมูลเป็นตารางอาจจะไม่ตอบโจทย์รูปแบบข้อมูลตอนนี้ได้แล้ว Not Only SQL จึงเกิดขึ้นมารองรับแทน และเสริมด้วยการที่พวกมันทำ Scalable ได้ด้วย
ตัวที่เด่นๆ ก็มี mongoDB (document) กับ redis (key-value)

Less / Sass / Stylus

ฝั่ง script มีการพัฒนากันไปไกลแล้ว ด้านฝั่ง css เลยทำบ้าง (ทำมานานแล้วแหละนะ) เพื่อทำให้เขียน css ได้ง่ายและสั้นขึ้น อีกทั้งยังใช้พวกตัวแปรได้ด้วย แต่ส่วนใหญ่เวลาเอาไปใช้จริงจะ compile ออกมาเป็นไฟล์ css อยู่ดีนะ

Classic Full-Stack Framework

เฟรมเวิร์คระดับคลาสสิกที่ก็ยังใช้ได้อยู่ ไม่ได้ล้าสมัยแต่อย่างใด เช่นพวก Laravel (php), Ruby on Rails (Ruby), ASP.NET


แล้วก็อย่าลืมพวก php, Wordpress, jQuery ด้วยนะ พวกนี้เป็นวิธีที่ค่อนข้าง perfect ในการสร้างเว็บไซท์

โดยเฉพาะ Wordpress ที่โตอย่างรวดเร็วมากในช่วงที่ผ่านมา