[รู้อะไรไม่สู้รู้งี้ ตอนที่ 3] มุมมองของผมเกี่ยวกับการพัฒนาในสายงาน Backend Software Engineer จาก Mid Level สู่ Senior และต่อ ๆ ไป

Thanaphoom Babparn
9 min readAug 30, 2022

--

Reference To Another Part
[รู้อะไรไม่สู้รู้งี้ ตอนที่ 1] คำแนะนำน้อง ๆ วัยเรียนหรือผู้ที่ต้องการทำงานสาย Software Engineer
[รู้อะไรไม่สู้รู้งี้ ตอนที่ 2] กรณีศึกษาและคำแนะนำสู่น้อง ๆ ที่เริ่มต้นในสายงาน Software Engineer (Junior/Entry level)
[รู้อะไรไม่สู้รู้งี้ ตอนที่ 3] มุมมองของผมเกี่ยวกับการพัฒนาในสายงาน Backend Software Engineer จาก Mid Level สู่ Senior และต่อ ๆ ไป

Introduction

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

สำหรับบทความนี้จะเป็นมุมมองของผม จากตรงนี้ 202208 ไปอีก 4–5 ปีข้างหน้า หรือบางอันสามารถ recurring ได้ถ้าหากว่าเอาไป apply แล้วดี ซึ่งนี่อาจจะเป็นแผนการของผม และการตกตะกอนจาก Feedback ที่ได้รับภายในบริษัท และจาก LinkedIn “ถ้าอันไหนคิดว่าดีแล้วอยากนำไปปรับใช้” ก็ยินดีมาก ๆ ครับ และผมก็จะอธิบายแยกย่อยเป็นฉาก ๆ โดยจะไม่เน้นไปที่ใดที่นึงมากนักครับ

“Where I see myself in the next 5 years?”

สามารถแบ่งได้ 4 ประเภทใหญ่ ๆ ดังนี้

  1. General
  2. Hard skills (Technical Skills)
  3. Soft skills
  4. Leadership

General

ความหมายของ Senior ในตำแหน่งงานที่ได้รับกับ Image ที่ตั้งไว้อาจจะเท่ากันและไม่เท่ากัน

“Opportunity for Senior Software Engineer”

“I think you are good fit in TeamLead role”

ผมเวลาได้ข้อความแบบนี้มา ในลำดับแรกคือเข้าไปดู Job Description ตรง ๆ จาก Career Portal ของไซต์ต้นทาง และอ่าน Job Description ว่าใช่สิ่งที่เราต้องการจริง ๆ รึเปล่า และอีกอย่างการวางแผนตัวเราเองในอีก 3–5 ปีข้างหน้ามันมีภาพในหัวของเรา การไล่ตาม Senior ในแบบของเรา จึงเป็นการเติมเต็มความพึงพอใจให้กับเราในฐานะวิชาชีพ ดังนั้นการเลือกตัวนี้เอาไว้ใน Job title จะว่ายังไงก็ค่อยว่ากันทีหลัง เราปฏิบัติตัวเรา เดี๋ยว Senior มาเอง

FYI: บางทีเสนอ Senior iOS Developer มาก็มีเหมือนกัน ไม่รู้ว่าสน Career Path ของเรา, สนยอดการรับ, หรือสนใจส่วนหัก แต่ในมองมุมมองกลับกัน หรือโปรไฟล์ที่ผมลงไว้มันไม่ดีคนก็เลยเข้าใจผิดกันนะ 🤔

— — —

นายน่ะ ก็เป็น Leader ได้นะ ขัดเกลา Management Style กัน

การที่จะรักษา Motivation ในการเป็นหัวหน้างานนั้น สิ่งที่ทำให้ประสบความสำเร็จในสายตาผม หนึ่งในนั้นคือผลลัพธ์ของงานที่ Deliver แต่สิ่งที่ผมอยากให้มันเกิดขึ้นคือ การเห็น Engineer คนอื่น ๆ ไปข้างหน้า ได้พัฒนาตัวเอง ได้เข้าใจมุมมองและความเป็นไปของตัวงานว่า เราทำไปเพื่ออะไรและทำไปทำไม ซึ่งตัวแปรที่จะทำให้เกิดสิ่งนั้นได้ “การได้รับการยอมรับ” เป็น Prerequisite ก่อนสิ่งใด

Management Style ที่คิดไว้

อ้างอิงจากไซต์นี้ Leading with purpose: How to find a management style that works for you

