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?
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?
Câu trả lời:
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ể:
Ngoài ra, tôi mong đợi một Nhà phát triển cao cấp sẽ:
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.
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.
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ự.
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
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 đó.
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ữ đó.
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
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.
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ì
Đ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.
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ả.