Một bạn junior làm với Python và tôi làm với .Net đã gặp nhau
trong lúc trò chuyện về tình huống liên quan đến tìm việc.
Giữa một junior làm với những ngôn ngữ khó thấy ở Hàn Quốc như Rust, Elixir
và một junior làm với những ngôn ngữ xuất hiện nhiều ở Hàn Quốc như Java, JS,
chúng tôi đã thử bàn với nhau xem bên nào sẽ có lợi thế hơn.
Tất nhiên, với kiến thức còn hạn chế, kết luận mà chúng tôi đưa ra là ưu tiên số một vẫn là thể hiện năng lực bằng CS và bài test code,
sau đó thì chỉ đoán là sẽ phụ thuộc vào công ty,
các anh/chị đi trước nghĩ sao về vấn đề này?
20 bình luận
Dù giờ mới đọc bài này nên có vẻ như tôi đang nói sau cho có, nhưng việc đơn giản hóa rằng ngôn ngữ chỉ là công cụ~~~ thì có vẻ hơi phi thực tế. Ít nhất, nếu là một junior có thể xử lý tốt Rust — thứ có đường cong học tập dốc và rào cản gia nhập cao — thì các ngôn ngữ khác như .NET, Python chắc sẽ dùng rất nhẹ nhàng. Tôi nghĩ ở năng lực nền tảng sẽ có khác biệt trình độ khá lớn. Theo kinh nghiệm của tôi, những bạn bước vào thị trường lập trình viên bằng Python thay vì C/C++ thường yếu hơn khá nhiều ở kiến thức cơ bản về client/server, thuật toán, và cả khả năng làm việc nữa. Tất nhiên nếu có thêm kiến thức domain trong lĩnh vực liên quan thì sẽ tạo ra hiệu ứng cộng hưởng. Tức là, thực tế là khoảng cách năng lực đã thể hiện rõ ngay từ vạch xuất phát, và đây không đơn thuần chỉ là vấn đề chọn ngôn ngữ.
Dù có lẽ đây không phải là điểm cốt lõi của câu hỏi này, nhưng thỉnh thoảng khi nghe người ta nói kiểu "ngôn ngữ chỉ là công cụ, chọn gì cũng không quan trọng" thì tôi lại thấy hơi tiếc. Mỗi ngôn ngữ đều theo đuổi những giá trị và mục đích tạo ra khác nhau, nên tôi thấy những điều đó dường như bị gom lại một cách chung chung thành kiểu "đằng nào cả hai cũng đều làm được cái này cái kia mà".
Tôi có thể đồng ý với lập luận rằng ngôn ngữ chỉ là công cụ, nếu chỉ giới hạn trong giai đoạn nhập môn như học cấu trúc điều khiển, cấu trúc dữ liệu và thuật toán. Tuy vậy, tôi nghĩ sau giai đoạn nhập môn thì cần cân nhắc những chi tiết như quán tính của ngành, thư viện tiêu chuẩn, thư viện bên thứ ba, mô hình thực thi, cách triển khai, khả năng tiếp cận và chất lượng của tài liệu tham khảo, cũng như số lượng người dùng. Ví dụ, dù sức biểu đạt của các ngôn ngữ đa dụng có tương đương nhau đến đâu, thì với mục đích machine learning, chọn Python vẫn là lựa chọn an toàn nhất.
Có lẽ vì tôi còn là junior nên chỉ đang nhìn nó trong quá trình nhập môn thôi.
Cảm ơn vì những lời chia sẻ hữu ích ạT_T
Tôi đồng ý haha
Tech stack đang được sử dụng phổ biến trong ngành ở nước ta sẽ có lợi hơn. Có sự khác biệt giữa những gì có thể tự học và những gì có thể học ở công ty. Có lẽ vế sau ít cô đơn hơn đôi chút.
Mình là junior, đang làm Java nhưng lại lỡ mê sức hút của .NET mất rồi TT
Về mặt kỹ thuật, không phải cứ công nghệ hoàn thiện hơn hay năng suất hơn là sẽ được thị trường lựa chọn. Trường hợp của tôi là khoảng 10 năm trước, chỉ có đúng một công ty lớn dùng Python Django, nên tôi đành ngoan ngoãn từ bỏ chuyện xin việc và nhớ là khi đó đã học PHP với Spring. Đến giờ tôi vẫn thấy tiếc vì dường như chưa framework nào hiện nay cho ra năng suất được như Django.
À ha.. vậy thì chắc phải suy nghĩ thêm rồi
Thành thật mà nói, nếu đã nắm vững một ngôn ngữ thì bạn có thể dễ dàng thích nghi với các ngôn ngữ khác.
Trừ những trường hợp như chuyển từ ngôn ngữ hướng đối tượng sang ngôn ngữ hàm.
Có lẽ sẽ tham khảo tin tuyển dụng của công ty mình muốn vào.
Ngôn ngữ có thể không quá quan trọng... Điều quan trọng có thể là mức độ hiểu và xử lý môi trường, hoặc thiết kế vững chắc... Có lẽ nên đặt mục tiêu học hỏi hoặc đóng góp commit cho các dự án mã nguồn mở được thiết kế tốt trong ngôn ngữ mục tiêu...
Xem mã nguồn mở để học tập! Tôi sẽ ghi nhớ điều này
Ít nhất ở trong nước thì có nhiều công ty dùng Java, nên cũng có lợi cho việc xin việc.
Lấy Java làm ngôn ngữ chính rồi học thêm các ngôn ngữ phụ, nếu chỉ nhìn từ góc độ tìm việc thì sẽ có lợi hơn.
Không liên quan đến năng lực, nhưng nếu ngay từ vòng hồ sơ không có kinh nghiệm liên quan thì khả năng bị loại sẽ cao hơn T_T
Đúng vậy. Dù bạn có giỏi ngôn ngữ khác đến đâu, nếu ngôn ngữ công ty dùng chủ lực là Java thì ngay lúc này họ vẫn cần nhân viên có thể đóng góp bằng Java.
Dù tôi có học thuộc CS đến mức nào và nghiền ngẫm tài liệu kỹ đến đâu, nếu bản thân hồ sơ không phù hợp với công ty thì họ vẫn loại ngay từ vòng hồ sơ
Đáng buồn là đây là trải nghiệm thực tế của tôi T_T
Ngôn ngữ là lựa chọn?
Ở công ty tôi làm với framework Java hay các giải pháp web như WebSquare, nhưng khi phát triển theo sở thích thì tôi dùng node hoặc rust.
Nếu chỉ làm việc công ty thì tôi nghĩ đi theo công ty là đúng, còn nếu có kiểu phát triển mà bản thân muốn làm thì dù phải tranh thủ thời gian cũng sẽ học ngôn ngữ mình muốn...
Tôi nghĩ ngôn ngữ hay framework lúc nào cũng có thể thay đổi, nên kiến thức CS và kiến thức về kiến trúc mới là quan trọng. Tôi không nghĩ ngôn ngữ mới là thứ quan trọng.
Chắc lại phải mở sách chuyên ngành ra học thôi.
Tôi thấy thông báo nên vào xem thì thấy mọi người phía trên đang nói về việc ngôn ngữ có phải chỉ là một công cụ đơn thuần hay không haha
Tôi không nghĩ ngôn ngữ là một công cụ ‘đơn thuần’, nhưng tôi nghĩ đúng là nó là công cụ.
Mỗi ngôn ngữ đều có triết lý và nguyên tắc thiết kế riêng, nên tôi nghĩ cần hiểu điều đó và chọn ngôn ngữ phù hợp với vấn đề cần giải quyết (hoặc sản phẩm cần cung cấp).
Cuối cùng, việc làm sao để tìm được ngôn ngữ phù hợp là điều chỉ có thể biết qua kinh nghiệm hoặc học tập. Từ góc nhìn này, tôi xem ngôn ngữ là công cụ, và điều quan trọng hơn là kiến trúc hay kiến thức CS, nên khi đó tôi mới nói như vậy.
Xem lại bình luận tôi viết cách đây 2 tuần, tôi thấy câu cuối “Tôi nghĩ ngôn ngữ không phải là điều quan trọng.” có phần hơi ngạo mạn, nên tôi để lại bình luận bổ sung này haha