การจัดการกับภาษาการเขียนโปรแกรมตามข้อกำหนดของงานที่เข้มงวดคืออะไร [ปิด]


22

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

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

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

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

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


2
คุณไปงานที่เป็นธรรมดังนั้นคุณต้องเป็นนักเรียน ...
งาน

@ งานที่ถูกต้องฉันเป็นนักศึกษาระดับบัณฑิตศึกษา ฉันมีประสบการณ์ไม่กี่ปีในอุตสาหกรรมนี้ แต่ตอนนี้ฉันเพิ่งเริ่มอาชีพของฉัน
โอ๊ก

6
ฉันแค่ต้องการสร้างจุดทั่วไปเกี่ยวกับการตำหนิ HR ทั้งหมด ไม่มี บริษัท ไหนที่ฉันเคยทำงานให้ (ซึ่งค่อนข้างน้อย) ฝ่ายทรัพยากรบุคคลมีส่วนร่วมในการว่าจ้างเจ้าหน้าที่ด้านเทคนิคยกเว้นส่งข้อเสนองานขั้นสุดท้าย โดยเฉพาะอย่างยิ่งพวกเขาไม่เคยทำการตรวจ CV
Neil Butterworth

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

@oak บังเอิญคุณช่วยอธิบายความหมายของคำว่า "การเน้น" ได้ไหม? คุณหมายถึงว่าภาษาที่ระบุไว้ในรายละเอียดงานหรือว่าคนที่คุณพบในงานเป็นงานที่เร่งรีบ? หากเป็นเพียงอดีตฉันก็คิดว่าคุณเป็นคนที่อ่อนไหวเล็กน้อย
jhocking

คำตอบ:


24

ตรงกันข้ามกับข่าวประชาสัมพันธ์มันเป็นตลาดของนายจ้างในตอนนี้

นั่นหมายความว่าพวกเขาสามารถเลือกได้ว่าต้องการอะไร มันหมายความว่าพวกเขาต้องการประสบการณ์ NET 4.0 และไม่ใช่แค่ 3.5 ประสบการณ์ ... มันหมายถึงพวกเขาสามารถเรียกใช้ประสบการณ์กับ Django และไม่ใช่แค่ Pylons ฯลฯ ...

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

แต่นายจ้างสามารถเลือกประวัติการทำงานของผู้คนที่มีความเชี่ยวชาญใน Ruby & Rails ได้

TL; DR: Econ 101 ... ไม่เชื่อ hype เกี่ยวกับปัญหาการขาดแคลนของโปรแกรมเมอร์ที่


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

15
Tesserex - ควรได้รับการแปลว่า "เราไม่สามารถหาโปรแกรมเมอร์ที่รู้จักเทคโนโลยีซุปตัวอักษรทั้งหมดในราคาที่เรายินดีจ่าย
แดงสกปรก

21
มีโปรแกรมเมอร์มากมาย สิ่งที่ยากที่จะหาในขณะนี้ (เช่นในกรณีที่เกิดขึ้นเสมอ) เป็นโปรแกรมเมอร์ที่ดี
tdammers

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

2
@Rein - คุณสามารถพูดได้ว่าทุกอย่างที่คุณต้องการ แต่ econ แบบง่ายไม่สามารถทนได้ ถ้ามันไม่ได้แล้วคุณจะเห็นเงินเดือนของด้านบนโปรแกรมเมอร์จำนวนมากสูง ด้านบนแพทย์หรือทนายความจะล้าง 500,000 เหรียญสหรัฐต่อปี ... วิศวกรซอฟต์แวร์อาวุโสที่ Google ได้มีเงินเดือนเฉลี่ยของ $ 130,000 (Glassdoor) ฉันคิดว่าสิ่งที่คุณหมายถึงคือคุณไม่สามารถหาคนที่มีประสิทธิภาพได้ 3 เท่าสำหรับราคาเฉลี่ยของวิศวกร
ดินสีแดง

14

ปัญหาหลักคือไม่มีใครรู้วิธีการจ้างโปรแกรมเมอร์ดี ปัญหารองคืองานการเขียนโปรแกรมดึงดูดผู้สมัครจำนวนมาก

