Tại sao hầu hết các dịch vụ công việc là dành cho nhà phát triển <ngôn ngữ ở đây>, thay vì nhà phát triển nói chung? [đóng cửa]


9

Trong một thế giới lý tưởng:

Trong một bài viết xuất sắc Đừng gọi mình là lập trình viên, và lời khuyên nghề nghiệp khác , Patrick McKenzie giải thích, trong số những điều khác, ngôn ngữ đó không thành vấn đề:

  • Một nhà phát triển là một người giải quyết vấn đề, nói chung. Một nhà phát triển không phải là người viết mã bằng một ngôn ngữ cụ thể.

  • Các doanh nghiệp không quan tâm đến các ngôn ngữ bạn biết. Nếu họ cần thuê một nhà phát triển cho một dự án được viết bằng một ngôn ngữ cụ thể và họ có một ứng viên có kinh nghiệm cao nhưng không bao giờ viết một dòng mã bằng ngôn ngữ này, anh ta vẫn sẽ được thuê.

Theo kinh nghiệm của tôi cả với tư cách là một nhà phát triển và một người phải thuê các nhà phát triển khác, việc quan sát rất giống nhau:

  • Kinh nghiệm N năm về Java hoặc N năm kinh nghiệm trong C # không thành vấn đề. Vấn đề là ứng viên biết cách giải quyết vấn đề, biết sự khác biệt giữa mã spaghetti và mã sạch với kiến ​​trúc được suy nghĩ kỹ, v.v.

  • Tôi không quan tâm đến các ngôn ngữ bạn đã sử dụng trước đây. Đối với một dự án C #, tôi sẽ thuê một nhà phát triển chuyên nghiệp dành cả đời để viết mã Java, Python và Ruby trên Rails chứ không phải là người mới bắt đầu chỉ biết C # và biết nó rất tệ.

  • Kiến thức và kinh nghiệm bạn có được khi sử dụng một ngôn ngữ hầu hết có thể sử dụng lại trong bất kỳ ngôn ngữ nào khác.

    Một nhà phát triển có kinh nghiệm đã sử dụng Ruby on Rails để phát triển web và dành phần còn lại của sự nghiệp để viết các ứng dụng máy tính để bàn Java bằng cách sử dụng Oracle hoàn toàn phù hợp cho một dự án ASP.NET MVC sử dụng Microsoft SQL Server. Bởi vì người này đã biết tất cả mọi thứ cô ấy cần cho công việc này , bỏ qua một vài điều cụ thể và sự khác biệt cú pháp.

    Mặt khác, một người chỉ thực hiện một vài trang web nhỏ ASP.NET MVC hoàn toàn không phù hợp, bởi vì cô ấy có thể không hoàn toàn hiểu kiến ​​trúc MVC, có thể biết hồ sơ SQL là gì và có thể thiếu một số thiết yếu khác hiểu biết.

    Đừng nói với tôi rằng tôi không thể khắc phục một sự cố nhỏ với trang web PHP sử dụng CodeIgniter chỉ vì tôi chưa bao giờ sử dụng CodeIgniter trước đây.

Trong thực tế:

Trong thực tế, khi tôi tìm kiếm các công việc tự do và khi tôi thấy các dịch vụ công việc nói chung, chúng rất cụ thể về ngôn ngữ.

Một số người sẽ tìm kiếm một nhà phát triển PHP có hai năm kinh nghiệm trong Magento. Những người khác sẽ tìm kiếm một người có kinh nghiệm VB.NET ít nhất ba năm và nếu bạn gửi cho họ một bản lý lịch đề cập rằng bạn đã thực hiện phát triển C # trong sáu năm, nhưng không đề cập đến VB.NET, họ sẽ không bận tâm để trả lời. Nếu họ yêu cầu một người có kinh nghiệm với Firebird, họ sẽ không lắng nghe về kinh nghiệm mười năm của bạn với Oracle.

Tại sao có sự khác biệt như vậy giữa lý thuyết và những gì Patrick McKenzie và tôi mô tả là lẽ thường, và thế giới thực của dịch vụ việc làm?


