2018 Year In Review: Summary

Chai Phonbopit
Jan 6 · 3 min read

ส่ิงที่ได้เรียนรู้

  • Modern JavaScript (ES2015/2016/2017+) : ก็คือเรียนรู้พวก Concept ต่างๆ Feature ใหม่ๆ ที่มี ทั้งที่ Browser รองรับ และยังต้องพึ่ง Babel (โดยเน้นพวก topic ที่รู้แบบ basic ให้เข้าใจแบบลึกมากขึ้น)
  • React : เป็นสิ่งที่ใช้เขียนในทุกๆวัน ได้เรียนรู้ตลอด เมื่อไหร่ก็ตามที่ผมคิดว่าตัวเองรู้แล้ว และคิดว่าเขียนดีแล้ว ทุกๆครั้งที่ขึ้นโปรเจ็ค หรือมี feature ใหม่ ก็มีอะไรที่ผมไม่รู้ให้ได้เรียนรู้ตลอด หรือแม้แต่กลับไปดูโค๊ดเก่าของตัวเอง ก็เจอโค๊ดห่วยๆของตัวเองบ่อยมาก 😃
  • Elixir & Phoenix: เล่าไว้ใน Day 1 แล้ว (จริงๆก็มี Day 2–4 อีกนี่นา)
  • Hapi.js: จำได้ว่าครั้งสุดท้ายที่ผมเขียนคือ v16 ก่อนที่ต้นปีที่แล้ว ผมเพิ่งจะได้เรียนรู้ v17 ซึ่งมันมี breaking change เยอะมาก เปลี่ยนการเขียนไปค่อนข้างเยอะ แต่รู้สึกว่า v17 มันดีกว่าเก่า ใช้ async/await ได้ และก็ได้ลองใช้ Testing Framework อื่น แทบ Code/Lab ของ Hapi เพราะรู้สึกไม่ค่อยอินเท่าไหร่ 😄
  • Jest: เป็น JavaScript Testing ที่หลังๆเลือกมาใช้ (ทีแรกใช้ Tape, AVA) เพราะอาจจะติดมาจาก React และหลังๆรู้สึกว่าใช้โปรเจ็คอื่นๆก็ได้ ข้อดีคือ มันไม่ต้อง Setup อะไรเลย บางทีขึ้นโปรเจ็คง่ายๆ อยากจะเทสง่ายๆ ไม่เสียเวลา config ก็จัด Jest นี่แหละ ก็ได้หัดใช้ Mock, Spy ด้วย Jest หรือ Snapshot Test ก็โอเคดีได้รู้มากขึ้น แต่ก็ยังต้องเรียนรู้ต่อไป
  • ปีที่ผ่านมา ผมเริ่ม Focus มากขึ้น โดยเปลี่ยนจากรู้แบบ General กว้างๆ เป็นเลือก scope ให้มันแคบลง แต่เน้นลึกๆลงไปในรายละเอียด ส่วนกว้างๆ ผมก็ยังไม่ได้ตัดทิ้งนะ เพียงแต่ว่าเอาแค่พอรู้และเผื่อไปต่อยอดได้ เพราะมันเริ่มมีหลายปัจจัยเข้ามาให้พิจารณาแล้ว เช่น ถ้าเลือกเรียนรู้สิ่งนี้ กับเวลาที่เสียไป แล้วมันไม่ได้ใช้ประโยชน์อะไร มันคุ้มมั้ย ก็เลยเลือกแค่พอรู้ไปก่อน และถ้าได้ใช้จริงๆ ก็ค่อย In depth อีกทีนั่นเอง

สิ่งที่รู้ว่าเรายังไม่รู้

