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

Hiring! บริษัทที่น่าสนใจ

Carmen Software company cover
Carmen Software
Hotel Financial Solutions
Next Innovation (Thailand) Co., Ltd. company cover
Next Innovation (Thailand) Co., Ltd.
We are web design with consulting & engineering services driven the future stronger and flexibility.
KKP Dime company cover
KKP Dime
KKP Dime บริษัทในเครือเกียรตินาคินภัทร
Kiatnakin Phatra Financial Group company cover
Kiatnakin Phatra Financial Group
Financial Service
Fastwork Technologies company cover
Fastwork Technologies
Fastwork.co เว็บไซต์ที่รวบรวม ฟรีแลนซ์ มืออาชีพจากหลากหลายสายงานไว้ในที่เดียวกัน
Thoughtworks Thailand company cover
Thoughtworks Thailand
Thoughtworks เป็นบริษัทที่ปรึกษาด้านเทคโนโยลีระดับโลกที่คว้า Great Place to Work 3 ปีซ้อน
Iron Software company cover
Iron Software
Iron Software is an American company providing a suite of .NET libraries by engineer for engineers.
CLEVERSE company cover
CLEVERSE
Cleverse is a Venture Builder. Our team builds several tech companies.
Nipa Cloud company cover
Nipa Cloud
#1 OpenStack cloud provider in Thailand with our own data center and software platform.
Bangmod Enterprise company cover
Bangmod Enterprise
The leader in Cloud Server and Hosting in Thailand.
CIMB THAI Bank company cover
CIMB THAI Bank
MOVING FORWARD WITH YOU - CIMB is the leading ASEAN Bank
Bangkok Bank company cover
Bangkok Bank
Bangkok Bank is one of Southeast Asia's largest regional banks, a market leader in business banking
MuvMi (Urban Mobility Tech Co.,Ltd.) company cover
MuvMi (Urban Mobility Tech Co.,Ltd.)
Shape the future of urban mobility towards affordable, clean, and safe solutions
T.N. Digital Solution Co., Ltd. company cover
T.N. Digital Solution Co., Ltd.
TNDS has been involving in every first move of banking’s major digital transformation.
KBTG - KASIKORN Business-Technology Group company cover
KBTG - KASIKORN Business-Technology Group
KBTG - "The Technology Company for Digital Business Innovation"
Siam Commercial Bank Public Company Limited company cover
Siam Commercial Bank Public Company Limited
"Let's start a brighter career future together"
Icon Framework co.,Ltd. company cover
Icon Framework co.,Ltd.
Global Standard Platform for Real Estate แพลตฟอร์มสำหรับธุรกิจอสังหาริมทรัพย์ครบวงจร มาตรฐานระดับโลก
REFINITIV company cover
REFINITIV
The Financial and Risk business of Thomson Reuters is now Refinitiv
H LAB company cover
H LAB
Re-engineering healthcare systems through intelligent platforms and system design.
The Gang Technology Co., Ltd. company cover
The Gang Technology Co., Ltd.
We're a Digital Agency that helps our customers transform their business into digital with ease.
LTMH company cover
LTMH
LTMH มุ่งเน้นการพัฒนาผลิตภัณฑ์ที่สามารถช่วยพันธมิตรของเราให้บรรลุเป้าหมาย
Seven Peaks company cover
Seven Peaks
We Drive Digital Transformation
Wisesight (Thailand) Co., Ltd. company cover
Wisesight (Thailand) Co., Ltd.
The Best Choice For Handling Social Media · High Expertise in Social Data · Most Advanced and Secure
MOLOG Tech company cover
MOLOG Tech
We are Modern Logistic Platform, Specialize in WMS, OMS and TMS.
Data Wow Co.,Ltd company cover
Data Wow Co.,Ltd
We enable our clients to realize increased productivity by solving their most complex issues by Data
LINE Company Thailand company cover
LINE Company Thailand
LINE, the world's hottest mobile messaging platform, offers free text and voice messaging + Call
LINE MAN Wongnai company cover
LINE MAN Wongnai
Join our journey to becoming No.1 food platform in Thailand

ทำไปเรื่อยๆเลยครับ เดียวจะจำได้เอง code นั้นเป็นแค่เครื่องมือ สิ่งที่จะทำให้โปรแกรมเมอร์จะเก่งหรือจะเทพหรือไม่ อยู่ที่โลจิค, อังกอลิทึม, แนวคิด, จินตนาการ และประสบการณ์ครับ
สำหรับผม coding ง่ายๆแต่ อังกอลิทึมขั้นเทพที่อัดอยู่ภายในโค้ต ย่อมมีประสิทธิภาพมากกว่า coding แบบบ้าสาระพัดเทคนิคแต่อังกอลิทึมพื้นๆแน่นอน

"โปรแกรมเมอร์ที่เก่งจำเป็นต้องจำ code ให้ได้เยอะๆรึป่าวครับ"

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

โค้ดที่สั้นกว่า อาจจะเสียประสิทธิภาพมากกว่าก็ได้นะครับ ตามหลักการของโครงสร้างข้อมูล ประสิทธิภาพเป็นสิ่งที่สำคัญที่สุดอ่ะครับ ในบางกรณีการเขียนโค้ดที่ยาวๆถึกๆก็รักษาประสิทธิภาพที่ดีกว่านะครับ

ส่วนหนึ่งก็จริง แต่ถ้าเน้น Performance แบบเม็ดๆ จริง
ต้องอย่าลืมว่าหลายภาษา เช่นพวก interpreter
อย่าง php python พวกนี้ต้องศึกษาว่าลักษณะโค้ดที่ถูกต้องเป็นยังไง
เพราะแต่ละภาษาการแปล opcode มันก็ส่งผล
บางคนอยากให้โครตสั้น แต่ต้องมาเพิ่มภาระการแปล opcode
ผมว่ามันก็แปร่งๆ อยู่น้า

ตอบคำถามกระทู้ ผมว่าการจำภาษาได้มันผลพลอยได้ครับ เพราะใช้บ่อยๆ
สมัยก่อนผมหนังสืออยู่หน้าตักแล้วพลิกๆ พิมพ์แบบนั้น แต่สมัยนี้ก็ไม่ต่างกัน
เพียงแต่ใช้ search จาก doc ที่โหลดมาแทน
และลดเวลาการทำงานลงอีกด้วยพวก auto complete

แต่ถ้าว่าอะไรเป็นตัวชี้ที่ว่าเก่งไม่เก่ง ผมว่าฟังค์ชั่นโปรแกรมหนึ่งก็เหมือนเครื่องมือตัวหนึ่ง
ต้องเลือกใช้ให้เหมาะสม ใช้อะไรถึงเหมาะกับงานที่ว่า ไม่งั้นก็เหมือนเพิ่มภาระการทำงาน
จนเป็นขี้ช้างจับตั๊กแตนไป นอกนั้นก็เหมือนความเห็นท่านอื่นครับ ^^

ผมเดาศัพท์เวลาจะเรียก Method น่ะ นอกนั้นผมก็มั่วเรื่อยๆ
ส่วนหนังสือเดี๋ยวนี้ไม่อ่านแล้วครับ ถ้ามันติดตรงไหนก็ search หาเอาครับ

ผมว่าอยู่ที่จินตนาการในการ solve ปัญหาเหมือนกันคับ
คือยังไงความรู้พื้นฐานนี่มี เกลือนกลาดตามเวป ตามหนังสือ หาได้ง่ายๆ
อย่าง search ใครๆก็รู้จัก BFS, DFS
แล้วทำไมมันยังจะมีพวก search engine อย่าง google bing aol อีก

แสดงพวกนี้ต้องมีอะไรที่เหนือชั้นกว่าในการ search ที่มีอยู่ในตำราทั่วๆไป

"ผมว่าอยู่ที่จินตนาการในการ solve ปัญหาเหมือนกันคับ"
ชอบคำนี้มากมาย โปรแกรมเมอร์ที่ดีต้องจิ๊นให้เก่ง LOL

ส่วนผม "โปรแกรมเมอร์ที่เก่ง ต้องพูดจาให้คนอื่นรู้เรื่อง"
เพราะพอพูดกันไม่รู้เรื่อง เลยไม่ได้ทำงานมาทำน่ะสิ
...

แซว เอาฮา แต่ based from true story นะครับ

ก็มีส่วนแต่ผมว่าไม่ใช่ ทั้งหมดที่ทำให้พูดกับคนทั่วไปไม่รู้เรื่อง
หรือง่ายๆ พูดกับนายจ้าง/คนมาจ้างไม่รู้เรื่องนั่นหล่ะ
คือการที่เราเชี่ยวชาญ อะไรไปเยอะๆ ทำให้ติดคำพูดเฉพาะกลุ่ม มากขึ้นเรื่อยๆ
ทำให้ละเลยหรือลืมคำพูดพื้นฐานที่คนทั่วไปใช้กันไปน่ะครับ

เช่น มีคนมาจ้างเขียน program นึง เอาเป็น program stock สินค้าธรรมดาๆ นี่หล่ะ
เขาถามว่าทำได้ไหมราคาเท่าไหร่ นานไหม
ยกตัวอย่างเพื่อนผมแล้วกัน
หลังได้ยินคำถาม กว่ามันจะตอบ มันหยุดคิดไปสักพัก เหมือนคิดอะไรในหัว แล้วคำพูดที่ออกมาประโยคแรกคือ
"ต้องการใช้ ภาษาอะไรครับ java, C, .net หรือ VB หรือจะเป็น php จะทำเป็นแบบ online ด้วยไหม สินค้าเป็นแบบ static หรือ make by order"

ความเห็นผมคือ ประโยคด้านบนมันเป็น ข้อมูลที่ พูดออกไปยาวๆ แต่ลูกค้าจับอะไรไม่ได้เลย เพราะไม่รู้จัก จับได้แค่ว่า "ทำ online หรือไม่ online"
ผมเลยต้องตอบให้ใหม่ว่า
"ทำได้ครับ ส่วนอื่นๆ ต้องรบกวนพี่อธิบายงานที่พี่ทำอยู่คร่าวๆ ก่อนครับว่าทำเกี่ยวกับสินค้าแบบไหน ประเภทไหน บลาๆ ..."

ราวๆ นี้

ผมว่ามันเป็นทักษะพื้นฐานที่มนุษย์ทุกผู้ควรจะมีนะครับ ^^ ไม่ใช่แค่โปรแกรมเมอร์อย่างเดียวนะ

คนพูดไม่รู้เรื่องใครเขาอยากจะคบด้วยล่ะ ?

คุณพูดภาษาไทยเก่ง คุณต้องจำทุกประโยครึเปล่าครับ

เวลาคุณสั่งก๋วยเตี๋ยวกิน คุณสั่งด้วยความเข้าใจในภาษา หรือสั่งด้วยการท่องจำครับ ????

ภาษา Program คือภาษาที่คุณใช้ติดต่อกับคอมพิวเตอร์ สั่งให้มันทำอะไร
เหมือนที่คุณพูดภาษาไทยนั่นแหละครับ

คุณสั่งก๋วยเตี๋ยว คุณพูดได้กี่แบบ
1.เส้นเล็กชาม
2.เล็กน้ำชาม
3.เส้นเล็กน้ำชามนึง
4.เส้นเล็กน้ำหนึ่งชาม
5..6..7..8..9..10.........

การเขียนโปรแกรมก็เช่นกัน ถ้าคุณเข้าใจในตัวภาษาโปรแกรม
สิ่งเดียวที่คุณต้องการ แต่คุณสามารถพูดกับคอมพิวเตอร์ ด้วยถ้อยคำที่ต่างกันได้

สรุปแล้ว การเข้าใจในตัวภาษา คุณจะสร้างได้ทุกสิ่ง ที่คุณจะจินตนาการได้
คุณจะเขียนโค้ดได้ทุกรูปแบบ แม้แต่โค้ดที่ไม่เคยเกิดมาบนโลกใบนี้เลยก็ตาม

ไม่ใช่ท่องจำ

เพราะถ้าท่องจำ คุณรู้ไหม หลายสิบปีที่ผ่านมา ถ้าพวกโปรแกรมเมอร์ทั้งหมดท่องจำ
คุณจะไม่เห็นอะไรใหม่ๆ ในโลกใบนี้เลย

ถ้าเรื่องจำ code หมายถึงชื่อ function , method , variable
เรื่องจำ code นั่นจำเป็นบ้างไม่จำเป็นบ้างครับ ขอแค่จำพื้นฐานของภาษานั่นให้ได้ก็พอครับ
เพราะการเขียนโปรแกรมสมัยนี้ยังไงก็ต้องเอา class หรือ library ของคนอื่นมาเสริม ยังไงก็ต้องดู document อยู่ดี

เทคนิคการจำ code ก็คงต้องลงมือปฏิับัติเขียนบ่อยๆ แก้ปัญหาบ่อยๆ และก็คิดว่าใช่ต้องใช่แน่ๆ มันเป็นอะไรที่พูดยากต้องให้เธอแก้...ประมาณว่ารู้คำศัพท์พื้นๆของภาษานั้นๆ + คำศัพท์คอมฯ+ศัพท์ภาษาอังกฤษบ้าง + ความเกี่ยวของงาน แล้วพอเดาได้เลย เขาต้องใช้ชื่อฟังก์ชันประมาณนี้แน่ๆ ก็สามารถเปิด document ได้เร็วแล้วสุดท้ายก็จะจำได้เร็วด้วย

เรื่องจำ code ได้หรือไม่ อันนี้เป็น skill ของแต่ละปัจเจกบุคคล
แต่ก็แนนอนว่า"จำได้" ย่อมดีกว่า "จำไม่ได้"
มันจะได้เปรียบกันในเรื่อง "เวลา" แต่ก็เป็นคนละเรื่องเดียวกันกับ "คุณภาพ"

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

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

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

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

ยกเว้นคุณคิดจะทำเล่นๆ และยอมรับว่าตัวเองจะหยุดแค่ "มือสมัครเล่น"

+1

วงการโปรแกรมเมอร์เป็นวงการเดียว(ที่นึกออก)ที่ต้องใช้ความรู้ในด้านอื่นๆค่อนข้างมาก นึกเล่นๆว่าถ้าเราเป็นโปรแกรมเมอร์ระดับเทพที่ต้องเขียนโปรแกรมบัญชี ถ้าเราไม่มีความรู้ด้านบัญชีเลย ยังไงก็เขียนไม่ได้ครับ

บางปัญหาเราอาจจะแก้ได้ง่ายนิดเดียวถ้ามีความรู้เฉพาะทางในด้านนั้นๆเยอะ แต่ถ้าเรารู้น้อยเขียนโค้ดเก่งอย่างเดียว เราอาจจะต้องเขียนอ้อมโลกเพื่อให้ได้ผลลัพท์แบบเดียวกัน

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

และจินตนาการนั้นต้องอยู่บนฐานของความเป็นจริง
ไม่ใช่การเพ้อเจ้อ ไม่ใช่การท่องจำคำพูดของผู้อื่นมากล่าว

เหนือสิ่งอื่นใดคือการลงมือทำให้สัมฤทธิ์ผล

เพราะคนในโลกไม่ได้รู้จักเราว่าคิดอะไร แต่รู้จักเราจากสิ่งที่เราทำ

จริงๆ แล้วประโยคนี้ ต้องพูดว่า "จินตนาการสำคัญกว่าความรู้" ครับ
Imagination is more important than knowledge.

เป็นคำกล่าวของไอน์สไตน์ และผมเป็นคนนึงที่เห็นด้วยเป็นอย่างยิ่งกับประโยคนี้
(หลังจากที่คิดอยู่นานว่า จริงเหรอ?)

ยกตัวอย่างง่ายๆ
การที่คุณเขียน PHP ได้ มันคือความรู้
แต่จินตนาการทำให้คนเอา PHP มาทำเป็น facebook

ผมลองตั้งคำถามว่า "แล้วถ้าไม่มีความรู้จะทำอะไรได้?"
คำตอบก็คือ "ถ้าคุณจินตนาการได้แล้ว มันจะผลักดันให้คุณไปแสวงหาความรู้เองนั่นแหละ"
(หรือจ้างคนที่มีความรู้ทำแทน ถ้ามีทุน)

คล้ายๆกับ ถามว่า ความรัก...คืออะไร อิอิ มันมีหลายนิยามครับแล้วแต่คนมอง

สำหรับผมแล้ว โปรแกรมเมอร์ที่เก่ง คือ เขียนโปรแกรมแล้วหาเงินเข้ากระเป๋าได้มหาศาล นั้นล่ะเก่งที่สุดแล้วครับ ดูที่ผล อย่างเดียววิธีการเนี่ยมันเรื่องรอง

ลอจิคดี มีหลักการ พื้นฐานแน่น มีความคิด และ ... มี Ego ที่ดี (คือมีตัวตนของตัวเอง ไม่เกี่ยวกับการยึดติดนะครับ) แค่นี้พอแล้วล่ะครับ

maquidkzy Fri, 03/12/2010 - 15:50

http://stevenbenner.com/2010/08/will-the-really-real-programmers-please-stand-up/

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

เหมืิอนกันเหะ ผมเป็นเวปดีไซน์ เวลาจะพิมพ์ CSS ที ก็แค่เคาะคีย์บอร์ดแค่ตัวอักษรตัวสองตัว แล้วก็ไล่หาเอา เวลาลืมโค๊ดก็เสริชหาที... แต่ผลงานก็ออกมาทีนะครับ

โปรแกรมเมอร์ที่เก่ง... ไม่จำเป็นต้องจำโค้ดได้มาก... ไม่จำเป็นต้องเขียนได้หลายภาษา...
แต่...

  1. ต้องมีศิลป์
    • เข้าใจความรู้สึกของผู้อื่น(เจ้านาย,ลูกค้า) ว่าแท้จริงแล้ว ต้องการอะไรจากโปรแกรม
  2. ต้องมีจิตวิญญาณความเป็นหมอ
    • นอกจากเข้าใจความรูสึกของผู้อื่น (ผู้ป่วย) ต้องรู้ว่าผู้ป่วยเป็นโรคอะไร แล้วจัดยาให้ถูกกับโรค (Solution)
  3. และที่สำคัญ ต้องขยัน
    • เทคโนโลยี เปลี่ยนเร็ว อย่าขี้เกียจในการติดตามข่าวสาร
    • นอนดึก อย่าตื่นสาย
    • 1 สัปดาห์ 7 วัน วางแผนไว้ 1 วันสำหรับสร้างจินตนาการ

http://janawat.wordpress.com

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

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

เมื่อก่อนคิดว่าตัวเองเก่งนะ ตอนเริ่มเขียนใหม่ๆ ผ่านไปสาม-หกเดือน กลับมาอ่านโค้ดตัวเอง อ่านไม่ออกTT กว่าจะอ่านออก คิดว่ากูนี่เทพจริงๆ คิดได้ไง^^

ถ้ากลับมาอ่านโค้ดตัวเองไม่ออกภายหลัง ควรปรับปรุงโค้ดตัวเองอย่างยิ่งครับ เพราะคนอื่นก็คงอ่านไม่ออกเหมือนกัน อาจจะตั้งชื่อตัวแปรให้สื่อความหมายขึ้น ทำโค้ดให้อ่านง่ายขึ้น และใส่คอมเม้นท์อธิบายว่าทำงานอะไร เพื่ออะไร