Tôi nên học Python hay Javascript?

Dành cho người mới

4.8 (11 đánh giá)
Tạo bởi Jordan Trần Cập nhật lần cuối 6 năm trước 25.151 lượt xem 7 bình luận
Tác giả/Dịch giả: Jordan Trần
Học nhanh

Danh sách bài học

Tôi nên học Python hay Javascript?

Chú thích

Bài viết thuộc tờ báo Medium.com, được phát triển bởi Evan Williams (đồng sáng lập Blogger và Twitter), hơn 60.000.000 đọc giả theo dõi.

Bài viết cũng được dịch và điều chỉnh ngữ nghĩa cho dễ hiểu theo tiếng việt, vẫn giữ nguyên ý từ bài gốc.


Dẫn nhập

Ngành công nghiệp phần mềm luôn tiên phong trong việc phát triển và đổi mới. Ngôn ngữ lập trình liên tục nâng cấp và các ngôn ngữ mới lần lượt xuất hiện để đáp ứng các nhu cầu của thế giới công nghệ. Đây là một thách thức lớn cho tất cả các lập trình viên đầy tham vọng và cả các lập trình viên theo mùa. Vì vậy, hãy liên tục thay đổi và mang lại sự đổi mới.

Các lập trình viên cần nâng cao kỹ năng thường xuyên để bắt kịp tốc độ phát triển. Có nhiều ngôn ngữ và framework để lựa chọn. Các sinh viên đại học luôn phải đối mặt với câu hỏi “nên chọn ngôn ngữ lập trình nào để theo học”.

Cá nhân tôi có một bài viết về “3 ngôn ngữ hàng đầu trong năm 2018-2019”:

https://hackernoon.com/top-3-programming-language-to-watch-out-in-2019-95995e81ad2b (chưa dịch)

Hy vọng nó cũng giúp bạn có chút thông tin trong việc lựa chọn ngôn ngữ.

Hôm nay chúng ta sẽ đi sâu hơn vào 2 ngôn ngữ phổ biến hàng đầu đã trở thành lựa chọn yêu thích của nhiều người để phát triển phần mềm. Đó chính là Python Javascript, đây là một so sánh thú vị cho sức mạnh đã được nói đến trong lĩnh vực công nghệ, đặc biệt là khi dữ liệu đang trở thành một loại tiền tệ.

Mục đích ở đây không phải là chứng minh ngôn ngữ nào tốt hơn ngôn ngữ nào, mà bài viết muốn so sánh những điểm mạnh yếu của từng ngôn ngữ để giúp lập trình viên tương lai có được sự lựa chọn đúng đắn cho bản thân họ.

Vậy bắt đầu thôi…

Chúng ta sẽ so sánh cả 2 ngôn ngữ dựa trên các yếu tố sau:

- Thân thiện, dễ sử dụng với người mới bắt đầu.

- Tính linh hoạt.

- Hiệu suất.

- Khả năng mở rộng.

- Cơ hội phát triển nghề nghiệp.

- Xu hướng công nghệ

1. Thân thiện, dễ sử dụng với người mới bắt đầu:

Đây là một trong những yếu tố tiên quyết đầu tiên đối với đa số người mới bắt đầu, những người muốn học nhanh để sớm tạo ra được phần mềm hoặc có được công việc cho bản thân mình.

Python được thiết kế phù hợp với nhu cầu cho người mới, dễ học và dễ sử dụng hơn JS. Python hỗ trợ một kiểu lập trình sử dụng các hàm và biến đơn giản mà không cần định nghĩa các lớp. Tuy nhiên, đối với JS thì tất cả đều phải có.

JS là ngôn ngữ lập trình hiện đại, phức tạp hơn Python.

2. Tinh linh hoạt:

Python là một trong những ngôn ngữ lập trình linh hoạt nhất phù hợp với phát triển web, ERP (viết tắt của Enterprise Resource Planning) và AI/ML/Phát triển phân tích dữ liệu (Data Analytics Development).