เอาแบบหล่อ ๆ ก็คงเป็นแบบ People-focused Management 5555555555 แต่เพราะว่าตอนนี้ผมอาจจะคุมคนมาแค่จำนวนน้อย ดังนั้นก็คงอยากเก็บประสบการณ์ก่อน ปกติเป็น Engineer ที่จัดการ Urgent Task ได้ดีครับ ก็เลยอาจจะ Solo Play บ่อย ไม่ใช่เรื่องดีเลย ไม่ต้องเอาอย่างนะครับ

เอาจริง ๆ ก็อยากเป็นสาย Individual Contributor ครับ แต่สุดท้ายก็ต้องคุมคนอยู่ดีใช่มั้ยล่ะ

— — —

การคิดพิจารณาตัวเอง ทำได้เพราะอะไร ทำพลาดเพราะอะไร อยู่เสมอ ๆ

โดยปกติผมใช้ช่วงเวลาวันเสาร์ตอนกลางคืนของทุกสัปดาห์ครับ ประมาณชั่วโมงนึงกับความคิดที่ว่า สัปดาห์ที่ผ่านมาเราทำอะไรระเบิดไปบ้าง เราบวกกับเขายังไง 5555 ไม่ใช่นะครับ

เราทำอะไรได้ดี ทำไมมันถึงดี
เราทำอะไรพัง ทำไมมันถึงพัง
สัปดาห์หน้าเราจะดึงอะไรมาทำดี

ตัวอย่างการพิจารณาตัวเอง บทความซีรีย์นี้นี่แหละเป็นตัวอย่าง ได้คิดว่าถ้าเราอยากจะทำอะไรให้คนอื่น ๆ เราจะทำอะไร ก็เลยเขียนขึ้นมาจะได้ทบทวนตัวเองไปด้วย

— — —

แบ่งเวลาอ่านหนังสือ (ที่ดองไว้ 😢) บ้าง

จากรูปจะเห็นว่าหนังสือของผมมีในเรื่องของสาย Technical และการฝึกภาษาอยู่ด้วย ซึ่งใน Level ที่สูงขึ้น เราจะต้องมองในเรื่องของ System และ High Level มากขึ้น และเราจะต้องมี Mindset เพื่อ Client มากขึ้น และถึงแม้จะไม่เกี่ยวกับงาน การอ่านหนังสือก็ช่วยให้รักษาและพัฒนาทักษะการอ่านของคุณได้ดีขึ้น (น่าเสียดายที่ผมเอาไปด้วยได้ไม่หมดอีก)

— — —

ไม่ยึดติดชื่อเสียง แต่อยากเป็นประโยชน์มากกว่านี้

ผมเป็นคนที่ชอบความอิสระมากพอสมควร (หรือเพราะทำอะไรคนเดียวมาตลอด) เพราะทำอะไรได้ไว ไม่อยากมีชื่อเสียง แค่อยากได้พลังที่ทำให้ความฝันเป็นจริง และเป็นประโยชน์ให้กับโลกใบนี้เท่านั้น

— — —

ฝึกฝนการเป็น Technical Writer มากขึ้น ทั้งภาษาไทยและ EN

ด้วยความที่ทางผู้เขียนเป็นคนที่เวลาว่างนั่งดู Conference หรือ Webinar ย้อนหลังจาก Youtube และนั่งดู Technology ทั้งเก่าทั้งใหม่ที่ตัวเองยังไม่รู้จัก แล้วชอบที่จะนั่งทำอะไรเล่นในวันหยุดมากกว่าเดินออกไปเที่ยว

Medium

dev.to

จริง ๆ คิดไปถึงการทำ Website ของตัวเอง หรือ Gitbook ไว้เป็น Text-based courses ไปเลย คนเปิดมาเจอจะได้ Follow ตาม Step (แต่ตอนนี้จอง Domain ไปก่อน เว็บก็เลยกากอย่างที่เห็น 5555555)

— — —

คิดจะทำ Youtube Channel เพื่อสอนผู้คน

เรียกว่าเป็นการฝึกทักษะการพูดในทางอ้อมละกัน แต่ก็คิดไว้ว่า “ถ้าเราสามารถถ่ายทอดสิ่งที่เรารู้ออกไปได้ และทำให้คนอื่นง่ายขึ้น มันก็ดีมากยิ่งขึ้น” เข้า concept ของการเป็นตัวคูณ แต่ก็นะ คงจะสอนได้จำพวก Programming พื้นฐาน, Backend Development, API Integration, Container and orchrestation รวมถึง Cloud Development ผมไม่คาดหวังให้คนมากด Subscribe ผมตอนนี้ เพราะแนวทางของช่องยังสะเปะสะปะ (แต่ไม่ใช่สาย Entertainment แน่ ๆ เพราะเป็นคนไม่มีอารมณ์ขันเอาซะเลย) ไว้เมื่อถึงเวลาที่เป็นช่องที่สร้างประโยชน์ให้กับคนอื่น ๆ ค่อยกลับมากด Subscribe ก็ไม่เป็นไร

