Là một Nhà phát triển cao cấp sử dụng một ngôn ngữ có đủ điều kiện để bạn trở thành Nhà phát triển cao cấp sử dụng ngôn ngữ khác không? [đóng cửa]


27

Nếu tôi làm Nhà phát triển bằng một ngôn ngữ (ví dụ Java) và tìm đến Nhà phát triển cao cấp, điều đó có đủ điều kiện để tôi trở thành Nhà phát triển cao cấp cho một vị trí sử dụng ngôn ngữ khác (ví dụ: Ruby) không?


2
@Philip - câu hỏi này thực sự là một câu hỏi biên giới trên một vài mặt trận. Đó là đường biên giới "quá cục bộ" bởi vì nó thực sự sẽ chỉ có giá trị với bạn và đó là đường biên giới "không mang tính xây dựng" vì nó không thực sự giải quyết các nguyên tắc để đặt câu hỏi được liệt kê trong Câu hỏi thường gặp của chúng tôi. Nếu bạn có thể chỉnh sửa câu hỏi này và giải quyết các hướng dẫn, có thể đáng để lưu câu hỏi.
Walter

8
@Walter - Tôi phải không đồng ý với nhận xét đầu tiên của bạn về nội địa hóa. Đây là một câu hỏi / câu trả lời thường được áp dụng liên quan đến việc liệu có phải là nhà phát triển cao cấp trong một ngôn ngữ cho phép bạn vào vị trí nhà phát triển cao cấp ở ngôn ngữ khác hay không.
Craige

1
@Walter - đã loại bỏ các vấn đề nội địa hóa, tôi nghĩ bây giờ có lẽ hợp lý.
Jon Hopkins

1
@Walker - Xin lỗi, câu hỏi có nghĩa như Craige nói. Tôi chỉ viết nó theo cách đó bởi vì tôi cho rằng hầu hết các lập trình viên được coi là Junior muốn trở thành Nhà phát triển cao cấp một ngày nào đó. Do đó, việc chọn đúng vị trí Junior rất quan trọng (hoặc không)
Philip

11
Câu hỏi này dường như cho rằng "Nhà phát triển cao cấp" có một số ý nghĩa thường được chấp nhận. Đó thường là một loại tiêu đề công việc, và một chức danh công việc là bất cứ điều gì bạn và chủ lao động của bạn có thể đồng ý.
David Thornley

Câu trả lời:


33

Cách tốt nhất để trả lời điều này là xem xét sự khác biệt giữa Nhà phát triển và Nhà phát triển cao cấp. Giả sử rằng đó không chỉ là một thứ phục vụ thời gian, nói chung tôi mong muốn cả Nhà phát triển và Nhà phát triển cao cấp đều có thể:

  • Viết mã thành thạo các ngôn ngữ theo yêu cầu của vai trò
  • Chẩn đoán và sửa lỗi
  • Viết bài kiểm tra đơn vị
  • Thực hiện theo các tiêu chuẩn và thực hành tốt nhất hợp lý (kiểm soát phiên bản, tài liệu)
  • Có một kỹ thuật cơ bản rộng có thẩm quyền
  • Hành động một cách chuyên nghiệp

Ngoài ra, tôi mong đợi một Nhà phát triển cao cấp sẽ:

  • Mentor các thành viên khác của nhân viên trong thực hành tốt nhất
  • Được và thừa nhận điểm tham chiếu cho ít nhất một số ngôn ngữ đang được nhóm sử dụng
  • Tích cực nghiên cứu và vô địch các lĩnh vực mới của thực tiễn tốt nhất
  • Có quyền sở hữu kỹ thuật đối với các vấn đề / lĩnh vực mã phức tạp hơn và cung cấp các giải pháp vững chắc

Vì vậy, câu hỏi sau đó là bạn có đáp ứng các tiêu chí mở rộng cho ngôn ngữ thứ hai (hoặc thứ ba hoặc thứ tư) của bạn không? Tôi khuyên bạn nên miễn là bạn đủ khả năng về mặt kỹ thuật trong ngôn ngữ mà bạn chuyển sang thì có vì hầu hết các công cụ dành cho Nhà phát triển cao cấp có xu hướng có thể chuyển nhượng được.


1
Điều này thực sự phụ thuộc vào môi trường, đặc biệt là ông chủ. Một số "Sr" cảm thấy họ cần thể hiện kiến ​​thức của mình về mọi chủ đề, đặc biệt là khi "jr" có thể có nhiều kiến ​​thức và kinh nghiệm hơn về một vấn đề. Một số căng thẳng nghiêm trọng có thể tích tụ khi một Sr với nền C ++ hoạt động trên dự án C #. Một "jr" có thể có kiến ​​thức lớn hơn cho khung cụ thể này. Điều này có thể gây ra một số trận chiến nóng, đặc biệt là khi ông chủ đang lắng nghe.
P.Brian.Mackey

@ P.Brian.Mackey - Đủ công bằng, có một số khác biệt khá lớn giữa các công việc khác nhau có cùng tiêu đề. Tôi đã đi với những gì tôi nghĩ là một định nghĩa khá chung chung (và hợp lý) nhưng nó có thể từ "trên 30 tuổi" đến "biết mọi thứ về mọi thứ".
Jon Hopkins

1
chúc may mắn với ngôn ngữ sau trong bất kỳ ngôn ngữ nào phức tạp hơn BF ... thậm chí C có nhiều góc tối hơn bạn mong đợi!
SamB

"Một số" Sr "cảm thấy họ cần thể hiện kiến ​​thức của mình về mọi chủ đề". Những người này nên được nói để thư giãn. Bạn không thể học bất cứ điều gì nếu bạn không thừa nhận có những điều bạn không biết. Khả năng tự do thừa nhận sự thiếu hiểu biết về một cái gì đó là một dấu hiệu của sức mạnh, không phải là điểm yếu.
Peter ALLenWebb

1
+1 Để chỉ ra rằng một số nhưng không phải tất cả các kỹ năng đều có thể chuyển được. Cách tuyệt vời để đặt nó.
Nicole

5

Bạn có thể ứng tuyển vào bất kỳ vị trí nào tại bất kỳ công ty nào bạn thích bất kể tình trạng hiện tại của bạn là gì.

Nó sẽ tùy thuộc vào bạn chứng minh trong CV / thư xin việc / cuộc phỏng vấn của bạn rằng bạn là người đàn ông cho công việc.


5

Tôi tìm kiếm những phẩm chất sau đây khi tôi phỏng vấn Nhà phát triển Sr.

  • Đã làm việc trong nhiều ngôn ngữ
  • Chuyên gia trong ít nhất một, có thẩm quyền trong ít nhất một người khác, tốt nhất là trong một mô hình khác
  • Nhận thức về các công nghệ hiện tại, hiện đại, vv trong khu vực được chọn
  • Cơ sở CS tốt tức là (thuật toán, chi phí thuật toán, cấu trúc dữ liệu, v.v.)
  • Khả năng chuyển đổi giữa các chi tiết của một vấn đề cụ thể và bức tranh lớn
  • Thể hiện khi mọi thứ đang đi sai hướng và tại sao; và sau đó có thể tiếp tục theo hướng sai lầm đó (hay còn gọi là chuyên nghiệp)
  • Khả năng cố vấn
  • Khả năng làm việc trong và với một nhóm

Có vô số những thứ khác tôi tìm kiếm, nhưng đây là những điểm chính.

Mặc dù tôi đã khuyên nên thuê các Nhà phát triển Sr, những người không phải là chuyên gia về ngôn ngữ được sử dụng tại nơi làm việc, họ là những chuyên gia trong các ngôn ngữ tương tự.


3

Bạn có thể nộp đơn, nhưng ít nhất nếu tôi đang tuyển dụng, tôi có thể hoặc không thể thuê bạn.

Thâm niên liên quan đến (ít nhất) hai lĩnh vực. Chuyên môn phát triển chung và chuyên môn ngôn ngữ / khung. (Hiện tại tôi đang cố tình bỏ đi kiến ​​thức không gian kinh doanh). Trở thành một nhà phát triển cao cấp trong các cuốn sách của tôi cũng sẽ bao gồm một trình độ chuyên môn về thiết kế / kiến ​​trúc. Làm thế nào để xây dựng hệ thống tốt / có thể kiểm tra, vv

Đến cấp độ này trong Java sẽ giúp bạn thay thế tốt các ngôn ngữ khác (tương tự / thủ tục).

Nhưng trong thời đại năng suất tức thời dự kiến ​​này, bạn khó có thể biết gần như nhiều về Ruby như Java. Cách chia hệ thống của bạn thành các cấu trúc thân thiện với Ruby thay vì các cấu trúc thân thiện với Java. Bạn có thể biết một số khung công tác Java chứ không phải Rails hoặc những thứ cụ thể khác của Ruby.

Nếu tôi yêu cầu bạn thực hiện mã hóa bảng trắng trong Ruby trong cuộc phỏng vấn, bạn có làm được không?

Tất cả những điều này sẽ đi vào quyết định của tôi để thuê bạn hay không, ở bất kỳ cấp độ nào; nhưng đặc biệt cho một vai trò cao cấp .

Chúc may mắn


Cảm ơn câu trả lời của bạn, vâng tôi có thể thực hiện mã hóa bảng trắng trong Ruby (tương tự với C ++, Java). Trên thực tế, tôi cho rằng bản thân mình ở thời điểm hiện tại thậm chí còn thành thạo hơn Ruby so với Java vì kể từ một năm tôi làm việc trong một dự án tư nhân được xây dựng trên Ruby.
Philip

3

Không.

Đó là một trong những khác biệt lớn giữa nghề nghiệp của chúng tôi và các ngành nghề 'chính quy' khác. Nếu bạn đã làm luật sư làm di chúc và bất động sản trong 20 năm, thì bạn sẽ đạt được tỷ lệ cao vì bạn có 20 năm kiến ​​thức được xây dựng trong lĩnh vực đó .

Nếu bạn đã làm C ++ / Win32 / MFC trong 15 năm, điều đó thực sự không đủ điều kiện để bạn trở thành một nhà phát triển Rails, ngay cả khi bạn vẫn đang giải quyết các vấn đề tương tự trong cùng một miền ... thanh toán, ví dụ.

Thậm chí tệ hơn, hầu hết các công ty thậm chí sẽ không xem xét bạn cho một vị trí gần tương tự ... Ví dụ: nếu bạn đã thực hiện C ++ / MFC trong 5 - 7 năm, bạn phải có thể tăng tốc độ trên C # /.NET rất nhanh, ít nhất là cho máy tính để bàn. Thật không may, hầu hết các công ty không nhìn thấy nó theo cách đó.


4
Tôi không biết rằng "hầu hết" các công ty đều nhìn theo cách đó. Vấn đề ngay bây giờ, trong nền kinh tế suy thoái, là có rất nhiều người có sẵn đã biết (từ ví dụ của bạn) C #, vì vậy họ có thể thu hẹp bạn khỏi một tìm kiếm chỉ dựa trên những con số.
Wonko the Sane

Tôi nghĩ rằng hầu hết các kỹ năng và kinh nghiệm là có thể chuyển nhượng. Học một cú pháp mới là dễ dàng. Thật không may, bạn đúng: đó không phải là những gì bạn nghĩ, mà là những gì người tuyển dụng bạn nghĩ.
Không ai là

3

Nó phụ thuộc

Lấy "lập trình" ra khỏi nó. Giả vờ thay bạn là một dịch giả chuyên nghiệp.

Giả sử tiếng Anh là ngôn ngữ đầu tiên của bạn và bạn cũng thành thạo tiếng Pháp. Bạn có khả năng học tiếng Tây Ban Nha khá dễ dàng.

Tuy nhiên, bạn không có khả năng nhanh chóng thành thạo nhiều phương ngữ của tiếng Trung. Mặc dù kinh nghiệm của bạn là một nhà ngôn ngữ học sẽ giúp bạn học ngôn ngữ, mang lại cho bạn một lợi thế so với người chưa từng học ngoại ngữ, nhưng bạn sẽ mất nhiều thời gian hơn để trở thành một "chuyên gia" (tức là "cấp cao" ) dịch giả trong ngôn ngữ đó.


2

Có và không.

