+4

Chọn NodeJS hay Ruby?

Đây có lẽ là câu hỏi kinh điển nhất mọi thời đại, và làm đau đầu mọi developer, nỗi sợ hãi của các bạn newbie khi không biết chọn ai bỏ ai và độ kinh dị của nó không chỉ dừng lại ở mức Node vs Ruby mà còn xa hơn thế, là sự lựa chọn giữa các ngôn ngữ với nhau (Node vs Ruby, C++ vs .NET, PHP vs Java,...), hay thậm chí là giữa các Framework anh em trong cùng 1 ngôn ngữ (Spring vs Play, Laravel vs CakePHP, Flask vs Django, Rails vs Sinatra,...), hay thậm chí là so sánh những thứ chả bao giờ liên quan, ví dụ như Unity vs Cocos2D-x, iOS vs Android...

Đối với những người mới học, sợ nhất có lẽ là chọn sai ngôn ngữ để rồi bỏ phí bao nhiêu thời gian theo học một thứ không dùng được. Nên cứ hay hỏi hoài, cùng 1 câu hỏi trên. Nhưng biết hỏi ai đây?

Hỏi anh Gu gồ thì ảnh quăng cho 1 đống những topic tranh cãi đầy quyết liệt của các fan boy, hỏi các Gosu thì lại trúng những ông fan boy lâu năm, toàn suggest thứ ngôn ngữ mình ưa chuộng,...

Từng có một thời gian (và bây giờ vẫn còn) dũng cảm nhảy vào room ruby-vietnam để khuyến khích mọi người trong đó chuyển sang dùng nodejs. Và từng có thời gian lang thang tìm hiểu đủ loại ngôn ngữ từ thời thượng tới thượng cổ, chả ai thèm dùng,... mình rút ra một số kinh nghiệm xương máu, có lẽ viết ra sẽ hữu ích cho nhiều bạn, cũng như góp phần làm tăng thêm hoang mang cho các bạn 😃

Đừng hỏi nữa!

Việc dễ nhất và cần làm nhất để thoát khỏi tình trạng hoang mang, đứng giữa những sự lựa chọn là: Đừng thắc mắc nữa

Lão tỉ phú gì đó sỡ hữu hãng hàng không Virgin (Richard Branson) có một câu châm ngôn mà mình khá tâm đắc, lão dùng để đặt tên cho cuốn sách của lão, đó là: Mặc kệ nó, làm tới đi!

img-1.jpg

Nếu bạn cứ mãi chần chờ, thắc mắc thì bạn sẽ chỉ dậm chân tại chỗ và không làm được gì ra hồn, học Node cũng ko xong mà Ruby cũng ko tới. Tốt nhất là nhắm mắt chọn đại 1 ngôn ngữ, và học cho tới nơi tới chốn.

Nhưng làm sao để chọn đây?

Bạn cảm thấy thoải mái khi dùng ngôn ngữ nào?

Nếu bạn chưa từng dùng qua 1 ngôn ngữ nào trong 2 thứ đang chọn, thì quá đễ! chỉ cần kiếm 1 đồng xu, loại mà mấy bà cô vẫn hay dùng để cạo gió ấy, đặt lên lòng bàn tay rồi tung lên, mặt xấp chọn Node, mặt ngửa chọn Ruby

Nếu bạn đã từng dùng qua cả 2 ngôn ngữ, thì quá dễ, nhắm mắt lại, hít một hơi thật sâu và tự vấn lương tâm của mình, giống như khi đứng trước 2 cô gái đẹp bạn cảm thấy thích cô nào hơn?

Chắc chắn sẽ có một trong 2 loại ngôn ngữ, bạn cảm thấy thoải mái hơn khi dùng nó. Hãy đi theo tiếng gọi của con tim và chọn lấy 1 cô. Đừng lo về việc bỏ phí cô kia, vì trước sau gì chúng ta cũng sẽ quay lại với nó.

Đừng giới hạn số lượng đồ nghề của bạn

Như đã nói ở phần trên, bạn sẽ không bỏ phí cô nào cả. Luật pháp có thể ngăn cấm việc cưới nhiều vợ, nhưng trong thế giới của các developer, không ai cấm bạn học nhiều ngôn ngữ hết!

Nếu như ngày xưa, một người đàn ông cần phải tháo vát, biết làm mọi chuyện trong nhà, từ đóng bàn ghế, giường tủ, đến sửa chữa đồ điện, thay bóng đèn, thời nay, đàn ông ở Mỹ còn phải biết giặt đồ, nấu ăn, bế con, thay tã,... mới mong kiếm được vợ. Thì thì với các Developer, việc biết nhiều ngôn ngữ, nhiều công nghệ cũng chỉ làm tăng thêm cơ hội cho bạn kiếm được một công việc tốt hơn, làm được nhiều thứ hơn thôi.

Chả có cái quái gì phải sợ để mà tự giới hạn mình chỉ học 1 thứ công nghệ suốt đời cả.

