การค้นหาตัวอย่างรหัสอย่างสม่ำเสมอเป็นสัญญาณของนักพัฒนาซอฟต์แวร์ที่ไม่ดีหรือไม่ [ปิด]


161

ฉันเป็นนักเรียน CS ที่มีประสบการณ์หลายปีใน C และ C ++ และในช่วงไม่กี่ปีที่ผ่านมาฉันทำงานกับ Java / Objective C เพื่อพัฒนาแอพอย่างต่อเนื่องและตอนนี้ฉันได้เปลี่ยนไปใช้การพัฒนาเว็บและเน้นที่ทับทิมเป็นหลัก Rails และฉันมาถึงสำนึกว่า (เช่นเดียวกับการพัฒนาแอพจริงๆ) ฉันอ้างอิงวิธีอื่น ๆ ของรหัสมากเกินไป ฉันใช้ฟังก์ชั่นของ Google อย่างต่อเนื่องในหลาย ๆ สิ่งที่ฉันคิดว่าฉันควรจะทำได้ตั้งแต่เริ่มต้นและมันทำให้ฉันมั่นใจเล็กน้อย

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

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

บุคคลนั้นเป็นนักพัฒนาซอฟต์แวร์ที่ไม่ดีโดยมองหาตัวอย่างรหัสสำหรับงานที่มีความซับซ้อนปานกลางหรือไม่


14
มันขึ้นอยู่กับสิ่งที่ฉันกำลังทำอยู่สิ่งที่ฉันต้องทำคือการค้นหาที่จำเป็น มีบางสิ่งที่ไม่คุ้นเคยมากขึ้นฉันค้นหาตัวอย่างตลอดเวลา
Jaydee

11
ขึ้นอยู่กับว่าคุณจะเขียนรหัสด้วยตัวเองหรือเปล่า

18
ภรรยาของฉันเฝ้าดูการแข่งขันทำอาหารและการแข่งขันคัพเค้กในทีวีที่พวกเขามีเวลาเล็กน้อยในการปรุงอาหารแสนอร่อยจากส่วนผสมแบบสุ่ม หลายครั้งที่อาหารแย่หรือไม่สุกและไม่ได้คุณภาพที่ดีที่สุดอย่างแน่นอน พวกเขาดีสำหรับการแสดง แต่ฉันอยากให้พ่อครัวของฉันใช้เวลาของเขาและทำมันให้ถูกต้อง เช่นเดียวกันอาจกล่าวได้ว่า Zuckerberg และลูกน้องของเขาเป็นพวกแฮ็คฮ็อตที่เขียนเว็บไซต์เส็งเคร็งที่ต้องเขียนใหม่ทันทีที่เริ่มมีผู้ใช้จำนวนน้อยกว่า คนส่วนใหญ่อยากให้คุณทำให้ถูกต้องในครั้งแรก
maple_shaft

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

9
การวิจัยเป็นสิ่งสำคัญ เพียงแค่ไม่ได้มีส่วนร่วมในสิ่งที่ผมเรียก BSDD (บล็อกสแปมขับเคลื่อนการพัฒนา)
โทมัส Dignan

คำตอบ:


238

คัดลอกวางสุ่มสี่สุ่มห้า: ไม่ดี

ค้นหาเอกสารอ่านตัวอย่างโค้ดเพื่อทำความเข้าใจ: ดี

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


21
@ ใหม่แน่นอนว่าไม่เป็นไร ... นักพัฒนาซอฟต์แวร์อย่างฉันคิดว่าคนที่ไปแฮ็กเกอร์นั้นไร้สาระ ส่วนใหญ่เป็นนักเขียนโปรแกรมที่ยอดเยี่ยม แต่นักพัฒนาซอฟต์แวร์ที่น่ากลัวซึ่งดื่มวัวแดงจำนวนมากเกินไป
maple_shaft

23
นักพัฒนามีสมองที่จะรู้ว่ามีคนทำบางสิ่งบางอย่างก่อนที่มือและที่จะมองหาตัวอย่างและปรับตัวเข้ากับพวกเขา นักพัฒนาไม่เสียเวลาห้ำหั่นกะโหลกบนกำแพง
David

19
@NewlyInsecure เปรียบเทียบการสังหาร อย่างจริงจังยิ่งคุณเปรียบเทียบตัวเองกับผู้อื่นมากขึ้นขวัญเสียกำลังใจมากขึ้นและกลัวคุณจะกลายเป็น สร้างความเชื่อมั่นของคุณเองตามความจริงไม่ใช่สิ่งที่คนอื่นทำ หากคนที่แฮ็คแฮ็ ธ สามารถตีโค๊ดได้เร็วขึ้นใครจะสนใจ? แม้ว่านั่นจะเป็นตัวบ่งชี้ความสามารถ แต่ก็จะมีคนฉลาดกว่าอยู่เสมอไม่ว่าคุณจะเก่งแค่ไหนก็ตาม
Phil

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

3
@ NewlyInsecure: คุณมีสองสิ่งที่ขัดแย้งกับคุณ: ประการแรกคือ API มีขนาดใหญ่และซับซ้อนกว่าที่เคยเป็นซึ่งทำให้ยากต่อการจดจำ ประการที่สองคืออายุซึ่งคุณยังไม่มีตอนนี้ แต่จะก่อนที่คุณจะรู้ เมื่อคุณอายุมากขึ้นคุณจะพบว่าคุณจำทุกอย่างไม่ได้และคุณจะเริ่มเก็บเซลล์สมองของคุณสำหรับสิ่งที่คุณต้องรู้ การฝึกฝนทักษะที่ใช้ในการทำวิจัยและค้นหารายละเอียดที่คุณลืมไปนั้นเป็นสิ่งสำคัญ
Blrfl

110

หากคุณเขียนรหัสวิธีการบำรุงรักษาของคุณและเข้าใจจริง ๆ แล้วสิ่งที่คุณคัดลอก / วาง / แก้ไขนั้นจะไม่มีปัญหา

ฉันเสียชีวิตข้างในทุกครั้งที่ฉันถามนักพัฒนาอาวุโสเกี่ยวกับสาเหตุที่เขาทำในสิ่งที่และคำตอบคือ "ฉันไม่รู้ฉันคัดลอกรหัสและวางในเวลาที่กำหนด"


8
บางครั้งฉันก็คิดว่าตัวเองอาจจะไม่เก่งนัก จากนั้นฉันก็อ่านคำพูดแบบนั้นและรู้สึกดีขึ้นกับตัวเองมากขึ้น
เหยือก

18
@TheJug จำไว้ว่าคุณเป็นทั้งนักพัฒนาที่ดีขึ้นและนักพัฒนาที่แย่กว่าที่คุณจินตนาการไว้
Joe

71

เช่นเดียวกับที่มีทักษะในการเขียนโปรแกรมด้วย / ออกเอกสาร API , มองหาตัวอย่างโค้ดเป็นสัญญาณที่ไม่ได้เป็นโปรแกรมเมอร์ที่ไม่ดี แต่คนที่ขาดความคล่องแคล่ว ...

... ที่นี่ฉันกำลังพูดถึงความคล่องแคล่ว เกี่ยวกับการไม่เพียง แต่มีความสามารถอย่างคล่องแคล่ว

คุณรู้หรือไม่ว่ามันจะต้องคล่องแคล่ว? เมื่อมีคนมองคุณมันจะปรากฏขึ้นราวกับว่าคุณพิมพ์รหัสในขณะที่ ...

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

... นั่นเป็นความรู้ที่คล่องแคล่ว เมื่อคุณใช้เวลาหนึ่งนาทีในการทำสิ่งที่มือใหม่ใช้เวลาหนึ่งชั่วโมง มันคุ้มค่ากับความพยายามจริงๆ มันมีกลิ่นเหมือนชัยชนะ

... และการฝึกฝนคือวิธีเดียวที่เชื่อถือได้สำหรับฉันในการได้อย่างคล่องแคล่ว


14
ความเป็นเลิศในเรื่องความคล่องแคล่ว ฉันพูดภาษาโคบอลได้คล่อง ฉันหยุดพักจากไอทีเป็นเวลา 20 ปีและกลับมาเรียน Java อีกครั้ง ฉันรู้วิธีการทำบางอย่างใน COBOL ... แต่ส่วนหนึ่งของกระบวนการเรียนรู้ภาษา Java คล่องแคล่วคือการค้นหาตัวอย่างโค้ดวิเคราะห์ว่าทำไมพวกเขาทำงานอย่างไรและปรับให้เข้ากับความต้องการเฉพาะของฉัน เมื่อคุณเรียนรู้ภาษา VERBAL ใหม่คุณอ้างอิงพจนานุกรมภาษาอิตาลี - ภาษาอังกฤษบ่อยครั้งแรกคุณจะได้รับไวยากรณ์และกาลเวลาที่ไม่ถูกต้องและในที่สุดวันหนึ่งคุณพูดเหมือนเจ้าของภาษา เวลาและการฝึกฝนเป็นกุญแจสำคัญ ไม่ต้องกังวลกับมัน ... :)
dwwilson66

10
@ dwwilson66 สิ่งที่เป็นที่ในระดับรายวันฉันต้องจำสี่ "ภาษา" - ภาษาการเขียนโปรแกรมฝั่งเซิร์ฟเวอร์ภาษาสคริปต์ฝั่งไคลเอ็นต์, ไวยากรณ์มาร์กอัปฝั่งไคลเอ็นต์และไวยากรณ์สไตล์ฝั่งไคลเอ็นต์ ฉันไม่สามารถเก็บทุกอย่างไว้ในหัวของฉันได้ - มันก็เหมือนกับการพยายามสนทนาในอิตาลีจีนอังกฤษและคลิงออนในเวลาเดียวกัน
Tacroy

@Tacroy - แน่นอน! หากไม่มีความคล่องแคล่วคุณจำเป็นต้องใช้ทรัพยากรเพื่อช่วยเหลือ มันไม่ได้ทำให้คุณ "พูดน้อยลง" ของผู้พูดภาษาคลิงออนถ้าคุณต้องการค้นหาวลีเต็มแทนที่จะเป็นเพียงแค่คำเดียว - ไม่พูดคล่องเหมือนคนอื่น
dwwilson66

4
ประโยคสุดท้ายที่ควรจะเน้นคือไม่ได้ซ่อนอยู่ในห้อย ไม่มีวิธีอื่นที่จะคล่องแคล่วกว่าการแช่
jmlane

@ ทราบ dwwilson66 ว่ามีสิ่งที่ควรกระทำอย่างมากมายแตกต่างกันใน Java กว่าในภาษาโคบอล วัตถุไม่เหมือนกับหนังสือลอกแบบ

54

มีทฤษฎีการเรียนรู้ที่เรียกว่าวัฏจักร Kolb (หลังจากบุคคลที่อธิบายไว้) รายการในวงจรนี้คือ:

Concrete experience -> Reflective observation
    ^                        |
    |                        v
Active experimentation <- Abstract conceptualisation

คนที่แตกต่างกันชอบที่จะเริ่มต้นในที่ต่าง ๆ ในวงจร ดังนั้นจึงเป็นไปได้อย่างยิ่งที่จะเรียนรู้ด้วยการมองหาตัวอย่าง (ขั้นตอนการสังเกตการสะท้อนแสง) จากนั้นทำงานจากตัวอย่างเหล่านั้นไปยังภาพรวมด้วยการใช้นามธรรม

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


2
+1 น่าสนใจ โดยสังหรณ์ใจฉันคาดหวังว่าคนเราควรผ่านขั้นตอนเหล่านี้ไปอย่างน้อยก็เพื่อเรียนรู้ใช่ไหม นั่นคือเพียงแค่การสังเกตอาจไม่เพียงพอสำหรับการเรียนรู้ที่แท้จริงที่จะเกิดขึ้น - คุณต้องคิดเกี่ยวกับสิ่งที่คุณได้เห็นและลองทำดู
Caleb

