new title: เริ่มต้นเขียนโปรแกรมใน 20 ชั่วโมงฉบับปี 2025 desc: อยากเริ่มต้นเขียนโปรแกรมควรเริ่มจากอะไร? เลือกภาษาโปรแกรมมิ่งยังไง? มีเครื่องมืออะไรที่ช่วยเราได้บ้าง? บทความนี้รวมมาให้
audience: people who are interested in programming learning // or non experience who wanna learn the basic.
todo: add new beginner-friendly tag
search intent:
- เริ่มต้นจากภาษาอะไรดี? แต่ละภาษามันต่างกันยังไงหรอครับ เลยจับต้นชนปลายไม่ถูกอ่ะครับ
- wanna find a concrete way to start programming
outline
main concept of this article: read 20 mins; practice 20 hours. for those who started -> let’s comment.
goal for this article
this is not CS curriculum; but a more natural way to learn things. + quote from lifelong
- programming is a long game: it need to be fun
level 1: taste the power (just like electric bro)
- what is programming?
- the feedback loop of development
- ai + shader toy + tldraw make + scratch + etc. or you can just open the browser, paste the code, etc.
- challenge: this is what i build in makereal; try to build this. (and be able see the solution and iteration)
- makereal example on YouTube;
- build lunar lander game
- create a rocket + control at the center
- generate a terrain
- add time + score + ending + reset game
- add asteriod
- add speed and challenges
- build lunar lander game
- makereal example on YouTube;
level 2: customize + homemade software -> build something that tailored made for you
- an app can be homecooked meal
- tweak to get a sense of how to behave
- design tiny challenge for yourself and iterate
- use shader toy as an example
- use ai to help
- the key thing is keyword; it important to know what it called so that you can search for
- adjust & iterate
- pick one programming langauge -> understand syntax
- learn basic data structure & algorithm
- it good to start with leetcode
sometimes good programmer are just appear to be good at searching.
this is what i build everything without fundamentals; i have no idea what data structure or what algorithm is; i just build things.
step 3: fundamentals will get you far
- what is fundamental?
- computational thinking, problem solving
- what is algorithm?
- algorithm & data structure
- what happens under the hood in the tool you used
- software design principles
- computational thinking, problem solving
see what other are doing -> observe -> find the pattern and build strong fundamentals
summarize the key message: the feedback loop
TODO: turn this into offline class - half day workshop; meet and greet for fun
- 30 people; staff 3 (including me) - 3,000
ทำไมเราถึงควรเรียนเขียนโปรแกรม?
“ทำไมเราถึงควรเรียนเขียนโปรแกรม?”
ก่อนที่จะไปเข้าคำถามหลักของเราที่ว่าเราควรจะเริ่มต้นเขียนโปรแกรมอย่างไร เราอยากจะเริ่มจากคำถามนี้ก่อนว่า “ทำไมเราถึงควรเรียนเขียนโปรแกรม? เราเรียนเขียนโปรแกรมไปเพื่ออะไร?”
เรารู้สึกว่าในหลายครั้งเวลาที่คนส่วนใหญ่พูดถึงคำถามนี้ เรามักจะได้คำตอบในแง่มุมของการทำงานหรืออาชีพของการเป็นโปรแกรมเมอร์ซะส่วนใหญ่
- “Computational thinking, Logic, Creativity เป็นทักษะแห่งอนาคตที่ทุกคนควรมี”
- “เพราะในชีวิตของเราถูกรอบล้อมไปด้วย technology”
- “เมื่อ AI มีบทบาทมากขึ้น โปรแกรมเมอร์ก็ยิ่งเป็นที่ต้องการมากขึ้น”
- “การเขียนโปรแกรมคอมพิวเตอร์เป็นอาชีพที่มีความต้องการอย่างสูง”
- “เพราะจะได้เอาไปสร้าง product สร้าง technology สร้าง startup แก้ปัญหาให้สังคมได้”
จะบอกว่าเป็นความรู้สึกส่วนตัวของเราสำหรับคำถามนี้ก็ได้
โปรแกรมเมอร์ is a new หมอ?
แน่นอนว่าเหตุผลเหล่านี้มันไม่ผิดหรอกสำหรับคำถามนี้ แต่เรามองว่ามันเป็นเหตุผลที่เป็น reward (หรือสิ่งที่จะได้รับ) มากกว่าเหตุผลที่เป็นจุดประสงค์หลักของการเขียนโปรแกรมจริง ๆ
“Programming is just a tool to automate problem-solving.”
สำหรับเราโปรแกรมมิ่งมันก็เป็นแค่เครื่องมือนึง เป็นเครื่องมือกว้าง ๆ ที่เราสามารถบอก computer ได้ว่าจะให้มันแก้ปัญหาแทนเราได้อย่างไร
การฝึกโปรแกรมมิ่งไม่ต่างกับการที่เราฝึกทำอาหาร ที่เราเชื่อว่าหลายคนที่เริ่มต้นฝึกทำอาหารก็คงไม่ได้อยากจะไปเป็นเชฟ หรือเพื่อไปเปิดร้านอาหารอะไร แต่ก็เพื่อที่ว่าเราจะได้กินอาหารที่ดีมีประโยชน์มากขึ้น เพื่อที่จะได้ทำอาหารที่ถูกปากตัวเองมากขึ้น หรือบางทีก็อาจจะแค่ต้องการลดค่าใช้จ่ายในแต่ละมื้อให้มากขึ้น
เราไม่ได้จำเป็นต้องเรียนเขียนโปรแกรมเพื่อไปเป็นโปรแกรมเมอร์ บางครั้งเราก็แค่มีปัญหาเล็ก ๆ ในชีวิตประจำวันที่อยากจะแก้ให้ดีขึ้น อยากจัดการรายรับรายจ่ายให้ดีขึ้น อยากจัดการข่าวสารในแต่ละวัน(ที่เยอะเหลือเกิน)ให้ดีขึ้น หรือบางทีเราก็แค่อยากจะ HBD เพื่อนใน way ที่เจ๋งขึ้นก็แค่นั้น
ควรเริ่มต้นเขียนโปรแกรมอย่างไร?
“ควรเริ่มต้นเขียนโปรแกรมอย่างไร?”
เรามองว่า เริ่มจากความหงุดหงิดเล็ก ๆ หรือความสนใจในชีวิตประจำวัน แล้วใช้การเขียนโปรแกรมเป็นเครื่องมือที่ช่วยเราแก้ปัญหา หรือเป็นเครื่องมือที่ช่วยให้เราได้ศึกษาเรื่องที่เราสนใจได้ลึกขึ้น
ไม่จำเป็นต้องเริ่มจากภาษา C, Javascript, Python หรือต้องไปอ่านว่าคอมพิวเตอร์ทำงานอย่างไร แต่เริ่มจากภาพว่าเราจะทำอะไร แล้วค่อยเลือกเครื่องมือที่เหมาะสมกับเป้าหมายนั้น
ความโชคดีในปัจจุบันนี้คือเรามีเครื่องมือเยอะมาก ๆ เรามี Nocode/Lowcode tool ที่ช่วยให้เราสร้างอะไรได้ไวขึ้น เรามี AI ที่เราสามารถ sketch ภาพไว ๆ แล้วโยนให้มัน generate working code ออกมาได้ เรามี tool อีกเยอะแยะมากมายที่ช่วยให้เราสร้างสิ่งที่เราต้องการได้แทบจะทันที
“Feel the power of programming” ก่อนครับ สร้างอะไรเล็ก ๆ ให้ตัวเอง
สุดท้าย small wins พวกนี้หละครับที่จะเป็น motivation ให้เราอยากศึกษาเครื่องมือใหม่ ๆ อยากลงลึกใน fundamentals เพื่อจะได้ทำอะไรได้มากขึ้น และอยากสร้างโปรเจคที่ใหญ่ขึ้นต่อไป