— — —

จัดทำ Checklist ของตัวเอง

ตัวอย่าง Checklist ของ Life planning ที่จัดทำไว้ใน Notion ซึ่งมันก็อาจจะไม่เกิดขึ้นจริงเสมอไป แต่เราก็ต้องทำเอาไว้เพื่อตบแต่งตัวเอง (ส่วน 5 Years Plan เป็นอีกอันนึงไม่ใช่ตัวนี้)

ภาพ Checklist อันสะเปะสะปะของผม

Hard skills (Technical Skills)

การเป็น Backend Developer & Cloud Developer ที่เป็นประโยชน์แบบสุด ๆ ให้กับ Team หรือองค์กร ก็แบ่งเวลาให้ไปทำอย่างอื่นยากแล้ว

Refresh & Recurring ความรู้ CS Fundamental สม่ำเสมอ

  • Data Structures & Algorithms พร้อมหัดทำโจทย์ Leetcode ไว้ เวลามีโอกาสได้สัมจะคุ้นชิน (อาจจะได้เข้า Leetcode Weekly/Biweekly Contest บ้าง)
  • System Design Interview practice หวังว่าในระหว่างทำงานคงได้ฝึกพูดแบบนี้อยู่แล้ว
  • Computer Networking & Security ใช้ในงาน Application Security รวมถึงการจำกัดเขตของการ Deployment, Availability zone, Multi-region, etc.
  • Multi-thread/Concurrency เมื่อ Application ทำแข่งกัน เราจัดการยังไง versioning? lock DB? design as async? reserve pattern?
  • Digital, Computer Architect/Computer Organization เรื่องของ Computer ที่ต้องทำความเข้าใจ เช่น 0/1, K-Map, Evict cache strategy, Cache level
  • Operating Systems เหมือนไม่ได้ใช้ใช่มะ แต่นี้คือหนึ่งในแกนกลางเลยนะ
  • Design Patterns อาจจะไม่ต้องรู้หมด แต่รู้ตัวที่นิยม และลองนำไปใช้ตาม Use-case ต่าง ๆ (ถ้าไม่เคยโดนถามจริง ๆ ใน Technical Interview น่าจะคิดไม่ได้)

ทำ Side Projects ที่เพิ่ม Frontend เข้าไป + Better Monitoring

โดยปกติที่ทางผมทำเล่น ๆ มักจะลองเล่น Tools หรือ Framework ของฝั่ง Backend ซะส่วนใหญ่ แต่ถ้าเกิดอยากเห็นภาพมากขึ้น ต้องทำที่มันสมบูรณ์ไหลครบ Flow มากยิ่งขึ้น ซึ่งจริง ๆ ไม่ได้เป็นสิ่งจำเป็นที่ต้องทำ อยากทำเพียงแค่เพราะว่าผมอยากจะทำมันเฉย ๆ

1: Android Jetpack Compose คิดว่าน่าจะเริ่มมีคนรู้จักกันแล้ว ตอนนี้อาจจะยังเป็นช่วงทดลองกัน และบางที่ขึ้น Production ไปบ้างแล้ว ทั้งนี้ทั้งนั้น การเขียนแบบ Declarative UI เป็น Future แน่ ๆ

Android Jetpack Compose Course (Google)

Jetpack Compose Samples

Sparking Jetpack Compose at Tinder

Performance best practices for Jetpack Compose

2: อาจจะจำเป็นต้องหัดเขียน Website เพิ่ม เพื่อทำ Website ของตัวเอง แบบที่กล่าวไปข้างต้น

3: Flutter ผมอาจจะ Fade ออก (ไปเพิ่มที่ข้อ 1) ตอน Flutter เข้าแรก ๆ ผมตื่นเต้นมากเลยนะ แต่ตอนนี้มันดันไม่รู้สึกแบบนั้นอีกแล้ว ผมก็ไม่รู้สิ ไม่รู้อนาคตข้างหน้าจะเป็นไง

เมื่อเข้ามาเกี่ยวพันในโลก Cloud-Native แล้วในอนาคตก็น่ายังจะยืนต่อไปอีกซักพักใหญ่ หรือจนจบ Career Path เลย