หลังจากผมอ่านจากบล็อคของแดน

  • SSR (Server Side Rendering) : ผมเขียน React.js แต่พวก SSR ผมไม่รู้เลย
  • Web Performance: อ่านแต่บล็อค แต่ก็ไม่รู้และก็ไม่มีไอเดียในการปรับ Performance เลย
  • PWA: รู้แค่ Concept ไม่ได้รู้รายละเอียดอะไรมากมาย ก็ใช้ๆพวก Service Worker, Offline, Add to Home screen จาก Create React App ที่ config มาให้แค่นั่นเอง
  • Typescript: พออ่านเข้าใจบ้าง แต่ก็ยังดูประหลาดๆในสายตาตัวเอง ยังไม่มีโปรเจ็คไหนที่ใช้ TS เขียนเลย 😃
  • SASS: ผมรู้แค่ basic พวก nested selector, variables, map-get, extends แค่นั่นเอง พวก mixins หรือพวก condition/function อื่นๆ แทบไม่รู้
  • CSS: ผมจำ backgroundแบบ short hand, box-shadowไม่ได้ซักที ทุกครั้งต้อง search หรือแม้แต่ flex justify-contents , align-items ก็จำสลับกันทุกทีเลย 😃
  • HTML: ทุกๆครั้งที่ผมสร้าง table ผมชอบลืมพวก thead , tbody , tr , td ต้องใช้ตัวช่วยคือ snippet ตลอด 😃
  • JavaScript: เชื่อมั้ย switch case ผมเขียนไม่ถูก จำมันไม่ได้ซักที งงกับตัวเอง หรือ multiple case ก็จำไม่ได้ และก็ RegEx ไม่เข้าใจ ทำไมผมชอบลืมก็ไม่รู้ ตัวอย่างเช่น .test() เนี่ย ชอบไปเขียนสลับเป็นแบบนี้อยู่เรื่อยเลย 'String'.test(/\w/g) 😃
  • Webpack: ถ้าไม่มี Create React App ผมยังไม่รู้เลยว่าผมจะ config ยังไงให้ดีได้ ส่วนใหญ่ก็เปิด Doc แล้วทำตามตลอด แต่ไม่รู้ที่มาที่ไปเท่าไหร่
  • Serverless : เป็นหัวข้อ topic ที่ผมสนใจมาก แต่ยังไม่ได้ลองเลย
  • Load Balance: ใช้แต่ AWS Load Balance อะ
  • Job/Message Queue: พวกนี้ไม่รู้เลยอะ ใช้แต่พวก lib เช่น Kue, Sidekiq
  • SQL: ผมไม่รู้วิธีการ Normalization ไม่รู้การ Join ต่างๆ ไม่รู้พวก Advanced topic ต่างๆ ได้แต่ basic อะ
  • Electron : รู้แค่ว่าเป็น Node.js ที่รัน Desktop ได้ แต่ไม่เคยเขียนจริงๆ ยังหาไอเดีย หรือแนวคิดให้เขียนไม่ได้ เพราะปกติทำแค่ Web Based ตลอด
  • Android : ผมเคยเป็น Android Dev มาก่อน แต่ไม่ได้เขียนมา 3–4ปีแล้ว ผมเลยจัดว่าเป็นหัวข้อที่ผมไม่รู้ ณ ตอนนี้ผมก็ยังสามารถเขียน Android App ได้ แต่มันก็ได้แค่ Basic และก็ตาม Document และคิดว่าพวก Skill ที่ได้เคยเรียนรู้ถ้าจะกลับไปเขียน ก็คงต้องรื้อฟื้นจริงๆ จังๆ แถม SDK หลังๆ ก็มีสิ่งใหม่ๆที่ผมไม่เคยรู้มาก่อนอีกเยอะมากมาย
  • Algorithms: แทบไม่รู้เลย แม้แต่ Sorting อะ 😃
  • Java : เช่นเดียวกับ Android ผมเขียนเป็น Java Dev มาก่อน โดยเขียน JSP/Servlet และ Java Spring 2, 3 ผมก็จัดเป็นหัวข้อที่ผมไม่รู้ เพราะว่าทิ้งไปนานแล้ว แต่ถ้าถามว่าเขียนได้มั้ย ตอบว่าได้ เพราะเคยเขียนมาก่อน + เราได้ประสบการณ์ ได้แนวคิดในการเขียนโปรแกรมมา ฉะนั้นจะปรับหรือเรียนรู้เรื่องอะไรก็ตาม ก็ไม่ได้ยากเกินไป
  • CSS Animation: ผมคิดว่าผมรู้ แต่จริงๆคือไม่รู้เลย ได้แต่ก็อปปี้ snippet ที่เค้าเขียนมาแล้ว หรือปรับแก้จากที่มีอยู่บ้าง แต่พอมาเขียนเอง โดยแปลงจาก Motion Graphic หรืออะไรก็แล้วแต่ พบว่าตัวเองทำไม่ได้ 😢
  • K8S: รู้แค่ว่ามัน Cool แค่นั้นจริงๆ ฮ่าๆ
  • Docker: ได้แค่ basic สร้าง Container, Mount Volume, docker-compose รัน service, exec เข้าไปรัน app, test แค่นั้น
  • PHP & Wordpress: เป็นสิ่งที่ลูกค้า Request มาเยอะมากๆ ว่าอยากได้ PHP หรือเว็บแบบ Wordpress ผมแค่เคยโฮสบล็อคไว้ Wordpress และก็แก้ Script ง่ายๆของ Wordpress Codex ของมัน อาศัยมั่วๆเท่านั้น ลูปยังไม่เป็นเลย ก็ต้อง Google แล้วก็แก้ๆมั่วๆไป ไม่สามารถเขียน PHP ได้ครับ 😃
  • ASP, C#, .NET: ผมไม่แน่ใจว่ามันแตกต่างยังไงเพราะไม่เคยเขียนครับ บางทีทุกคนชอบบอกว่าเขียน Java เป็น ก็เขียน .NET ได้ มาเขียนเถอะ ผมบอกคำเดียวว่า ไม่รู้เรื่องเลยครับ 😃

Devahoy

Learn and share about technologies that power the world, read more at https://devahoy.com

Chai Phonbopit

Written by

[**MOVE TO MY OWN BLOG] I make web stuff with JavaScript (Node & React), Blogger at https://devahoy.com

Devahoy

Devahoy

Learn and share about technologies that power the world, read more at https://devahoy.com