ฉันชอบสิ่งนี้มาก ฉันเริ่มที่ไตร่ตรองการสังเกตในภาษาส่วนใหญ่ แต่ใน PowerShell ฉันมักจะเริ่มต้นที่การทดลองใช้งาน
Caleb Jares

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

39

การเปิดเผยอย่างสมบูรณ์ - ฉันเป็นคนแก่ที่ได้รับการฝึกฝนใน pre-Internet ที่แตกต่างกันในยุคการทำงาน ฉันได้ดูทักษะของนักพัฒนารุ่นเยาว์ที่แย่ลงเรื่อย ๆ ส่วนใหญ่เนื่องจากพวกเขาไม่ได้เก็บข้อมูลหรือเข้าใจวิธีการแก้ปัญหาที่พวกเขาคว้ามาจากอินเทอร์เน็ต ฉันสังเกตว่าระดับความสามารถของบุคคลที่มีหลังจาก 1-2 ปีของประสบการณ์เมื่อ 20 ปีก่อนตอนนี้คือระดับของความสามารถที่บางคนมีหลังจาก 5-7 ปีของประสบการณ์ (ใช่ว่าเป็นการสังเกตส่วนตัว แต่ฉันได้ทำการจ้างมากฉันไม่มีข้อมูลทางสถิติเกี่ยวกับเรื่องนี้และใช่บางครั้งฉันแก่และบ้าๆบอ ๆ เอาข้อความนี้ไปด้วยเม็ดเกลือและอยู่นอกบ้าน )

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

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

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

ดังนั้นหากสิ่งที่คุณกำลังค้นหาคือสิ่งที่เป็นส่วนหนึ่งของฟังก์ชั่นหลักของภาษา (BTW สิ่งนี้ควรรวม SQL หากคุณกำลังเข้าถึงฐานข้อมูล) ที่คุณใช้มานานกว่าหกเดือนฉันสงสัยว่าคุณกำลังมองหาด้วยเช่นกัน มาก. หากสิ่งที่คุณกำลังมองหาคือคุณสมบัติขั้นสูงโดยเฉพาะอย่างยิ่งคุณสมบัติที่คุณอาจไม่ค่อยได้ใช้งาน

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

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

ฝึกฝนการทำความเข้าใจโค้ด ฉันเคยเห็นคนถามคำถามที่คล้ายกันซ้ำแล้วซ้ำอีกในช่วงเวลาเพราะพวกเขาไม่เข้าใจว่าวิธีการแก้ปัญหาที่พวกเขาได้รับเดือนที่ผ่านมาปัญหา ABC เป็นวิธีการแก้ปัญหาเดียวกันกับ DEF ปัญหาใหม่

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

และเมื่อตัดสินใจว่าจะเรียนรู้อะไรต่อไปให้เจาะลึกลงไปในหนึ่งในเทคโนโลยีหลักของคุณก่อนที่จะกระโดดเข้าสู่การเรียนรู้เทคโนโลยี 30 วันแรกของเทคโนโลยีอื่น (สมมติว่าคุณมีความรู้กว้างพอที่จะทำงานจริงได้ ใช้ 6 เทคโนโลยี - รับพื้นฐานในทั้งหกก่อนเพื่อเจาะลึก) จากนั้นกลับไปกลับมาเรียนรู้สิ่งใหม่ ๆ ในระดับพื้นฐานเรียนรู้บางสิ่งในเชิงลึกยิ่งขึ้นจากนั้นเรียนรู้เทคโนโลยีใหม่ ๆ เพิ่มเติมในระดับพื้นฐาน หากคุณทำสิ่งนี้เมื่อเวลาผ่านไปคุณจะพบว่าระดับพื้นฐานของสิ่งที่คุณต้องการจากเทคโนโลยีใหม่นั้นลึกซึ้งยิ่งขึ้นเพราะคุณเข้าใจคำถามขั้นสูงเพื่อถามเกี่ยวกับมัน

อีกวิธีในการเรียนรู้ที่จะรักษาความรู้คือการสอนให้คนอื่น ตอบคำถามในสถานที่เช่นนี้นำเสนอหัวข้อการฝึกอบรมให้กับทีมของคุณทำการนำเสนอที่กลุ่มผู้ใช้ในพื้นที่เขียนรายการบล็อกและช่วยรักษาข้อมูลวิกิที่ บริษัท ของคุณเพื่อช่วยเหลือนักพัฒนาอื่น ๆ


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

4
+1 @JonofAllTrades .. ผู้ชายฉันหวังว่าฉันจะได้กลับไปยี่สิบปีและทำเงินหนึ่งล้านเหรียญเพราะฉันรู้ .. FoxPro เท่านั้น แต่ไม่ทุกวันนี้คุณต้องมีความสามารถในเทคโนโลยีกาแลคซีขนาดเล็กเพื่อแข่งขันในงานประจำ คุณสามารถตั้งค่าและกำหนดค่า Apache, IIS ได้หรือไม่? คุณคุ้นเคยกับภาษา SQL หรือสองภาษาสามารถเขียน SPROCs และดูแลระบบเบา ๆ ได้หรือไม่? คุณมีความสามารถในภาษาฝั่งเซิร์ฟเวอร์สองภาษาและมีภาษาสคริปต์การทำงานอย่างน้อยหนึ่งภาษาสำหรับการจัดการข้อมูลหรือไม่? .. และหากคุณตั้งโปรแกรมสำหรับเว็บข้อมูลของคุณจะทำงานกับเบราว์เซอร์หลักและอุปกรณ์มือถือหรือไม่
elrobis

ข้อโต้แย้งนี้สมเหตุสมผลสำหรับเทคโนโลยีที่มีอยู่แล้วเมื่อ 20 ปีก่อน และใช่คุณโชคดีมากที่ได้งานด้วยความรู้เกี่ยวกับ SQL ("หลา" ของคุณ) ซึ่งไม่เพียงพอกับมาตรฐานของวันนี้
prusswan

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

24

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

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

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


2
ฉันไปทุกอย่างที่ฉันทำสำเนาและฉันเข้าใจทุกอย่างที่ฉันอ่านมันเป็นเพียงบางส่วนของไวยากรณ์และการทำงานที่ยืดเยื้อมานานฉันไม่คิดว่าฉันจะสามารถแตกมันออกมาได้ทั้งหมด แม้แต่สิ่งที่ควรเรียบง่ายและมีลักษณะที่สองเช่น json หรือแบบสอบถามฐานข้อมูลเป็นต้น (อาจเป็นตัวอย่างที่ไม่ดี) ขอบคุณสำหรับคำตอบของคุณฉันซาบซึ้งจริงๆ
ไม่ปลอดภัยใหม่

2
และคุณควรคิดสองครั้งก่อนที่จะคัดลอกและวางโค้ดตัวอย่างในโครงการของคุณเอง มันอาจจะเหมาะสมกว่าที่จะแยกพวกมันออกจากชั้นเรียนและนำกลับมาใช้ใหม่
stralsi

@SilviuStraliciuc: ฉันคิดว่านี่เป็นตัวอย่างมากกว่า 1 หรือ 2 บรรทัด ซึ่งไม่สมเหตุสมผลในการห่อในฟังก์ชั่น แต่ฉันมักจะพิมพ์ใหม่แทนการใช้ ctrl-c + ctrl-v ดังนั้นฉันจึงใช้การจัดรูปแบบที่ถูกต้องและแทนที่ตัวระบุและเช่นนั้นได้ทันที
Jan Hudec

1
บางครั้งในตัวอย่างที่ 1 หรือ 2 เส้นทำให้ความรู้สึกในการห่อในการทำงานโดยเฉพาะอย่างยิ่งถ้ามีโอกาสคุณจะเปลี่ยนความคิดของคุณในภายหลังเกี่ยวกับสิ่งที่คุณต้องการ 1 หรือ 2 เส้นที่จะทำ (และตอนนี้คุณต้องไปหา 200 สถานที่กระจัดกระจายไปทั่วรหัสของคุณที่คุณใช้รูปแบบที่ 1- หรือ 2 บรรทัด) ด้วยฟังก์ชั่นที่ตั้งชื่ออย่างเหมาะสมแม้ว่าคุณจะได้รับสิ่งผิดปกติที่ยังต้องแก้ไขใน 200 แห่งอย่างน้อยก็ง่ายที่จะระบุสถานที่เหล่านั้น
David K

14

คำตอบเหล่านี้ค่อนข้างดี แต่คุณประสบปัญหาที่ลึกกว่าคัดลอก / วางหรือขาด "ทักษะ"

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

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

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

อีกสิ่งหนึ่ง: ความกลัวของคุณที่ถูกปฏิเสธโดยคนที่คุณคิดว่า "เหนือกว่า" คือสิ่งที่ทำให้คุณไม่สามารถถูไหล่กับนักพัฒนาที่ดีกว่าและเรียนรู้จากพวกเขา ดังนั้นความกลัวของคุณจะป้องกันไม่ให้คุณเติบโตขึ้นซึ่งจะช่วยรักษาความกลัวของคุณ ซึ่งป้องกันคุณจากการเติบโต ดูวงจร คุณต้องทำลายวงจรบางแห่ง


8
คำตอบที่ดี แต่ไม่ควรอ่านเพื่อหมายความว่ามันก็โอเคที่จะยอมรับคนธรรมดา จับตาดูงานของคุณและไม่ต้องกังวลว่าคนอื่นดีกว่าคุณ แต่ทำงานเพื่อปรับปรุง
Caleb

12

ฉันคิดว่ามันมากขึ้นอยู่กับความคิดของคุณ หน่วยความจำของฉันเหม็นดังนั้นฉันค่อนข้างจะคว้ารหัสที่ใกล้เคียงกับสิ่งที่ฉันต้องการมากที่สุดและทำใหม่เพื่อที่จะทำงานใหม่ มันทำหน้าที่เป็นตัวอย่างและเป็นเครื่องย้ำเตือนถึงทุกสิ่งที่ฉันต้องทำ ตัวอย่างเช่นฉันใช้ SQL แบบง่ายมา 20 ปีแล้ว แต่ฉันจำเลย์เอาต์ของ SELECT หรือ UPDATE ไม่ได้ (ฉันคิดว่าหนึ่งต้องวงเล็บ แต่ผมจำไม่ได้ที่.) ในทางกลับกันบางคนไม่กี่สิ่งที่ผมจำได้; ฉันสามารถรวมการใช้งาน Java Iterator เข้าด้วยกันโดยที่หลับตาได้

รหัสส่วนใหญ่ที่ฉันคัดลอกนั้นเป็นของตัวเอง แต่แน่นอนว่าฉันจะคัดลอกส่วนที่เหลือเมื่อฉันเรียนรู้สิ่งใหม่

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

ฉันขอให้คุณเข้าใจรหัสทั้งหมดที่คุณคัดลอกและแก้ไข แต่อย่างละเอียดจนกว่าฉันจะอ่านคำตอบอื่น ๆ บางคำอาจไม่เกิดขึ้นกับฉันบางคนอาจคัดลอกโดยไม่เข้าใจ (ฉันดูเหมือนจะเรียนรู้ความชั่วร้ายใหม่ตลอดเวลาบนเว็บไซต์นี้ ... )


Psst ไม่มีใครต้องการวงเล็บยกเว้นว่าคุณกำลังทำแบบสอบถามย่อยใน SELECT หรือตรรกะบูลีนที่ซับซ้อนใน WHERE ;)
Izkata

2
@Izkata: ไม่ ขอดูรหัสเก่าหน่อย โอ้มันเป็นคำสั่งINSERTที่ต้องการวงเล็บ
RalphChapin

8

... ฉันมาถึงสำนึกว่า ... ฉันอ้างอิงรหัสอื่นมากเกินไป ฉันใช้ฟังก์ชั่น google อย่างต่อเนื่องสำหรับสิ่งต่าง ๆ ที่ฉันคิดว่าฉันน่าจะทำได้ตั้งแต่เริ่มต้นและมันทำให้ฉันมั่นใจเล็กน้อย

จากนั้นหยุด มุ่งหน้าไปอีกทางหนึ่งชั่วครู่หนึ่ง ใช้ทุกอย่างด้วยตัวเองแม้ว่าคุณจะรู้ว่าคุณสามารถค้นหาสิ่งที่คุณต้องการได้ในเวลาที่น้อยลง

สิ่งที่เกิดขึ้นคือปัญหาของคุณในการแก้ปัญหากล้ามเนื้อ (ชื่อละตินgluteus mojo ) เสื่อมสภาพจากการเลิกใช้และตอนนี้คุณหลีกเลี่ยงการใช้เพราะคุณรู้ว่ามันอ่อนแอแค่ไหน คุณต้องเริ่มสร้างและปรับกล้ามเนื้อเช่นเดียวกับที่คุณทำกับลูกหนูที่โรงยิม เริ่มต้นด้วยการทำซ้ำสูงและความต้านทานต่ำ - ปัญหาง่าย ๆ มากมาย ในขณะที่คุณสร้างความมั่นใจให้ก้าวต่อไปสู่ปัญหาที่ยากขึ้นอีกต่อไป

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

บุคคลนั้นเป็นนักพัฒนาซอฟต์แวร์ที่ไม่ดีโดยมองหาตัวอย่างรหัสสำหรับงานที่มีความซับซ้อนปานกลางหรือไม่

คนที่ไม่สามารถทำอะไรโดยไม่ค้นหาตัวอย่างเป็นนักพัฒนาที่ไม่ดี สิ่งคือ: คุณจะไม่ทราบว่าคุณสามารถหรือไม่จนกว่าคุณจะลอง


7

คุณยังเด็กและคุณทำงานกับภาษาการเขียนโปรแกรมจำนวนมาก ฉันจะเดาว่าคุณอาจเลือกภาษาใหม่เร็วกว่าภาษาเก่า คุณยังคงมีเวลาไม่เพียงพอในการใช้ภาษาเดียวในแอปพลิเคชันขนาดใหญ่เพียงพอที่จะพัฒนาความคล่องแคล่ว

คุณกำลังมองหาวิธีแก้ปัญหาที่กว้างขวางทุกครั้งเช่น: กระบวนการทั้งหมดของการเชื่อมต่อเว็บกริดกับตารางฐานข้อมูลหรือส่วนที่เล็กกว่าเช่นการจัดรูปแบบสตริงการเชื่อมต่อ (ฉันต้องดูทุกครั้งตั้งแต่เขียนประมาณสี่ปี) )?

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


ฉันเห็นด้วย - มีหลายสิ่งที่แม้ว่าจะมีกิจกรรมที่พบได้บ่อยพอสมควร (การอ่านจากไฟล์การเชื่อมต่อกับฐานข้อมูลการร้องขอ HTTP ฯลฯ ) ไวยากรณ์และวิธีการนั้นแตกต่างกันมากจากภาษาเป็นภาษาที่ฉันต้องตรวจสอบโดยทั่วไป มันเป็นวิธีที่คุณแล้วชิ้นหน่วยการสร้างพื้นฐานเหล่านี้ร่วมกันเพื่อสร้างสิ่งใหม่และมีประโยชน์ที่เป็นบิตฉลาด
คริสซี

5

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

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


6
"ฉันไม่เคยผูกมัดกับความทรงจำอะไรที่สามารถค้นหาได้ง่ายในหนังสือ" - Albert Einstein, 1922
gbjbaanb

3
@gbjbaanb Albert Einstein ใช้การควบคุมเวอร์ชันในปี 1922? ว้าวเขาช่างยอดเยี่ยมจริงๆ
svick

4

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

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

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


3

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

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


3

ฉันคิดว่าการอ่านตัวอย่างโค้ดและการอ่านซอร์สโค้ดของสิ่งที่คนอื่น ๆ พัฒนาโดยทั่วไปเป็นวิธีที่ดีที่สุดในการพัฒนาทักษะของคุณ ฉันคิดว่ามันเปิดประตูในสมองของคุณที่จะไม่ได้รับการเปิดเป็นอย่างอื่น

หากคุณคิดหาวิธีแก้ปัญหา A และคนอื่นคิดวิธีแก้ปัญหา B เมื่อคุณแบ่งปันโซลูชันของคุณคุณสามารถตระหนักถึงวิธีแก้ปัญหา C ซึ่งอาจดีกว่า A หรือ B


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

3

ฉันคิดว่ามีความเชี่ยวชาญในการพัฒนาซอฟต์แวร์หลายระดับ เพียงแค่นั้นเพราะยังมีหลายระดับของการพัฒนาซอฟต์แวร์เอกสารความสามารถ ทุกวันนี้ระบบต่าง ๆ มีความซับซ้อนมากกว่าเมื่อฉันเริ่มเขียนโปรแกรมคอมพิวเตอร์ในช่วงกลางปี ​​1980

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

วันนี้งานนั้นต้องรู้ภาษารู้ระบบรู้กระบวนทัศน์รูปแบบการเขียนโปรแกรมและอย่างน้อยหนึ่งชุด API ซึ่งทั้งหมดเป็นเป้าหมายเคลื่อนที่