Cloud-Native เป็นการดึงความสามารถของ Cloud Computing มาใช้กับงาน Enterprise และมาช่วยในเรื่องของ on-demand resources และถูก apply ไปยัง culture ในองค์กร คงไม่หายไปง่าย ๆ ในตอนนี้หรอก ถึงจะเริ่ม transformation มาได้ซักพักแล้วก็จริง แต่มันก็ต้องใช้เวลาในการมีสิ่งใหม่โผล่ และบางที่เพิ่งเริ่มมาอยู่บน cloud ด้วยซ้ำ ดังนั้นคิดว่าน่าจะอยู่กับสายนี้ไปอีกซักพักใหญ่เลย

การออกแบบระบบให้ดึงขีดความสามารถของ Cloud Computing มาใช้สูงสุด

Twelve-Factor

Set of principles ที่ช่วยในการพัฒนา Application ให้ Reliable, Scalable และ Maintainable

CNCF Cloud Native Interactive Landscape

List of tools อันสุดแสนบ้าคลั่ง 555555 ไม่ต้องเป็นทุกอันนะ และผมก็ไม่คิดจะทำทุกอันเหมือนกัน เอาแค่เสี้ยวนึงมาใช้ก็พอแล้ว และบางทีมันก็ขึ้นกับ Company, Business และ Team เหมือนกัน

แต่ทั้งนี้ทั้งนั้น

Obsess over customers > Specific technologies used

การเป็น BE ที่ผสม SRE และ Cloud Developer

Enterprise Grade Backend Development

ตอนนี้คือ Focus ตัวเองในโลกของ Java/Kotlin บน Cloud-Native ครับ เอาแบบนี้ก่อน ทำไมผมถึงถือ Java เป็นหลัก

  • Company ที่ผมสนใจอย่าง Google, Amazon, Microsoft, Spotify, Apple, Uber, Yelp มีเปิดรับตำแหน่ง Java เช่น Core Product หรือ Data Platform
  • Java ถูกใช้ใช้ในอุตสาหกรรมที่ผมสนใจ ได้แก่ FinTech และ Retail เช่น Klarna, Wise, Wayfair, bol.com
  • Performance อยู่ในระดับใช้ได้ ถึงจะกิน Memory แต่เขากำลังพัฒนาเพิ่มมากขึ้น
  • EU เริ่มเปลี่ยน Java เป็น Kotlin แล้ว และถึงเป็น Java จากช่วงเวลาที่เขียนบทความนี้ Java 17+ รับจำนวนมากแล้ว

เอาแค่ข้อแรกกับข้อสอง ก็คุ้มค่าที่ผมจะถือไว้เป็นตัวหลัก แต่ผมไม่ซีเรียสนะ จะให้ผมเขียน C# ก็ได้, Go ก็ได้ ผมเขียนอะไรก็ได้ที่ได้ตังและผมสนุก นอกจากนั้นแล้ว ความหมายของ Backend อาจจะรวมถึงการมีอยู่ของ Data Engineering ด้วย ซึ่งอย่างที่ผมจะบอกใน Step “เรียนในสิ่งที่กำลังสนใจ แต่ไม่ได้เกี่ยวกับการทำงานหลัก” ยังไงก็ได้ใกล้ชิดกับ Kafka, KSteam หรือ ksqlDB อยู่แล้ว และคงจะได้หัดทำ Spark ด้วย ทั้ง Scala และ Python (PySpark)