Nếu các ngôn ngữ giống nhau , hãy nói C ++, Java hoặc Ruby chắc chắn bạn nên được xem xét. Tùy thuộc vào mức độ linh hoạt của những người ngồi trong các văn phòng đó, bạn có cơ hội chiến đấu.

Tuy nhiên, nếu các ngôn ngữ khác nhau rất nhiều , và điều đó có nghĩa là bạn là một anh chàng COBOL, người đã bắt đầu nói về Haskell, mặc dù có hơn 10 năm khả năng COBOL của bạn đầy rẫy mà bạn thậm chí không thể đảm bảo như một cuộc phỏng vấn.

COUPLE CỦA NHỮNG ĐIỀU NÀY S GO ĐI TRONG FAVOR CỦA BẠN TRONG TÌNH HÌNH

  1. Nếu bạn đã biết nhiều ngôn ngữ và có kinh nghiệm đã được chứng minh về cùng một ngôn ngữ. Giả sử bạn giỏi C ++, nhưng cũng biết Perl, Tcl và một số Ruby tôi sẵn sàng xem xét bạn về Java. Trong thực tế, tôi biết những người đã có công việc Java với C ++ trong sơ yếu lý lịch của họ.
  2. Nếu kinh nghiệm của bạn là trong một lĩnh vực liên quan thì bạn có cơ hội tốt để thực hiện nó. Ví dụ: nếu bạn là một lập trình viên trò chơi C ++, tôi không hiểu lý do tại sao bạn không thể được thuê cho một công việc C # cần một chút đa luồng.

1
Được rồi, tôi phải hỏi - Ruby giống như C ++ hay Java như thế nào? C ++ và Java đều là ngôn ngữ kiểu C, trong khi Ruby có nguồn gốc từ Perl, Python và Smalltalk.
Craige

Tôi đã đề cập đến OOP là chủ đề hướng dẫn.
Fanatic23

2

Tôi hiếm khi thấy một tiêu đề "cao cấp" dựa trên ngôn ngữ. Tôi biết một vài lập trình viên hệ thống cao cấp , một vài lập trình viên web cao cấp và một lập trình viên cao cấp của COBOL.

Lập trình là nhiều mặt và có khá nhiều ngành học để cung cấp. Tôi hy vọng một nhà phát triển web cao cấp (trong các tiêu đề, lập trình viên và nhà phát triển dường như có thể hoán đổi cho nhau) thành thạo một số ngôn ngữ chính được sử dụng trong phát triển web. Điều đó có làm cho một guru Python và PHP trở thành một chuyên gia tức thời về C # không? Mặt khác, không phải tất cả các bậc thầy về C # đều nắm vững nghệ thuật quản lý và lãnh đạo dự án.

Tôi phục vụ vai trò của CTO trong một công ty, ngoài việc là lập trình viên hệ thống cao cấp. Tuy nhiên, tôi vui vẻ trì hoãn một chương trình hoặc chuyên gia LISP nếu chúng tôi gặp phải một dự án cần thiết. Một phần của việc trở thành một nhà lãnh đạo giỏi là hiểu được giới hạn và khuyết điểm của bạn trước tiên .

Tôi không chắc chắn rằng tôi muốn làm việc trong một công ty, hoặc thậm chí một bộ phận tập trung vào một và chỉ một ngôn ngữ. Nghe có vẻ như nó sẽ làm những gì họ luôn nói hút thuốc lá sẽ làm: kìm hãm sự phát triển của bạn khi thực tế thực sự tồi tệ hơn nhiều.

Đừng chạy theo danh hiệu, đuổi theo kiến ​​thức. Nhưng, công bằng mà nói, vai trò của bạn ở vị trí lãnh đạo trước có lẽ sẽ mang lại cho bạn một lợi thế bổ sung, miễn là bạn thể hiện năng lực trong ngôn ngữ trong tay.


0

Tôi nghĩ rằng nó phụ thuộc vào những gì bạn cảm nhận như một nhà phát triển cao cấp? Nếu đó là vai trò của kiến ​​trúc sư, nhiều nguyên tắc thiết kế và các mẫu thiết kế sẽ tùy ý bạn trải nghiệm như một nhà phát triển, bất kể ngôn ngữ. Vì vậy, đó là một lợi thế ;-)

Tuy nhiên, khi xem xét việc tạo một ứng dụng hoặc mã càng hiệu quả và có thể duy trì càng tốt (việc tăng tốc độ bit của bạn), tôi không nghĩ bạn có thể nhập ở cùng cấp độ kinh nghiệm khi chuyển đổi ngôn ngữ, IDE và / hoặc khung.

Nhưng như runrun đã nói, điều này không ngăn bạn đăng ký bất cứ điều gì


0

Điều này sẽ phụ thuộc rất nhiều vào công ty bạn phỏng vấn vì nó thường là các quy trình nhân sự nội bộ nhằm thúc đẩy cách các nhân viên mới được đưa lên máy bay. Các công ty lớn hơn có xu hướng rất cứng nhắc và nếu họ nói rằng bạn phải có n năm kinh nghiệm trong một ngôn ngữ nhất định để được coi là cấp cao thì bạn có thể thấy rằng họ sẽ chỉ đưa bạn vào một nhà phát triển cấp trung.

Mặc dù vậy, điều này không ngăn cản bạn ứng tuyển vào vị trí này và nếu họ đưa bạn vào phỏng vấn thì đó là điều mà bạn nên thảo luận.


0

Tôi muốn nói rằng ngôn ngữ càng thấp hoặc thân thiện với máy móc, bạn càng có nhiều chuyên gia.

Chuyên môn về Java / C # được trả ít hơn so với chuyên môn ASM / C / C ++.

Những ngôn ngữ sau này thực hiện quản lý bộ nhớ và những thứ khác thực sự VẬT LIỆU khi lập trình.

Nhưng đối với các ngôn ngữ "dễ dàng" khác, bạn sẽ cần so sánh nhanh về các tính năng giúp chúng "dễ dàng hơn", nhưng tôi thấy nó vô dụng. Kinh nghiệm với các ngôn ngữ dễ dàng được đo lường tốt hơn với CMS / mã được tạo khác mà bạn đã sử dụng để làm việc, chẳng hạn như bộ đánh lửa mã hoặc django hoặc Apache hoặc RoR.

Đối với tôi, các nhà phát triển cao cấp là những người lập trình Kernels, Systems, phần cứng nhúng, v.v ... Các lập trình viên sử dụng các ngôn ngữ không thân thiện với máy không phải là người cao niên đối với tôi. Họ chỉ làm công việc đó, nhưng đó là tất cả.


Ý kiến ​​thú vị. Tôi đồng ý, C ++ đau hơn nhiều. Mặt khác, có rất nhiều nỗi đau của C ++ vì các phần của ngôn ngữ (hiện tại) là loại lỗi thời. Các ngôn ngữ gần đây có nhiều chức năng thư viện hơn, Lambdas, for-every-loop và ít mật mã hơn cho nhiều thứ. Những vấn đề này có thể khiến một người mất tập trung vào việc tập trung vào các công cụ cấp thấp thực tế.
Philip

Đây là một ý kiến ​​thú vị. Theo kinh nghiệm của tôi, một người cao cấp giao dịch nhiều hơn với quản lý, không nhất thiết là vì họ không viết mã, mà bởi vì họ có nhiều kinh nghiệm dịch các công cụ cấp thấp cho những người không chuyên về công nghệ. Bạn chắc chắn có thể tôn trọng khả năng đó hay không. Quan điểm của bạn đặt ra một câu hỏi, trong một nhóm gồm 30 nhà phát triển web, không ai trong số họ có thâm niên vì họ không thể viết kernel? Sẽ không có gì khác biệt với bạn nếu họ làm việc trên Mosaic hoặc vừa học xong Trung học?
Steve Jackson

30 nhà phát triển web? NHÀ PHÁT TRIỂN? Vâng "cao cấp" có nghĩa là với tôi rằng người đó đã được mã hóa trong một thời gian dài, hoặc già hơn. Nhưng nếu tôi nghĩ "cao cấp" về kinh nghiệm và kiến ​​thức là vấn đề, tôi không nghĩ bạn có thể gọi đó là kinh nghiệm lập trình nếu bạn sử dụng ngôn ngữ được thu thập rác.
jokoon
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.