12
Don't tell me that I'm unable to fix a small problem with a PHP website which uses CodeIgniter just because I never used CodeIgniter before.Mặc dù bạn hoàn toàn có khả năng khắc phục sự cố, nhưng nguyên nhân gốc là CodeIgniter (một trong số ít các vấn đề của khung, hoặc một trong nhiều lỗi mở của nó), thì bạn sẽ mất nhiều thời gian hơn để khắc phục sự cố.
yannis

12
Bạn đã quên một số thẻ : <rant>...</rant>. Nghiêm túc mà nói, có một câu hỏi thực sự ở đây?
Cyclops

6
"Tôi không quan tâm đến các ngôn ngữ bạn đã sử dụng trước đây. Đối với dự án C #, tôi sẽ thuê một nhà phát triển chuyên nghiệp dành cả đời để viết mã Java, Python và Ruby trên Rails thay vì người mới bắt đầu chỉ biết C # và biết thật tệ. " - Lấy người rơm đó đi! Đây là một sự phân đôi giả. Câu nói của bạn là chính xác cho người mới bắt đầu, nhưng KHÔNG dành cho các vị trí đòi hỏi kiến ​​thức sâu về một nền tảng cụ thể.
Jim ở Texas

1
Một người có kinh nghiệm trong một ngôn ngữ sẽ thực hiện công việc nhanh hơn và sạch sẽ hơn nhiều, nghĩ khác là chỉ là ảo tưởng.
Thomas Bonini

Khi tôi là người tuyển dụng, tôi trở thành người có danh sách thực sự dài "Phải sử dụng các thuật ngữ Technobabble X, Y và Z". Và nếu tôi có thể tìm thấy người đó, tôi có thể thuê họ. Khi tôi là người tìm việc, tôi có thể bực bội vì họ không nhìn tôi vì tôi chỉ có vô số bộ não, và không phải là trải nghiệm chính xác mà họ muốn, nhưng nếu tôi có điều chính xác họ muốn, tôi sẽ mong đợi để được thuê, tại chỗ. Vì vậy, cuối cùng, đó là cuộc gọi của họ, và đó là như vậy.
Warren P

Câu trả lời:


16

Bởi vì nhiều công ty có máy bay không người lái làm việc tuyển dụng, những người không biết gì về nó. Khi nhân sự nói "ứng viên cần những bằng cấp gì?" Nói "Sáu năm C #" thì dễ hơn nhiều so với nói "Viết mã tốt". Máy bay không người lái đó không biết "Viết mã tốt" trông như thế nào hoặc làm thế nào để lọc sơ yếu lý lịch bằng cách họ có thể viết mã tốt hay không. Tuy nhiên, họ có thể nhanh chóng đọc một bản lý lịch và xem "Năm và ba phần tư năm C #" và ném nó đi.


3
Chính xác. những người không phải là nhà phát triển và quản lý có thể nhìn vào bạn nếu bạn nói rằng bạn đang tìm kiếm một người có kỹ năng tương tự nhưng sẽ cần học một chút công bằng (ví dụ cú pháp cụ thể, không phải khái niệm) ban đầu trong công việc trừ khi họ ổn với điều đó.
Michael Durrant

Tôi nghĩ rằng chúng được gọi là khỉ nhân sự ... Tôi hoàn toàn đồng ý, nhưng đó là một ý tưởng tốt để có <ngôn ngữ ở đây> guru trong đội.
Lukasz Madon

3
Đặt "viết mã tốt" trong quảng cáo là hoàn toàn vô nghĩa. Mọi người đều nghĩ rằng họ viết mã tốt. Và những người bị kết án nhiều nhất về kỹ năng viết mã vượt trội của họ thường là những người viết mã tồi tệ nhất.
nikie

1
@nikie: Đó là một sự đơn giản hóa. Tất nhiên, bạn sẽ không đặt chính xác điều đó trong quảng cáo.
DeadMG

3
Tôi không nghĩ đây là lý do chính, vì các công ty khởi nghiệp nhỏ không có bộ phận nhân sự làm chính xác như vậy.
J. Maes

22

Tôi nghĩ rằng đã đến lúc đi vào huyền thoại này rằng một nhà phát triển có kinh nghiệm X năm về ngôn ngữ Y có thể chuyển đổi liền mạch sang ngôn ngữ Y2. Đây không phải là cách nó hoạt động.

Nếu bạn coi ngôn ngữ chỉ là cú pháp của nó và các mẫu phổ biến thì hãy biết, Java sẽ cho bạn một khởi đầu khổng lồ khi chuyển sang C #. Tuy nhiên, nó sẽ không chuẩn bị cho bạn về WCF, WPF, Nhấp một lần, các thư viện phân luồng khác nhau, Linq, và chắc chắn nó sẽ không chuẩn bị cho bạn những thứ mà tài liệu nói rằng hoạt động, nhưng thực tế thì không.

Bạn thấy bạn không nói về một ngôn ngữ, bạn thường nói về một nền tảng. Và trong đó nền tảng, .NET là một ví dụ tốt, hỗ trợ nhiều ngôn ngữ, mọi người có xu hướng hội tụ về một lựa chọn ưa thích.

Vì vậy, khi tôi yêu cầu một nhà phát triển C #, tôi thực sự đang quảng cáo cho một nhà phát triển nền tảng .NET, người có kinh nghiệm nằm trong các dự án C #. Những người có xu hướng là các dự án máy chủ .net, các dự án winforms / wpf.


Tôi đồng ý. Tất nhiên là có thể, nhưng khó khăn. Cú pháp gia đình C dễ dàng chuyển, nhưng sự hiểu biết thực sự về nền tảng và bộ công cụ đầy đủ mất rất nhiều thời gian để tìm kiếm. Lời khuyên của tôi cho nhà phát triển / lập trình viên / nhà phân tích / lập trình viên trẻ tuổi là hãy nhảy vào các công nghệ mới vào thời gian của bạn trong khi mọi người vẫn là người mới bắt đầu. Những người tham gia phát triển HTML5, iOS và Android hai hoặc ba năm trước hiện đang rất tốt. Tất nhiên, có thể đoán sai (hỏi tôi về Flex), nhưng đó không phải là ngày tận thế.
Jim ở Texas

Điều này chủ yếu là do Java -> C # tương tự như C -> C ++ - chúng có thể được xây dựng trên cùng một nền tảng, về mặt kỹ thuật, nhưng C # bao gồm nhiều tính năng mà bạn thực sự muốn sử dụng. Việc chuyển đổi ngược sẽ dễ dàng hơn rất nhiều, đi từ C # sang Java.
DeadMG

11

Tôi có thể nghĩ ra một vài lý do:

  1. Nhân viên và chuyên gia tư vấn - Nếu tôi thuê một chuyên gia tư vấn, tôi muốn anh ấy / cô ấy tăng tốc độ đã có trên kho công nghệ mà chúng tôi đang sử dụng. Các chuyên gia tư vấn dự kiến ​​sẽ có hiệu quả rất nhanh vì họ sẽ không bao lâu để khấu hao việc học.
  2. Cung / cầu - Như Doc đã nói, nếu tôi sẽ chọn ứng viên có kinh nghiệm nhất tôi có thể cho công việc. Và ngăn xếp công nghệ có vấn đề ở đó cho các công nghệ được thiết lập. Nếu tôi đang tìm kiếm một người để phát triển trong Go (chọn một ngôn ngữ mà ít người biết), hầu như không ai có kinh nghiệm với nó và tôi trở lại với Skillet như một nhà phát triển nói chung.

4

Không phải tất cả các công việc lập trình đều giống nhau. Công việc hiện tại của tôi chắc chắn phù hợp với mô hình của bạn. Nó liên quan đến rất nhiều phân tích dữ liệu ad hoc và chúng tôi chọn và đưa các công cụ khi cần thiết. Tôi đã được thuê một phần vì tôi có một hồ sơ theo dõi về việc có thể nhanh chóng làm việc hiệu quả với các công cụ mới.