Tips: สิ่งที่คุณควรจะรู้ถ้าหากจะเป็น Enterprise Backend Developer ที่เป็นประโยชน์และพึ่งพาได้ (ไม่ต้อง Expert หรือจำได้จนเหมือนกินเข้าไป แค่มันจะส่งผลว่าดีมากยิ่งขึ้น ถ้าคุณเชี่ยวชาญมากในสิ่งนั้น)

  • Framework ที่คุณใช้ทำงาน
  • รู้จัก Utility ต่าง ๆ ที่มี เช่น ถ้าใช้ Java 17 มี record เป็นต้น
  • Data Structures & Algorithms ไม่ได้ต้องถึงขั้นเป็น Competitive Programmer แต่หมายถึงว่าคุณรู้ว่า Sort แต่ละแบบคืออะไร โค้ดจากบนลงล่างมี Big-O ระดับไหน การจัดเตรียม Data, Flat Data ก่อนเริ่มทำอย่างอื่นเพื่อลดระยะเวลาการประมวลผล
  • การแก้ปัญหา N+1
    What is the “N+1 selects problem” in ORM (Object-Relational Mapping)?
    Common Entity Framework Problems: N + 1
    เจอปัญหา N+1 อีกแล้ว by somkiat.cc
  • การทำ Pagination แบบต่าง ๆ
  • การเขียน Test แบบต่าง ๆ — Unit Test ควรจะเขียนได้ แม้บางครั้งไม่ได้เขียนก็ตาม, Integration Test, BDD, TDD แล้วแต่ว่าแต่ละที่จัดการยังไง
  • Linux command
  • Manage Git Conflict
  • Vim หรือ Nano
  • Docker & Kubernetes (Container & Orchrestator)
  • SQL/NoSQL เช่น PostgreSQL, MongoDB, Redis, AWS DynamoDB
  • OpenAPI Specification อย่าง Swagger
  • Synchronous Communication: RESTful, GraphQL, gRPC
  • Asynchronous Communication: Message Queue, Publish/Subscribe, Streaming
  • Server to Client options: Server-Sent Events, WebSocket
  • OAuth 2.0, OIDC, Single Sign On (SSO)
  • OWASP Top Ten และการแก้ไข เช่น Prevent Broken Access Control
  • Cloud Computing ตั้งแต่ IaaS ไปจนถึง FaaS เลือกมาซักเจ้า
  • Infrastructure as Code อาจจะหยิบ Terraform มาก่อนก็ได้
  • HashiCorp Vault หรือเรื่อง Vault, Key-Management Systems (KMS)
  • Monitoring, Logging, Metric, Tracing เช่น ELK/EFK Stack, Jaeger (Observability)
  • Software/Solution Architecture
  • Microservices/Event-Driven Architecture
  • CQRS Pattern
  • Deployment Strategy เช่น Blue-Green, Canary
  • Computer Networking พื้นฐาน
  • Computer Architecture เพื่อประเมิน Resources Server
  • คลัง Libraries ที่มีประโยชน์

Enterprise Grade Monitoring

ขอบคุณบทความของพี่กิ๊ก Sakul Montha ที่เขียนบทความไว้เมื่อปี 2018 และผมก็ยังคงใช้เป็น Reference ต่อไป เพราะมันได้ใช้จริง ๆ ในโลกของ Enterprise Level หรือก็คือระบบ Logging, Metric, Monitoring, Tracing, etc.

รากฐานสำคัญของ SRE คือ Monitoring เป็นสิ่งที่แสดงความพร้อมใช้งานของระบบ

Cloud Engineer/Developer/Architect?

การที่ผมไม่ต่อ Certified ไม่ใช่ว่าผมจะทิ้งสาย Cloud แล้วนะ 555555 ผมดันเล็งเห็นว่าถ้าผมอยู่ที่ไทย และไม่ใช่สายเฉพาะงานที่อยากได้ Cert. จริง ๆ สอบไปอาจจะไว้บอกชาวบ้านได้ แต่ทางบริษัทเขาก็มี Base Salary ให้กับพนักงานเหมือนกัน Raise สูงนักก็ไม่ได้ การรักษาความรู้และ Refresh มันเสมอ ๆ แล้วค่อยสอบใหม่ก็ไม่ใช่เรื่องที่ผมเป็นกังวลมากมายนัก

FYI: เอา Cert ไปใส่ใน Resume ยังทำให้เปลืองเนื้อที่ในกระดาษอีกด้วย คุณงงมั้ยล่ะ

เลือก Cloud ให้กับตัวเอง และเข้าใจหลักการของ Product Tools

จากการตัดสินใจของผม และสิ่งที่จะได้ใช้ในอนาคตอันใกล้ ผมจะต้องเข้าไปใน AWS มากกว่า GCP ซักพักใหญ่ ๆ เลย (โดยในใจชอบ GCP) แต่ผมไม่กลัวหรอกนะว่าจะใช้ตัวไหน มีคนจ่ายให้ก็พอ 5555555555

  • Concept ของ Products จะคล้าย ๆ กัน
  • หน่ำซ้ำ Open Sources บางตัวแทนที่ได้เลย แต่ต้อง Custom Configurationให้เหมาะกับองค์กร Team, หรือลูกค้า

ไหน ๆ ก็ไหน ๆ ผมแปะวาร์ปของ AWS ไว้เลยละกัน

Cloud Architect Design & Implementation

AWS Well-Architected and the Six Pillars
เป็น Best practice ที่ดีในการรัน Workload บน Cloud เคยอ่านตอนสอบ SAA ดังนั้นก็จะเก็บไว้เป็น Reference

Cloud Architecture Center
ผมโตมาได้ทุกวันนี้เพราะ GCP เป็นส่วนสำคัญใหญ่ อันนี้ก็เป็นตัวใหม่จาก gcp.solutions แต่ก่อน ผมก็ใช้ตัวนี้มาอ้างอิง หรือกลับมาไล่ดูได้เรื่อย ๆ

Architecting with Google Cloud
Subscribe ไว้ ตอนใหม่ก็ออกมาเรื่อย ๆ

This is My Architecture
Subscribe ไว้ ตอนใหม่ก็ออกมาเรื่อย ๆ ว่าง ๆ ก็แวะมานั่งดู

Site Reliability Engineering Related

ด้านล่างนี้เกี่ยวข้องกับ SRE ทางผู้เขียนยอมรับว่าดูและอ่านมาบ้างแล้ว แต่เนื่องจากว่าหลาย ๆ คนอาจจะยังไม่เคยเห็น ก็เลยนำมาแปะไว้ให้

Youtube Playlist
class SRE implements DevOps
Engineering for Reliability

SRE Books

ทดลอง Tools หรือ Technique ที่คิดว่ามันอาจจะนำไปต่อยอดได้ แล้วแปะลง Github (การทำ POC)

เรื่องนี้อาจจะต่อยอดมาจาก การอยากพัฒนาตัวเองมากขึ้นในสาย Technical Writer แต่ว่าทางที่เหมาะสมของผมคืออะไรกันล่ะ

จากสถิติบทความที่ผมเขียน ผมสังเกตเห็นอะไรบางอย่าง

ถ้าเป็นเรื่องที่มัน Advanced อย่างการ Design Architecture หรือ ผลลัพธ์การดำเนิน Processing ต่าง ๆ เราสามารถอ่านได้จากพวก Big Tech Engineering Blog อยู่แล้ว ดังนั้นผมเลยมองว่าสิ่งที่ผมอยากจะทำเกี่ยวกับการทำต่าง ๆ จะเป็น Practical Real-World Implementation เวลาคนเข้ามาดู มาอ่านก็จะได้มีตัวนี้เป็น Template บ้าง ซึ่งพอมีอะไรสนใจหลาย ๆ อย่าง ก็อยากแยกร่างได้เหมือนกันนะครับ 🥹

ส่วนช่วงเวลานี้ Tools ที่กำลังสนใจคือ

  • CI/CD: Argo CD, Tekton, Jenkins X
  • Dapr: ก็ทำให้ Cloud มันต่อ Adaptor ไปมาโดยไม่ต้องเปลี่ยน Library
  • Apache Pulsar: เห็นตาม UK Conference ว่า Streaming for Cloud-Native และมีหลักการที่แตกต่างจาก Kafka อย่าง BookKeeper ยังไงก็ต้องไปดูก่อน
  • OAuth2/OIDC solution อย่าง Ory Hydra
  • Infrastructure as Code ตัวอื่น ๆ นอกเหนือ AWS CDK, Terraform อย่าง Pulumi และ Crossplane
  • TiDB, TiKV, Yugabyte
  • Ballerina

เรียนในสิ่งที่กำลังสนใจ แต่ไม่ได้เกี่ยวกับการทำงานหลัก

Data Engineering
เพราะโลกของ Big Data ในปัจจุบัน หรือ Large Scale Application มีการออกแบบขึ้นมาเป็น Event-Driven รวมถึง Data Streaming มากขึ้น ดังนั้นการจัดนำเข้าข้อมูลเพื่อให้มีประโยชน์ ก็จะเป็นการดีต่อระบบธุรกิจในอนาคต และด้วยความที่ Backend Developer จริง ๆ ก็ใกล้เคียงในเรื่องของการ Transfer ข้อมูล รวมถึงได้ใช้ Kafka ในหลาย ๆ โอกาส ดังนั้นการเขยิบเข้าไปทางสาย Data จึงเปิดได้ในสาย Backend

คงจะได้ไปดู Datacamp ที่แนะนำไว้ตอนที่ 1 น่ะแหละ

Blockchain Development
Solidity, Solana, เผลอ ๆ HyperLedger หรือ Corda เข้ามาด้วยเนี่ยแหละ อันนี้ตัวอย่างที่ผมมีถือไว้

Machine Learning + AI Engineer เบื้องต้น
รู้ตัวเองแหละ ว่าอาจจะคงไม่ได้เก่งมากมายแน่ ๆ และคณิตศาสตร์ก็พอทำอะไรได้บ้างแต่ไม่ Advanced อะไรเลย ฮ่า ๆ พอดีมีโซนที่ตัวเองสนใจอยู่ครับ คือ Natural Language Processing (NLP)

จริง ๆ มีที่รู้จักคือตัวนี้ที่เกี่ยวกับ Deep Learning ไว้ถ้ามีเวลาจะมาดู เพราะน่าสนใจดีครับ

Soft skills

ฝึกการ Communication ภายในและระหว่าง Cross-functional team ให้​ Effective มากยิ่งขึ้น

พออะไร ๆ มากขึ้น เราจะได้รับความคาดหวังในการสร้าง Impact ต่อลูกค้าและองค์กรมากขึ้น รวมถึงถ้าเป็นโครงงานที่มีขนาดใหญ่ อาจจะต้องมีหลาย ๆ ทีมทำงานด้วยกัน ทักษะการสื่อสาร การทำความเข้าใจ และการเดาใจ 55555 จึงต้องพัฒนาเพิ่มมากขึ้น

ทำความเข้าใจ Requirements ของลูกค้ามากขึ้น

เนื่องจากได้รับ Feedback จากที่ทำงานว่า ตัวผมเองเป็นคนที่มี range of knowledge ของด้าน Technical กว้างมาก และสามารถลงมือทำได้จริงด้วย แต่สิ่งที่ยังขาดไปคือ การทำความเข้าใจ Business, กลไกทางการค้า และความต้องการของลูกค้า รวมถึงตำแหน่งที่มีตอนนี้ก็ยังไม่ใช่ Engineer ที่คอยรับหน้าเป็นตัวเปิดซักเท่าไรนัก ดังนั้นทักษะการสื่อสาร และการเข้าอกเข้าใจลูกค้า จึงเป็นสิ่งที่ต้องพัฒนาเพิ่มเติม ควบคู่ไปกับด้าน Technical skills

English Improvement

นอกจากที่เราต้องเอา Tenses เข้ามาใช้ในชีวิตประจำวันแล้ว ก็คิดว่าสงสัยต้องสอบ IELTS ในเร็ววัน แต่จะเป็น Academic หรือ General อันนี้คงแล้วแต่จังหวะชีวิต

IELTS Full Course — 2022

Learn Japanese

สำหรับใครที่ไม่รู้เพราะมีส่วนน้อยที่รู้ ก็คือตอนนี้ผมได้ Job Offer จาก Japan ในตำแหน่ง Backend Developer ดังนั้นก็จะบินไปทำงานที่นู้นเลย (น่าเสียดายการ Fail Interviews เป็น 10 เหมือนกันครับ เห้อออ)

ดังนั้นเพื่อการใช้ชีวิตประจำวัน ก็คงจะหลีกเลี่ยงไม่ได้แล้วล่ะ ก็คงต้องเรียนภาษาเพิ่มเติมไปนะ คาดหวังไว้คือต้นปี 2023 ได้ใกล้เคียง N5 แต่ในอนาคตจะไปจบที่ N3 N2 N1 ก็ยังให้คำตอบไม่ได้ครับ เผลอ ๆ ได้บินไปทำที่ยุโรปก่อน ผมก็กำหนดอนาคตตัวเองแบบแม่นยำไม่ได้เท่าไรนัก

Leadership

เราเป็นตัวคูณในทีม

หลาย ๆ คนพอได้ตำแหน่งที่สูงขึ้น คงกำลังคิดว่าเราจะได้ทำงานที่ยากขึ้น ใช่ครับ ยากขึ้น ทั้งในส่วนของงานที่เกี่ยวกับทาง Technical และการดูแลคน ทำไมน่ะหรอครับ? เพราะเขาจะคาดหวังใน Impact ที่เราจะสร้างมากขึ้นครับ ผู้คนเข้าใจแหละครับว่าคุณทำงานได้ แต่เขาอยากให้ Workload มันกระจายไปยัง Employees คนอื่น ๆ เช่นกัน และก็เป็นการฝึกคนอื่น ๆ ด้วย ส่วนทาง Technical เราจะได้ทำแน่นอนครับ แถมเป็น Mission Critical Parts ซะด้วย ผมรับประกันเลย ชีวิตไม่เหงาแน่นอน 55555

หาโอกาสที่จะเป็นผู้นำ อยากจะเป็นผู้นำที่ดีและเป็นแรงบันดาลใจด้วยการทำเป็นตัวอย่าง

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

Customer Obsessions ที่มากขึ้น ช่วยเหลือ และหาโอกาสร่วมและแสดงความคิดเห็นใน Architecture design discussion