JS cũng khá tiện lợi khi phát triển Web, phát triển ERP nhưng xu hướng thị trường trong tương lai của AI/ ML thì JS không phù hợp. Nó khá là mới trong lĩnh vực này và vẫn còn một chặng đường dài để đi. Python là một ngôn ngữ được ưa chuộng nhất để thống kê dữ liệu & xử lý số, xử lý thuật toán AI/ ML.

Một điều thực sự phù hợp với JS là khả năng nó sử dụng cho cả front-end back-end. Nó rất phù hợp với người muốn trở thành lập trình viên full-stack. Ngoài ra, khi nói đến lập trình app Mobile, JS có lợi thế cao hơn Python, vì Python chủ yếu chạy ở phía server.

Ở đây cả hai ngôn ngữ đều có tính linh hoạt riêng của nó. Python có một cộng đồng những người lập trình lâu đời và luôn nhận được sự ưu tiên từ nhiều người mới. Nhưng đối với tôi cả hai đều tốt, nó chỉ phụ thuộc vào người lập trình muốn gì để có thể đưa ra sự lựa chọn ngôn ngữ.

3. Hiệu suất:

So sánh này thì không dễ lắm vì có nhiều yếu tố liên quan, nhưng cách phân tích công bằng sẽ là so sánh NodeJS Python.

Về tốc độ thì NodeJS nhanh hơn đáng kể, hiệu suất tuyệt vời này phần lớn là do Node.JS dựa trên Chrome V8, đây là một công cụ rất nhanh và mạnh mẽ. Hiệu suất cao này cho phép nó có khả năng xây dựng các ứng dụng thời gian thực.

NodeJS mặc dù là một luồng đơn nhưng nó có kiến trúc dựa trên các sự kiện và non-blocking I/O giúp nó tối ưu hóa việc sử dụng CPU và bộ nhớ máy tính. Các kiến trúc hướng sự kiện này dựa trên các cuộc gọi không đồng bộ cho phép máy chủ NodeJS xử lý các yêu cầu cùng lúc hơn so với các máy chủ đa luồng.

Chú thích: Non-blocking I/O là yêu cầu thực thi IO operation và trả về ngay lập tức (timeout = 0). Nếu operation chưa sẵn sàng để thực hiện thì thử lại sau. Tương đương với kiểm tra IO operatio có sẵn sàng ngay hay không, nếu có thì thực hiện và trả về, nếu không thì thông báo thử lại sau.

non-blocking I/O không chặn thực thi chương trình trong khối lượng công việc I/O, nó giúp nâng cao hiệu suất phần mềm đang chạy của ứng dụng NodeJS. Các yếu tố đó cũng làm cho phía máy chủ NodeJS nhanh và hiệu quả hơn.

Cùng xem các kết quả kiểm tra điểm chuẩn của NodeJS với Python3. Kết quả này là từ: Benchmarksgame, xem link bên dưới.

Link: https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/node-python3.html

Tôi không hẳn tin tưởng hoàn toàn vào bài kiểm tra điểm chuẩn này vì nó được tùy chỉnh để kiểm tra tốc độ của các chương trình, điều này hiếm khi xảy ra trong môi trường phát triển thời gian thực, dù sao ta cũng thấy được NodeJS hoạt động tốt trong hầu hết các kịch bản đã cho.

Nhưng tôi sẽ để cho bạn tự kiểm tra tương tự bằng cách để bạn thiết lập môi trường phù hợp nhất cho dự án của bạn và kiểm tra hiệu suất trong thời gian thực để kết luận.

4. Khả năng mở rộng:

Khi nói đến khả năng mở rộng, chúng ta cần hiểu hiệu quả của ngôn ngữ trong việc xử lý lưu lượng người dùng lớn và cả cách xử lý bằng máy chủ tối thiểu. Tối ưu hóa tài nguyên phía máy chủ và xử lý cơ sở người dùng lớn quyết định khả năng mở rộng.

