Nick Untitled

Writing as my personal diary

Enter Programming - จากเรียนแพทย์เข้ามาเขียนโปรแกรมได้ยังไง?

Share: 

บทความนี้เราเขียนเสริมจากที่พูดในคาบของอ. advisor ที่สอนให้ในวิชาเลือกของรพ.ริมน้ำที่เกี่ยวกับการเรียน AI สำหรับทางการแพทย์

ช่วงแรก ก่อนเข้าเรียนหมอ

ตอนแรกก่อนเข้าเรียนหมอเรียนภาษา C มาก่อน เรียนเองและเรียนจากค่ายสอวน. คอม (ที่เคยไปถึงโอลิมปิกระดับชาติแล้วได้เหรียญทองแดง) ฝึกตั้งแต่พื้นฐาน, Data Structure & Algorithms และแก้โจทย์ปัญหาบ้างผ่านทางเว็บในสมัยนั้นก็มีเว็บ programming.in.th (ที่ตอนนี้มีหลายเว็บแล้ว เช่น Leetcode)

C Programming
ก่อนเรียนหมอ ก็เรียนภาษา C มาก่อนแล้ว

ต่อมา เราก็ฝึกเขียน PHP + MySQL เพราะมีพื้นภาษา C อยู่แล้วนี่ แถมได้เขียนเว็บทางฝั่ง Front-end ด้วย HTML, CSS, JavaScript (สมัยนั้นใช้ jQuery เพราะมันฮิตด้วย แถมมันติดมากับ Bootstrap เวอร์ชัน 3-4)

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

หลังเรียนจบหมอ

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

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

เข้าเรียนวิศวะชีวการแพทย์

ตอนเรียนมีปรับพื้นฐานของวิศวะ ก็มีพวกคณิตศาสตร์ที่ใช้ มีตั้งแต่แคลคูลัส, Differential Equation, Probability เป็นต้น อย่างไรก็ดี ตอนเรียนที่แพทย์จุฬาฯ ไม่มีสอน Calculus 1 เราเลยซื้อหนังสือแคลคูลัส 1 มาอ่านแล้วทำโจทย์เอง แถมค้นหาข้อมูลเพิ่มเติมในอินเตอร์เน็ตที่มีสอนฟรี เราก็ฝึกไปก่อน นอกจากเรียนเลขแล้วยังมีเรียน Signals, Image Processing, Bioimage Informatics และอื่น ๆ

Face Detection
หลังเข้าเรียน ก็ได้ฝึกเขียน Python และศึกษาเรื่อง Computer Vision เช่น Face Detection แบบในภาพ

แล้วเข้าไปแล็บที่เป็น AI ครับ ตอนนี้แหละ (Artificial Intelligence in Medicine) ได้ฝึกเขียนโปรแกรม เลยเอาภาษาไพทอนนี่แหละมาฝึก เพราะภาษาไพทอนเป็นภาษาที่ฝึกได้ง่าย ตัวโค้ดเขียนเข้าใจง่าย ฝึกไม่นานก็เขียนได้แล้ว

ต่อมาเราเลยศึกษาพวกไลบรารีไพทอนที่จำเป็นที่เกี่ยวข้องกับงานด้าน Computer Vision เช่น OpenCV, Numpy, Matplotlib, PyTorch, Tensorflow, ONNX runtime เป็นต้น

พอศึกษาแล้วเขียนพอได้ระดับหนึ่ง ก็ต้องทำตัวเว็บเซิร์ฟเวอร์ แล้วจะเอาตัวไหนดี ตอนแรกจะเอา Django มันจะดูยากไปไหม เลยเลือก Flask ฝึกและใช้งานไประดับหนึ่ง ก็ฝึก FastAPI มาลองใช้ดู ใช้ง่ายแฮะ แต่อันนี้ไม่ได้เอาไปทำตัวเว็บเซิร์ฟเวอร์ ใช้แต่ Flask

นอกจากทำตัว back-end แล้วก็ต้องทำ front-end เลยฝึก HTML, JS, CSS ใหม่อีกที ฝึกไม่นานก็ทำหน้าเว็บได้ และช่วงนี้ก็ฝึก Framework ในปัจจุบัน อย่าง ReactJS, GraphQL (Apollo Server & Client) เป็นต้น แถมสมัยนี้ใช้ Container กัน ก็ฝึกใช้ Docker, docker-compose เลย (แต่ตอนนั้นยังไม่ได้ฝึก Kubernetes)

หลังจากนี้

ต่อไปหลังจากนี้ เราก็เดี๋ยวฝึกอันที่คนใช้กันเยอะ เช่น Django, FastAPI, Svelte, Tailwind CSS, NoSQL (MongoDB) และอื่น ๆ รวมถึงฝึกพื้นฐานอย่าง Math, Data Structure, Algorithm, Data Science และอื่น ๆ ที่จำเป็นต้องกรทำงานครับ

เดี๋ยวฝึกแล้วได้อะไร จะเอามาเขียนในนี้ในโพสต่อ ๆ ไปครับ ขอบคุณผู้อ่านที่ติดตามครับ