Có những hạn chế khi nhận một công việc mà tôi sẽ sử dụng một ngôn ngữ lập trình độc đáo? [đóng cửa]


37

Tôi vừa tốt nghiệp đại học với bằng về CS, vì vậy tôi muốn tìm một công việc mà tôi có thể tìm hiểu thêm về lĩnh vực này và xây dựng một số kinh nghiệm chuyên môn.

Tôi đã phỏng vấn tại một công ty sử dụng ngôn ngữ lập trình nội bộ của riêng họ và tôi không nghĩ có ai khác sử dụng nó. Họ đã không đề cập đến việc sử dụng bất kỳ ngôn ngữ nào khác hoặc những gì họ sử dụng cho môi trường phát triển.

Tôi nên quan tâm điều gì khi nhận một công việc như thế này? Nếu tôi chuyển đổi công việc sau này, liệu tôi có phải bắt đầu tìm kiếm vị trí cấp nhập cảnh một lần nữa bởi vì tôi chưa có được kinh nghiệm cụ thể về ngôn ngữ?


8
Ngôn ngữ sẽ không quan trọng miễn là bạn cảm thấy thoải mái với công việc, môi trường làm việc và trách nhiệm của mình.
Marcelo

5
Tốt nghiệp với bằng cấp CS có nghĩa là bạn có khả năng học hỏi những điều mới. Bạn sẽ liên tục được đưa ra các tình huống mà bạn phải tiếp thu / học một ngôn ngữ hoặc công nghệ mới và điều này không khác. Những gì bạn làm từ công việc này đến công việc là kinh nghiệm giải quyết vấn đề. Cú pháp của một ngôn ngữ cụ thể đi kèm cho chuyến đi.
Chris

11
Là ngôn ngữ độc quyền MUMPS bởi bất kỳ cơ hội?
R0MANARMY

3
Nếu đó là Wasabi ( blog.fogcalet.com/the-origin-of-wasabi ) - hãy lấy nó!
Gerry

3
@DaveShaw: Và mọi người vẫn chạy với những con bò đực. Không nhất thiết phải làm cho nó một ý tưởng tốt;).
R0MANARMY

Câu trả lời:


28

Nhược điểm chính:

  • làm việc trong một "môi trường tùy chỉnh" có thể có nghĩa là các công cụ / hỗ trợ hạn chế có thể gây phẫn nộ khi bạn gặp khó khăn trong vấn đề.
  • Ngôn ngữ họ sử dụng có thể được thiết kế kém, dẫn đến việc bạn sớm từ bỏ thói quen xấu và viết mã hack để tạo ra cách giải quyết.
  • Baffoons nhân sự sẽ không nhận ra kinh nghiệm của bạn. .

Nếu là tôi, tôi sẽ hỏi họ tại sao họ sử dụng ngôn ngữ trong nhà. Nếu đó là vì một lý do chính đáng, chẳng hạn như các mâu thuẫn phần cứng điên rồ, một miền không dễ dàng được mô hình hóa trong bất kỳ ngôn ngữ hiện có thì điều này hoàn toàn tốt. Mặt khác, nếu câu trả lời của họ cho thấy rằng họ đã tạo ra ngôn ngữ của riêng mình để họ có thể tập hợp một loạt các vụ hack và logic kinh doanh thành một số lượng lớn các macro, thì đây là một lá cờ đỏ lớn. Bạn muốn chắc chắn rằng họ sử dụng các nguyên tắc kỹ thuật tốt, để bạn có thể học hỏi từ họ và thành công với họ.Trong trường hợp này, bạn có thể xem liệu họ có thể biện minh một cách hợp lý bằng cách sử dụng ngôn ngữ được trồng tại nhà không có nền tảng kiến ​​thức cộng đồng và hỗ trợ bên ngoài hay không. Bạn có thể thấy rằng quyết định của họ là hoàn toàn hợp lý (tôi tin rằng facebook đã xây dựng phiên bản PHP của riêng họ để đối phó với khả năng mở rộng, điều này đã làm rất tốt cho họ), hoặc bạn có thể thấy rằng họ đã tạo ra sự quái dị của ngôn ngữ. kết hợp chặt chẽ với các hệ thống cốt lõi của họ, rằng họ dường như không thể tách rời khỏi nó. Tin tôi đi, bạn không muốn làm việc trong một ngôn ngữ mà kiểu dữ liệu cốt lõi của nó được gọi là ImARInObj (Đối tượng hóa đơn có thể nhận tài khoản bất biến). Sự kết hợp chặt chẽ giữa ngôn ngữ và nhu cầu kinh doanh thường xảy ra trong các loại tình huống này và sẽ là một cơn ác mộng tuyệt đối khi phải đối phó với hệ thống đó hàng ngày.


12
Trên thực tế, điều đó không ổn vì các bộ phim nhân sự điều hành hầu hết các công việc tuyển dụng, ngay cả đối với nhiều công ty tốt ....
Cervo

1
Tôi đồng ý với các công cụ / hỗ trợ. Ở công việc cũ của tôi, chúng tôi đã sử dụng một công cụ truy cập dữ liệu tùy chỉnh. Tôi không thể nói với bạn bao nhiêu lần tôi muốn google sự phổ biến của các lỗi thời gian chạy mà tôi gặp phải nhưng tôi phải tự nhắc nhở mình rằng đây là một điều nội bộ. Bạn thậm chí không thể gửi câu hỏi lên stackoverflow để được giúp đỡ. Bạn đang thương xót công ty của mình và tốt hơn là bạn nên có những tài liệu tốt, trang / phần mục Câu hỏi thường gặp và tài liệu về cách giải quyết những vấn đề khó chịu mà bạn thường phải mất hàng giờ để theo dõi. Nó mút khá tệ. Tôi rất vui khi được trở lại với NHibernate một lần nữa.
A-Dubb

