Đừng chỉ dừng lại ở Stata và Word!

Đối với các bạn học kinh tế thì Stata và Word là hai công cụ không thể thiếu rồi. Tuy nhiên, với dòng chảy của thời đại bây giờ, việc chỉ thành thạo hai công cụ này là không đủ ở cao học, và thậm chí ở bậc đại học cũng chưa đủ. Bài viết này nhằm nêu lên tầm quan trọng của việc học code (nhất là các ngôn ngữ mã nguồn mở) càng sớm càng tốt, thông qua trải nghiệm của bản thân. Khối KHTN-kỹ thuật thì không nói, nhưng thậm chí cả những bạn học và nghiên cứu về các khối ngành xã hội khác như ngôn ngữ học, sử, địa, việc viết về lập trình cũng rất có ích.

Xử lý dữ liệu và văn bản

Không chỉ kinh tế học, bất cứ ngành học nào khác ít nhiều cũng cần dùng đến dữ liệu cho 2 việc: mô tả và phân tích. Các ngành KHXH mà có sử dụng khảo sát xã hội như xã hội học (sociology), ngôn ngữ học ứng dụng (applied linguistics), chính trị (political science), tâm lý học (psychology) đều có thể dùng đến hồi quy để chứng minh giả định của mình. Trong khi đó, mô tả, vẽ biểu đồ thì mình nghĩ đến cả lịch sử cũng sẽ xài.

Ở Việt Nam thì phổ biến nhất trong xử lý dữ liệu là Stata, văn bản thì là Word, và không có nhiều người quan tâm đến việc học trình cho lắm. Nhưng thời thế thay đổi rồi các bạn ạ.

Những hạn chế của việc chỉ biết đến Stata và Word

Trước khi thuyết phục mọi người thay đổi, cần phải nói về lý do tại sao đã (tức là khuyết điểm của những công cụ trên).

Nhưng khi nói về hạn chế thì phải nói về ưu điểm đã.

Nhìn chung, Stata ùng để xử lý dữ liệu, vẽ và thực hiện các phép toán hồi quy rất mau lẹ với thao tác đơn giản. Trong hầu hết các trường hợp khi các bạn sinh viên dùng Stata thì dữ liệu đầu vào gần như đã là đẹp đủ rồi, không cần phải clean, chỉ việc nhập command để ước tính các mô hình hồi quy thôi. Cú pháp đơn giản, dữ liệu được xử lý giúp cho người dùng tập trung vào công đoạn diễn giải kết quả thu được từ Stata, thay vì mất thời gian làm những việc khác.

Word, Excel thì để soạn thảo văn bản, quá phổ biến rồi. Gõ gì ra là nhìn thấy luôn (WYSIWYG), trực quan, dễ làm. Chèn hình ảnh, crop, wrap text cũng đơn giản.

Tóm lại, những công cụ cơ bản này, mình nghĩ cần thành thạo là điều đương nhiên.

Thế nhưng, những công cụ này tồn tại một số nhược điểm.

Một, đây là hai phần mềm mất phí. Ở trường F (và hầu hết các trường đại học ở VN) đều có thể dùng Microsoft Office kèm với tài khoản trường dễ dàng rồi. Nhưng để dùng Stata, một là các bạn phải xài bản Educational (giới hạn về tốc độ xử lý cũng như khối lượng dữ liệu), hai là dùng phần mềm lậu. Nếu không muốn lậu, các bạn phải trả phí rất cao. Giả sử các bạn học hết đại học chỉ biết tới Word và Stata, tốt nghiệp thì license sử dụng cũng hết hạn, các bạn phải làm gì?

Hai, Stata và Word, trong một số trường hợp, không thật sự linh hoạt và thân thiện như các bạn tưởng. Mình sẽ nói về Stata trước. Stata rất giỏi trong xử lý structured data (nôm na là dữ liệu đã qua xử lý thô). Tất nhiên, các dữ liệu phổ biến như dữ liệu vĩ mô, các cục ban ngành quốc tế đều hầu hết được chứa ở dạng này, cứ việc import về Stata rồi phân tích thôi. Nhưng khi nói đến việc xử lý dữ liệu thô, hay phân tích vượt ra khỏi Stata, thì chắc chắn sẽ thua các ngôn ngữ khác như R hay Python cả về khả năng xử lý và tốc độ. Nhược điểm của Word nằm ở việc xử lý các văn bản đồ sộ và các văn bản có nhiều biểu thức toán học. Nếu các bạn làm luận văn, có bao giờ các bạn quên refresh table of contents (TOC) chưa, có bao giờ mất thời gian căn chỉnh lề, hay mỗi lần gõ toán là lại phải vào insert function các thứ chưa. Đó là chưa kể văn bản lớn thì nó load cũng lâu và máy yếu thì lag văng là chuyện bình thường.

