ฉันจะพัฒนาทักษะของฉันในขณะทำงานในโครงการจริงได้อย่างไรหากไม่มีนักพัฒนาที่มีประสบการณ์มากกว่านี้ [ปิด]


15

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

ฉันจะพัฒนาทักษะการพัฒนาซอฟต์แวร์ของฉันในขณะทำงานในโครงการจริงได้อย่างไรหากไม่มีนักพัฒนาที่มีประสบการณ์มากกว่านี้


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

ขอบคุณสำหรับความคิดเห็น .... ฉันเคยผ่านบล็อกหลายครั้งและฉันปรับปรุงตัวเองในช่วงการเขียนโปรแกรม แต่เมื่อเวลามาใช้กลยุทธ์การพัฒนา (เช่น TDD, DDD, ฯลฯ ) และการออกแบบลาย (SOLID แห้ง ฯลฯ ) ฉันกลัวที่จะนำไปใช้เพราะมีข้อ จำกัด ด้านเวลาในการพัฒนาระบบและในที่สุดฉันเลือกรูปแบบการพัฒนาของตัวเองซึ่งฉันคิดว่าไม่ได้นำไปใช้ในทางที่ดีที่สุด ....
Akash KC

1
@LolCoder ฉันอาจเข้าใจว่าบางคนอาจปฏิเสธ TDD สำหรับปัญหาเวลาในการพัฒนาที่ จำกัด (แม้ว่า TDD จะช่วยประหยัดเวลาในภายหลัง) แต่ฉันไม่เข้าใจว่าการใช้ SOLID หรือ DRY อาจส่งผลกระทบต่อข้อ จำกัด ของเวลาหรือไม่!
Songo

1
@Yannis Rizos: ขอบคุณสำหรับการแก้ไขคำถาม ... ตอนนี้ดูเหมือนว่าจะดีจริงๆ ... รูปแบบของคำถามยังคงเหมือนเดิม .... อีกครั้งขอขอบคุณ ....
Akash KC

1
@LolCoder ที่จริงฉันมีปัญหาคล้ายกันที่ฉันถามที่นี่บางครั้งที่ผ่านมา
Songo

คำตอบ:


12

มีแหล่งข้อมูลมากมายที่จะเรียนรู้จากเพื่อนร่วมงานที่มีประสบการณ์มากกว่า: หนังสือบล็อกของนักพัฒนาที่มีทักษะการแลกเปลี่ยนแลกเปลี่ยนการบรรยาย / การประชุม ฯลฯ การทบทวนรหัสก็มีความสำคัญเช่นกันและCodeReview.SEเป็นทรัพยากรที่มีค่า

เรามาดูกันว่ามันสามารถทำงานกับตัวอย่างได้อย่างไร

ตัวอย่าง

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

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

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

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

เมื่อคุณมีโอกาสสร้างหนึ่งใน บริษัท ของคุณคุณจะเริ่มสร้างมันขึ้นมา คุณมีปัญหาเล็กน้อย บางตัวเกี่ยวข้องกับรหัส คุณโพสต์คำถามเกี่ยวกับกองมากเกิน อื่น ๆ เกี่ยวข้องกับฐานข้อมูล คุณถามคำถามที่เกี่ยวกับDBA.SE

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

คุณยังเริ่มติดตามบล็อกของนักพัฒนาซอฟต์แวร์ที่ทำงานกับ ETL ต่าง ๆ มานานหลายปี เป็นเรื่องที่น่าสนใจที่จะเห็นวิธีการที่แตกต่างกันและจากการที่บล็อกนี้คุณได้เรียนรู้เกี่ยวกับ ECCD คุณสนใจดังนั้นคุณจึงยืม The ETL Toolkit โดย Ralph Kimball หนังสือที่พูดถึงรายละเอียดเกี่ยวกับกระบวนการ "แยก, ทำความสะอาด, สอดคล้องและส่งมอบ" บล็อกเดียวกันยังกล่าวถึงแอปพลิเคชันจำนวนมากที่ตั้งใจสร้าง ETL โดยไม่มีทักษะการเขียนโปรแกรม สิ่งนี้มีประโยชน์อย่างยิ่งสำหรับ ETL ที่คุณทำเพื่อ บริษัท ของคุณเนื่องจากเจ้านายของคุณซึ่งไม่ใช่คนที่มีความรู้ด้านเทคโนโลยีขอให้คุณทำการเปลี่ยนแปลงเล็กน้อยกับสิ่งที่คุณทำ

การค้นพบสิ่งต่าง ๆ

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

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