"Bạn thậm chí không thể gửi câu hỏi lên stackoverflow để được giúp đỡ." Điều gì sẽ xảy ra nếu bạn thuyết phục một trong những người duy trì mạng nội bộ để thiết lập một bản sao SO nội bộ?
JAB

Tôi gặp phải một vấn đề tương tự. Các ngôn ngữ rất chuyên biệt không có cơ sở người dùng có vấn đề với các công cụ của họ. Một tùy chọn, mà tôi đã sử dụng, là lấy một công cụ như cog và viết mã để viết mã. Đặc biệt là nếu rất nhiều trong số đó là nồi hơi.
Spencer Rathbun

96

Chạy đi, và chạy thật nhanh. Trừ khi bạn mong muốn một công việc và rất đói, đây là một tình huống bạn muốn tránh xa.

Tôi có kinh nghiệm với một công ty đã làm điều này, và lý do duy nhất mà họ làm như vậy là để nhân viên của họ không có được kinh nghiệm có ý nghĩa, có thể chuyển nhượng . Nó thực sự là tất cả về kiểm soát.

Những người khác nói ở đây rằng "lập trình là lập trình" là đúng, nhưng tôi bật nó lên và hỏi, tại sao không sử dụng một số ngôn ngữ tiêu chuẩn có hỗ trợ bên ngoài, thư viện, diễn đàn và nhóm lập trình viên có sẵn để chọn từ?

Lần duy nhất tôi nghĩ một tình huống như vậy sẽ ổn nếu ngôn ngữ chỉ dành cho công ty là dành cho phần cứng tùy chỉnh. Ví dụ: bạn phải viết mọi thứ cho Giao thoa kế Gamma-Ray 9000X bằng cách sử dụng mã lắp ráp / mã máy cụ thể cho máy đó.


21
Sự thiếu tiềm năng của hỗ trợ và tài liệu (tôi chưa bao giờ biết các công cụ nội bộ được ghi chép tốt như các công cụ tiêu chuẩn) là một mối quan tâm lớn, IMO. Và những lý do để làm mọi thứ theo cách này cần phải được hiểu rõ.
Ethel Evans

15
+100 Chỉ cần nghĩ về nó ... vị trí tiếp theo bạn tìm kiếm có ngôn ngữ chính, bạn sẽ có 0 năm kinh nghiệm chuyên môn / áp dụng. Bạn sẽ bắt đầu lại với tư cách là một nhà phát triển Junior.

2
Điều gì sẽ xảy ra nếu anh ấy nói về Google và ngôn ngữ là sawzall ( labs.google.com/epage/sawzall.html ) hoặc Go (trước khi nó được công khai)? Không có lý do chính đáng nào khác để phát minh ra một ngôn ngữ mới?
Neil G

3
@Neil - Rất nhiều lý do tuyệt vời và mọi người thường gọi chúng là các ngôn ngữ nhỏ, DSL (ngôn ngữ cụ thể theo tên miền) hoặc (trong trường hợp của Google) là "điều lớn tiếp theo". Tôi chắc chắn không có gì chống lại các ngôn ngữ độc quyền. OP nói rằng đây là ngôn ngữ duy nhất được sử dụng. Google không có bất cứ điều gì chống lại các ngôn ngữ tiêu chuẩn.
unpythonic

3
Tôi thích ý tưởng tìm kiếm động lực của công ty, nhưng IMHO, phát minh ngôn ngữ của riêng bạn cho mục đích duy nhất là gài bẫy nhân viên của bạn không phải là một ý tưởng có thể bắt đầu. Thay vào đó, gần như chắc chắn, ai đó đã phát minh ra một ngôn ngữ để giải quyết một vấn đề cụ thể, và bây giờ nó được sử dụng chủ yếu vì lý do di sản. Không phải là một môi trường lý tưởng, nhưng ít nhất là lành tính.
tylerl

22

Vì sơ yếu lý lịch của bạn về cơ bản là trống sau khi bạn tốt nghiệp, công việc đầu tiên của bạn đặt rất nhiều động lực vào con đường sự nghiệp tương lai của bạn. Nhà tuyển dụng tiềm năng tiếp theo của bạn sẽ đặt nhiều trọng lượng vào công việc này. Vì vậy, trừ khi bạn cũng sẽ lập trình bằng các ngôn ngữ khác (có thể tiếp thị nhiều hơn), tôi rất khuyến khích bạn không nên làm công việc này.

Tôi nói điều này từ kinh nghiệm vì tôi vừa rời công việc đầu tiên tôi có sau khi tốt nghiệp bằng CS, nơi tôi ở một vị trí gần như chính xác như bạn mô tả. Hầu hết các chương trình được thực hiện bằng một ngôn ngữ cơ bản chưa được gọi là Tiến trình (còn gọi là OpenEdge ABL). Thật kinh khủng. Không tệ như COBOL, nhưng gần gũi. Tôi bị kẹt ở đó vì khu vực xung quanh nơi tôi tốt nghiệp không có nhiều công việc lập trình và tôi đã chờ vợ tôi tốt nghiệp với tấm bằng của mình trước khi chuyển đi.

Bắt ngôn ngữ đó để nói chuyện với các ngôn ngữ hoặc cơ sở dữ liệu khác là gần như không thể (nó cũng bị khóa với cơ sở dữ liệu độc quyền của riêng nó - tiền thưởng!). Tôi đã dành rất nhiều thời gian để tự viết các khung công tác đã tồn tại trong các ngôn ngữ khác và có lẽ đã được triển khai tốt hơn vì ngôn ngữ không hỗ trợ rất tốt cho mô hình "mở rộng" này. Ngôn ngữ được điều chỉnh phù hợp hơn với cách tiếp cận "liên hệ với Corp với yêu cầu tính năng và đợi đến phiên bản n + 1 cho cách tiếp cận tính năng mới". Không cần phải nói, ngành công nghiệp phần mềm không di chuyển đủ chậm để đây là một cách tiếp cận khả thi. Tôi sẽ không nói về việc nó tệ như thế nào, nhưng tôi cho rằng bạn sẽ phải đối mặt với một điều tương tự nếu bạn cũng đang đối phó với một ngôn ngữ độc quyền.