Có những thứ gì ngoài kia?

Với những nhược điểm ở trên, chúng ta cần xem xem có những công cụ thay thế nào?

Trước tiên là về xử lý dữ liệu:

  • R (phần mềm: RStudio)
  • Python (phần mềm: Visual Studio Code + Jupyter Notebook, Spyder)

Nếu các bạn quan tâm đến xử lý dữ liệu (lọc, nhóm, filter, v.v..) thì R là lựa chọn hàng đầu. R có rất nhiều package cho điều này. Việc hồi quy cũng có cú pháp đơn giản. Python cũng có thể làm được điều đó, nhưng về độ trực quan và thân thiện, chắc R sẽ tốt hơn.

Về mô tả và vẽ biểu đồ (visualization), cả hai công cụ này đều ăn đứt Stata và Excel. Nếu muốn vẽ nhanh chóng thì xài Excel cũng được, nhưng nếu các bạn muốn trình bày đẹp và hơn thế nữa, thì nên biết R hoặc Python. Thậm chí, R còn có thể vẽ biểu đồ interactive nữa cơ (nghĩa là hover vào đường plot thì nó sẽ hiện lên value tại điểm đó chẳng hạn).

Ưu điểm cực lớn của hai phần mềm này là chúng miễn phí (open-source) và chúng có ích về lâu về dài. Có nghĩa là, những công cụ này không chỉ cho các bạn kết quả mà các bạn mong muốn, mà thông qua việc sử dụng chúng, các bạn sẽ hiểu được cách để xử lý dữ liệu thô cũng như làm quen với việc lập trình.

Về soạn thảo văn bản:

  • LaTeX (phần mềm: TeXStudio hoặc TeXMaker)
  • Markdown (phần mềm: Typora, Visual Studio Code, Macdown, v.v..)

LaTeX, tuy không phải ngôn ngữ gõ-là-ra-thành-phẩm như Word, nhưng nó cải thiện được những nhược điểm của Word. Thứ nhất, nó miễn phí. Thứ hai, LaTeX nhẹ hơn, có thể thao tác văn bản đồ sộ dễ dàng. Tức là, các bạn sẽ gõ dưới dạng plain text, theo cú pháp của LaTeX, và sau khi cho qua một phần mềm chuyên dụng, nó sẽ biên dịch plain text đó thành một văn bản pdf hoàn chỉnh. Cú pháp của LaTeX dễ hiểu, gần gũi, các bạn sẽ không phải mất thời gian đi lo mấy thứ linh tinh như TOC, căn lề, v.v.. giúp bạn tập trung vào nội dung văn bản. Thứ ba, LaTeX xử lý các biểu thức toán rất tốt, thậm chí cú pháp của nó đã trở thành chuẩn mực trong giới nghiên cứu.

Markdown, cũng giống LaTeX, là hệ thống cú pháp gõ văn bản. Nó giống như phiên bản thân thiện của HTML ấy. Cú pháp cũng đơn giản, dễ học. Ưu điểm của nó là nếu các bạn muốn gõ nhanh một thứ gì đó, thay vì mở Word lên, vừa nặng vừa tốn tài nguyên, các bạn có thể dùng các editor khác mà có khả năng biên dịch Markdown, nhanh hơn nhiều.

Cá nhân mình thấy những công cụ này chưa được các bạn học KHXH ở VN chú trọng đến. Như ở Nhật Bản, hay Trung Quốc, người ta dạy R và khuyến khích sinh viên dùng LaTeX từ lâu rồi. Bởi vì làm chủ Stata hay Word không tiêu tốn của các bạn 4 năm đại học. Thời gian còn lại, các bạn có thể học thêm về R, Python, LaTeX, HTML/Markdown, làm quen dần với chúng. Những thứ này không khó học, mà lại có tính hữu dụng và ứng dụng cao nữa.

Bàn về học lập trình

Đúng là không biết lập trình không chết được, nhưng nếu muốn đi xa, học xa thì phải biết về nó.

Kể cho các bạn nghe về giáo sư của mình. Trước đây, cái thời mà máy tính vẫn chưa phổ cập như bây giờ, các nghiên cứu về kinh tế chỉ dừng lại ở lý thuyết, dùng bút chì và giấy để giải thôi. Thời đó có rất ít khả năng ứng dụng và kiểm chứng lý thuyết vào thực tế vì chưa có computational power. Nhưng từ một thập kỷ trở lại đây, mọi chuyện thay đổi hoàn toàn. Thày mình cũng phải mài dũa thêm lập trình (bằng MATLAB), ở tuổi 40. Bởi vì nếu không biết lập trình, thì các bạn chỉ còn biết tính tay hoặc thông qua Excel thôi, khổ lắm. Các bạn bên ngôn ngữ học cũng vậy, bây giờ máy tính có thể xử lý tách lọc chữ rất tốt, nên những ai làm về các mảng như comparative study, tìm mối liên kết giữa các ngôn ngữ với nhau, biết lập trình thì tha hồ mà xử lý, phân tích theo ý mình muốn.