Mặt khác, có những công việc mà bạn đang tìm kiếm chuyên môn kỹ thuật cụ thể. Trở lại những năm 90, tôi đã làm việc cho một cửa hàng phần mềm nhỏ và chúng tôi cần nhanh chóng phát triển chuyên môn về C ++. Mặc dù rõ ràng yêu cầu chuyên môn về C ++ trong quảng cáo của chúng tôi, hầu hết những người nộp đơn biết ít C ++ hơn tôi. "Nhưng tôi có thể học C ++ nhanh chóng!" họ đều nói Vâng, tôi chắc chắn bạn có thể, nhưng tôi cũng có thể, và những người khác cũng đã ở đó. Chúng tôi đang tìm kiếm ai đó đã thực sự biết về C ++, vì vậy chúng tôi sẽ có một nguồn chuyên môn nội bộ khi phần còn lại của chúng tôi tăng tốc. Có một người mới bắt đầu trong đội thực sự sẽ không giúp đỡ.


1
+1: Một TEAM có thể có một số hoặc thậm chí hầu hết các nhà phát triển chưa quen với ngôn ngữ này, nhưng nó giúp ích rất nhiều cho các chuyên gia ngôn ngữ có thể dạy cho mọi người khác.
TREE

3

Các doanh nghiệp không quan tâm đến các ngôn ngữ bạn biết. Nếu họ cần thuê một nhà phát triển cho một dự án> được viết bằng một ngôn ngữ cụ thể và họ có một ứng viên có kinh nghiệm cao> nhưng không bao giờ viết một dòng mã bằng ngôn ngữ này, anh ta vẫn sẽ được thuê.

Giả sử, bạn đang tìm kiếm một ứng cử viên cho công việc .NET / C #. Nếu bạn có hai ứng cử viên cho công việc, cả hai đều có kinh nghiệm cao như nhau, nhưng người đầu tiên đã có kinh nghiệm về hệ sinh thái Java, người thứ hai trong hệ sinh thái .NET - bạn thích ai nhất?

Những người khác sẽ tìm kiếm một người có kinh nghiệm VB.NET ít nhất ba năm và nếu bạn gửi cho họ một bản lý lịch đề cập rằng bạn đã thực hiện phát triển C # trong sáu năm, nhưng không đề cập đến VB.NET, họ sẽ không bận tâm để trả lời.

Ai có thể nói tại sao bạn không nhận được câu trả lời? Có lẽ đã có đủ các nhà phát triển VB.NET có kinh nghiệm áp dụng cho công việc? Có lẽ bộ phận nhân sự sử dụng trải nghiệm ngôn ngữ lập trình làm bộ lọc để giảm số lượng đơn xin việc từ 100 xuống còn 10. Có lẽ bạn vừa nói chuyện với các công ty sai (tôi đoán trong công ty của mình, chúng tôi sẽ gửi câu trả lời trong trường hợp ví dụ bạn đã mô tả ở trên).


2

Trong hầu hết các kết quả công việc dựa trên dự án là cần thiết một cách nhanh chóng và mọi người cần tạo ra lợi nhuận càng sớm càng tốt.

Những người có thể cung cấp những nhu cầu này và không bị ràng buộc với (các) ngôn ngữ cụ thể là khan hiếm và do đó quá tốn kém. Những người này chỉ được thuê bởi các công ty lớn yêu cầu các kỹ năng đáng kinh ngạc.

Những người có khả năng giải quyết vấn đề nhưng không thể học một ngôn ngữ cụ thể nhanh thì ít khan hiếm. Họ vẫn tốn rất nhiều tiền, và họ có thêm chi phí thời gian cần thiết để học ngôn ngữ cụ thể.

Chi phí thêm thời gian này được giảm bằng cách yêu cầu một lập trình viên ngôn ngữ cụ thể. Anh ấy đã học được các kỹ năng cần thiết và có thể cung cấp kết quả nhanh chóng.

Nói tóm lại, một dự án cần được thực hiện trong JAVA không cần một nhà phát triển phần mềm đáng kinh ngạc, cũng không cần một nhà phát triển .net trung bình sẽ cần thời gian để học ngôn ngữ / khung. Nó cần kết quả ngay lập tức với số tiền ít nhất, được cung cấp bởi anh chàng đã có kinh nghiệm với JAVA và có kỹ năng giải quyết vấn đề tương đối tốt.

Như mọi khi, đó là về tiền và nhận được nhiều tiền lãi nhất từ ​​đầu tư


2

Tôi nghĩ rằng bạn chỉ đơn giản là hiểu sai cụm từ tiêu chuẩn "<ngôn ngữ ở đây> nhà phát triển". Các công ty không đặt cụm từ đó trong quảng cáo để ngăn chặn các nhà phát triển có kinh nghiệm trong một số ngôn ngữ khác. Tại sao họ muốn ngăn chặn các nhà phát triển có khả năng? Từ quan điểm của nhà tuyển dụng, càng nhiều ứng viên, càng tốt. Họ luôn không thể mời những người mà họ không quan tâm.

Điểm thực sự của cụm từ là cho bạn biết, người đọc, những gì công việc sẽ đòi hỏi. Và điều đó rất có ý nghĩa, IMHO. Bạn có xin việc ở nơi bạn phát triển ngôn ngữ lắp ráp Z80 không? Hoặc COBOL? Hay Fortran?

Và, rõ ràng, nếu công ty có hai ứng cử viên có vẻ thông minh khác, thì người nào có kinh nghiệm về <ngôn ngữ ở đây> sẽ thắng. Không hơn không kém. (Có những trường hợp đặc biệt, nơi mọi người đang thuê cho một dự án duy nhất mà thôi, hoặc cho một dự án đó là đã muộn, hoặc cho các dự án đầu tiên của công ty phát triển trong <ngôn ngữ ở đây>, nơi bạn có thực sự cần kinh nghiệm ở chỗ ngôn ngữ ngay từ đầu, nhưng tôi không nghĩ chúng là quy tắc.

Ngẫu nhiên, công ty của tôi đã từng viết quảng cáo như bạn đề xuất ( có vẻ như nó có ý nghĩa, sau tất cả). Kết quả thật tàn khốc. Những người thực sự quan tâm đến công việc của họ chỉ đơn giản là bỏ qua quảng cáo. Chỉ có người tuyệt vọng, người áp dụng cho bất kỳ vị trí mở nào được áp dụng. Chúng tôi không bao giờ thử lại lần nữa.


1

Bước lại và suy nghĩ về tiền đề. Bạn muốn một người làm một số công việc .net. Bạn đặt nó trong mô tả công việc của bạn và bạn tìm kiếm ứng viên với kỹ năng đó! Đây chỉ là lẽ thường.

Tôi chắc chắn đồng ý với những triết lý chi tiết hơn của bạn về lý do tại sao đó có thể không phải là một ý tưởng tốt, nhưng hầu hết mọi người sẽ chỉ quảng cáo, yêu cầu và tìm kiếm một ứng cử viên với các kỹ năng họ cần bây giờ. Nó chỉ đơn giản như vậy nên tôi nghĩ điều này trả lời tiêu đề câu hỏi của bạn là tại sao.

Nếu họ không thể có được bất kỳ ứng cử viên nào, hoặc trải qua một vài ứng cử viên xấu, thì họ có thể nghiên cứu một chút và có thể dễ dàng hơn với các mục bạn nêu chi tiết. Trên thực tế trong khu vực tôi đang ở (Ruby on Rails) hiện có rất nhiều quảng cáo nói rằng "không cần kinh nghiệm, chúng tôi sẽ đào tạo bạn", v.v. và trên thực tế, một số tổ chức Ruby on Rails hàng đầu là rất cởi mở với các ứng viên "không có thói quen xấu" mà họ có thể đào tạo. Vì vậy, cách tiếp cận đúng là ra khỏi đó bởi một số tổ chức.

Hãy nhớ rằng hầu hết các quảng cáo là của các nhà tuyển dụng bên ngoài hoặc các nhà tuyển dụng nội bộ không có kỹ thuật, những người không có kiến ​​thức để "đi ngang" như bạn mô tả.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.