Nó cũng phụ thuộc kỹ năng lập trình, nếu một người viết code giỏi thì dự án có thể linh hoạt trong việc mở rộng hơn.

Python không hỗ trợ lập trình không đồng bộ so với NodeJS, nhưng nó hỗ trợ các coroutines mà có thể dễ dàng xử lý không đồng bộ. Vì vậy, ngay cả khi kiến trúc của nó có vẻ không có khả năng mở rộng như NodeJS, Python có các công cụ có thể đạt được khả năng mở rộng cần thiết. NodeJS mặc dù trông giống như được thiết kế cho tốc độ và khả năng mở rộng, nhưng tôi sẽ để cho lập trình viên quyết định vì nó cũng phụ thuộc vào hoàn cảnh.

Python cũng có thể mở rộng rất tốt, Youtube Instagram là hai sản phẩm tuyệt vời sử dụng Python. Python cũng chia tỷ lệ theo 2 hướng mà NodeJS không có:

- Độ phức tạp của code: Python rất phù hợp để phát triển các dự án kích thước lớn, Python giúp bạn dễ dàng code các dự án phức tạp hơn NodeJS, đôi khi có thể gặp khó khăn do lập trình không đồng bộ.

- Tên miền rộng hơn: Python rất tuyệt vời khi kết hợp một ứng dụng web và những thứ khác.

Vì vậy tất cả tập trung vào nhu cầu và mục đích nhất định mà một sản phẩm/dự án đang cần

5. Cơ hội phát triển nghề nghiệp:

Gần đây JS là một ngôn ngữ full-stack đang được thổi phồng lên rất nhiều và những người có kiến thức về MEAN stack cũng có được thu nhập rất tốt. JS đang trở nên phổ biến trong số những gã khổng lồ công nghệ. Phải nói rằng Python cũng bổ ích không kém vì nó rất phù hợp với Trí tuệ nhân tạo, Máy học, Phân tích dữ liệu. Nếu bạn đang để ý đến một sự nghiệp tuyệt vời trong tương lai sắp tới thì Python là một lựa chọn tuyệt vời.

Cả hai đều có những lợi thế nhất định, nếu bạn muốn trở thành lập trình viên full-stack và muốn phát triển các giải pháp web & di động có thể mở rộng, JS là một lợi thế. Nhưng nếu bạn muốn trở thành một nhà khoa học dữ liệu/kỹ sư dữ liệu thì Python là một ngôn ngữ đáng để sử dụng. Cả hai đều là ngôn ngữ giúp cho lập trình viên có thu nhập tốt và có khả năng tiến xa hơn, vì vậy hãy lựa chọn sao cho phù hợp với nhu cầu của bạn và tầm nhìn sự nghiệp lập trình của bạn.

Dưới đây là tóm tắt so sánh đơn giản được biên soạn bởi Educba.com (một tổ chức có hơn 500.000 học viên):

Tóm lại là:

Tôi sẽ không đưa ra bất kỳ kết luận nào vì với một tín đồ công nghệ, tôi hiểu rằng sự lựa chọn là một vấn đề cá nhân. Không nên lựa chọn bằng cách chỉ dựa trên những gì được thị trường đang ca tụng, cần phải nghiên cứu kỹ khi lấy phản hồi từ các bài chia sẻ của các chuyên gia.

Cá nhân tôi thì hơi nghiêng về phía Python vì tính dễ học và sự quan tâm của tôi hướng về AI/ML khi nhìn vào lộ trình phát triển tương lai với tư cách là một nhà lãnh đạo công nghệ, nhưng tôi sẽ thật ích kỷ khi không biết bạn muốn gì để tư vấn! Vì vậy, hãy tự mở rộng tầm nhìn của bạn, thiết lập một lộ trình học tập và có một tương lai lập trình tuyệt vời bắt đầu từ năm 2019.

Để lại cho tất cả các bạn lời khuyên này:

