Hỏi - đáp Nơi cung cấp thông tin nghề nghiệp và giải đáp những thắc mắc thường gặp của bạn

Học ngôn ngữ gì cho Data Science? - Phần 1

Data Science là một lĩnh vực vô cùng thú vị, kết hợp giữa thống kê nâng cao, phân tích số liệu và khả năng lập trình. Có rất nhiều ngôn ngữ lập trình thích hợp để dùng cho Data Science.

Tuy sẽ không có câu trả lời chính xác nhưng để thành công trong Data Science, bạn sẽ cần chú ý đến những điều sau:

Specificity – Chuyên biệt

Khi nói đến Data Science, bạn sẽ cần phải thuần thục tất cả các package và module khác nhau có trong ngôn ngữ lập trình bản thân chọn.

Generality – Tổng quát

Data scientist phải có kĩ năng tốt trong lập trình cũng như khả năng phân tích số liệu. Bởi phần lớn công việc hàng ngày của Data science là lọc và clean dữ liệu. Đây là một task mà không có bất kì machine learning packages nào có thể làm thay được.

Productivity – Năng suất

Với việc mọi thứ càng trở nên năng động hơn trong thế giới kinh doanh hiện nay, năng suất đóng cũng đóng vai trò rất quan trọng. Tuy vậy, nó đồng nghĩa với việc khả năng xuất hiện lỗi cũng nhiều hơn cũng như đòi hỏi kĩ năng cao từ các Data scientist.

Performance – Hiệu năng

Trong một số trường hợp, việc cải thiện hiệu năng cho code được ưu tiên hàng đầu, đặc biệt là khi ta có một lượng lớn các data quan trọng. Ngôn ngữ Compiled thường nhanh hơn so với loại interpreted, cũng như statically typed languages thì ít bị “fail” hơn khi so với loại dynamically. Tất nhiên bù lại thì hiệu năng của nó thấp hơn.

Đây là 4 tiêu chí mà bạn sẽ dùng để xếp hạng các loại ngôn ngữ lập trình cho Data Science. Giờ thì chúng ta cùng xem qua những ngôn ngữ nổi bật thường được dùng. Chúng sẽ được xếp hạng theo độ nổi tiếng cũng như dựa theo quan điểm và trải nghiệm của chính tôi:

1. R

  • Điều mà bạn cần biết

Được tung ra vào năm 1995 với tư cách là truyền nhân của ngôn ngữ lập trình S. R đã có những bước phát triển và cải thiện mình. Hiện project đang được hỗ trợ bởi R Foundation for Statistical Computing.

  • License

Hoàn toàn miễn phí!!

  • Điểm mạnh

Chất lượng tuyệt hảo, domain chi tiết và open source packages. R gần như có mọi package cho từng thể loại app khác nhau. Có thể kể đến là neural networks, non-linear regression, phylogenetics, advanced plotting, v.v…

Phần mềm cài đặt đã có tích hợp sẵn các function và phương pháp thông kê nâng cao. R cũng không gặp phải vấn đề gì với ma trận đại số.

Data visualization cực kì mạnh mẽ với các libraries như ggplot2.

  • Điểm yếu

Hiệu năng. Không có gì để bào chữa, R không phải là một ngôn ngữ nhanh nhẹn.

Chỉ thích hợp cho một số mục đích nhất định. R cực kì tuyệt vời về thông số và data science nhưng thua những đứa em khác khi bạn chỉ muốn lập trình chung chung thôi.

Quái. R có một số tính năng hơi quái khi đi ngược với các ngôn ngữ lập trình khác như: index bắt đầu từ 1, sử dụng nhiều assignment operators, cấu trúc dữ liệu lạ lẫm.

  • Kết luận – Tuyệt vời cho mục đích của nó

R là một ngôn ngữ vô cùng mãnh mẽ khi nói về thông số và data visualization, và cũng như việc là open source cho phép cộng đồng đóng góp cải thiện R. Gần đây, nó càng ngày nổi tiếng vì quá xuất sắc tại lĩnh vực của mình.

2. Python

  • Điều mà bạn cần biết

Học ngôn ngữ gì cho Data Science?

Guido van Rossum giới thiệu Python vào năm 1991. Kể từ đó, nó trở nên rất nổi tiếng bởi sự đa năng của mình và được dùng rộng rãi trong cộng đồng data science. Hai phiên bản chính hiện nay là 3.6  2.7.

  • License

Hoàn toàn miễn phí!!

  • Điểm mạnh

Python rất nổi tiếng, được xem là ngôn ngữ lập trình mainstream, thích hợp cho nhiều mục đích khác nhau. Nó có modules  được tạo ra nhằm mở rộng tính năng của mình cũng như sự trợ giúp đến từ cộng đồng. Có nhiều dịch vụ online còn cung cấp cả một Python API.

Python  rất dễ học bởi nó đơn giản. Do đó mà thường được các lập trình viên chọn ngôn ngữ đầu tiên để học.

Với những package như pandas, scikit-learn và Tensorflow khiến cho Python trở thành một lựa chọn khá tốt cho những app có áp dụng machine learning ở level cao.

  • Điểm yếu

Python là ngôn ngữ thuộc dạng dynamical, nên bạn sẽ phải rất quan tâm đến nó. Bởi các Type errors sẽ xuất hiện thường xuyên.

Với một số tình huống phân tích dữ liệu và thống kê, R sẽ vượt trội hơn so với Python. Còn nếu chỉ là đơn giản học chung chung thì lại có những lựa chọn khác tốt hơn Python.

  • Kết luận – Cân bằng mọi mặt

