เวลาที่ต้องใช้ในการเริ่มเขียนโค้ดที่ บริษัท ใหม่ [ปิด]


12

ฉันเป็นวิศวกรซอฟต์แวร์เป็นเวลา 4 ปีและฉันเพิ่งเปลี่ยน บริษัท ของฉันเป็นครั้งแรก

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

codebase มีขนาดใหญ่พวกเขาใช้ภาษา / เครื่องมือ 5-6 ภาษาที่ฉันไม่คุ้นเคยเช่น rspec, haml, jasmine และอื่น ๆ แต่ถึงกระนั้นฉันรู้สึกแย่

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

เป็นเรื่องปกติหรือไม่

ประสบการณ์ของคุณเมื่อคุณเปลี่ยนงานของคุณและดำดิ่งสู่ codebase ขนาดใหญ่ที่เขียนด้วยภาษา / ไลบรารีที่คุณไม่คุ้นเคย

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

แต่ฉันได้อ่านคำถามและคำตอบด้านล่างแล้ว คุณจะเจาะฐานรหัสขนาดใหญ่ได้อย่างไร

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

UPDATE

คำแนะนำที่ยอดเยี่ยมทั้งหมด! ฉันเพิ่งมาจากที่ทำงานฉันทำงานมาก!

เกี่ยวกับการเขียนโปรแกรมคู่:

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

บริษัท เตรียมความพร้อมสำหรับวิศวกรเป็นอย่างไร:

ฉันไม่สามารถบอกได้ว่าพวกเขามีการจัดการที่ดีพวกเขาคาดหวังว่าฉันจะเริ่มเขียนโค้ดทันที

จดบันทึกเป็นเชิงรุก:

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

เป็นเรื่องปกติหรือไม่:

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

ฉันหวังว่าฉันจะสามารถเริ่มแก้ไขข้อบกพร่อง / ปัญหาการใช้งานได้ในไม่ช้า

เกี่ยวกับกรอบ / ภาษาที่ใช้:

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

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


เมื่อคุณพูดถึงคุณจะดำดิ่งสู่โค้ดฐานขนาดใหญ่ได้อย่างไร? อะไรคือคำตอบที่ไม่ครอบคลุมกรณีของคุณ?
ริ้น

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

@ kevincline ถ้าเขาจับคู่ในฐานะนักพัฒนาใหม่เขาน่าจะแน่ใจว่าเป็นหนึ่งในแป้นพิมพ์มิฉะนั้นจะเป็นการเซ็ตอัพคู่ที่ไม่ดี ...
Jimmy Hoffa

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

@ JimmyHoffa ฉันรู้ว่ามันจะดีกว่าสำหรับฉัน แต่ในกรณีนี้ฉันจะทำให้เพื่อนของฉันช้าลงมาก เนื่องจากฉันต้องถามทุกไวยากรณ์ไฟล์จริงที่ฉันต้องแก้ไขตัวแบบข้อมูลหรืออย่างอื่นมันจะทำให้เพื่อนของฉันช้าลง
Robert Johnson

คำตอบ:


10

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

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

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


1
หลายเดือนไม่ใช่เรื่องแปลกสำหรับซับซ้อนขนาดใหญ่ (1 ล้าน + SLOC) โดยเฉพาะอย่างยิ่งเป็นโดเมนยังเป็นโพรงและ / หรือซับซ้อน
mattnz

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

@mattnz ใช่ หลายเดือนเป็นเพียงหลายสัปดาห์ ;)
Rein Henrichs

5

เป็นเรื่องปกติหรือไม่

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

ในฐานะหัวหน้าทีมฉันหวังว่าคุณจะไม่ทำอะไรเลยในการวิ่ง 1 (สองสัปดาห์) และทำงานที่ ~ 50% สำหรับการวิ่ง 1-2 ครั้งต่อไป


2

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

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


1

มันขึ้นอยู่กับงานที่คุณกำลังทำและบทบาทที่คุณอยู่

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

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

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


0

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

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

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


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