Nhìn lại bản thân, dù là học về xã hội học (thực ra kinh tế lai giữa toán ứng dụng và xã hội học rồi), biết lập trình có rất nhiều lợi thế. Mình chỉ ước thời đại học dành ra năm 3 và năm 4 học lập trình để không bị mất thời gian học từ đầu như hồi năm nhất Thạc sĩ. Mình thấy việc biết một ngôn ngữ đa dụng như Python có 3 ưu điểm sau.

Thứ nhất, nó trực tiếp phục vụ việc học và nghiên cứu. Trong kinh tế học thì chúng mình ta xây dựng mô hình lý thuyết xong, thì sẽ viết code để giả lập mô hình đó, kiểm tra xem mô hình như thế đã đúng chưa. Viết xong code, chạy xong thấy kết quả sai sai thì phải đối chiếu lại lý thuyết, lý thuyết đúng mà chạy thấy sai sai thì cũng cần xem lại code. Nói chung hai việc này tương hỗ và bổ trợ lẫn nhau. Trong nhiều trường hợp, nó giúp các bạn dễ dàng thử nghiệm với các tham số khác nhau. Ban đầu mình đã thử dùng Excel các bạn ạ, và mặc dù ở khía cạnh nào đó, Excel đáp ứng được chứ không phải không, nhưng tính reproducibility hay tính tiện dụng thì hoàn toàn không.

Thứ hai, việc biết lập trình giúp các mình nâng cao khả năng suy nghĩ và tự lập. Như kiểu, code nó không tự mọc ra ngay, cũng không phải viết đúng ngay lần đầu. Tính kế thừa là rất cao. Kiểu như bản nháp đầu tiên thì chỉ test xem nên tính toán thế nào. Sau đó viết ra nhiều function để thực hiện nhiệm vụ gì đó. Sau đó có thể nhét các function vào một Class, để khi bạn muốn chạy mô phỏng cho nhiều đối tượng khác nhau, chỉ cần gán nó vào Class đó là được. Muốn làm thế, thì sẽ cần suy nghĩ xem viết thế nào, làm gì trước, dùng vòng lặp như nào, không biết thì lên Google các thứ. Việc rèn luyện này giúp mình suy nghĩ có công đoạn hơn. Nghĩa là, muốn làm cái này thì nên làm cái gì trước, muốn làm cái thì dùng technique nào. Tự lập thì là vì sau khi nắm được tính cơ bản của lập trình rồi, mai này muốn xử lý dữ liệu, muốn visualize data, muốn mô phỏng mô hình, đều có thể tự làm được, miễn là có phương pháp đúng, vì công cụ ta đã có rồi.

Thứ ba, là lập trình giúp mình học được nhiều thứ hơn. Giờ thì biết Python là gì rồi, hướng đối tượng là gì rồi, biết Git xài như nào rồi, biết thêm một số thuật toán, biết vì sao nghề lập trình khổ rồi, biết lập web cần những công đoạn nào rồi, biết vẽ biểu đồ rồi (không cần đi copy trên mạng nữa), hiểu vì sao họ viết code như này mà không phải như thế kia rồi, biết cách lấy dữ liệu trên mạng và vọc vạch rồi, v.v.. Mà biết nhiều thứ hơn sẽ giúp chúng ta thấy tự tin hơn, không sợ sệt gì nữa.

Kết

Ở Nhật Bản, Trung Quốc hay các nước bạn, sinh viên đã tiếp cận R, LaTeX từ những năm đầu tiên rồi. Còn về lập trình, người ta đã dạy về Python ở cấp hai, cấp 3 rồi. Nên trong thời đại bây giờ, dù là học KHXH đi chăng nữa, mình nghĩ cần có tư tưởng tiếp xúc và học hỏi những cái mà thế giới họ đang học, để không bị bỏ lại. Mặt khác, những công cụ này vừa hữu dụng, có tính bền lâu, lại cho chúng ta rèn luyện những kỹ năng cần thiết nữa, nên chắc chắn các bạn sẽ tiến bộ hơn rất nhiều khi sớm làm chủ những công cụ này.

Để lại bình luận

Điền thông tin vào ô dưới đây hoặc nhấn vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google photo

Bạn đang bình luận bằng tài khoản Google Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s

Trang web này sử dụng Akismet để lọc thư rác. Tìm hiểu cách xử lý bình luận của bạn.