Để thêm vào đó, cơ sở mã hiện tại, theo chúng tôi, là tối ưu phụ. Rất nhiều mã kế thừa có niên đại từ cuối thập niên 80 / đầu thập niên 90. Tôi cá rằng bạn nên mong đợi một cái gì đó tương tự, vì tôi nghĩ rằng hầu hết các công ty chỉ gắn bó với các ngôn ngữ độc quyền bởi vì họ mang theo rất nhiều hành lý kế thừa này với họ. Hãy nhớ rằng, rất khó để một nhà tuyển dụng như vậy tìm thấy các lập trình viên sẵn sàng viết mã trong môi trường độc quyền / di sản này, cộng với họ có thể phải trả tiền cho việc đào tạo cũng như chưa từng có ai nghe về nó. Đồng nghiệp của bạn có thể sẽ không phải là người khổng lồ của công nghệ phần mềm, do hiệu ứng Biển Chết(bất cứ ai có tài năng có lẽ đã rời đi). Tôi đã gặp nhiều rắc rối khi đánh giá mã khi cố gắng sử dụng mã hướng đối tượng, chứ đừng nói đến bất kỳ loại mẫu thiết kế nào, vì họ không hiểu nó (những người trong nhóm của tôi, tốt nhất là, có bằng MIS (không vi phạm )).

Cuối cùng, giả sử bạn làm công việc này nhưng khao khát làm điều gì đó tốt hơn một khi bạn rời đi, để tạo cho mình khả năng cạnh tranh cho công việc tiếp theo, bạn phải hy sinh rất nhiều thời gian rảnh rỗi bên ngoài công việc để tạo ra đồ chơi dễ vỡ bằng các ngôn ngữ có thể bán được hơn (và có lẽ là nguồn mở hầu hết những gì bạn làm), hoặc làm những gì tôi đã làm và tiết kiệm một số tiền trước khi bạn bỏ việc và dành một hoặc hai tháng làm như vậy. Dù bằng cách nào, đây là một điều rất căng thẳng, đặc biệt nếu bạn thích có bất kỳ loại mối quan hệ xã hội nào ngoài công việc hoặc dành thời gian rảnh của mình để làm một việc gì đó không mã hóa một lần trong một thời gian.

Bây giờ, kinh nghiệm của tôi có thể không ánh xạ trực tiếp đến sự lựa chọn của bạn, nhưng tôi chắc chắn một số trong số đó sẽ được áp dụng. Hy vọng rằng nó ít nhất sẽ cung cấp cho bạn một số câu hỏi để đưa lên. Như những người khác đã đề cập, có lẽ bạn muốn tìm hiểu những công cụ họ sử dụng (phần cứng, môi trường phát triển phần mềm / IDE và kiểm soát phiên bản chắc chắn). Các Joel thử nghiệm có thể là một hướng dẫn hữu ích.

TL; DR

Đừng làm điều đó.

PS Đối với những người nói rằng học bất kỳ ngôn ngữ mới nào cũng hữu ích, thì chính nó là đúng. Vấn đề là khi bạn gặp khó khăn khi sử dụng ngôn ngữ đó gần như toàn thời gian trong một thời gian dài, mất tiếp xúc với các ngôn ngữ (và kỹ thuật) hữu ích hơn. Đó là những gì bạn muốn tránh.


Điều này. Một cái gì đó như thế này là tốt cho một công việc cushy, căng thẳng kéo dài cho đến khi bạn nghỉ hưu. Đó không phải là một cách tốt để bắt đầu một sự nghiệp.
Wayne Molina

Đó là một suy nghĩ kinh hoàng @Wayne: Học một ngôn ngữ độc quyền ngay khi ra trường, sau đó sử dụng ngôn ngữ đó trong 50 năm lẻ ...
Morgan Herlocker

Kinh hoàng là đặt nó nhẹ. Nevermind thực tế nếu bạn đã từng bị sa thải hoặc công ty đã đi theo, bạn sẽ phải zero kỹ năng thị trường giá trị cho bất cứ ai. Bạn cũng có thể không tồn tại trong thế giới kinh doanh.
Wayne Molina

Tôi vừa hoàn thành một hợp đồng ở nơi có kích thước trung bình có hệ thống cốt lõi được viết trong Tiến trình - không phải là không biết. May mắn thay, tôi là một trong những lập trình viên .Net mới giao tiếp với hệ thống thông qua các cuộc gọi dịch vụ web. Họ vẫn quản lý để có được các lập trình viên tiến bộ bất cứ khi nào họ cần.
dave

16

Nhược điểm rõ ràng là bạn sẽ không thể thêm công việc này vào yêu cầu "5+ kinh nghiệm sử dụng ngôn ngữ x" mà các công việc trong tương lai mà bạn muốn áp dụng sẽ có. Điều này có thể gây phiền nhiễu hơn bạn nghĩ (nói như một người đã có nhiều năm kinh nghiệm, nhưng một loạt các ngôn ngữ lập trình). Tôi đã có kinh nghiệm chuyên môn với VBA cũng có thể đã có kinh nghiệm với LOLCODE, dựa trên các công việc tôi tìm kiếm ngày hôm nay.

Nhưng, họ có sử dụng ngôn ngữ đó độc quyền không? Thật hiếm khi một công ty chỉ sử dụng một ngôn ngữ. Ngay cả thời gian của tôi với VBA cũng bao gồm một số ASP, Java và PostgreSQL.


Tôi đã chỉnh sửa câu hỏi của mình để làm cho nó cụ thể hơn; họ đã không đề cập đến bất kỳ ngôn ngữ nào khác cho đến nay, vì vậy tôi cần hỏi họ về lần tiếp theo tôi nói chuyện với họ.
AlexMA

