Số Lượng Ngôn Ngữ Có Làm Nên Thành Công Của Developer?

“Nếu chỉ biết một ngôn ngữ thì dù có là master của ngôn ngữ đó, bạn cũng không thể phát triển sự nghiệp.”

Tôi tình cờ nghe được câu nhận xét đó khi tham dự một hội thảo gần đây. Và ngay lập tức, anh bạn đi chung với tôi, người có kinh nghiệm hơn sáu năm về Java, đã tỏ rõ thái độ rằng:

“Một developer chỉ cần là guru của một ngôn ngữ nào đó, và thế là đủ để phát triển sự nghiệp.”

Lúc đấy tôi cũng chẳng tranh cãi gì với bạn mình, nhưng ngẫm lại, tôi không tin rằng anh ấy đúng. Tôi nghĩ: để thành công, developer cần code thành thạo ít nhất một ngôn ngữ, và có kiến thức nền tảng của một vài ngôn ngữ khác.

Chỉ cần giỏi một ngôn ngữ là có một công việc ổn định?

Thành – người bạn đi cùng tôi đến buổi hội thảo ở phần giới thiệu đầu bài – đã quá chú trọng vào công việc hiện tại mà quên mất rằng anh từng có nhiều năm kinh nghiệm về JavaScriptRuby, vì anh chính là một trong những người đã đóng góp để làm nên website ITviec.

Đăng, Senior Ruby Developer của ITviec, chia sẻ với tôi:

“Mỗi ngôn ngữ mà tôi từng học qua đều dạy cho tôi nhiều điều hay mới để áp dụng vào công việc thường ngày. Tôi nghĩ rằng những người giới hạn bản thân mình trong một ngôn ngữ sẽ không bao giờ có thể phát triển hết khả năng của họ.

Việc gắn kết với chỉ một ngôn ngữ còn chứng tỏ bạn thiếu tính tò mò và sự sẵn lòng đón nhận cái mới. Mà đó chính xác là hai yếu tố cần thiết của một developer giỏi.”

Luân, Ruby On Rails Developer của ITviec, cũng đồng tình:

Biết một ngôn ngữ thì có thể ổn định, nhưng hạn chế trong sự nghiệp.

Nên học hỏi thêm ngôn ngữ khác để tìm hiểu cái hay mới, mở rộng kiến thức, tư duy của mình, đồng thời cũng thể hiện tính ham học hỏi cái mới.

Một số ngôn ngữ do nhiều công ty lớn phát triển như .NET của Microsoft, Java của Oracle… Những công ty này khi phát triển ngôn ngữ, framework, cũng đã phát triển và ứng dụng công nghệ của mình vào đó. Nên khi học ngôn ngữ mới, chúng ta có thể học được những ý tưởng mới, các cái hay trong lập trình từ những gã khổng lồ về công nghệ và những dev giỏi khác.

Tôi tin rằng biết một ngôn ngữ, bạn vẫn có thể có một công việc ổn định, vì chỉ code mỗi Ruby, JavaScript, PHP hay .NET trong nhiều năm thì bạn đã dần trở thành master trong ngôn ngữ đó.

Tuy nhiên, vấn đề nằm ở chỗ: việc biết duy nhất một ngôn ngữ giới hạn cơ hội việc làm của bạn trong một thị trường sôi động gồm ít nhất hai mươi ngôn ngữ phổ biến. Khả năng phát triển của bạn bị giới hạn trong một ngôn ngữ đó.

Các công ty IT có xu hướng tuyển dụng developer biết một hay nhiều ngôn ngữ?

90% công ty đăng tuyển trên ITviec đều muốn tuyển dụng developer biết nhiều ngôn ngữ và từng trải qua vị trí tương tự với vị trí tuyển dụng.

