ทักษะใดที่คุณคาดหวังและชื่นชมในวิศวกรซอฟต์แวร์รุ่นเยาว์ [ปิด]


64

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

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


13
คำถามที่ยอดเยี่ยมถามอย่างฉะฉาน
Adam Crossland

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

ใส่ใจในรายละเอียด - ไม่มีอะไรสำคัญไปกว่านี้แล้ว
Orbling

1
เนื่องจากคุณเป็น JSWE จงมีความสามารถในภาษาที่คุณบอกว่าคุณมีความสามารถไม่มีอะไรที่น่าตื่นเต้นไปกว่าการจ้างคนที่บอกว่าพวกเขารู้ภาษา แต่เรียนในชั้นเรียนเดียวเท่านั้น ตัวอย่าง: คนที่มีรายชื่อ C / C ++ ในเรซูเม่ของพวกเขา แต่ไม่สามารถใช้อย่างใดอย่างหนึ่ง (อื่น ๆ ที่ห้ามมิให้ใช้อย่างใดอย่างหนึ่ง!)
aqua

เกิดอะไรขึ้นกับความฝันในการสร้างวิดีโอเกม คุณ "ต้องการพัฒนาอาชีพของคุณในฐานะนักพัฒนา Java หรือไม่? เพียงแค่ล้อเล่นกับแต่ละ :) ของตัวเอง
cambraca

คำตอบ:


50

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

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

3
+1 สำหรับ "ลูกค้าไม่ค่อยรู้ว่าเขาต้องการอะไรจนกว่าเขาจะเห็น ... "
FrustratedWithFormsDesigner

1
+1 สำหรับ "Keep Learning" นั่นอาจเป็นสิ่งที่สำคัญที่สุดที่ฉันจะมองหาในโปรแกรมเมอร์ระดับต้น
ราเชล

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

61

นี่คือรายการด่วนจากด้านบนของหัวของฉัน:

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

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

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

14
+1 ความซื่อสัตย์: เรียนรู้ที่จะพูดว่า "ฉันไม่เข้าใจสิ่งนี้" - ก่อนอื่นสำหรับตัวคุณเองและต่อเพื่อนร่วมงานของคุณ - เป็นสิ่งสำคัญมาก มันเปิดประตูสู่การสื่อสารและการเรียนรู้ ฉันเคยเห็นโปรแกรมเมอร์มากเกินไปที่อนุญาตให้อัตตาของพวกเขาเข้ามาขวางทางความคิดของพวกเขา ฉันทำงานในอุตสาหกรรมนี้มาเกือบสี่สิบปีแล้วและฉันก็ยังเจอกับสิ่งต่างๆ ทุกวันที่ฉันไม่เข้าใจ ดังนั้นฉัน google ฉันอ่านฉันเขียนรหัสฝึกหัดและจากนั้นฉันมีทักษะอีกหนึ่งอย่างที่ฉันสามารถนำไปไว้ที่โต๊ะ
Peter Rowell

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

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

8

สองสิ่ง: ความเต็มใจที่จะเรียนรู้และความสามารถในการเรียนรู้


4

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

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

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


4

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

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

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

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


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

2
รอ ... "พื้นที่สำนักงาน" เป็นเรื่องสมมติหรือไม่ ???
PSU

3

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

สำหรับสภาพแวดล้อมใหม่: ฉันขอแนะนำให้ไปกับกระแสในสัปดาห์แรกหรือดังนั้น ฉันทำผิดพลาดจากการพยายามหนักเกินไปซึ่งไม่ได้ชื่นชม


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

3

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

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


++ จุดที่ดีเวสแม้ว่าฉันต้องสงสัย ถ้าฉันถามคนในวันนี้ถ้าพวกเขาอ่านแบบนี้แล้วคำตอบก็คือ - อ่านแล้ว?
Mike Dunlavey

2

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

ใบอนุญาตในการเรียนรู้