หากไม่มีใครบอกฉันเกี่ยวกับสไตล์ฉันจะรู้ได้อย่างไรว่ามีสิ่งนั้นอยู่?

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

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

เมื่อคุณค้นพบคำศัพท์ใหม่มันเป็นเรื่องง่ายที่จะเรียนรู้เกี่ยวกับมัน หากคุณมีคำว่า "สัญญารหัส" ใหม่และคุณเป็นผู้พัฒนา C # คุณสามารถค้นหาข้อมูลได้อย่างเพียงพอด้วยตัวคุณเองบน MSDN (หรือดีกว่าในหนังสือของ Jon Skeet)

ความอยากรู้ช่วย

เมื่อฉันทำงานกับฝึกงานฉันมักจะสังเกตเห็นว่าสิ่งที่ดีที่สุดคือคนที่อยากรู้อยากเห็นนอกการบรรยายของพวกเขา พวกเขาอาจรู้ว่ามีสิ่งหนึ่งที่เรียกว่าการเขียนโปรแกรมเพื่อการใช้งานแม้ว่าครูของพวกเขาจะไม่พูดถึงมันและแม้ว่าพวกเขาจะไม่รู้ภาษาที่ใช้งานได้พวกเขาก็ยังสามารถอธิบายในแง่ทั่วไปว่า FP คืออะไรและแตกต่างจากคนอื่นอย่างไร กระบวนทัศน์ พวกเขาอาจรู้เกี่ยวกับ Agile หรือ Unicode หรือเกี่ยวกับโมเดลความน่าเชื่อถือ / แซนด์บ็อกซ์เพียงเพราะพวกเขากำลังอ่านบล็อกและใช้ Stack Exchange แทนที่จะเข้าร่วมการบรรยายของพวกเขา

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


ขอบคุณสำหรับคำตอบที่ยอดเยี่ยม ... ตัวอย่าง ETL ยอดเยี่ยม .... ตั้งแต่เริ่มต้นของชีวิตมืออาชีพฉันมีความประทับใจเสมอว่าถ้าฉันจะทำงานให้กับทีมขนาดเล็กและเป็นผู้นำโครงการด้วยตัวเองมันจะทำให้ฉันมีความเข้าใจอย่างลึกซึ้งในการพัฒนาซอฟต์แวร์ และด้วยเหตุนี้จึงสามารถเรียนรู้สิ่งต่าง ๆ ในการพัฒนาได้ดีขึ้น .... ตอนนี้ฉันอยู่ในสภาวะที่ฉันคิดว่าฉันขาดวิธีการพัฒนาที่ดีที่สุดเมื่อมองเข้าไปในโครงการอื่น ๆ เช่นจาก GitHub, Codeplex .... ประเภทนี้ดีที่สุด วิธีการสามารถเรียนรู้ได้จากนักพัฒนาที่มีประสบการณ์หรือฉันสามารถเรียนรู้ด้วยตัวเอง?
Akash KC

@LolCoder: IMO วิธีการที่ดีที่สุดนั้นง่ายกว่าที่จะเรียนรู้กับผู้ให้คำปรึกษา แต่ก็ยังเป็นไปได้ที่จะเรียนรู้ด้วยตนเองโดยใช้ความช่วยเหลือจากแหล่งข้อมูลที่ฉันระบุไว้ในคำตอบของฉัน
Arseni Mourzenko

ขอบคุณมากสำหรับคำตอบที่ได้รับการอธิบายที่ยอดเยี่ยม ..... เวลาในการรับคำตอบด้วยขอบคุณมากมาย ...
Akash KC

4

ฉันอยู่ในสถานการณ์ที่คล้ายกัน: เราเป็นทีมเล็กและงานพัฒนาผลิตภัณฑ์หลักของเราส่วนใหญ่เป็นการเปลี่ยนแปลงที่เพิ่มขึ้นในฐานรหัสที่มีอายุไม่กี่ปี

เทคนิคบางอย่างที่ฉันใช้เพื่อปรับปรุงและพัฒนาทักษะของฉัน