Ví dụ như bạn ứng tuyển vị trí Web Developer, bạn cần phải biết JavaScript, ít nhất một ngôn ngữ của back-end (PHP, Python, Java, C#), cách làm việc cơ sở dữ liệu (MySQL, Access, Oracle), cách lập trình cơ sở dữ liệu (SQL), cuối cùng là phải biết HTMLCSS.

Xu hướng ngôn ngữ lập trình năm 2015 theo khảo sát của Stack Overflow

Xu hướng ngôn ngữ lập trình năm 2015 theo khảo sát của Stack Overflow

Theo thống kê của Stack Overflow năm 2015, tại phần khảo sát về xu hướng ngôn ngữ lập trình với 21,982 người tham gia, tổng phần trăm của các ngôn ngữ là 304.3%. Điều đó đồng nghĩa với việc một Developer biết trung bình khoảng ba ngôn ngữ.

Tóm lại, là guru của một ngôn ngữ duy nhất là thế mạnh giúp bạn có được công việc ưng ý trong hiện tại, nhưng nó lại là con dao hai lưỡi, vì theo tôi, về lâu dài, nó hạn chế cơ hội phát triển nghề nghiệp của bạn.

Công ty outsourcing có đòi hỏi developer biết nhiều ngôn ngữ?

Tôi có trò chuyện cùng anh Lê Việt An – Test Project Manager của TMA Solutions – và được chia sẻ một tình huống thực tế:

Lúc trước, khi làm Tester, anh từng làm nhiều project automation test mà nhiều phần test case khách hàng bắt anh viết bằng Python, nhiều test case bắt viết bằng Java, và nhiều test case lại bằng Ruby. Buộc lòng anh và team anh phải học hỏi nhiều ngôn ngữ khác nhau thôi.

Nguyên, một Developer từng làm việc tại công ty outsourcing của Mỹ, đã kể tôi nghe câu chuyện sau:

Lúc trước, có dự án, team Nguyên phải làm sản phẩm là một Android application. Android thì dev bằng Java, và Nguyên lo phần làm app. Riêng webservice thì một đồng nghiệp khác của Nguyên làm, nó build bằng .NET. Đến gần deadline thì anh đồng nghiệp của Nguyên bị chuyển sang một project khác gấp hơn lại đang thiếu người. Thế là Nguyên phải làm tiếp luôn phần webservice bằng .NET để hoàn thành dự án đúng hạn.

Tất nhiên rằng bạn vẫn có thể làm developer nếu chỉ biết một ngôn ngữ. Nhưng trong một số công ty, đặc biệt là startup và outsourcing, developer cần biết nhiều ngôn ngữ để có thể làm được phần việc của người khác trong những trường hợp khẩn cấp như tình huống mà bạn tôi, Nguyên, từng gặp phải.

Vậy công ty product thì sao?

Nguyen Xuan HuyLấy ITviec làm ví dụ, các Ruby Developer của ITviec ngoài biết Ruby để làm back-end thì đều phải biết thêm HTML, CSS, JavaScript để làm front-end.

Trong bài viết Developer Giỏi Không Nhất Thiết Phải Biết Nhiều Ngôn Ngữ, anh Nguyễn Xuân Huy – Tech Architect của Cybozu Vietnam – đã khẳng định:

Để phát triển tại công ty product, developer giỏi không nhất thiết phải biết nhiều ngôn ngữ. Các bạn không chỉ cần có kiến thức về lập trình mà còn phải biết cơ bản về vận hành các hệ thống liên quan, ví dụ như database, web server, mail.

Kiến thức nền tảng là cái cốt lõi để một developer nói chung tiến xa hơn trong công việc.”

Anh Bùi Hải An, Co-founder của Silicon Straits Saigon: Người làm IT thì luôn thừa thông minh nhưng thường chỉ giới hạn mình ở một số mảng nhất định. Tại sao không tìm hiểu hết cả hệ thống để có thể làm việc của mình tốt hơn?

Học thêm một ngôn ngữ mới có thật sự phức tạp?

Raviteja Chirala, một Data Scientist và Avid Programmer từng chia sẻ trên Quora:

“Người sếp đầu tiên của tôi đã giao cho tôi một công việc về ngôn ngữ C++. Tôi rất lo ngại vì tôi chưa từng biết C++ trước đó. Sau vài ngày “vật lộn” với nó, tôi đã đến chỗ sếp và bảo rằng project này quá sức mình.

Sếp nói với tôi: ‘Một khi anh đã là engineer thì anh mãi là engineer. Nếu anh là engineer thì anh có thể thực hiện công việc dưới bất kì ngôn ngữ nào. Nó cần một ít thời gian để tìm hiểu về syntax và các định nghĩa, nhưng logic vẫn như vậy. Tôi tin rằng anh làm được. Cứ thử đi.”

Lời khuyên của tôi là hãy học bất kì ngôn ngữ nào mà bạn thích, nhưng phải chú ý đến việc phân tích vấn đề nhiều hơn là cứ chú trọng vào ngôn ngữ.”

10246698_10152707808863990_2522675999630905034_nPeter Jones, một Developer của ITviec, nói rằng:

“Bạn có thể chuyên một ngôn ngữ, nhưng bạn cần biết kiến thức căn bản của một vài ngôn ngữ khác. Việc biết nhiều ngôn ngữ giúp bạn mở rộng góc nhìn về ngôn ngữ bạn đang sử dụng.

Máy tính hiểu được nhiều ngôn ngữ, vậy tại sao bạn chỉ muốn giao tiếp với nó bằng duy nhất một ngôn ngữ?

Quan trọng nhất là: một Developer giỏi học ngôn ngữ mới rất nhanh. Tôi không tin rằng một guru của Java lại không thể học thêm .NET, Python…”

Đúc kết lại…

Ngôn ngữ nào không quan trọng vì cái cốt lõi của việc học lập trình không phải là kiếm được việc làm, mà là giải quyết được các vấn đề của thế giới. Nếu bạn có thể giải quyết được những vấn đề thực tế đó, bạn luôn có được một công việc tốt.” – Huỳnh Quán Cẩm, Managing Director của Da Da Dee.

Chỉ biết một ngôn ngữ, bạn vẫn có thể có việc làm nhưng để phát triển sự nghiệp thì rất khó. Cơ hội nghề nghiệp bị thu hẹp là điều không thể tránh khỏi.

Lời khuyên của tôi là hãy học thêm và sử dụng thành thạo ít nhất một ngôn ngữ khác. Làm như vậy, bạn đã gia tăng cơ hội việc làm thêm ít nhất 50%, bạn chứng tỏ cho nhà tuyển dụng thấy rằng bạn thích học hỏi và có khả năng học hỏi cái mới.

Nếu bạn thật sự giỏi ở một ngôn ngữ, tôi tin rằng bạn có thể chuyển qua các ngôn ngữ khác rất nhanh, vì về cơ bản, các ngôn ngữ đều khá giống nhau, chúng chỉ thay đổi một chút về syntax.

ITviec RobbyBạn có nghĩ rằng developer giỏi là chỉ cần biết và master một ngôn ngữ là đủ? Hãy chia sẻ suy nghĩ tại phần bình luận cuối bài.

 

About the Author:

Senior Web Developer

I am a Web Developer at ITviec who wants to grow myseft as a Full-stack Web Developer. Read more...

Comments

error: