อยากเริ่มเขียนโปรแกรม ควรเริ่มจากอะไรดี? - LearnAlgorithm
September 3, 2024
|
6 mins read

อยากเริ่มเขียนโปรแกรม ควรเริ่มจากอะไรดี?

อยากเริ่มต้นเขียนโปรแกรมควรเริ่มต้นอย่างไร? ทำโปรเจคดีไหม? ควรเริ่มจากภาษาอะไร? เราเขียนโปรแกรมไปเพื่ออะไร?

อยากเริ่มเขียนโปรแกรม ควรเริ่มจากอะไรดี?

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

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

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 ที่เจ๋งขึ้นก็แค่นั้น

Home-cooked Software
เรามักเรียก software ที่สร้างมาใช้เองว่า “Home-cooked Software”

ควรเริ่มต้นเขียนโปรแกรมอย่างไร?

“ควรเริ่มต้นเขียนโปรแกรมอย่างไร?”

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

ไม่จำเป็นต้องเริ่มจากภาษา C, Javascript, Python หรือต้องไปอ่านว่าคอมพิวเตอร์ทำงานอย่างไร แต่เริ่มจากภาพว่าเราจะทำอะไร แล้วค่อยเลือกเครื่องมือที่เหมาะสมกับเป้าหมายนั้น

Make Real by Tldraw, Retool
Make Real (AI sketch to code) ที่ช่วยให้เรา prototype หลาย ๆ อย่างให้เร็วขึ้น; Retool (Lowcode) ที่ช่วยให้เราสร้าง internal tool หรือ workflow ต่าง ๆ ได้ไวขึ้น

ความโชคดีในปัจจุบันนี้คือเรามีเครื่องมือเยอะมาก ๆ เรามี Nocode/Lowcode tool ที่ช่วยให้เราสร้างอะไรได้ไวขึ้น เรามี AI ที่เราสามารถ sketch ภาพไว ๆ แล้วโยนให้มัน generate working code ออกมาได้ เรามี tool อีกเยอะแยะมากมายที่ช่วยให้เราสร้างสิ่งที่เราต้องการได้แทบจะทันที

“Feel the power of programming” ก่อนครับ สร้างอะไรเล็ก ๆ ให้ตัวเอง

สุดท้าย small wins พวกนี้หละครับที่จะเป็น motivation ให้เราอยากศึกษาเครื่องมือใหม่ ๆ อยากลงลึกใน fundamentals เพื่อจะได้ทำอะไรได้มากขึ้น และอยากสร้างโปรเจคที่ใหญ่ขึ้นต่อไป

Chun Rapeepat

Rapeepat Kaewprasit (Chun)

คน ๆ หนึ่งที่ชื่นชอบในการสร้าง การทำธุรกิจ และการได้ลองทำอะไรใหม่ ๆ ไปเรื่อย ๆ