ในงาน:

  • อ่าน: หนังสือ, บล็อก, สื่อประชาสัมพันธ์ ฉันติดตาม RSS ฟีดจำนวนหนึ่ง เมื่อข้อตกลง O'Reilly ของวันนั้นเป็นเทคโนโลยีที่ฉันไม่เคยได้ยินฉันอ่านคำอธิบายของหนังสือเล่มนี้ หากเทคโนโลยีมีความสัมพันธ์กับสิ่งที่ฉันกำลังทำอยู่ฉันใช้เวลาห้าถึงสิบนาทีในการค้นคว้าในเชิงลึกมากกว่านี้เล็กน้อยคล้ายกับคำตอบของ MainMa ฉันทำสิ่งนี้ซ้ำกับ RSS ฟีดที่ต่างกัน
  • สร้างแผนการฝึกอบรมกับผู้บริหารของคุณที่สามารถรองรับทรัพยากรของ บริษัท (เวลาและ / หรือเงิน)
  • ตรงกันข้ามกับแนวโน้มของโปรแกรมเมอร์ส่วนใหญ่พยายามยอมรับการเปลี่ยนแปลงและตัวเลือกการออกแบบใหม่ การเปลี่ยนแปลงเพื่อประโยชน์ของการเปลี่ยนแปลงนั้นไม่ดีแต่ฉันเชื่อว่าบ่อยครั้งที่นักพัฒนาหลีกเลี่ยงการใช้การออกแบบหรือกรอบใหม่เนื่องจากการเปลี่ยนแปลง นี่เป็นเส้นทางที่ดีที่จะเดินและไม่รีบเร่งในการตัดสินใจผูกมัด แต่คอยดูวิธีการใหม่ในการทำสิ่งต่าง ๆ การเปลี่ยนแปลงบางอย่างอาจมีประโยชน์ที่ไม่คาดคิด: การย้ายไปที่ DVCS ให้ฉันทำการทดสอบบนฐานรหัสของเราได้ง่ายขึ้นและลองใช้เทคโนโลยีใหม่ที่นั่น
  • บางคนชอบประชุม ฉันพบว่าผลตอบแทนมีขนาดเล็กสำหรับเวลาที่ลงทุน

นอกงาน:

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

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

และอย่าลืมเยี่ยมชม SO หรือโปรแกรมเมอร์บ่อยครั้ง


ขอบคุณมากสำหรับคำตอบ .... ความคิดของค่ายโค้ดนั้นดีจริงๆ แต่น่าเสียดายที่ในสถานที่ของฉันไม่มีสิ่งนั้น .... ตอนนี้ฉันจะมีส่วนร่วมในโครงการโอเพ่นซอร์สแน่นอน
Akash KC

3

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

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

เมื่อคุณพบ บริษัท ที่เหมาะกับคุณคุณจะพบว่าคุณสามารถเติบโตต่อไปได้ภายใน บริษัท


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

1

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

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

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


1

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

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

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

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

หากคุณไม่ต้องการออกจาก บริษัท ฉันขอแนะนำหนังสือที่เขียนโดยผู้บุกเบิกอุตสาหกรรมของเรา ฉันจะเริ่มต้นด้วย The Pragmatic Programmer โดย Andrew Hunt หนังสือเล่มนี้มีการเปรียบเทียบที่มีประโยชน์มากมายซึ่งง่ายต่อการจดจำ สองสามบทแรกของหนังสือเล่มนี้ได้กระตุ้นให้ฉันเลือกภาษาการเขียนโปรแกรมที่แตกต่างกันมากสำหรับภาษาที่เราใช้ในที่ทำงาน ฉันเริ่มอ่านวรรณกรรมที่ไม่ใช่เทคนิค - ตอนนี้ฉันเชื่อว่าการอ่านนวนิยายและนิยายวิทยาศาสตร์จะทำให้ฉันเป็นโปรแกรมเมอร์ที่ดีขึ้น การเขียนเรียงความไม่ไกลจากการเขียนโค้ดที่สะอาด นักเขียนบางคนเก่งและแย่มาก หนังสือเล่มนี้ทำให้ฉันสนใจเกี่ยวกับสิ่งที่ฉันเขียน การเปรียบเทียบอย่างใดอย่างหนึ่งเรียกว่า "Windows ที่ใช้ไม่ได้" คุณทิ้งรถไว้บนถนนนานหลายวันและไม่มีอะไรเกิดขึ้นกับมัน เมื่อคุณทำลายหน้าต่างเดียว รถจะถูกทำลายในวันถัดไป รหัสไม่แตกต่างกัน หากคุณเห็นโค้ดที่เสียหายหรือเขียนไม่ดีให้แก้ไขทันทีอย่าเพิ่งทิ้งโค้ดไว้เพราะไม่ช้าก็เร็วมันจะกลับมาที่ "หลอกหลอนคุณ" เมื่อคุณเริ่มต้นอ่านหนังสือเล่มนี้คุณจะได้รับอุปมาอุปมัยที่คล้ายคลึงกันซึ่งจะทำให้คุณนึกถึงโค้ดในวิธีที่ต่างออกไป

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

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

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

โชคดี!


1

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

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