Python là một lựa chọn khá tuyệt vời cho data science. Đa phần bởi quá trình của data science nằm ở ETL process nên Python cũng rất được chú ý bởi sự thích hợp của nó.

3. SQL

  • Điều mà bạn cần biết

Học ngôn ngữ gì cho Data Science?

SQL (‘Structured Query Language’) defines, quản lí và queries databases. Xuất hiện từ 1974, trải qua nhiều thay đổi nhưng giá trị cốt lỗi vẫn được giữ nguyên.

  • License

Tùy thuộc – một số implementations miễn phí và số khác là tính phí.

  • Điểm mạnh

Cực kì hiệu quả với querying, update cũng như kiểm soát databases.

Declarative syntax giúp cho SQL trở thành một ngôn ngữ dễ đọc. Chẳng có gì khó hiểu với  SELECT name FROM users WHERE age > 18  cả.

SQL được dùng bởi rất nhiều ứng dụng khác nhau nên sẽ có ích khi bạn biết về nó. Các Modules  như SQLAlchemy giúp việc việc integrate SQL với các ngôn ngữ khác trở nên dễ dàng và nahnh chóng.

  • Điểm yếu

Khả năng phân tích của SQL khá hạn chế – ngoài tổng hợp, cộng, đếm và tính số trung bình cho data thì bạn không có nhiều lựa chọn lắm.

Programmer đôi khi sẽ thấy rằng SQL’s declarative syntax khá khó học

Có rất nhiều implementations cho SQL như PostgreSQL, SQLite, MariaDB. Điều quan trọng là chúng quá khác nhau đến mức việc bạn phải học từng cái đã rất đau đầu.

  • Kết luận – Hiệu quả và bền bỉ

SQL là ngôn ngữ thích hợp với việc xử lí data hơn là dùng để phân tích nó. Tuy vậy vẫn có nhiều quá trình data science dựa vào ETL, cũng như sự bền bỉ và hiệu quả của SQL đã chứng minh rõ sự mạnh mẽ của mình.  

4. Java

  • Điều mà bạn cần biết

Học ngôn ngữ gì cho Data Science?

Java là một ngôn ngữ lâp trình cực kì nổi tiếng, chạy trên (JVM) Java Virtual Machine. Nó cho phép tính di động giữa các platform và hiện đang được phát triển bởi Oracle.

  • License

Version 8 —  hoàn toàn miễn phí

  • Điểm mạnh

Ở khắp mọi nơi. Rất nhiều hệ thống và app ngày nay được tạo ra trên Java back-end. Tính năng tích hợp data science vào thẳng codebase quả thật cực kì mạnh mẽ.

Java bảo đảm bạn không phải lo về lỗi type. Đối với những big data applications, đây như là một thiên đường vậy.

Java là một ngôn ngữ compile với hiệu suất rất cao. Nhờ đó mà nó thích hợp cho việc tạo ra những ETL production code hiệu quả cũng như các thuật toán machine learning phức tạp.

  • Điểm yếu

Với những app tập trung về phân tích thông số thì Java sẽ không phải là lựa chọn đầu tiên bởi sự vượt trội của R và Python.

Không như R, Java không có nhiều libraries cho các phương thức thông kê nâng cao.  

  • Kết luận – Một ứng viên đầy tiềm năng cho Data Science

Có rất nhiều nguyên nhân để chọn Java làm ngôn ngữ data science. Rất nhiều công ty sẽ quí trọng khả năng tích hợp data science production code trực tiếp vào codebase, cũng như là hiệu năng cao và ít lỗi type của Java. Tuy vậy nếu như bạn chỉ tập trung thuần túy vào việc phân tích và thống kê thì ngoài Java ra vẫn có R và Python.

5. Scala

  • Điều mà bạn cần biết

Học ngôn ngữ gì cho Data Science?

Phát triển bởi Martin Odersky và được tung ra vào 2004, Scala là một ngôn ngữ chạy trên JVM. Nó là một mô hinh đa ngôn ngữ, cho phép sử dụng cả 2 phương thức object-oriented và functional. Framework Apache Spark cũng được được bằng Scala.

  • License

Miễn phí!

  • Điểm mạnh

Scala + Spark = cluster computing với năng suất cực cao. Scala là một lựa chọn lí tưởng khi làm với những data sets với qui mô lớn.

Đa mô hình: Scala programmers được hưởng tất cả những thứ tốt nhất. Cả hai mô hình object-oriented và functional đều có thể dùng được.

Scala được compiled vào Java bytecode và chạy trên JVM. Nhờ đó cho phép khả năng tương tác Java. Nhờ đó mà Scale là môt ngôn ngữ khá mạnh mẽ, phù hợp cho nhiều mục đích khác nhau.

  • Điểm yếu

Scala không phải là ngôn ngữ dễ cho bạn chọn đầu tiên để học. Cách tốt nhất là download sbt và set-up một IDE như Eclipse hay IntelliJ với Scala plug-in.

Syntax và type system rất phức tạp nên sẽ khiến nó không hấp dẫn bằng Python.

  • Kết luận – Hoàn hảo cho big data

Khi nói về cluster computing với Big Data, Scala + Spark là một sự kết hợp hoàn hảo cho bạn. Nếu đã từng dùng qua Java hoặc các ngôn ngữ thuộc statically typed, bạn sẽ thấy rằng các tính năng của Scala rất mạnh mẽ. Tuy nhiên nếu không nhắm tới qui mô như vậy thì R và Python sẽ là những lựa chọn phù hợp hơn.

Nguồn: https://topdev.vn/blog/hoc-ngon-ngu-gi-cho-data-science/