R là một ngôn ngữ lập trình ngày càng phổ biến, đặc biệt là trong lĩnh vực phân tích dữ liệu và khoa học dữ liệu. Có thể bạn đã từng nghe mọi người nói rằng học R rất dễ. Nhưng trong thực tế, học R có thể là một thử thách khó chịu nếu bạn không có cách tiếp cận phù hợp.
Nếu bạn đã từng phải vật lộn để học R hoặc một ngôn ngữ lập trình khác, thì bạn chắc chắn bạn không phải là người duy nhất gặp phải vấn đề đó. Và sự thất bại đó không phải do bạn hay do ngôn ngữ lập trình mà bạn chọn học.
Vậy lý do chính là gì? Đây là quá trình khiến đa phần người mới học một ngôn ngữ lập trình bỏ cuộc nữa chừng:
- Bạn hào hứng với việc học một ngôn ngữ lập trình vì bạn muốn làm điều gì đó với nó.
- Bạn cố gắng bắt đầu học và ngay lập tức bị dẫn đến bức tường khổng lồ của những thứ phức tạp và nhàm chán.
- Bạn phải vật lộn với một số kiến thức nhàm chán mà không biết nó liên quan như thế nào đến công việc bạn thực sự muốn làm.
Trước khi đi vào cách học hiệu quả, hãy xem lý do tại sao bạn nên học ngôn ngữ lập trình này
Tại sao bạn nên học ngôn ngữ lập trình R
R là một ngôn ngữ lập trình đáng học hỏi. Trên thực tế, R có một số lợi thế lớn so với ngôn ngữ khác đối với bất kỳ ai quan tâm đến khoa học dữ liệu:
- Hệ sinh thái R làm cho các nhiệm vụ khoa học dữ liệu hàng ngày trở nên rất đơn giản.
- Trực quan hóa dữ liệu trong R đơn giản nhưng cũng rất mạnh mẽ.
- R được xây dựng để thực hiện tính toán thống kê.
- Cộng đồng R trực tuyến là một trong những cộng đồng thân thiện nhất và tuyệt vời nhất trong tất cả các cộng đồng lập trình.
- Môi trường phát triển tích hợp RStudio (IDE) là một công cụ mạnh mẽ để lập trình với R vì tất cả mã, kết quả và hình ảnh trực quan của bạn đều ở cùng một nơi. Với RStudio Cloud, bạn có thể lập trình trong R bằng RStudio bằng trình duyệt web.
Và tất nhiên, học R có thể rất tốt cho sự nghiệp của bạn. Khoa học dữ liệu là một lĩnh vực phát triển nhanh với nhiều nghề rất cần nhân lực.
Rất nhiều công ty và tổ chức sử dụng R cho công việc khoa học dữ liệu. Ảnh dưới đây là một số công ty sử dụng R theo từ Hired.com tính đến tháng 4 năm 2021
Danh sách này chỉ là phần nổi của tảng băng chìm. Có hàng nghìn công ty trên toàn cầu tuyển dụng những người có kỹ năng R, và R cũng rất cần trong trong giới học thuật và chính phủ. Công nghệ, tài chính, trò chơi điện tử, dược phẩm, bảo hiểm, thời trang… mọi ngành đều cần những người có thể làm việc với dữ liệu và điều đó có nghĩa là mọi ngành đều có kỹ năng lập trình R. Vậy làm thế nào bạn có thể học ngôn ngữ lập trình R một cách hiệu quả và tìm cơ hội cho riêng mình?
5 bước để học ngôn ngữ lập trình R một cách hiệu quả
Bước 1. Tìm động lực học tập
Trước khi bạn tập trung vào cuốn sách dạy lập trình hay đi vào chi tiết một khóa học online, hãy dành một chút thời gian để thực sự suy nghĩ về lý do bạn muốn học ngôn ngữ lập trình R và bạn muốn làm gì với nó.
- Bạn muốn làm việc với dữ liệu nào?
- Bạn thích xây dựng những dự án nào?
- Có những câu hỏi nào khác liên quan đến việc học và sử dụng ngôn ngữ này mà bạn cần trả lời?
Tìm điều gì đó thúc đẩy bạn trong quá trình này. Điều này sẽ giúp bạn xác định mục tiêu của mình và nó sẽ giúp bạn đạt được kết quả cuối cùng mà không cảm thấy nhàm chán.
Cố gắng đi sâu hơn là một ý tưởng chung chung “trở thành một nhà khoa học dữ liệu”. Có nhiều loại nhà khoa học dữ liệu làm việc trên rất nhiều vấn đề và dự án. Bạn có quan tâm đến việc phân tích ngôn ngữ? Dự đoán thị trường chứng khoán? Tìm hiểu sâu về số liệu thống kê thể thao? Điều bạn muốn làm với các kỹ năng mới sẽ giúp bạn có động lực khi làm việc để học R là gì?
Chọn một hoặc hai vấn đề mà bạn quan tâm và bạn sẵn sàng gắn bó. Thúc đẩy việc học của bạn hướng tới chúng và xây dựng các dự án có liên quan đến sở thích của bạn.
Tìm ra động cơ thúc đẩy bạn sẽ giúp bạn tìm ra mục tiêu cuối cùng và con đường đưa bạn đến đó mà không hề nhàm chán. Bạn không cần phải tìm ra một dự án chính xác, chỉ cần một lĩnh vực chung mà bạn quan tâm khi chuẩn bị học ngôn ngữ R, chẳng hạn như:
- Khoa học dữ liệu / Phân tích dữ liệu
- Trực quan hóa dữ liệu
- Mô hình dự đoán (Predictive modeling) / học máy
- Số liệu thống kê
- Các báo cáo khả lặp (Reproducible reports)
- Báo cáo tổng quan (Dashboard reports)
Bước 2. Tìm hiểu cú pháp cơ bản
Rất tiếc, không có cách nào để tránh hoàn toàn bước này. Cú pháp của ngôn ngữ lập trình thậm chí còn quan trọng hơn cú pháp trong ngôn ngữ của con người. Nếu ai đó nói “Tôi cửa hàng sẽ đến”, thì cú pháp ngôn ngữ tiếng Việt của họ là sai, nhưng bạn có thể vẫn hiểu ý họ. Thật không may, máy tính ít tha thứ hơn nhiều khi chúng diễn giải code của bạn.
Tuy nhiên, việc học cú pháp rất nhàm chán. Vì vậy mục tiêu của bạn là dành càng ít thời gian càng tốt để học cú pháp một cách đơn thuần. Thay vào đó, hãy học càng nhiều cú pháp càng tốt trong khi giải quyết các vấn đề trong thế giới thực mà bạn quan tâm để giúp bạn có động lực.
Dưới đây là một số tài nguyên để tìm hiểu kiến thức cơ bản về R:
- Codecademy – nguồn tài nguyên rất tốt cho việc học các cú pháp cơ bản.
- Dataquest: Khóa học về Lập trình R.
- R dành cho Khoa học Dữ liệu – Một trong những tài nguyên hữu ích nhất để học R và các công cụ tidyverse. Có sẵn bản in của nhà xuất bản O’Reilly hoặc trực tuyến miễn phí.
- R Style Guide – Đây không phải là tài nguyên học tập chính nhưng nó có thể là một tài liệu tham khảo hữu ích. (xem lại)
- RStudio Education – RStudio là môi trường phát triển tích hợp (IDE) phổ biến nhất để lập trình với R. Phần đào tạo dành cho người mới bắt đầu của họ chứa các tài nguyên hữu ích bao gồm hướng dẫn, sách và hội thảo trên web.
- RStudio Cloud Primers– Bắt đầu viết mã bằng R mà không cần cài đặt bất kỳ phần mềm nào với các hướng dẫn dựa trên đám mây từ RStudio.
Nếu bạn có thể bắt tay vào làm các dự án càng nhanh, bạn sẽ học càng nhanh R. Bạn luôn có thể tham khảo nhiều nguồn tài liệu để học và kiểm tra lại cú pháp nếu bạn gặp khó khăn sau này. Nhưng mục tiêu của bạn chỉ nên dành tối đa vài tuần cho giai đoạn này.
RStudio Cheatsheets là hướng dẫn tham khảo tuyệt vời cho cú pháp R
Bước 3. Làm việc trên các dự án chức năng
Một khi bạn đã học đủ cú pháp, bạn đã sẵn sàng chuyển sang các dự án chức năng một cách độc lập hơn. Dự án là một cách tuyệt vời để học, vì chúng cho phép bạn áp dụng những gì bạn đã học đồng thời cũng thách thức bạn học những điều mới và giải quyết vấn đề khi gặp phải. Thêm vào đó, việc xây dựng các dự án sẽ giúp bạn tổng hợp một porfolio mà bạn có thể trình bày cho các nhà tuyển dụng tương lai sau này.
Có thể bạn chưa cần đi sâu vào các dự án quá phức tạp. Bạn sẽ gặp rất nhiều khó khăn và quá trình này có thể khiến bạn nản lòng. Thay vào đó, hãy tìm các dự án có đơn giản cho đến khi bạn có thể tích lũy thêm một chút kinh nghiệm và nâng cao mức độ của mình. Bạn sẽ có cơ hội thử nghiệm, tổng hợp các kỹ năng của mình theo những cách mới và giải quyết những lỗi có thể mắc phải.
Có rất nhiều dự án chức năng để bạn thực hành. Hãy xem xét một số tài nguyên cho các dự án trong từng lĩnh vực:
Khoa học dữ liệu / Phân tích dữ liệu.
- R dành cho Khoa học Dữ liệu – của Hadley Wickham và Garrett Grolemund là một nguồn tài liệu R tuyệt vời với các bài tập đầy động lực và thử thách.
- TidyTuesday – Một dự án dữ liệu xã hội hàng tuần, bán cấu trúc ở R, nơi các học viên r mới bắt đầu dọn dẹp, xử lý, ngăn nắp và vẽ một tập dữ liệu mới vào mỗi thứ Ba hàng tuần. Bộ dữ liệu mới được đăng hàng tuần. Kết quả được chia sẻ trên Twitter bằng cách sử dụng hashtag #tidytuesday.
Trực quan hóa dữ liệu
- ggplot2 – Một trong những công cụ phổ biến nhất để hiển thị dữ liệu trong R là gói
ggplot2
. Chương Trực quan hóa dữ liệu từ R dành cho Khoa học Dữ liệu là một nơi tuyệt vời để tìm hiểu những kiến thức cơ bản về trực quan hóa dữ liệu vớiggplot2
. Chương về Đồ họa cho giao tiếp là một nguồn tài liệu tuyệt vời để làm cho đồ họa trông chuyên nghiệp hơn. - rayshader – xây dựng bản đồ hai chiều và ba chiều trong R với
rayshader
package. Bạn cũng có thể chuyển đổi đồ họa được phát triển bằngggplot2
thành 3D vớirayshader
.
Mô hình dự đoán / học máy
- Bắt đầu với Tidymodels – một loạt các bài viết dạy về các mô hình tidymodels, một bộ sưu tập các gói để lập mô hình và học máy bằng cách sử dụng các nguyên tắc tidyverse.
- Tạo mô hình với Tidymodels – xây dựng và đào tạo các mô hình dự đoán với chuỗi dự án này.
- Điều chỉnh, so sánh và làm việc với mô hình – sử dụng các phương pháp như tìm kiếm theo lưới (grid search), nested resampling và phương pháp Bayes bằng các công cụ tidymodel.
- Phát triển Công cụ tạo mô hình tùy chỉnh – nâng cao và tùy chỉnh các mô hình của bạn bằng các hướng dẫn này.
Số liệu thống kê
Thực hiện Phân tích Thống kê với Tidymodels – một loạt các bài báo nâng cao hơn sử dụng tidymodels để phân tích thống kê.
Các báo cáo khả lặp
- Bắt đầu với R Markdown – Hướng dẫn – xây dựng hướng dẫn tham khảo R Markdown của riêng bạn với hướng dẫn miễn phí này từ Dataquest. Cải thiện kỹ năng R Markdown của bạn bằng cách ghi lại bất kỳ dự án nào được mô tả ở đây với R Markdown.
- R Markdown Cookbook – là một cuốn sách trực tuyến miễn phí, toàn diện chứa hầu hết mọi thứ bạn cần biết về R Markdown.
- R Markdown: The Definitive Guide – một nguồn tài liệu miễn phí, tuyệt vời khác để học R Markdown.
Báo cáo tổng quan
- Shiny Dashboard Tutorials – tạo bảng điều khiển trong R với shiny dashboards bằng cách sử dụng các hướng dẫn này từ RStudio.
- Shiny Gallery – xem thư viện này từ RStudio để biết một số cảm hứng và ví dụ về Shiny Dashboard.
Bước 4. Xây dựng dự án của riêng bạn
Sau khi hoàn thành một số dự án chức năng, bạn có thể đã sẵn sàng chuyển sang giai đoạn tiếp theo của việc học R: thực hiện các dự án khoa học dữ liệu độc đáo của riêng bạn. Thật khó để biết bạn đã thực sự học được bao nhiêu cho đến khi bạn bước ra ngoài và cố gắng làm điều gì đó một mình. Làm việc trên các dự án độc đáo mà bạn quan tâm sẽ cung cấp cho bạn một ý tưởng tuyệt vời không chỉ về việc bạn đã đi được bao xa mà còn về những điều bạn có thể muốn tìm hiểu tiếp theo.
Và mặc dù bạn sẽ xây dựng dự án của riêng mình, bạn sẽ không làm việc một mình. Bạn sẽ vẫn tham khảo các tài nguyên để được trợ giúp và học các kỹ thuật và phương pháp mới khi bạn làm việc. Đặc biệt với ngôn ngữ lập trình R, bạn có thể thấy rằng có một package dành riêng để trợ giúp loại dự án chính xác mà bạn đang thực hiện, vì vậy, việc tham gia một dự án mới đôi khi cũng có nghĩa là bạn đang tìm hiểu một R package mới.
Bạn sẽ làm gì nếu bạn gặp khó khăn? Hãy làm những gì những người chuyên nghiệp làm và yêu cầu sự giúp đỡ! Dưới đây là một số tài nguyên rất có ích để tìm trợ giúp với các dự án R của bạn:
- StackOverflow – Dù câu hỏi của bạn là gì, có thể nó đã được hỏi ở đây trước đây và nếu chưa, bạn có thể tự hỏi. Bạn có thể tìm thấy các câu hỏi được gắn thẻ R tại đây.
- Google – Tin hay không thì tùy, đây có lẽ là công cụ được sử dụng phổ biến nhất của mọi lập trình viên có kinh nghiệm. Khi bạn gặp một lỗi mà bạn không hiểu, tìm kiếm nhanh trên Google về thông báo lỗi thường sẽ giúp bạn tìm được câu trả lời.
- Twitter – Có thể ngạc nhiên khi tìm hiểu, nhưng Twitter là một nguồn tuyệt vời để nhận trợ giúp về các vấn đề liên quan đến R. Twitter cũng là một nguồn tài nguyên hữu ícch cho các tin tức và cập nhật liên quan đến R từ các học viên R hàng đầu thế giới. Cộng đồng R trên Twitter tập trung xung quanh thẻ bắt đầu bằng # #rstats.
- Cộng đồng học tập của Dataquest – Với tài khoản sinh viên miễn phí, bạn có thể tham gia cộng đồng học tập và đặt các câu hỏi kỹ thuật mà sinh viên của bạn hoặc các nhà khoa học dữ liệu của Dataquest có thể trả lời.
Bạn nên xây dựng những loại dự án nào? Cũng như các dự án chức năng, các dự án này nên được hướng dẫn bởi các câu trả lời mà bạn đã nghĩ ra ở bước 1. Làm việc với các dự án và vấn đề mà bạn quan tâm. Ví dụ: nếu bạn quan tâm đến biến đổi khí hậu, hãy tìm một số dữ liệu khí hậu để làm việc và bắt đầu tìm hiểu kỹ để có thông tin chi tiết.
Tốt nhất bạn nên bắt đầu từ việc nhỏ thay vì cố gắng thực hiện một dự án khổng lồ sẽ không bao giờ kết thúc. Nếu điều bạn quan tâm nhất là một dự án lớn, hãy cố gắng chia nhỏ nó thành nhiều phần nhỏ hơn và giải quyết từng việc một.
Dưới đây là một số ý tưởng cho các dự án mà bạn có thể xem xét:
- Mở rộng trên một trong các dự án chức năng mà bạn đã xây dựng trước đó để thêm các tính năng mới hoặc phân tích sâu hơn.
- Tham dự các buổi gặp mặt hoặc kết nối với các lập trình viên R khác trực tuyến và tham gia một dự án đã được thực hiện.
- Tìm một gói mã nguồn mở (open-source package) để đóng góp (R có rất nhiều gói mã nguồn mở tuyệt vời!)
Tìm một dự án thú vị mà người khác đã thực hiện bằng R trên Github và cố gắng mở rộng hoặc mở rộng dự án đó. Hoặc, tìm một dự án mà người khác đã thực hiện bằng ngôn ngữ khác và cố gắng tạo lại dự án đó bằng R. - Đọc tin tức và tìm kiếm những câu chuyện thú vị có thể có sẵn dữ liệu mà bạn có thể tìm hiểu cho một dự án.
- Hãy xem danh sách các bộ dữ liệu miễn phí dành cho các dự án khoa học dữ liệu và xem dữ liệu có sẵn nào truyền cảm hứng cho bạn bắt đầu xây dựng!
Dưới đây là một số ý tưởng dự án khác trong các lĩnh vực chủ đề mà chúng ta đã thảo luận:
Khoa học dữ liệu / Phân tích dữ liệu
- Một tập lệnh để tự động nhập dữ liệu.
- Một công cụ để thu thập dữ liệu từ web.
Trực quan hóa dữ liệu
- Bản đồ hình ảnh hóa cuộc bỏ phiếu bầu cử theo khu vực.
- Tập hợp các lô mô tả xu hướng bán hoặc cho thuê bất động sản trong khu vực của bạn.
Mô hình dự đoán / học máy
- Một thuật toán dự đoán thời tiết nơi bạn sống.
- Một công cụ dự đoán thị trường chứng khoán.
- Một thuật toán tự động tóm tắt các bài báo tin tức.
Số liệu thống kê
- Mô hình dự đoán chi phí của các chuyến đi Grab trong khu vực của bạn.
Các báo cáo có thể lặp lại
- Báo cáo về xu hướng Covid-19 trong khu vực của bạn trong báo cáo R Markdown có thể được cập nhật khi có dữ liệu mới.
- Báo cáo tóm tắt về dữ liệu hiệu suất cho đội thể thao yêu thích của bạn.
Báo cáo trang tổng quan
- Bản đồ vị trí trực tiếp của xe buýt trong khu vực của bạn.
- Một bản tóm tắt thị trường chứng khoán.
- Một trình theo dõi Covid-19, như ví dụ này.
- Bản tóm tắt về thói quen chi tiêu cá nhân của bạn.
Bước 5. Tăng độ khó
Làm việc trong các dự án là rất tốt, nhưng nếu bạn muốn học ngôn ngữ lập trình R thì bạn cần đảm bảo rằng bạn không ngừng học hỏi. Ví dụ: bạn có thể làm được nhiều việc chỉ với trực quan hóa dữ liệu, nhưng điều đó không có nghĩa là bạn nên xây dựng 20 dự án liên tiếp chỉ sử dụng các kỹ năng trực quan hóa dữ liệu của mình. Mỗi dự án sẽ khó hơn một chút và phức tạp hơn một chút so với dự án trước đó. Mỗi dự án sẽ thách thức bạn học những điều bạn chưa biết trước đây.
Nếu bạn không chắc chắn chính xác cách thực hiện điều đó, đây là một số câu hỏi bạn có thể tự hỏi mình để áp dụng mức độ phức tạp và khó khăn hơn cho bất kỳ dự án nào bạn đang xem xét:
- Bạn có thể dạy cho một người mới làm quen cách thực hiện dự án này bằng cách (ví dụ) viết một hướng dẫn không? Cố gắng dạy điều gì đó cho người khác sẽ nhanh chóng cho bạn thấy bạn thực sự hiểu nó đến mức nào và nó có thể là một thử thách đáng ngạc nhiên!
- Bạn có thể mở rộng quy mô dự án của mình để nó có thể xử lý nhiều dữ liệu hơn không? Nhiều dữ liệu hơn?
- Bạn có thể cải thiện hiệu suất của nó? Nó có thể chạy nhanh hơn không?
- Bạn có thể cải thiện hình dung không? Bạn có thể làm cho nó rõ ràng hơn? Bạn có thể làm cho nó tương tác không?
- Bạn có thể làm cho nó dự đoán?
Kết luận
Học một ngôn ngữ lập trình giống như học một ngôn ngữ nói thứ hai – bạn sẽ đạt được cảm giác thoải mái và trôi chảy, nhưng bạn sẽ không bao giờ thực sự học xong. Ngay cả các nhà khoa học dữ liệu có kinh nghiệm đã làm việc với R trong nhiều năm vẫn đang học những điều mới, bởi vì bản thân ngôn ngữ này đang phát triển và các gói mới luôn có thể làm nên những điều mới.
Điều quan trọng là phải luôn tò mò và tiếp tục học hỏi, nhưng cũng đừng quên nhìn lại và đánh giá cao xem bạn đã đi được bao xa.
Học R chắc chắn là một thách thức ngay cả khi bạn áp dụng phương pháp đề cập trong bài viết này. Nhưng nếu bạn có thể tìm thấy động lực phù hợp và tiếp tục gắn bó với những dự án thú vị, bất kỳ ai cũng có thể đạt đến trình độ cao.
Hy vọng hướng dẫn này hữu ích cho bạn trên hành trình của bạn. Nếu bạn có bất kỳ tài nguyên nào khác để đề xuất, vui lòng để lại comment bên dưới
Bài viết của tác giả Casey Bates đăng tại đây
Bạn có biết?
tham gia cộng đồng ITguru trên Linkedin, Facebook và các kênh mạng xã hội khác có thể giúp bạn nhanh chóng tìm được những chủ đề phát triển nghề nghiệp và cập nhật thông tin về việc làm IT mới nhất
Linkedin Page:
Facebook Group:
cơ hội việc làm IT : ITguru.vn