ดังนั้นคนที่มีความรู้พื้นฐานระดับหนึ่งซึ่งถามไปรอบ ๆ ไม่ใช่โปรแกรมเมอร์ที่ดี เขาเป็นโปรแกรมเมอร์ที่ดีที่สุดเนื่องจากสภาพแวดล้อมในปัจจุบันและ บริษัท ที่น่าสนใจอย่างไมโครซอฟท์มีการประยุกต์ใช้ความรุนแรงในรูปแบบใด ๆ กับเอกสารพื้นฐานของตัวเอง เนื้อหาส่วนใหญ่ของพวกเขาคือเอกสารอ้างอิงที่อ้างอิงตัวเองและโค้ดตัวอย่างที่แย่มาก (ในกรณีที่ฉันพบสองกรณีคือ "Windows Installer" และ API สำหรับการสร้างไฟล์ภาพยนตร์ WMV)

เพราะ Microsoft, Google, และในระดับที่น้อยกว่านั้น Apple ทุกคนพึ่งพา "ชุมชน" เพื่อชดเชยความบกพร่องที่แท้จริงอย่างมากการถามถึงไม่ใช่สิ่งสำคัญมันสำคัญมาก และการเป็นคนที่สามารถถูกถามและใครสามารถให้คำตอบและข้อเสนอแนะที่มั่นคงในสภาพแวดล้อมของวันนี้เป็นสิ่งสำคัญ นั่นเป็นเหตุผลว่าทำไมไซต์ต่างๆเช่นไซต์stackexchange.comมีประโยชน์เท่าที่ควร

ดังนั้นถามคำถาม (ถามอย่างชาญฉลาด!) เพื่อเป็นตัวอย่างและเคารพคนที่ให้คำตอบและจะไม่ถูกมองว่าเป็นสัญลักษณ์ของ "นักพัฒนาที่ไม่ดี"

และอีกอย่างหนึ่ง: การจัดหาตัวอย่างที่ไม่ดีจริงๆเป็นสัญญาณของนักพัฒนาที่ไม่ดี มันทำให้นักพัฒนาที่ไม่ดีง่ายต่อการสังเกตเห็น แต่ยังรวมถึงการค้นหา google หากคุณขาดความมั่นใจในตัวอย่างโค้ดที่เรียบง่ายตรงไปตรงมาอย่าให้ 'em'

และโปรดอย่าเยาะเย้ยคนที่ถาม


3

ฟังดูเหมือนว่าปัญหาสำหรับคุณจะน้อยกว่าในการทำความเข้าใจสิ่งที่คุณกำลังอ้างอิงและอื่น ๆ กับปัญหาของสิ่งอำนวยความสะดวกและหน่วยความจำ ถ้ามันทำให้ความมั่นใจของคุณแย่ลงใช่มันเป็นปัญหา - แต่มันสามารถแก้ไขได้อย่างแน่นอน!

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

ประสบการณ์การเขียนโปรแกรมของฉันคล้ายกันมาก ฉันคิดว่ากุญแจคือ:

  1. ฝึกภาษา - พิมพ์มันวิ่งพูดถ้ามันช่วยได้ ทำซ้ำ ๆ
  2. สร้างสถานที่ของคุณ - ใช้คุณสมบัติหรือรูปแบบเดียวกันในสถานการณ์ที่แตกต่างกัน ใส่คุณสมบัติเข้าด้วยกัน; ทำโปรแกรม
  3. ให้เวลามากพอระหว่างการทำซ้ำเพื่อให้แน่ใจว่าสิ่งต่าง ๆ กำลังนำไปสู่ความทรงจำระยะยาวของคุณ

หลักการเหล่านี้ดูเหมือนจะใช้เมื่อเรียนรู้ภาษาใด ๆ จริง ๆ ! ดูวิธีการจำคำศัพท์ใหม่ตัวอย่างเช่น วิธี Pimsleurยังทำงานเช่นนี้

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

จากเรื่องราวของคุณนี่คือบล็อกอุปสรรค์บางอย่างที่ฉันคิดว่าคุณอาจพบเจอ

  1. หากคุณกำลังดิ้นรนกับไวยากรณ์คุณอาจไม่ได้รับการฝึกฝนที่เพียงพอ นี่เป็นเรื่องจริงโดยเฉพาะอย่างยิ่งหากคุณคัดลอกและวางโค้ดของคุณลงไปแทนที่จะพัฒนาซ้ำและ - ฉันขอพูดได้ไหม - ความจำของกล้ามเนื้อที่จะช่วยให้คุณดีขึ้นจริงๆ เพื่อรับมือกับสิ่งนี้เพียงแค่พัฒนาแบบฝึกหัดและวินัยโดยมุ่งเน้นไปที่การทำซ้ำและเวลาเพื่อปรับปรุงสิ่งอำนวยความสะดวกของคุณในพื้นที่ที่คุณต้องการ ข้อเสนอแนะ:
    • เขียนโปรแกรมอย่างง่ายในภาษาเดียวกันวันละครั้งทุกวัน
    • พิมพ์ตัวอย่างแทนการคัดลอกและวาง
  2. หากคุณกำลังดิ้นรนกับการสร้างวิธีแก้ไขปัญหาระดับปานกลางคุณอาจไม่ได้รับประสบการณ์ที่เพียงพอในการสร้าง ลองเหล่านี้:
    • เริ่มโครงการขนาดกลางด้วยเทคโนโลยีหรือภาษาที่คุณต้องการ หรือลองใช้มือของคุณดูคุณสมบัติที่น่าสนใจในโครงการโอเพนซอร์ซที่คุณสนใจแฮกมันไปทุกวัน (จำไว้ว่าเมื่อคุณทำโครงการขนาดใหญ่เหล่านี้: ไปหาพวกเขาด้วยอิฐอย่าพยายามสร้างสิ่งทั้งหมดในครั้งเดียว!)
    • ใช้คุณสมบัติใหม่เดียวกันในสี่วันติดต่อกันในสี่บริบทที่แตกต่างกัน
    • ท้าทายตัวเองให้ตั้งรหัสบางอย่างเมื่อปิดเว็บเบราว์เซอร์!
    • จดบันทึกสิ่งที่คุณกำลังเรียนรู้ สังเคราะห์สิ่งที่คุณกำลังเรียนรู้และจดบันทึกข้อสังเกตของคุณ (ที่จริงแล้วเขียนสิ่งต่าง ๆ ลงไปและบังคับตัวเองให้แสดงออกบางอย่างด้วยคำพูดของตัวเองช่วยฉันได้มาก)
    • เขียนคำตอบและตรวจสอบพวกเขาสำหรับคำถาม StackOverflow เกี่ยวกับเทคโนโลยีที่คุณดูดซับ (สิ่งนี้มักจะมีประโยชน์เพิ่มเติมในการได้รับชื่อเสียงเล็กน้อยในขณะที่คุณกำลังเรียนรู้ :-))
  3. คุณอาจแพร่กระจายการปฏิบัติของคุณบางเกินไป คุณดูเหมือนจะทำงานในหลายภาษา สิ่งนี้มีข้อได้เปรียบมากมาย แต่มีข้อเสียในการทำให้ประสบการณ์ของคุณแย่ลง หากคุณใช้เวลาทำงานในห้าภาษาที่แตกต่างกันคุณจะจดจำได้น้อยกว่าหากคุณใช้เวลาเดียวกันในภาษาเดียว ที่แย่กว่านั้นคือมีคอนทราสต์ที่ไม่เหมือนกันค่อนข้างมากระหว่างภาษาต่าง ๆ (นั่นก็คือถ้า, เอลฟ์, หรือเอลฟ์ ??) ที่จะเดินทางคุณ ในการรับมือกับสิ่งเหล่านี้ เลือกสิ่งหนึ่งที่จะเรียนรู้และเรียนรู้มันหนาว จากนั้นไปยังสิ่งต่อไป

3

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

หากคุณคิดขึ้นเองจะเป็นไปได้มากขึ้นที่จะปรับให้เข้ากับสถานการณ์เฉพาะของคุณและหลังจากนั้นไม่นานโซลูชันเหล่านี้จะมาเร็วกว่าคุณกว่ามองหาพวกเขา

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

จินตนาการสิ่งนี้เมื่อต้องการค้นหาสิ่งต่าง ๆ บนอินเทอร์เน็ต


3

วิธีที่ดีที่สุดในการเรียนรู้สิ่งที่คุณไม่รู้: google it! ฉันรู้สึกว่าคุณถูกต้องเสมอกับนักพัฒนาส่วนใหญ่ ใส่คอมเพล็กซ์ด้อยลงในกระเป๋าเป้สะพายหลังของคุณและเข้าไปด้วยใจที่เปิดกว้าง

อย่ากลัวที่จะถามคำถามค้นคว้าข้อมูลใน Google ลองและล้มเหลว มันเป็นส่วนหนึ่งของมันทั้งหมด


3

การพัฒนาซอฟต์แวร์ในการตั้งค่าองค์กรจำเป็นต้องใช้รหัสในปริมาณที่เหมาะสม ทำไมต้องเขียนฟังก์ชั่น / วิธีการถ้ามีAPIอยู่แล้วและใช้กันอย่างแพร่หลาย? เป็นไปได้ว่าจะมีประสิทธิภาพเท่ากับสิ่งที่คุณเขียนและใช้เวลาน้อยลง

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

คุณต้องเขียนโค้ดที่ใช้ประโยชน์จากประเภทของเฟรมเวิร์ก (พูดว่าเฟรมเวิร์กอิงองค์ประกอบต้องมีสไตล์ที่แน่นอน) และสิ่งนี้มาจากการเข้าใจภาพรวมที่ใหญ่ขึ้น เรียนรู้ภาพขนาดใหญ่แล้วคุณจะสบายดี


2

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

แล้วจะทำอย่างไรดี? บางทีคุณอาจต้องการเพียงไม่กี่ร้อยตบหลังซึ่งคุณเพิ่งได้และตอนนี้สามารถใช้รหัสด้วยความมั่นใจ แต่ถ้านั่นไม่ได้ทำงานฉันขอแนะนำให้คุณดูการทดสอบอัตโนมัติและการพัฒนาที่ขับเคลื่อนด้วยการทดสอบ ไม่มีอะไรบอกว่า "ทำได้ดี" เช่น "การทดสอบทั้งหมดผ่าน" จากชุดทดสอบของคุณ: เมื่อคุณไปถึงที่นั่นคุณรู้ว่าคุณทำถูกต้องแล้ว

คุณควรลองท้าทายตัวเองหน่อย: คุณบอกว่าคุณค้นหาไวยากรณ์ที่คุณรู้อยู่แล้วเสมอ ดังนั้นบังคับตัวเองให้เขียนโค้ดโดยไม่ต้องค้นหาไวยากรณ์และคุณจะพบว่าคุณทำได้ดี


2

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

มันสำคัญมากที่จะต้องใช้เวลาสักครู่และทำความเข้าใจกับพื้นฐานสิ่งที่ซับซ้อนมากขึ้นซึ่งสร้างขึ้นมาจากสิ่งนั้น หากไม่มีพื้นฐานในการทำความเข้าใจภาษาและสิ่งที่เกิดขึ้นเบื้องหลังการเข้ารหัสจะเป็นการแฮ็ค ...


1

ดังนั้นการอ่านหนังสือที่มีตัวอย่างและการอ้างอิงถึงพวกเขาคือการเขียนโปรแกรมที่ไม่ดีเป็นบริบทของคำถามของคุณ การเห็นคนสองสามคนเก็บเอกสาร API ไว้ที่หนังสือเป็นสิ่งที่เราเหลืออยู่

ฉันไม่รู้ว่าเหตุผลของคุณคืออะไรสำหรับการถามคำถามนี้บางทีคุณสามารถตอบคำถามนี้ด้วยตัวเองหลังจากอ่านสถานการณ์ของฉันเนื่องจากฉันอ้างถึงตัวอย่างโค้ดจำนวนมาก

ฉันไม่เคยมีโอกาสได้ไปมหาวิทยาลัยเพราะฉันอยู่บนถนนตอนอายุ 16 อย่างใดตอนอายุ 24 ปีฉันอยู่ในตำแหน่งที่จะเรียนผ่านวิทยาลัยการติดต่อทางจดหมายและทำการรับรองผู้ขายเช่น SCJP, SCJD, SCBCD และ SCWCD ฉันต้องยอมรับว่าบางครั้งฉันดิ้นรนและต้องเลี้ยวออนไลน์เพื่อเป็นตัวอย่าง แม้ว่าตอนนี้ฉันไม่รู้ว่ามีเนื้องอกในสมองเพิ่มขึ้นในหัวของฉัน (ภายในปี 2010 มันมีขนาดเท่ากับสีส้ม) หลังจากการผ่าตัดสมอง 5 ครั้งของฉัน 6 สัปดาห์รวม chemo / radiotherapy และ 10 เดือนของ chemo ฉันยังคงเขียนโปรแกรมกับไซต์ที่เขียนด้วยมือขึ้นซึ่งสามารถดูได้จากโปรไฟล์ของฉัน

ใช่ฉันต้องการตัวอย่างโค้ดจำนวนมากตอนนี้ที่มีสมองเสียหายดังนั้นนั่นทำให้ฉันเป็นโปรแกรมเมอร์ที่ไม่ดีใช่ไหม


คุณมีเหตุผลที่ดี หลักสูตรหนึ่งสามารถโต้แย้งได้อย่างง่ายดาย (ใช้เรื่องราวของคุณเอง!) ว่ามันเป็นเพียงโปรแกรมเมอร์ที่ไม่สามารถเข้าถึงได้โดยที่ไม่มีใครให้พวกเขา คำถามคือว่าเป็นการประเมินที่ยุติธรรมหรือไม่
cHao

1

ดังนั้นฉันเห็นคุณพูดถึงว่าคุณกำลังจะไป Hackathon ฉันเคยไปไม่กี่ปีที่ผ่านมานี้ (มากกว่า 15 ปี) และสังเกตว่าพวกเขายอดเยี่ยมสำหรับการเรียนรู้ และด้วยการเรียนรู้ที่ยอดเยี่ยมฉันหมายถึงการเรียนรู้วิธีที่จะไม่ใช้รหัสเช่นนั้นอีกเลย ฉันส่วนใหญ่พยายามทำอะไรใหม่ ๆ ในทุก ๆ การแฮ็กฮ็อตที่ฉันไปเพื่อที่ฉันจะได้เรียนรู้สิ่งใหม่ ๆ เนื่องจากมีข้อ จำกัด ด้านเวลาอย่างมากคุณต้องพึ่งการคัดลอกโค้ดทั้งหมดที่คุณสามารถหาได้และสิ่งนี้จะกัดคุณในตูดเมื่อคุณทำการทดสอบ

อย่างไรก็ตามสิ่งที่ดีออกมาจากคุณ: A) เรียนรู้มากมายระหว่างการทดสอบข้อบกพร่อง (เช่นร้องไห้หนัก) B) รู้ว่าจะไม่ใช้รหัสเช่นนั้นอีกแล้วเรียนรู้วิธีการเขียนโค้ดที่ดีขึ้น นอกจากนี้ที่ Hackathons คุณจะได้พบกับผู้คนที่สามารถสอนสิ่งใหม่ ๆ มากมายที่คุณไม่เคยรู้มาก่อนและคุณจะทำสิ่งที่คุณไม่เคยทำในโรงเรียน

ดังนั้นสิ่งที่ฉันพูดคือการวางสำเนาไม่ดีและคุณจะไม่เรียนรู้อะไรเลยและเวลาที่คุณบันทึกโดยการวางสำเนาจะกัดคุณในภายหลังในระหว่างการทดสอบข้อผิดพลาดและคุณไม่รู้ว่าคุณเขียนอะไรมันเป็น 8:00 และเติมเชื้อเพลิงให้กับคาเฟอีนทั้งหมด แต่ฉันคิดว่าตราบใดที่คุณทดสอบข้อผิดพลาดคุณจะต้องเรียนรู้ทุกสิ่งที่คุณคัดลอกมาก่อน


0

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

หมายเหตุ: การอ่านรหัสจากอินเทอร์เน็ตไม่ได้ทำให้คุณเป็นนักพัฒนาซอฟต์แวร์ที่แย่ มันเป็นการดีเสมอที่จะดูว่าคนอื่นทำได้อย่างไรและคุณจะเรียนรู้บางสิ่งอยู่เสมอ แต่การคัดลอกมันแบบสุ่มนั้นไม่ดีเลย


-1

หากนักพัฒนา / นักเรียนบอกว่า .. วิกิพีเดีย .. เพื่อคัดลอก / วางรหัสลงในโครงการของพวกเขาเพียงแค่พยายามทำให้มันเป็น "งาน" ดังนั้นทักษะเดียวที่บุคคลนี้พัฒนาคือ 'How to google' อาจมีกระบวนการออสโมซิสบางอย่าง แต่ไม่มีทั้งกลุ่ม (คุณคงไม่เชื่อว่ามีกี่คนที่ทำสิ่งนี้ในหลักสูตรวิทยาลัย)

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

การมองการวิเคราะห์และการเรียนรู้จากโค้ดทำให้พวกเขาเป็นนักพัฒนาที่ดีตลอดเวลาเพราะพวกเขากำลังอ่านและเรียนรู้ในภาษาที่พวกเขาใช้

ฉันมักจะพูดเล่นที่รู้ภาษาของคอมพิวเตอร์มากกว่าภาษาอังกฤษของฉัน ซึ่งทำให้เกิดคำถาม; "คุณจะอธิบายเรื่องนี้กับฉันใน Java plz ไหม"


-1

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

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

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.