ด้วยการดำเนินการต่อกองใหญ่มันจะดีมากที่จะสามารถผ่านพวกเขาและเลือกโปรแกรมเมอร์ที่ดี แต่ไม่มีใครรู้วิธีการทำเช่นนั้น วิธีการทำงานของ บริษัท ส่วนใหญ่โดยทั่วไปแล้วการเรียงลำดับเริ่มต้นจะเป็นไปตามฝ่ายทรัพยากรบุคคล บุคคล HR ไม่รู้อะไรเกี่ยวกับ Smalltalk หรือ C ++ ยกเว้นตามที่ระบุไว้ในรายการข้อกำหนดซึ่งแตกต่างจากบุคคลซอฟต์แวร์ที่อาจคิดว่า "C ++ และ Smalltalk - ผู้ชายคนนี้จะไม่มีปัญหากับ Objective-C"

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


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

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

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

8

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

เมื่อหลายปีก่อนฉันสอนตัวเองด้วย PHP ผมว่ามันเป็นเวลาหลายเดือนก่อนผมได้ดีใด ๆ ที่มันสามารถหาวิธีของฉันรอบห้องสมุดเข้าใจร่วมกันสำนวน ฯลฯ และผมรู้ว่ามากของภาษาอยู่แล้ว


2
บริษัท ที่ดีโดยทั่วไปลงทุนในพนักงานและใช้เวลาสองสามเดือนในการเร่งความเร็วนั้นเป็นเรื่องธรรมดาในอุตสาหกรรมส่วนใหญ่ น่าเสียดายที่มีเพียงไม่กี่ บริษัท ซอฟต์แวร์เท่านั้นที่ทำตามวิธีนี้ นอกจากนี้ (บังเอิญ ???) ดูเหมือนว่าพวกเขาเป็นหนึ่งใน บริษัท ที่ดีที่สุด: Google, Facebook, Microsoft, ฯลฯ ...
แดงสกปรก

3
"" "คุณควรรู้ภาษาการเขียนโปรแกรมอย่างน้อยหนึ่งภาษาและควรเป็น C ++ หรือ Java ด้วย C # ก็โอเคเช่นกันเพราะมันค่อนข้างคล้ายกับ Java คุณจะต้องเขียนโค้ดบางอย่างในการสัมภาษณ์ของคุณอย่างน้อย คุณคาดว่าจะทราบรายละเอียดจำนวนพอสมควรเกี่ยวกับภาษาการเขียนโปรแกรมที่คุณชื่นชอบ "" " steve-yegge.blogspot.com/2008/03/get-that-job-at-google.html
red-dirt

2
โปรแกรมเมอร์ที่มีประสบการณ์สามารถเรียนรู้ C ++ ในเวลาประมาณแปดชั่วโมง ... เพียงแค่อ่าน "Effective C ++" และเข้าใจมัน นั่นทำให้คุณมากกว่า 90% ของโปรแกรมเมอร์ C ++ ในตลาด การทำความเข้าใจ STL ทำให้คุณอยู่ในอันดับต้น ๆ 3%
วินไคลน์

3
@kevin Irony? ถากถาง? อะไร?
Neil Butterworth

2
@ เควิน: เป็นที่ชัดเจนว่าคุณไม่รู้ว่าคุณกำลังพูดถึงอะไร C ++ เป็นหนึ่งในภาษาที่ซับซ้อนที่สุดที่มีนิสัยใจคอเกินกว่าที่คุณจะจินตนาการได้ ไม่มีทางที่ทุกคนสามารถเรียนรู้ได้ภายใน8 ชั่วโมง (ทำงานต่อวัน !!!) คุณไม่สามารถเรียนรู้ภาษาอย่าง PHP ในเวลานั้นได้
โทมัส Bonini

8

มันขึ้นอยู่กับแง่มุมต่าง ๆ ของบริบท ไม่เพียง แต่ระดับของบทบาทเท่านั้น แต่ยังรวมถึงสถานะของโครงการและ บริษัท ด้วย

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