อยากทำความเข้าใจลูกค้ามากขึ้นครับ เพราะว่าในโลกธุรกิจนั้น ถ้าเราเข้าใจในส่วนของ Implementation ก็ดีในเรื่องของการ Technical Skils แต่ว่าการที่เราเข้าใจโลกธุรกิจมากขึ้น ก็แปลว่ามันเป็นการฝึกทักษะทางด้านธุรกิจ ที่สามารถไป Apply ได้กับที่อื่น ๆ รวมถึงการประยุกต์ใช้ หรือจะทำ Product ของตัวเองขึ้นมาก็ได้ (ถ้าเกิดไอเดียนะ ตอนนี้มืดบอดครับ)

การเข้าร่วม Architecture Design ในมุมมองของผม มันเหมือนเป็นการไปนั่งฟังว่ามีอะไรใหม่ ๆ มีปัญหาอะไรที่เราไม่เคยเจอ และเราต้องแก้ยังไง ซึ่งถ้าไอเดียเราเกิดไม่ดี เขาจะมีคนแย้งแน่นอนครับ แล้วเราก็เรียนรู้จากตรงนั้นเอา

Leadership Mindset

Amazon Leadership principles ไม่ว่าจะช่วงเวลาไหนของ Career path ต้องมีในหัวใจครับ เพื่อสิ่งที่เราจะส่งไปให้กับผู้คน

The Leadership Principles Explained

ทางเลือกของชีวิตในระดับต่อ ๆ ไป

Master’s Degree?

มีความคิดที่จะเรียน Master’s Degree เพื่อสนับสนุนตัวเองในการทำงานไปต่างประเทศ แล้วมีทางเลือกไหนบ้างที่คิดไว้ (แพง ๆ ทั้งนั้น)

Online Degree: คงเป็นใน Coursera, edX หรือ Apply ที่ University ตรง ๆ

Onsite Degree: เล็งไว้ที่ UK, Germany

Upper-level ไปเรื่อย ๆ และหาสมัครงานต่างประเทศไปเรื่อย ๆ?

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

คิดไปคิดมา เขาจะรับคนบ้าแบบผมหรอ? 5555 จริง ๆ ผมรวบรวมเนื้อหาที่คาดว่าใช้ทดแทนในการเรียน Master’s Degree ได้ แต่มันจะแทนที่ได้เลยหรอ? หวังว่าจะมีประโยชน์กับทุกคนได้ ไม่มากก็น้อย

Notion Template

ทั้งนี้ทั้งนั้นตัวแปรสำคัญคือ เงินและความสนุกในการทำงาน ของผม 😂

Summary

เป็นอย่างไรบ้างครับ Plan Backend ของผม บ้าคลั่งมั้ย ผมอยากแยกร่างเหลือเกิน 5555555 ทางผู้อ่านมี Plan มี่วางไว้เป็นอย่างไรบ้างครับ? ถ้ามีตรงไหนที่ผม Overload หรือตรงไหนที่ผมออกนอกลู่นอกทางสามารถบอกผมได้นะครับ ผมก็ทำไม่ห่วงสุขภาพตัวเองเท่าไหร่เลย

และอย่างที่กล่าวไปข้างต้นครับ มันอาจจะเป็น Plan ที่ดีก็ได้ มันอาจจะไม่เอาอ่าวระหว่างทางก็ได้ ชีวิตไม่แน่นอนซักเท่าไหร่ อนาคตบางทีมันก็ไม่ได้ดังใจหวังนัก

บางทีเราก็อยากใส่เดี่ยวกับจังหวะในชีวิตจริง ๆ

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

ควบคุม Input ได้ แต่ควบคุม Output ไม่ได้

หวังว่าตอนที่ 4 ในตอนที่ผมได้เป็น Senior ในตัวตนที่ผมคิดแล้ว ผมจะมีเรื่องมาเล่าเพิ่มเติมให้กับทุกคนอีกนะครับ แต่คงใช้เวลาหน่อยนะ 😁 ขอให้น้องในรูปข้างบน เติบโต และดึงรอยยิ้มกลับมาให้ตัวเองได้เต็มตื่นครับ

บทความนี้ถูกเขียนตอน น้องมาร์ท อายุ 25 ปี

สุดท้ายนี้ หากผู้อ่านมีข้อสงสัยเพิ่มเติม สามารถติดต่อได้ช่องทางด้านล่างนี้ หากผมสามารถช่วยได้ ก็ยินดีช่วยเหลือครับ

Facebook: Thanaphoom Babparn

LinkedIn: Thanaphoom Babparn
(ยังไม่รับ Opportunity ใด ๆ นะครับ ขอบคุณมาก ๆ ครับ)

--

--

Thanaphoom Babparn

Software engineer who wanna improve himself and make an impact on the world.