3
Trên thực tế tôi có vấn đề vì tôi muốn có một công việc Java và tất cả kinh nghiệm của tôi là trong .NET nên sẽ không có ai thuê tôi và họ rất giống nhau. Với một ngôn ngữ hoàn toàn tùy chỉnh, bạn sẽ có một thời gian thậm chí còn khó khăn hơn. Nhân sự và hầu hết các nhà tuyển dụng đều là những kẻ ngốc và nghĩ rằng bạn cần 5 năm kinh nghiệm trong mọi công nghệ bạn chạm vào ....
Cervo

8

Tôi có xu hướng đồng ý với câu thần chú, " lập trình là lập trình ", bất kể bạn đang làm việc với ngôn ngữ nào. Rất nhiều lập trình là học cách suy nghĩ và phần còn lại chỉ là cú pháp. Một nhà tuyển dụng tiềm năng trong tương lai sẽ ấn tượng hơn bởi " Tôi đã hoàn thành X với Công ty Y " so với họ " Tôi đã biết ngôn ngữ X trong nhiều năm ".

Công việc cuối cùng tôi đảm nhận rất nhiều công việc PL / SQL và tôi chưa bao giờ viết một dòng PL / SQL nào - tôi đã chọn nó trong khoảng hai tuần.

Điều đó nói rằng, tôi chắc chắn sẽ tiếp tục thực hành với các ngôn ngữ khác, chỉ để duy trì hiện tại. Trong khi ở công việc mới, có một hoặc hai dự án thú cưng sẽ giữ cho cánh tay lập trình của bạn thành hình với ngôn ngữ chuẩn hơn, nhưng đừng quá bận tâm về nó.


Đó là kế hoạch của tôi; viết các ứng dụng của riêng tôi (hoặc bất cứ điều gì) vào cuối tuần để cải thiện kỹ năng của tôi với các công nghệ mà tôi quan tâm. Điều đó nói rằng, như Brian đề cập, tôi có thể không đạt được trình độ cho các bài đăng công việc đòi hỏi kinh nghiệm X năm với ngôn ngữ Y. bạn đã yêu cầu một lượng kinh nghiệm PL / SQL nhất định?
AlexMA

@Alex: "... có thể không đạt được trình độ cho các bài đăng công việc đòi hỏi kinh nghiệm X năm với ngôn ngữ Y" là một tai nạn của bất kỳ công việc nào. Nhận một công việc cụ thể có nghĩa là bạn đang bỏ lỡ các cơ hội khác.
Chris

2
@Chris Vâng ... nhưng sẽ hơi khác một chút nếu bạn học "FooBar" và không có hy vọng chuyển nó sang một công ty khác cũng sử dụng "FooBar". nếu bạn học PHP ... chắc chắn bạn không học C ... nhưng có hàng tấn công ty trả tiền cho PHP.
WernerCD

3
-1 Đây là câu trả lời đúng, nhưng không phải cho câu hỏi này.
wilmustell

2
"Một nhà tuyển dụng tiềm năng trong tương lai sẽ ấn tượng hơn," Tôi đã hoàn thành X với Công ty Y "so với họ bằng" Tôi đã biết ngôn ngữ X trong nhiều năm Y "." --- Kinh nghiệm của tôi về cả hai mặt của các cuộc phỏng vấn kỹ thuật đã trái ngược hoàn toàn với điều này.

6

Trong CNTT, công ty thường phải làm với nhà tuyển dụng để tìm ứng viên tốt. Các nhà tuyển dụng không phải là chuyên gia CNTT, do đó, có một số tiêu chí và phù hợp với các ứng viên và sau đó gửi lại cho công ty. Nó đi theo con đường sam với nguồn lực humman trong các công ty lớn.

Bạn có vấn đề với điều đó à. Bạn sẽ không phù hợp với tiêu chí nhà tuyển dụng. Vì vậy, tôi sẽ nói rằng đó không phải là vấn đề trong việc lấy lại năng lực cạnh tranh của bạn. Lập trình là lập trình, và một lập trình viên vững chắc nên biết cách chuyển từ ngôn ngữ này sang ngôn ngữ khác, vì cú pháp ít quan trọng hơn việc biết cách làm mã đáng tin cậy, mã có thể kiểm tra và mã có thể bảo trì. Năng lực chủ yếu là ngôn ngữ độc lập.

Tuy nhiên, miễn là bạn sẽ không phù hợp với tiêu chí phù hợp của việc không có người CNTT nào tuyển dụng bạn, có thể sẽ là một sự bất tiện khi tìm việc làm trong tương lai. Ngay cả khi bạn sẽ là đối thủ cạnh tranh. Những người đó không biết cách đánh giá điều đó bởi vì họ không phải là CNTT.

Tôi chắc chắn sẽ không giới thiệu và công việc này cho lần đầu tiên. Nhưng nếu bạn đã có một số mục trong CV về các công nghệ được sử dụng rộng rãi (Java, PHP, C, C ++, C #, ..) Thì hãy chọn nó nếu bạn thích nó.


Cảm ơn sự hiểu biết của bạn về nhà tuyển dụng; Nghe có vẻ đúng.
AlexMA

5

Chắc chắn có những kỹ năng mà bạn có thể nhận / cải thiện bằng các ngôn ngữ và môi trường độc quyền. Như đã được đề cập trong các câu trả lời khác, một số kỹ năng vượt qua ngôn ngữ và chúng có thể rất có giá trị trong hồ sơ xin việc.

Tuy nhiên, những kỹ năng đó thường bị bỏ qua khi những người xem xét sơ yếu lý lịch không phải là kỹ thuật. Thông thường (ở phần dưới của phổ chất lượng công việc, thật không may, thường là đặt cược tốt nhất cho các nhà phát triển tương đối thiếu kinh nghiệm) sẽ được đánh giá chủ yếu trên x năm ngôn ngữ y và các kỹ năng khác mà bạn có thể không có được chơi cho đến khi bạn nhận được một chân vào cửa với một cuộc phỏng vấn.

Một yếu tố khác cần xem xét là môi trường độc quyền có xu hướng (ít nhất là imo) có nhiều khả năng được thiết kế kém, bùn và nói chung là khó chịu hơn so với môi trường chính thống. Làm việc độc quyền trong một hệ thống độc quyền tồi tệ có thể rất nản lòng, đặc biệt là với một người mới bắt đầu sự nghiệp lập trình.

Điều đó đang được nói, hãy nhớ rằng trải nghiệm với một hệ thống độc quyền, mặc dù không tốt bằng trải nghiệm tương tự làm việc với các ngôn ngữ chính phổ biến, vẫn tốt hơn so với không có kinh nghiệm bằng một cú sút xa. Bạn sẽ vượt lên trên cấp nhập cảnh đối với một số vị trí và đối với những vị trí khác, bạn có thể (hoặc có thể không) vẫn đủ điều kiện là cấp nhập cảnh cho các ngôn ngữ cụ thể, nhưng kinh nghiệm của bạn sẽ đưa bạn vượt xa hầu hết những người khác cạnh tranh cho những công việc đó

Trước khi bạn xem xét từ bỏ một đề nghị vì tập trung vào một ngôn ngữ độc quyền, hãy chắc chắn xem xét thị trường việc làm hiện tại và cách các ứng dụng của bạn thường được nhận.


3

Nó liên quan đến những ngôn ngữ và kỹ năng phụ trợ mà bạn sẽ chọn. Nếu thực sự ngôn ngữ trong nhà của họ không được sử dụng hoặc thậm chí không được biết đến bên ngoài công ty, thì đó sẽ là một lợi ích hạn chế trong sự nghiệp (trừ khi nó có khả năng bùng nổ và là điều lớn tiếp theo). Tôi đã dành vài năm làm việc với một công cụ của bên thứ ba mà bản thân nó là vô dụng đối với tôi (tuy nhiên, bằng cách làm việc với các dự án đó, các kỹ năng HTML, css và javascript của tôi đã được cải thiện. Tôi cũng đã học được rất nhiều về cách các dự án doanh nghiệp được điều hành và cấu trúc, giao dịch với khách hàng, quản lý kỳ vọng. Tất cả những thứ là một phần và phần của sự phát triển phần mềm hiện đại không thực sự là ngôn ngữ.


Tôi đã chỉnh sửa câu hỏi của mình để lưu ý rằng họ chưa đề cập đến bất kỳ ngôn ngữ phụ trợ nào; tuy nhiên điểm tốt về các kỹ năng cụ thể phi ngôn ngữ.
AlexMA

2

Thế còn khung: IDE, biên tập viên, thư viện? Ứng dụng kinh doanh phức tạp nhất. vào những ngày này không thể được thực hiện với trình soạn thảo văn bản đơn giản và trình biên dịch dòng lệnh.

Họ có một số điều đó cho ngôn ngữ lập trình tùy chỉnh của họ?


Điểm tốt. Một lần nữa, họ đã không đề cập đến nó. Tôi cần phải hỏi.
AlexMA

2
Đôi khi các IDE / bộ công cụ độc quyền rất tệ (tôi đã làm việc với một số).
Thất vọngWithFormsDesigner

2

Thông thường, học một doanh nghiệp quan trọng hơn học một công nghệ. Nếu bạn nghĩ rằng bạn có thể muốn ở lại trong ngành công nghiệp cụ thể mà công ty này đang ở, thì hãy tiếp tục và tiếp nhận nó. Nếu đó là một thị trường thích hợp, hoặc một thị trường mà bạn không đặc biệt quan tâm, thì tôi khuyên bạn nên bỏ qua nó. Biết được các đặc tính của dược động học và quá trình khám phá thuốc sẽ mở ra những cánh cửa mà chỉ là một lập trình viên C # / Python / Java khác sẽ không có. Và trừ khi ngôn ngữ "duy nhất" này giống với trình tạo mã hoặc trình cấu hình, bạn vẫn sẽ giải quyết các vấn đề phổ biến, vì vậy bạn vẫn sẽ có được một số kinh nghiệm tổng thể, ngay cả khi các kỹ thuật cụ thể có thể không được chuyển trực tiếp.


Điều này là tốt. Cách duy nhất công việc này sẽ là một lợi ích là nếu kiến ​​thức ngành sẽ giúp ích và bạn muốn chuyển sang lĩnh vực kinh doanh thực tế. Nếu bạn muốn vẫn là một nhà phát triển, theo lời bất hủ của Đô đốc Ackbar,IT'S A TRAP!
Wayne Molina

2

Tôi sẽ cân nhắc dùng nó nếu và chỉ khi, bạn có thể có nhiều kinh nghiệm trong các ngôn ngữ khác. Nếu bạn làm mất công việc, bạn có thể (và nên) theo kịp kỹ năng của bạn với các ngôn ngữ chủ đạo bằng cách làm việc trên dự án mã nguồn mở trong thời gian rảnh rỗi của bạn.

Những gì bạn muốn tránh là khả năng các kỹ năng của bạn trở nên được điều chỉnh cao cho một công ty cụ thể này và không thể chuyển nhượng cho người khác. Về mặt kỹ thuật, lập trình là lập trình và trải nghiệm bên ngoài một môi trường lập trình duy nhất là có lợi, không có hại, vì nó giúp bạn nhìn rõ vấn đề hơn.

Hãy nghĩ về nó theo cách này: nếu bạn nhận một công việc viết các chương trình Perl, điều đó không nhất thiết sẽ khiến bạn phải viết một chương trình Perl vĩnh cửu. Cũng không nhận một công việc trong .NET khiến bạn mãi mãi bị ràng buộc với Microsoft.

Nhưng đây là phần quan trọng: Tôi sẽ không bao giờ thuê một lập trình viên chỉ biết một ngôn ngữ , ngay cả khi đó là ngôn ngữ tôi muốn anh ta sử dụng. Một lập trình viên không có nhiều kinh nghiệm trong nhiều ngôn ngữ thường kém ngay cả với ngôn ngữ mà anh ta chọn. Nó cũng phản ánh sự thiếu tham vọng để học những điều mới.

Mặt khác, nếu một lập trình viên biết Python, Ruby, C #, PHP, C và Erlang, thì thực tế là anh ta cũng biết APL không phải là một cuộc tấn công chống lại anh ta, mặc dù không có cơ hội nào chúng ta sẽ sử dụng APL cho bất cứ điều gì

Vì vậy, nếu bạn có kỷ luật giữ cho ngôn ngữ không trở thành trọng tâm duy nhất của bạn, thì hãy đảm nhận công việc.

Và nó đáng để nói lại: đóng góp cho các dự án nguồn mở. Họ tính hàng tấn nhiều hơn "kinh nghiệm làm việc" bởi vì đó không phải là thứ bạn vừa làm để kiếm tiền lương. Các lập trình viên làm việc trong các dự án nguồn mở giống như vàng.


2

Công việc đầu tiên của tôi sau khi tốt nghiệp bằng CS của tôi liên quan đến việc phát triển với một ngôn ngữ tối nghĩa. Không độc đáo. Không trong nhà phát triển. Nhưng một VMS 4GL đủ tối nghĩa mà tôi chưa từng thấy ai sử dụng.

Nhìn lại, đây là một quyết định không khôn ngoan. Mặc dù tôi đã học được rất nhiều về phát triển phần mềm chuyên nghiệp thực hiện công việc đó, nhưng sẽ tốt hơn rất nhiều khi phát triển trình độ ngôn ngữ thị trường để đi cùng với các kỹ năng "mềm".

Tôi đã may mắn - công việc thứ hai của tôi là làm việc với một VMS 4GL tối nghĩa khác . Họ thuê tôi vì họ biết rằng họ không thể tìm thấy những người đã biết ngôn ngữ này - thực tế là tôi đã có kinh nghiệm trên nền tảng VMS với 4GL là đủ. Và trong công việc đó , tôi đã có cơ hội được đào tạo một ngôn ngữ có thể bán được khi họ muốn rời khỏi VMS về phía các máy chủ Windows.

Nhưng tôi có thể dễ dàng không có được may mắn đó, và thấy mình có năm năm trong sự nghiệp với kinh nghiệm hoàn toàn bằng không sẽ thuyết phục được một nhà tuyển dụng hoặc nhân sự xem xét hồ sơ của tôi.

Đối với công việc đầu tiên của bạn sau khi tốt nghiệp, tôi thực sự, thực sự không khuyên bạn nên làm việc đó.


2

Để đưa ra một phản hồi meta, tôi đã nhận thấy rằng nhiều phản hồi nói rằng: "Từ kinh nghiệm cá nhân, đây là một điều tồi tệ."

Nhiều người khác nói, "Về lý thuyết, điều này không phải là xấu."

Nhưng không có câu trả lời nào tôi thấy là từ những người đã làm điều gì đó tương tự và nghĩ rằng đó là một trải nghiệm tốt .

Bây giờ có thể một số người đã làm điều này và vui mừng với công việc của họ, nhưng không có trên Stack Exchange. Điều này đúng với một số phần mềm thương mại. Ví dụ: có một số quản trị viên Phần mềm AG Natural / Adabas thực sự chuyên dụng, nhưng không có nhiều cuộc thảo luận liên quan trên Stack Exchange. Tuy nhiên ít nhất có ai đó đang tìm kiếm ngay cả những chuyên gia thích hợp này. Điều đó sẽ không đúng với ngôn ngữ hoàn toàn độc quyền.

Vì vậy, nếu mục tiêu là hướng tới loại công nghệ được thảo luận ở đây, thì thực tế là có rất ít sự chứng thực điều này từ kinh nghiệm thực tế cho thấy rằng nó không nhất thiết là sự khởi đầu tốt nhất. Nó có thể không phải là nụ hôn của cái chết. Nhưng bạn muốn làm việc để giữ cho nó không trở thành một khối đường khủng khiếp, chẳng hạn như bằng cách bắt đầu hoặc đóng góp cho một dự án nguồn mở liên quan đến nguyện vọng của bạn.


1

Hãy đảm nhận công việc nếu bạn cảm thấy có những lập trình viên giỏi / giỏi sẽ giúp đỡ và tư vấn cho bạn. Bạn sẽ nghĩ rằng một nơi làm điều này có những người khá tốt, nhưng không thể chắc chắn. Ngoài ra, công ty này có bất kỳ loại danh tiếng để tuyển dụng các ứng cử viên hàng đầu? Bạn có thể được người khác thuê bất kể ngôn ngữ được sử dụng trong công việc.


1

Hãy đặc biệt cảnh giác nếu miền vấn đề bị chi phối bởi một hoặc một vài ngôn ngữ trong ngành. Phát triển cơ sở dữ liệu được liên kết chặt chẽ với SQL. Sự phát triển của phần lớn là sự phân chia giữa Verilog và VHDL. Trái ngược với các ứng dụng web được viết bằng (kết hợp) Java, PHP, perl, python, Scala, C ++, v.v. trong ngôn ngữ của họ lựa chọn. Một người quản lý tuyển dụng đang tìm ai đó để viết các truy vấn cơ sở dữ liệu sẽ mong đợi trải nghiệm SQL.


1

Tôi đã lập trình bằng một ngôn ngữ độc quyền. Nhưng đó không phải là ngôn ngữ được sử dụng ở mọi nơi. Bây giờ tôi không có gì chống lại trải nghiệm đó, mặc dù tôi đã từng làm việc đó. Tôi đã có cơ hội sử dụng ngôn ngữ đó, duy trì ngôn ngữ đó và, cải thiện nó, cùng với việc duy trì chương trình được viết bằng ngôn ngữ đó.

Trên đường đi, tôi đã học cách đọc và hiểu cách một phiên dịch viên nhỏ sẽ làm việc. Nếu nhà tuyển dụng tiềm năng của bạn có các nguồn cho trình biên dịch / trình thông dịch cho ngôn ngữ độc quyền, thì bạn cũng có thể có cơ hội làm việc với các phần bên trong của nó. Tôi có thể nói, từ kinh nghiệm, bạn sẽ trân trọng kinh nghiệm làm việc này trong nhiều năm tới.

Những kỹ năng có thể chuyển giao mà bạn có được là, làm việc nhóm, kỹ thuật phần mềm, viết trình biên dịch / trình thông dịch hoặc, các phần của nó, thuật toán, v.v. Nếu là trình thông dịch, ngôn ngữ độc quyền chỉ là mặt nạ mà bạn sẽ tìm thấy trình thông dịch được viết bằng, nói, C, hoặc, ngôn ngữ khác. Nếu ngôn ngữ độc quyền được biên dịch, bạn sẽ có cơ hội làm việc trên trình biên dịch sản xuất được khởi động hoàn toàn. Vì vậy, khi bạn tìm kiếm công việc tiếp theo, bạn cần bán những kỹ năng này khó hơn so với C / C ++ / Java / Python cho nhà phát triển ứng dụng hoặc, Python, Perl, Java, HTML, CSS, JavaScript, Flash để phát triển web hoặc, Verilog, VHDL để phát triển nhúng hoặc bất kỳ nhóm ngôn ngữ nào khác cho miền ứng dụng khác.

Tất cả điều này, giả sử rằng nhà tuyển dụng tiềm năng của bạn có các nguồn cho ngôn ngữ độc quyền và bạn sẵn sàng làm việc nhiều hơn trên các chương trình được viết bằng ngôn ngữ độc quyền. Tuy nhiên, tôi thừa nhận tôi cực kỳ lạc quan khi nói rằng bạn có thể có một cơ hội tương tự như tôi đã nhận được một vài năm trước đây.

Tại các cuộc phỏng vấn, nhiều năm kinh nghiệm và kỹ năng kỹ thuật không đơn độc trong các quyết định tuyển dụng. Khát khao học tập của bạn, phù hợp với văn hóa, văn hóa nghiêng, làm cho một phần lớn của quyết định.

Vì vậy, đối với công việc đầu tiên, nếu công việc của bạn sẽ không bị giới hạn ở các chương trình được viết bằng ngôn ngữ độc quyền, nhưng cũng cho phép bạn thực hiện triển khai công việc đó, hãy thực hiện.


1

Tôi nghĩ rằng có hai mặt của điều này. Đầu tiên là công việc cụ thể này và thứ hai là nó ảnh hưởng đến triển vọng nghề nghiệp của bạn như thế nào.

Điều tôi muốn biết về công việc này là tại sao họ tạo ra ngôn ngữ lập trình của riêng họ. Liệu nó có ý nghĩa? Nếu không tôi sẽ làm một công việc khác.

Trong mười năm qua, tôi đã làm việc cho ba công ty với ngôn ngữ riêng của họ. Điều đầu tiên bởi vì, khi dự án được bắt đầu, không có gì có thể làm những gì họ cần. (Họ đã viết một phiên bản công nghệ của Visual Basic, nhưng đây là phiên bản Unix và nhiều năm trước khi VB tồn tại.) Hai phiên bản còn lại có các yêu cầu về hiệu năng không thể đáp ứng với các ngôn ngữ hiện có. Tôi xem xét những lý do khá tốt.

Về mặt triển vọng nghề nghiệp, như những người khác đã đề cập, các nhà tuyển dụng và nhân sự không hiểu lập trình và làm việc bằng cách sử dụng một loạt các hộp kiểm sẽ gặp khó khăn với CV của bạn. Nhiều công ty muốn có một lập trình viên C ++ plug-and-play sẽ trả tiền cho bạn để học một ngôn ngữ mới. Tất cả điều này là đúng.

Nhưng bạn có thực sự muốn làm việc cho một công ty như vậy không?

Nếu câu trả lời là 'Có', thì có lẽ bạn nên từ chối công việc này và tìm kiếm một công việc có yêu cầu thông thường hơn. Ngoài ra, tùy thuộc vào nơi bạn sống, bạn có thể không có nhiều sự lựa chọn và sẽ phải làm việc cho các công ty không thực sự hiểu lập trình viên.

Cá nhân, tôi không muốn làm việc cho một công ty như vậy và tôi nghĩ thật công bằng khi nói rằng tôi không thấy sự lựa chọn của mình bị giới hạn quá mức. Nếu bạn có một hồ sơ theo dõi về việc học nhanh các công nghệ mới, giải quyết các vấn đề trong thế giới thực và, có thể, một số kiến ​​thức "kinh doanh" thì tôi nghĩ bạn sẽ ổn thôi.

Cũng có những mặt tích cực. Có bao nhiêu nơi khác bạn có thể chơi xung quanh với trình biên dịch / trình thông dịch? Bạn có thường xuyên ảnh hưởng đến các tính năng và cú pháp mới của ngôn ngữ bạn sử dụng hàng ngày không?


1

Trước hết, một ngôn ngữ lập trình nội bộ không phải là một điều xấu, tuy nhiên, có một vài quy tắc cơ bản bạn cần để biện minh cho một ngôn ngữ tùy chỉnh.

Bạn viết bạn nghĩ rằng họ không sử dụng bất kỳ ngôn ngữ nào khác. Câu hỏi đầu tiên bạn nên hỏi là liệu họ có sử dụng bất kỳ ngôn ngữ nào khác không.

Ngôn ngữ lập trình tùy chỉnh có thể có lời biện minh tốt. Tôi biết toán học làm việc với các ngôn ngữ chuyên ngành. Tôi nghe nói cơ quan thuế sử dụng một ngôn ngữ đặc biệt để tính thuế với luật thay đổi hàng năm về chúng. Chào mừng bạn đến với miền của siêu lập trình .

Bất kỳ ngôn ngữ tùy chỉnh, tuy nhiên, không bao giờ nên thực hiện một ngôn ngữ đầy đủ. Bên ngoài miền đó, bạn vẫn nên sử dụng ngôn ngữ lập trình cổ điển / được biết đến rộng rãi. Ngay cả trong miền ngôn ngữ, không có khả năng mọi chi tiết nhỏ đều được bao phủ bởi ngôn ngữ miền.

Những câu hỏi hay để hỏi:

  1. Các ngôn ngữ khác được sử dụng tại công ty này?
  2. Lý do ngôn ngữ khác không phù hợp với họ là gì?
  3. Là ngôn ngữ được sử dụng bên ngoài công ty (bởi các nhà nghiên cứu hoặc theo giấy phép cho các công ty khác)
  4. Có bao nhiêu người biết ngôn ngữ.
  5. Có bao nhiêu dự án / chương trình (thành công) được thực hiện với ngôn ngữ.

Từ những câu trả lời này, bạn sẽ có thể tìm ra trạng thái của ngôn ngữ. Nếu đó là một ngôn ngữ miền có giá trị lớn, tất cả đều ổn. Nếu nó somebodies dự án thú cưng để thay thế Java hoặc C # sau đó thoát ra khỏi đó càng sớm càng tốt .

Chỉnh sửa: tôi đề nghị bạn đọc vào bài viết ngôn ngữ spesific tên miền trên wikipedia, điều đó sẽ cung cấp thêm một số cái nhìn sâu sắc.


1

Chúng tôi có thể không thích nó, nhưng là lập trình viên máy tính, chúng tôi phải có một CV mà các đại lý và phòng nhân sự sẵn sàng chuyển tiếp cho các nhà quản lý dự án . CV của chúng tôi cũng phải nổi bật vì phù hợp với yêu cầu vẫn được đặt trong vòng 30 giây kể từ khi ai đó nhìn vào nó, nó cũng phải có từ khóa chính xác để phù hợp với tìm kiếm của cơ sở dữ liệu cv.

Vì vậy, chỉ làm việc trong một ngôn ngữ lập trình độc đáo là một rủi ro lớn! Tuy nhiên, bằng cách sử dụng kết hợp DSL và ngôn ngữ luồng chính có thể được trình bày tốt trên CV. (Bạn phải nói sự thật trên CV của mình, nhưng nó không phải là toàn bộ sự thật!)


1

Tôi sẽ bớt lo lắng hơn khi nhận một công việc như thế nếu bạn đã có kiến ​​thức lập trình khá rộng. Nếu bạn là người mới trong ngành, điều này có thể khiến chim bồ câu của bạn khá chuyên nghiệp, có thể đến mức bạn phải bắt đầu lại với tư cách là một người thực tập hoặc sau này ... Điều này có thể đặc biệt tồi tệ nếu bạn ở lại với công ty này một thời gian, chỉ để lại mà không có kỹ năng chuyển nhượng.

Nếu bạn đã khá có kinh nghiệm trong ngành, thì đây có thể là điểm nhấn thực sự tuyệt vời cho sự nghiệp của bạn. Và nhận thức nếu / khi bạn rời khỏi nơi này sẽ nhiều hơn "chết tiệt, anh ấy là một jedi, anh ấy đã làm mọi thứ"


1

Chỉ tham gia công ty nếu bạn sẽ làm việc trong công ty suốt đời, hoặc người khác thậm chí không bao giờ nghĩ đến việc nhận nó ngay cả khi bạn nhận được một gói lương tốt. Tôi có kinh nghiệm tham gia một công ty như vậy và bị mắc kẹt ở đó mặc dù rất nhiều thất vọng trong công việc, bởi vì không có kinh nghiệm trong các ngôn ngữ lập trình khác để tìm kiếm một công việc khác.


Điều này. Coi chừng "cơ hội" này, đó chỉ là cơ hội để nghỉ hưu nhanh chóng.
Wayne Molina

0

Tôi đã thấy một người có 15 năm kinh nghiệm, chủ yếu là nhà phát triển chính hoặc nhà phát triển chính, không thể có được công việc trong một thời gian dài, chủ yếu vì công ty khiến anh ta không có kinh nghiệm về ngôn ngữ và API hiện đại.

Các lập trình viên bị đặt vào thùng một cách tinh thần giống như các diễn viên trong phim (anh hùng, dân làng, v.v.) và một khi bạn thiết lập thùng của mình là gì, tôi nghĩ bạn có thể tìm việc khó hơn nhiều so với khi bạn mới ra trường trường đại học.

Đó là, nếu bạn có bằng CS, có lẽ bạn là ứng viên cho một số công việc.

Nhưng nếu bạn có bằng CS với 3 năm kinh nghiệm về PHP, bạn thực sự ÍT một ứng cử viên cho vị trí nhà phát triển web Java so với khi bạn tốt nghiệp. Bạn đã tự gắn mình với tư cách là một nhà phát triển PHP và cho đến khi bạn có kinh nghiệm ngược lại, đó là những gì bạn sẽ được thuê để làm. (Lạ, nhưng tôi nghĩ đúng, bạn có nhiều kinh nghiệm hơn, nhưng sơ yếu lý lịch của bạn sẽ bị coi là không liên quan vì đó là loại kinh nghiệm sai, trong khi mới ra trường, hồ sơ của bạn có thể không được)

Và nếu bạn có bằng CS với 1 năm kinh nghiệm về SpecialL LanguageX thì bạn đã đóng tất cả các loại cửa cho chính mình.

Tất nhiên đây chỉ là ý kiến ​​và quan sát của tôi, tôi chưa bao giờ thực hiện việc tuyển dụng, đây chỉ là những gì tôi thấy.

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.