หากคุณสามารถเขียนโค้ดแบบกำหนดได้คุณก็สามารถกำหนดโค้ดได้ตามต้องการ ไม่ว่าจะเป็น Java, C #, C, C ++ หรือแม้กระทั่งจาวาสคริปต์ เมื่อได้รับหนังสืออ้างอิงที่ดี (และอาจเป็นแผ่นสำเร็จรูปเล็กน้อย) คุณควรจะสามารถทำโปรแกรมเล็ก ๆ ในช่วงเวลาอื่น ๆ ในช่วงบ่าย

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

อย่างไรก็ตามฉันเคยเห็นโปรแกรมเมอร์ที่จำเป็นต้องใช้มากเกินไปพยายามเขียนโปรแกรมง่าย ๆ ในภาษาที่ประกาศหรือฟังก์ชั่นการใช้งาน ถ้าฉันเปิดร้าน Erlang ฉันต้องการคนที่มี Erlang หรือ Prolog อย่างน้อยต้องมีประสบการณ์กับคนที่มี C ++


มันขึ้นอยู่กับระดับของบทบาท:

การสรรหาสำหรับบทบาทรุ่นน้อง:

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

และสำหรับบทบาทอาวุโส:

หนึ่งในกุญแจสำคัญในการเขียนโปรแกรมอย่างมีประสิทธิภาพคือการรู้ว่าคุณไม่ควรเขียนเอง กุญแจสำคัญในการนั้นคือห้องสมุดมาตรฐาน (และมาตรฐาน de-facto) กุญแจสู่สิ่งนั้นคือประสบการณ์ คุณไม่สามารถนั่งลงกับ "Teach yourself Java" เป็นเวลาหนึ่งสัปดาห์และเปลี่ยนตัวคุณเองจากโปรแกรมเมอร์ C ++ เป็นเวลา 10 ปีไปเป็นโปรแกรมเมอร์ Java อายุ 10 ปี


มันขึ้นอยู่กับสถานะของโครงการ / บริษัท

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

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


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

ฉันกับโอ๊ค - ให้คุณมีจุดที่ดีที่ถูกที่ดีXโปรแกรมเมอร์ต้องมากความรู้ระบบนิเวศด้านบนของเพียงแค่ยกขึ้นภาษาX
Carson63000

4

ขึ้นอยู่กับสถานที่ทำงาน หากพวกเขายุ่งมากพวกเขาอาจไม่มีเวลารอให้คุณไปถึงจุดที่คุณสามารถทำงานใน Objective-C - พวกเขาอาจต้องการคนที่สามารถวิ่งหนี

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


4

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

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

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

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

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


3

ควรหรือไม่ เลขที่ ไม่มันได้หรือไม่ ใช่น่าเศร้า นี่คือซินโดรม "กระรอกสีม่วง": บริษัท ต้องการให้เค้กของพวกเขาและกินมันเกินไปและรับผู้สมัครที่สามารถทำทุกอย่างภายใต้ดวงอาทิตย์ที่พวกเขาต้องการหรืออาจต้องการ บ่อยครั้ง แต่ก็ไม่เสมอไปเพราะพวกเขา A) ไม่มีเงื่อนงำว่าการพัฒนาใดที่ทำให้เกิดความจริงและคิดว่าใครบางคนที่ปฏิบัติตามเกณฑ์ทั้งหมดของพวกเขาสามารถทำงานได้ B) พวกเขากำลังจู้จี้จุกจิกเพราะพวกเขาสามารถหนีไปได้หรือ C) พวกเขาวางแผนที่จะยื่น H-1B / Green Card / Promote จากภายใน แต่ต้องทำให้ดูเหมือนว่าพวกเขากำลังโฆษณางานจริง


3

"ฉันรู้แล้วว่า Java, C ++, Smalltalk และ Prolog ... สถานที่ทำงานที่ต้องอาศัย Objective-C จริง ๆ แล้วพิจารณาว่าฉันไม่มีเงื่อนไขเพราะฉันขาดประสบการณ์ในการใช้ภาษานั้น"

หากคุณมีประสบการณ์มากกว่า 20 ปีใน 3 หรือ 4 ภาษาที่มีคุณสมบัติคล้ายกับ Objective-C ดังนั้นฉันอาจจะจ้างคุณให้ทำ Objective-C และคาดว่าคุณจะทำงานได้ใน 6 - 8 สัปดาห์ (สิ่งนี้ขึ้นอยู่กับประสบการณ์ส่วนตัวของฉันกับการเรียนรู้ Objective-C เมื่อไม่กี่ปีที่ผ่านมา)

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

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

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

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

และเมื่อ Cocoa ล้มเหลวคุณต้องรู้ว่า POSIX APIs ใดที่จะใช้เมื่อคุณไม่สามารถทำสิ่งที่คุณต้องการด้วยโปรแกรมเสริม Cocoa

นอกจากนี้ยังหมายความว่าคุณควรรู้จักยูนิกซ์ในระดับที่ไม่สำคัญเช่นกัน


2

ขึ้นอยู่กับภาษา / บุคคล

หากฉันเป็นสถานที่ C # และมีคนที่มีประสบการณ์ JAVA / J2EE ใช้ฉันจะให้ยิง ไวยากรณ์ระหว่าง C # & JAVA นั้นไม่แตกต่างกัน การเข้ารหัสคือการเข้ารหัสและฉันคิดว่าเมื่อพวกเขาคุ้นเคยกับความแตกต่างที่พวกเขาจะดี

กันไปจาก JAVA -> C #

ตอนนี้ถ้าคุณเป็นคน C # และคุณสมัครงาน C ++ ฉันต้องการเห็นประสบการณ์ มีความแตกต่างมากเกินไป

ใช่แล้วมันขึ้นอยู่กับสถานการณ์


3
ไวยากรณ์เป็นส่วนเล็ก ๆ ของการเรียนรู้ภาษา ..
บอริส Yankov

@ Boris ที่เป็นจริง แต่สิ่งที่เขาพูดยังคงใช้ในบางระดับไม่ว่าจะเป็นรูปแบบหรือห้องสมุดหรืออย่างอื่น ...
tylermac

2

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

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


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

1

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

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


0

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

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

เพียงเพื่อให้ตัวอย่างที่เป็นรูปธรรมมากขึ้นเกี่ยวกับสภาพแวดล้อมนั้นนี่คือสิ่งที่ฉันมีที่ฉันทำงาน: Visual Studio 2008 ทำ ASP.Net โดยใช้ C # ส่วนใหญ่, nUnit, Cruise Control.Net, การโค่นล้ม, Agile / Scrum ด้วยการผสมผสานของขั้นตอน, OO และใช้งานได้ขึ้นอยู่กับว่าใครกำลังมองหา หากฉันต้องการเปลี่ยนไปใช้ Java นี่อาจหมายถึงการคุ้นเคยกับเครื่องมือใหม่ ๆ สำหรับฟังก์ชั่นเหล่านี้มากมายซึ่งอาจไม่ใช่สิ่งที่นายจ้างต้องการซึมซับเนื่องจากการจ้างฉันในบทบาทนั้น อาจมีบางจุดที่ผู้มีประสบการณ์ในรุ่นนั้นอาจรู้ดีกว่าคนอื่นและหลีกเลี่ยงหลุมพรางที่อาจทำให้บางคนไป "ทำไมพวกเขาสร้างมันขึ้นมา?"


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

-2

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

ดังนั้นพวกเขาจึงพูดว่า "คุณต้องการอะไร?" และสุ่ม shmuck ที่จบการตอบว่า "โปรแกรมเมอร์ต้องมีประสบการณ์ไม่กี่ปีเหมือนฉันไม่รู้ 4 และมันจะดีถ้าเขารู้. Net." การตอบสนองที่เหมาะสม

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

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


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

ไม่เห็นด้วย ไม่กี่ บริษัท ที่ผ่านมาผมเคยทำงานที่ไม่ได้มีคน HR และเมื่อเราโฆษณาให้กับพนักงานใหม่เราต้องการประสบการณ์เชิงพาณิชย์ด้วยภาษาและแพลตฟอร์มที่เราพัฒนาขึ้น ทำไม? เพราะถ้าไม่มีผู้สมัครที่มีประสบการณ์นั้น (และมี) ทำไมต้องใช้เวลาพิเศษในการพูดคุยกับคนที่ไม่มีประสบการณ์ด้วยความหวังว่าคุณจะพบคนที่ดีมากจนคุณเต็มใจที่จะรอ พวกเขาเรียนรู้?
Carson63000
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.