Sức mạnh lớn nhất của bạn nằm ở khả năng lựa chọn, xác định bản thân mình. Không có xu hướng thị trường hay lời khuyên đồng nghiệp nào có thể mang lại kết quả mà bạn mong đợi. Nếu bạn thất bại với quyết định của riêng bạn, thì đó cũng là một thất bại xứng đáng để có được ít nhất một bài học để đời.

Chúc bạn lập trình vui vẻ và có một tương lai tốt đẹp.


Góp ý

Bài dịch có thể vẫn chưa phải là bản dịch sát nhất, hay hoàn chỉnh nhất. Vì vậy, nếu bạn có hứng thú với bài này, bạn có thể tiếp tục dịch các phần trả lời tiếp theo và đóng góp thêm bản dịch chất lượng đến cộng đồng qua phần comment nhé! Cảm ơn các bạn! 

Nguồn:  https://codeburst.io/python-vs-javascript-battle-for-supremacy-ba42a76912f6?fbclid=IwAR37czBcDRMSPCxecqorRm9DMus2XcNnu6vEF01_xO-Fex_fmkLw3q3b7dA


Tải xuống

Tài liệu

Nhằm phục vụ mục đích học tập Offline của cộng đồng, Kteam hỗ trợ tính năng lưu trữ nội dung bài học Tôi nên học Python hay Javascript? dưới dạng file PDF trong link bên dưới.

Ngoài ra, bạn cũng có thể tìm thấy các tài liệu được đóng góp từ cộng đồng ở mục TÀI LIỆU trên thư viện Howkteam.com

Đừng quên likeshare để ủng hộ Kteam và tác giả nhé!


Thảo luận

Nếu bạn có bất kỳ khó khăn hay thắc mắc gì về khóa học, đừng ngần ngại đặt câu hỏi trong phần bên dưới hoặc trong mục HỎI & ĐÁP trên thư viện Howkteam.com để nhận được sự hỗ trợ từ cộng đồng.

Tác giả/Dịch giả

Khóa học

Dành cho người mới

Guide for beginners - Những chia sẻ kinh nghiệm dành cho người mới

Đánh giá

pta1472003 đã đánh giá 3 năm trước

Milo_Hoang.IT155 đã đánh giá 4 năm trước

Tungnamh9911 đã đánh giá 4 năm trước

tiepxl đã đánh giá 4 năm trước

TTNam67 đã đánh giá 5 năm trước

Bình luận

Để bình luận, bạn cần đăng nhập bằng tài khoản Howkteam.

Đăng nhập
daihabadao đã bình luận 4 năm trước

lời khuyên có lẽ là nên học cơ bản các ngôn ngữ hot hiện nay để có lựa chọn cho riêng mình, chứ nghe người khác nói cũng chỉ đúng một phần thôi trải nghiệm nó mới là lựa chọn chính xác. NHưng khi bạn học python thì bạn sẽ thấy cú pháp dễ và viết cũng ngắn mà js thì thuộc loại dị viết không giống ai

Hai Anh đã bình luận 5 năm trước

Mình mong là website sẽ làm một khóa học bài giảng về javascript ạ. Cảm ơn HowKteam rất nhiều.

nhunguyen0403 đã bình luận 5 năm trước

Với một người làm trái ngành thì đầu tiên mình sẽ chọn học Python để tiếp cận và có cái nhìn tổng quát hơn do Python dễ học hơn. Sau để chuyên sâu mình sẽ học JS vì mình muốn trở thành lập trình viên full-stack và muốn phát triển các giải pháp web & di động. Tks bro.

hohoaithanh23 đã bình luận 6 năm trước

Tôi đang phân phân giữa 2 ngôn ngữ này, có bài của kteam Tôi đã lựa chọn Python, cảm ơn bài viết bổ ích :)

Minh Sự Moderator đã bình luận 6 năm trước

Chữ "Tôi" nghe cục súc quá bro ạ :(

Không có video.