09 พฤษภาคม 2555

พงกี้ note


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

---------------------------------------------------------------------------------

จิ๊ก หลี เม้ง แปะ หลี๊ ทง 

- ถ้าเราเข้าใจเหตุผลอย่างชัดเจน ร้อยปัญหาก็แก้ไขได้หมด : ตัน ภาสกรนที

หลักการนี้ใช่เลย
คำๆนี้มาจากคุณตัน สมัยเด็กพ่อสอนเรียนลูกคิด
พอรู็หลักการคิด โจทย์กี่ร้อยข้อก็ทำได้หมด

เหมือนการเขียนโปรแกรมเป๊ะเลย
ขอแค่รู้วิธีคิด ไม่ต้องรู้คำสั่งด้วยซ้ำ
โจทย์กี่ร้อยข้อก็ทำได้หมดจริงๆ
ตรงกันข้าม ต่อให้รู้คำสั่งเป็นร้อยๆ
แต่วิธีคิดผิด โจทย์ข้อเดียวก็ทำไม่ได้!!!!!

skill สำคัญกว่าความรู้ เพราะความรู้มีอยู่ใน google !!!!
รู้เยอะดีมั้ย - ดีครับ แต่ไม่ได้แปลว่าคือทั้งหมด
เพราะฉะนั้นไม่จำเป็นต้องรอรู้เยอะ ถึงจะทำได้
เริ่มสร้าง skill สำคัญกว่ามาก


รู้น้อย + skill น้อย = จบข่าว
รู้เยอะ + skill น้อย = ทำอะไรไม่ค่อยได้
รู้น้อย + skill เยอะ = เรียนรู้ได้
รู้เยอะ + skill เยอะ = ฉุดไม่อยู่แล้ว


---------------------------------------------------------------------------------


skill ที่จำเป็นในการเขียนโปรแกรม
  - 4 google skill
  - 3 copy paste skill
  - 2 debug skill
  - 1 logic skill

skill hi class
  - database skill
  - analysis skill (การคิด algolithm เพื่อแก้ปัญหา)

ระบบการเรียนรู้ด้วยตัวเอง [All work is you]
เขียนโปรแกรมง่ายมาก
  - เพียง skill ไม่ต้องใช้ความจำเลยยยยยยยย
  - เหมือภาษาคนแต่ง่ายกว่าเยอะ
  - grammar น้อยมาก
  - จากคนทำไม่ได้เลย แค่คืนเดียวก็คำแนนเต็มได้
  - คำตอบตายตัว 100 คนทำ output เท่ากัน

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

กฎเหล็ก
  - ทำโจทย์เยอะ
  - โจทย์ง่ายที่เราทำได้ เพื่อฝึกทักษะ
  - เรียนจากการทำ ไม่ได้อะไรจากการดูอย่างเดียว
  - vdo / text ที่ทำตามได้ อยู่ที่ copy paste skill level ไหน
  - การเรียบเรียงความคิด ลงกระดาษ

เงินเดือน/รายได้ ของโปรแกรมเมอร์

level คร่าวๆ ของ แต่ละ skill แบ่งเป็น 5 - 10 level

1.logic
  - เรียนรู้ syntax เบื้องต้น
    - การประกาศตัวแปร
    - porperties
    - คำสั่ง if วนหลูบ
    - การเรียกใช้ function
    - การแก้ไข โจทย์ปัญหา
    - Flow chart
  - ฝึกทักษะการคิด แก้โจทย์ง่ายๆได้
    - เปรียบเทียบตัวเลข มากกว่าน้อยกว่า
    - โปรแกรมคำนวนง่ายๆ แปลงหน่วย
  - ฝึกทักษะการคิดแก้โจทย์ที่ซับซ้อนขึ้นมาหน่อย (มีการแตกโจทย์เป็นโจทย์ย่อย ต่างๆ)
    - การหาจำนวนเฉพาะ
    - ทำโจทย์พีระมิดขั้นต้น
    - ไฮโล
    - บับเบิ้ล ซอร์ท
  - การเขียนโปรแกรมจาก อัลกอลิทึ่ม
  - การสร้างอัลกอลึทึ่มเพื่อแก้โจทย์
  - สร้างโปรแกรมเล็กๆ ขึ้นมาได้ (มีวิธีคิดที่เป็นระบบ)
    - เครื่องคิดเลข
    - เกมง่ายๆ
  - การสร้างอัลกอลิทึ่มระดับสูง
  - การสร้างโปรแกรมเพื่อใช้งานจริง
  - Master of logic skill

2.debug
  - อ่าน code ออก เข้าใจการทำงานเบื้องต้น
  - no common sense (เคล็ดวิชาไร้ใจ)
  - debug ด้วยโปรแกรม (เกือบทุกภาษามีเครื่องมือในการ debug)
  - แกะ code ที่คนอื่นเขียนมา
  - แกะ code ที่ซับซ้อน
  - แกะ code เพื่อเอามาใช้กับ project ของเรา
  - Master of debug skill

3.copy & paste (require lv3 Logic & debug skill)
  - ศิลปะของการ copy code มาใช้
  - การ copy code ที่คล้ายกันมาแก้
  - การ copy function มาใช้
  - การ copy code จาก google
  - Master of copy & paste skill

4.google
  - google รู้ทุกอย่าง / เราใช้ google ทำอะไรได้บ้าง
  - หัดใช้ google ให้เป็น
  - การหา code ที่ต้องการ / การสร้าง keyword
  - เราจะหาอะไรจาก google
  - นำสิ่งที่หาได้มาใช้อย่างไร
  - การทำเรื่องใหม่ๆ ที่ไม่เคยทำมาก่อนด้วย google
  - Master of google skill

04 พฤษภาคม 2555

Skill ที่ 3-Copy & Paste skill



Skill ที่ 3-Copy & Paste skill

Skill นี้ถือเป็น skill เทพอีก skill นึงนะครับ


<< เคยได้ยินมั้ยครับ การ copy มันคือศิลปะ!! >>
ไม่ได้เอาฮานะครับทักษะนี้ บางคนอ่านอาจจะคิดว่าผมล้อเล่น
การ copy เนี่ยนะทักษะที่จำเป็น... จะบ้าเหรอ!!!


ถ้าใครไม่เชื่อผม ไปถามโปรแกรมเมอร์มืออาชีพได้เลยครับ
ทักษะการ copy ถือเป็นทักษะหากินทักษะนึงเลยทีเดียว
สำคัญจนบางทีเพื่อนๆผมสมัยเรียนยังเรียกคณะที่ผมเรียนตัวย่อเป็น cpe
จริงๆมาจาก computer engineering
แต่เรียนๆไปสงสัยว่าจริงๆ cpe นี่ย่อมาจาก copy engineering รึเปล่า





แต่เราต้องรู้จัก copy ให้เป็นครับ   ไม่ใช่สักแต่ copy มาต้องเอามาใช้ให้เป็นด้วย
แล้วทีนี้   เราจะ copy กันยังไง copy อะไร copy มาทำไม แล้ว copy มาใช้ยังไง?


ก่อนอื่นคือ เราต้องพอมีพื้นฐาน 2 skill แรกก่อนครับถึงจะใช้ skill นี้ได้
เพราะเราต้องพออ่าน code ออก พอเข้าใจหลักการคิดก่อนนั่นเอง
เราถึงจะสามารถไป copy code จากที่อื่นมาใช้ได้

ถ้ามองเป็น skill แบบเกมออนไลน์ก็คือ

เราจะอัพ skill copy ได้
- เราต้องอัพ skill logic กับ skill debug
ซักอย่างละ 2 level ก่อนถึงจะมาอัพ skill copy ได้ครับ ^^
คือเวลาเรา copy code มาชุดนึง อย่างแรกเราต้องมาไล่ดูก่อนว่า code มันทำงานยังไงคร่าวๆ
อาจจะไม่ต้องเจาะลึกลงไปทั้งหมดว่าแต่ละบรรทัดทำงานยังไงบ้าง
แต่อย่างน้อยเราต้องรู้ครับว่า input output ของ code นี้คืออะไร
แล้วก็ขึ้นอยู่กับการใช้งานด้วยว่า เราจะเอา code นี้มาใช้ทำอะไร

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


หรือถ้า code ที่เรา copy เป็นลักษณะเดียวกับที่เราเขียนเป๊ะๆเลย
เราก็ต้องรู้ว่าเราจะแก้ส่วนไหนได้ เพื่อให้เป็นไปตามที่เราต้องการ
ยกตัวอย่างเช่น code การติดต่อกับ database
เราอาจะ copy code มาใช้ได้เลยโดยการเปลี่ยนแค่คำสั่ง sql(คำสั่งที่สั่งงาน database)


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

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


เป็นธรรมดาครับ ให้ค่อยๆลอง ค่อยๆทำไปเรื่อยๆ
ถ้าอัพ level skill copy สูงๆแล้วล่ะก็ การเขียนโปรแกรมไม่ใช่เรื่องยากอีกต่อไปครับ
ยิ่งปัจจุบัน เรามีเครื่องมือเทพอย่าง google
พูดได้เลยครับว่า ทุกอย่างที่ต้องการ ทำได้หมด
ไม่มีอะไรทำไม่ได้ แค่ใช้เวลาเยอะหรือน้อยเท่านั้นเอง (เวลาในการ search หา code นั่นเอง)





เดาออกแล้วใช่มั้ยครับว่า skill สุดท้ายคืออะไร
เป็น skill ที่โปรแกรมเมอร์ทุกคนชอบมากครับ
ผมให้ชื่อว่า google skill !!!


บอกได้เลยว่า skill อันนี้ถือเป็น skill ท่าไม้ตายเลยทีเดียว
เป็น skill เทพ ปราบบอสได้ทุกตัว
ด้วย skill เทพนี้การเขียนโปรแกรมบนโลกใบนี้ แทบจะเรียกได้ว่าไม่มีคำว่าเป็นไปไม่ได้เลยทีเดียว
ทุกอย่างทำได้หมดครับ ด้วย skill มหาเทพ google


แล้วพบกันครับกับ skill ปราบบอส Skillที่ 4 - google skill
 
Code Master Club Forum