Sẽ có bạn thắc mắc là, biết nhiều quá rồi làm sao biết được dùng thứ gì cho việc gì? Lỡ biết thừa thì sao?

Lựa chọn đúng công cụ cho từng công việc

Biết thừa thì tốt thôi, chả sao. Khi bạn nắm được nhiều loại công nghệ, bạn phải tìm hiểu thật sau cho từng loại, từ đó bạn sẽ nắm được ưu nhược điểm của từng món. Từ đó bạn sẽ tự trả lời được câu hỏi dùng cái gì.

Mấu chốt của vấn đề là: Phải biết chọn dùng ngôn ngữ gì cho công việc gì, và dùng như thế nào. Nếu có thể thì phải kết hợp được tất cả bọn nó lại.

Giống như một người đàn ông hạnh phúc, là người có thể cưới 4, 5 bà vợ mà các bả vẫn sống chung hoà thuận dưới một mái nhà. Mặc dù nghe có vẻ khó, nhưng trên thế giới vẫn có người làm được, Google là ra. Cá nhân mình thì có thể sống chung giữa các ngôn ngữ, nhưng còn kiếm nhiều vợ thì mình không có ý định đó, cũng không khuyến khích các bạn thử =))

img-2.gif

Hãy nhìn vào từng vấn đề thực tế, bạn muốn đi câu cá ngoài biển, và bạn có 1 chiếc thuyền máy, 1 chiếc ô tô.

Rõ ràng bạn không thể lấy ô tô để bơi ra biển, nên chắc chắn bạn phải dùng thuyền máy.

Hoặc khi bạn muốn đi về thành phố khác chơi, bạn có thể đi bằng thuyền, cũng có thể đi bằng ô tô, nhưng đi bằng ô tô sẽ gần hơn đi thuyền, vậy tại sao phải dùng thuyền?

Nhưng thử tưởng tượng, bạn chỉ có ô tô và muốn đi câu cá ngoài biển, không có thuyền làm sao mà đi? Chẳng phải là bạn đã tự giới hạn mình để rồi bỏ lỡ nhiều cơ hội sao?

Khi nào thì nên thay đổi?

Tại sao phải thay đổi? Vì bạn không thể chỉ dùng 1 thứ công nghệ cả đời được, sẽ có lúc thứ công nghệ bạn dùng không thể giải quyêt được vấn đề của bạn.

img-3.jpg

Nhưng thay đổi quá sớm, bạn sẽ không có cơ hội để hiểu rõ được thứ ngôn ngữ/công nghệ mà bạn đang dùng, thay đổi quá trễ, bạn sẽ trở nên già cỗi, ngại thay đổi, sợ cái mới, đơn giản vì bạn đã lỡ biết quá nhiều.

img-4.jpg

Có một câu trả lời cho chủ đề tương tự trên Quora mà mình thấy khá là hay, đó là: "If you've already built it with Rails, keep it there until you reach a point at which Rails is unable to do the job for you."

Nếu bạn đang dùng Rails, thì cứ tiếp tục dùng nó đi, cho đến khi nó không làm được những thứ mà bạn cần nữa.

Tạm dịch: Em đã hết giá trị lợi dụng, mời em đi chỗ khác chơi.

Hãy vắt kiệt mọi khả năng của ngôn ngữ bạn đang dùng, trước khi quyết định tìm tới ngôn ngữ khác.

Làm sao để biết ngôn ngữ khác giải quyết được việc chúng ta cần?

Để biết được ưu nhược điểm của từng loại công nghệ, chúng ta cần tìm hiểu nó. Vậy phải tìm hiểu như thế nào để khỏi mất thời gian và công sức?

Cách dễ nhất là đọc các bài viết so sánh các ngôn ngữ một cách phiến diện nhất. Kiểu như các bài: 5 lý do tôi chọn NodeJS thay vì Ruby, Tại sao công ty chúng tôi chuyển từ NodeJS sang Ruby, 10 lý do khiến bạn không bao giờ nên dùng NodeJS,...

Nhưng hãy nhớ, đọc các bài viết phiến diện một cách thật khách quan, và đừng bao giờ trở nên phiến diện theo chúng.

Có rất nhiều bạn developer, có thể nói là gió chiều nào theo chiều ấy, hôm nay đọc các bài viết tung hô NodeJS, thì quay sang tung hô NodeJS hết mình, ba ngày sau thấy một bài báo chê bai NodeJS thậm tệ và tung hô Golang, thế là ngay lập tức trở thành Go Fan boy, quay về chửi bới NodeJS không ra gì luôn.

Các bạn nên tránh trở thành thể loại developer này.

img-5.jpg

Tổng kết: Hy vọng bài viết sau góp phần khích lệ cho các bạn liều hơn 1 tí, và hạn chế hỏi những câu hỏi tương tự như đầu bài... 😄 Vì câu trả lời là nằm ở chính các bạn. Tất cả mọi sự so sánh đều là khập khiễng. Và tất cả mọi ý kiến chủ quan đều rất chủ quan !!!

Tham khảo: http://kipalog.com/


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí