เทคนิคการเพิ่มตรรกะในการเขียนโปรแกรม [ปิด]


21

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

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

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


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

“ ฉันกลัวรหัส…ถ้าฉันไม่ทำมันให้เสร็จทันเวลาเจ้านายของฉันจะยิงฉันออกไป” - นั่นไม่ใช่สภาพแวดล้อมที่ยอดเยี่ยมที่จะเพลิดเพลินไปกับการเขียนโปรแกรม
Paul D. Waite

@ PaulD.Waite จริงมันไม่ได้ดี แต่เป็นเรื่องธรรมดามาก
Pramesh Bajracharya

คำตอบ:


12

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

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

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


7

ข้อเสนอแนะของฉันคือการได้รับที่ปรึกษา

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

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

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

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

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

ขอให้คุณโชคดี


6

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

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

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

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

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

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

  6. Explicity ใช้หลักการออกแบบในขั้นตอนเล็ก ๆ แล้วภูมิใจในสิ่งที่คุณทำ หากคุณภาคภูมิใจในสิ่งที่คุณใช้รหัสก็มีโอกาสน้อยที่จะมีข้อผิดพลาดและข้อบกพร่อง

  7. เปิดรับข้อเสนอแนะและความช่วยเหลือ ปิดการคิดมิติเดียว เปิดโอกาสและวิธีการมากมาย ระวังคนที่คิดว่ามีทุกอย่างสำหรับทุกสิ่ง บิตเช่น 4

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


คำตอบที่ดี เสียงเหมือนจุดเหล่านี้มาจากที่ปรึกษาที่ดี แจ้งให้ทราบฉันรุ่นพี่ !! _ / _
Pramesh Bajracharya

4

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

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

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


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

Come on, ไม่มีใครกลายเป็น "พิเศษ" ในสามปี
JacquesB

3

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


3

ทำลายมันเป็นชิ้นเล็ก ๆ
ฉันขอสาธิตการทำแซนวิช PB&J

คิดออกกระบวนการพื้นฐานโดยรวม

1 - Get Ingredients
2 - Combine Ingredients
3 - Cut Sandwich
4 - Serve Sandwich

จากนั้นแบ่งแต่ละเหล่านี้ลง

**Get Ingredients**
1 - Validate/Create PB
1.1 - Validate/Create Jelly
1.2 - Validate/Create Bread
2 - Move PB To assembly area
...

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

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

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


2

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

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

แนวทางทั่วไป:

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

-1

ค้นหาเกมลอจิกแบบอุปนัยเช่นZendoและเล่นในเวลาว่าง อย่างจริงจัง. ตรรกะการเหนี่ยวนำเป็นหัวใจของการแก้ไขข้อบกพร่อง

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