2

คำตอบที่ดีมากมาย

แม้ว่าฉันจะไม่ได้ทำงานให้กับ 'ชายร่างใหญ่' และฉันไม่ใช่กูรูฉันก็จะเพิ่ม 2 เซนต์ของฉัน

จะดีกับคน

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

กล่าวอีกนัยหนึ่งพยายามสร้าง "ชุมชน" หากไม่มีหรือสร้างเป็นส่วนหนึ่งของชุมชนหากมีอยู่จริง

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


2

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

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

นักพัฒนาจูเนียร์ที่สมบูรณ์แบบสมมุติจะรู้พื้นฐานของสิ่งต่าง ๆ เช่น

  • ภาษา.
  • I / O
  • แนวคิด OO เช่นการสืบทอด
  • อินเตอร์เฟสวัตถุ
  • การเข้าถึงฐานข้อมูล (โดยเฉพาะอย่างยิ่งเกี่ยวกับวิธีที่พวกเขาทำที่ร้านค้ารหัสใหม่ของคุณ)
  • โมเดล HTTP
  • CSS
  • JavaScript / JQuery
  • การออกแบบฐานข้อมูล
  • SQL และขั้นตอนการจัดเก็บ
  • IDE ที่คุณกำลังจะใช้
  • กรอบที่เกี่ยวข้อง (คุณพูดถึงฤดูใบไม้ผลิ)

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

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

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

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

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

ขอให้โชคดีกับอาชีพของคุณ


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

ฮ่า ๆ. ใช่มีความซ้ำซากมากมายในคำถามนี้;)
5

1

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

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

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


+1 สำหรับคำแนะนำหนังสือ ทักษะการสร้างแบบจำลองโดเมน OTOH ต้องใช้เวลาในการพัฒนาดังนั้นฉันจะไม่คาดหวังสิ่งเหล่านี้จากรุ่นน้อง แต่การพยายามทำความเข้าใจกับมุมมองทางธุรกิจและแก้ไขปัญหาที่แท้จริงของผู้ใช้เป็นสิ่งสำคัญอย่างแน่นอนในทุกระดับ
PéterTörök

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

1

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

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


1

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

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

เสียงสัญญาณเตือนครั้งต่อไปที่ฉันอยากจะแนะนำคือวิธีสูงสุด 2-3 พารามิเตอร์ หากคุณเห็นวิธีการที่มีพารามิเตอร์อินพุตประมาณ 10 ตัวทักทายการเขียนโปรแกรมที่ใช้งานได้ในภาษา OO ...

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

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

ฉันขอให้คุณทั้งหมดที่ดีที่สุดในอาชีพของคุณ ความหลงใหลของคุณ ณ จุดนี้แสดงให้เห็นแล้วว่าคุณจะทำได้ดี


1

คำแนะนำเดียวที่ฉันมีให้คือไม่หยุดเรียน วิธีที่นักพัฒนา rockstar เหล่านั้นมาถึงที่นั่นก็คือการใช้เวลาในการเรียนรู้เทคนิคและภาษาใหม่ ๆ เป็นเวลาว่างของพวกเขาเอง แม้ว่าคุณจะอยู่ที่นั่นนาน 10 ปี แต่เมื่อคุณออกมาคุณจะรู้จัก Java + Spring + Hibernate เท่านั้น นี่คือเหตุผลที่ในเวลาว่างของฉันฉันดูที่แพลตฟอร์ม. NET, Python และรหัส C ++ เป็นครั้งคราวเพื่อให้ใช้งานได้ ในฐานะที่เป็นคนที่ทำงานกับ MS ในข้อมูลวินาทีเวลาจึงมีค่าและต้องใช้อย่างชาญฉลาด


1

ความสามารถในการใช้ google จริงๆ.

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

คำแนะนำของฉันสำหรับอ่อนนุ่มจูเนียร์ วิศวกรคือการขยันเนื่องจากในการแก้ปัญหา ใช้ google, wikipedia หรือ stackoverflow อย่างขยันขันแข็งและมีระบบเมื่อคุณไม่รู้อะไรเลย

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

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

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


1
  • ความหลงใหลในงาน

  • ยินดีที่จะเรียนรู้มากขึ้น & มากขึ้น & มากขึ้น ..

  • ความสุจริต

  • ความมั่นคง


1

คำตอบที่ดีถ้าคุณทำตามทุกสิ่งที่ผู้คนพูดที่นี่ฉันมั่นใจว่าทุกคนจะเก่งในสิ่งที่เขา / เธอกำลังทำอยู่

แค่ต้องการเน้นบางจุด

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

สิ่งที่ดีที่สุดในการทำงานของคุณ


1

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

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


-3
  • ไม่ชอบ Java และ C ++ อย่างมาก
  • ความเข้าใจพื้นฐานเกี่ยวกับระบบปฏิบัติการขั้นตอนวิธีและโครงสร้างข้อมูล
  • มีความเชี่ยวชาญเป็นเลิศในภาษา C และภาษาสคริปต์อย่างน้อยหนึ่งภาษา
  • ความรู้ในการทำงานของ VCS กระแสหลักเดียว (Mercurial, Subversion หรือ Git)
  • ความสามารถในการทำงานอย่างเชี่ยวชาญในบรรทัดคำสั่ง
  • ไม่ชอบ Windows และการใช้งานระบบปฏิบัติการ Unix ที่มาจาก Linux เช่น Linux, BSD หรือ Solaris เป็นครั้งคราวเพื่อการพัฒนาหรือการใช้งานทั่วไป

ฉันไม่คิดว่า Java / C # / C ++ ที่ไม่ชอบอย่างมากนั้นสำคัญพอ ๆ กับความเข้าใจที่ว่าโลกไม่ได้เริ่มต้นและจบด้วย Java มีการใช้งาน แต่ Ruby, PHP, Erlang, Lisp และอื่น ๆ
Zachary K

ใช้เวลานานแค่ไหนในการพัฒนาความรู้การทำงานของ VCS กระแสหลัก
Andrew M

@Andrew M: อาจต้องใช้เวลาหลายสัปดาห์กว่าจะมีความชำนาญด้วยเครื่องมือมากมายที่อยู่รอบ ๆ VCS ผลต่าง, กิ่งไม้, การปะ, การผสาน จากนั้นจะมีการแก้ไขข้อ จำกัด หรือภาวะแทรกซ้อนที่มากเกินไปของ VCS แต่ละรายการ
Matt Joiner

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

2
สัญลักษณ์แสดงหัวข้อย่อยแรกและสุดท้ายของคุณเกี่ยวกับการพัฒนาหรือเรียนรู้ (สิ่งสำคัญที่คุณต้องการจากนักพัฒนาใหม่) การมี "ไม่ชอบ XYZ ที่แข็งแกร่ง" นั้นมีประโยชน์เฉพาะเมื่อทุกคนในทีมแบ่งปันสิ่งที่ไม่ชอบ ถ้าทุกคนทำไม่ได้มันแค่ทำให้เกิดรอยแยก ไม่มีความแตกต่างระหว่างผู้เกลียดชัง Windows และผู้เกลียดชัง Linux ยกเว้นว่าพวกเขาเกลียดชังทั้งคู่ ในทางตรงกันข้ามคนที่มีเหตุผลที่จะไม่ชอบสิ่งที่ขึ้นอยู่กับประสบการณ์ส่วนตัวหมายความว่าพวกเขามีอะไรบางอย่างที่จะนำไปที่โต๊ะ - นั่นเป็นสิ่งที่ควรค่าแก่การ ... แต่การใช้ Suse ที่บ้านจะไม่ทำให้คุณฉลาดขึ้น
corsiKa
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.