Những thứ mình đã học trong năm 2018

Ở bài trước, mình đã tự “bóc phốt” những thứ mình chưa biết trong năm 2018, để chia sẻ với bạn đọc rằng ai cũng có điểm giỏi điểm yếu, không có ai cái gì cũng biết cả!

Tuy nhiên, sau khi ngẫm lại, bên cạnh những thứ mình chưa biết, mình cũng học hỏi được thêm khá nhiều thứ hay ho. Do vậy, mình viết bài này để tổng kết những thứ mình đã được học, được biết thêm trong năm 2018 nhé!

Công nghệ mới mình đã học

VueJS

VueJS là một trong 3 framework JavaScript phổ biến nhất hiện tại (chỉ sau React và Angular), hiện tại số sao trên Github của nó còn cao hơn React.

Do nghe đồn là VueJS rất dễ học, đơn giản tinh gọn nên mình cũng tò mò học thử. Quả là đúng như lời đồn, nếu đã quen với AngularJS hoặc React thì chỉ cần học 1, 2 tuần là bạn đã có thể tạm nắm vững VueJS và code như bay được rồi.

Tranh thủ vừa học vừa làm, mình code ra 1 cái game Bầu Cua bằng VueJS và trang admin của ChatBot Codergangvn bằng Vue luôn.

Game bầu cua viết bằng VueJS

 

Electron

ElectronJS là một công nghệ giúp ra viết ứng dụng Cross-Platform, chạy trên mọi nền tảng sử dụng NodeJS + HTML/CSS/JS. Có rất nhiều ứng dụng phổ biến viết bằng Atom như Slack, VS Code, Atom…Do công ty cần viết ứng dụng Desktop nên mình và CTO quyết định dùng Electron để viết luôn. Về cơ bản cũng không quá phức tạp, chỉ cần dùng HTML CSS làm giao diện, dùng JS hoặc Node runtime để đọc file, thực hiện các tác vụ khác là được.

Mình học được đủ trò từ cách auto build ứng dụng trên Windows và Linux, cho tới cách chạy auto-update để tự update lên phiên bản mới.

 

ELK Stack

ELK Stack là tập hợp 3 phần mềm đi chung với nhau, phục vụ cho công việc logging. Ba phần mềm này lần lượt là:

  • Elasticsearch: Cơ sở dữ liệu để lưu trữ, tìm kiếm và query log
  • Logstash: Tiếp nhận log từ nhiều nguồn, sau đó xử lý log và ghi dữ liệu và Elasticsearch
  • Kibana: Giao diện để quản lý, thống kê log. Đọc thông tin từ Elasticsearch

Hôm trước mình đã có viết một bài giới thiệu về ELK stack rồi, các bạn xem lại nhé.

elk-stackDo ứng dụng của mình được chạy ở khá nhiều máy và server, rất khó để quản lý log và monitor ứng dụng. Do vậy, mình phải tìm hiểu về ELK Stack, setup stack để có thể gom log về 1 chỗ cho dễ xử lý và monitor.

 

Docker + Kubernetes

Do nhu cầu của dự án, cần chuyển 1 số VM chạy từ Windows sang Linux, cần giảm chi phí của Azure Cloud nên mình cũng có vọc vạch thử Docker.

Trước đây mình cũng có tìm hiểu Docker, nhưng chỉ xem cho biết chứ không áp dụng được nhiều nên cũng không hiểu sâu lắm.

Gần đây, nhờ phải tìm hiểu cho công việc, mình phải viết Dockerfile, build image rồi tìm cách chạy nó trong môi trường thực tế, mở port, limit CPU, RAM, Disk v…v. Vừa nghịch vừa học nên cũng học được khá nhiều.

Học Docker + Kubernetes, các bạn sẽ hiểu mấy anh DevOps làm gì

Sau đó, yêu cầu của dự án là phải chạy và tạo Container thông qua API, scale được trên nhiều máy. Thế là mình phải vác đít đi tìm hiểu Kubernetes, deploy hệ thống lên Kubernetes của Google luôn.

(Ban đầu xài Azure mà Kubernestes của Azure sida với lỗi suốt nên chuyển qua Google luôn, rẻ hơn khoảng 30% mà lại ổn định)

Vài thứ lặt vặt khác

Command line và Linux

Từ hồi dùng laptop Mac, kĩ năng command line của mình cũng tăng lên khá nhiều.

Do năm nay mình được giao nhiều trọng trách hơn, lâu lâu được vọc mấy con Linux trên môi trường Staging của công ty để cài app, chỉnh reverse proxy nên cũng nắm được một số kiến thức quản lý Linux server lẫn chạy command line luôn.

Dùng thành thạo Command Line bạn sẽ thấy mình ngầu như nắc cờ

 

Vim

Trước đây mình cũng từng thử học Vim nhưng một hồi nản lại bỏ vì thấy khá là sida khó nhớ!

Gần đây mình xài Vim nhiều hơn, khi đọc và chỉnh sửa file trên Linux server phải xài Vim, mình cài luôn Vim Mode vào Chrome và VS Code để dùng code cho tiện tiện.

Giờ thì kĩ năng Vim cũng mình vẫn chỉ ở mức tàm tạm, nhưng cũng đủ để tăng năng suất công việc của mình lên khá nhiều (xóa line dùng dd, nhập dòng dùng J, đổi ngoặc dùng ci …).

Trong năm nay mình sẽ cố gắng dùng nhiều hơn, thành thục hơn. Các bạn cũng nên thử dùng Vim xem sao nhé!

 

Domain Knowledge về Stock Market

Bên cạnh kiến thức về kĩ thuật, kiến thức chuyên môn về lĩnh vực mình đang làm cũng rất quan trọng nhé!

Do sản phẩm của công ty là về stock, mình phải đọc và hiểu về các khái niệm trong thị trường chứng khoán, các kiểu khớp lệnh, thời gian hoạt động của thị trường, cách đọc biểu đồ (chart) giá stock.

Ngoài ra, mình mới biết được là trong ngành algorithmic trading (trading dựa trên thuật toán), có một khái niệm gọi là backtesting, tức cho thuật toán đó chạy với dữ liệu trong 10-20 năm gần nhất để kiểm tra xem nó có lợi nhuận hay không.

Khá là nhiều thứ hay ho luôn!

Giờ mình mới biết đọc biểu đồ stock, nó có hình dạng như vậy là có lý do cả

Kết

Bên cạnh đó, mình còn học được một số kĩ năng mềm, kĩ năng tranh luận, cách lấy requirement khi quan sát CTO và Product Manager làm việc.

Các bạn thấy đấy, mặc dù đã đi làm vài năm, nhưng mình vẫn thấy có rất nhiều điều mình có thể học được trong quá trình làm việc.

Do vậy, nếu cảm thấy đã 2, 3 năm mà mình không phát triển được, không học được thêm gì mới, hãy xem lại bản thân hoặc tìm môi trường tốt hợp để mình phát triển nha.

5 thoughts on “Những thứ mình đã học trong năm 2018”

  1. Mình cũng đang xây dựng roadmap dành 2 tiếng để học cái mới như bạn. Vì hiện nay mình đi làm cũng dành hết 8 tiếng vừa làm vừa nghiên cứu thêm trong Back-end (c#), bạn có kinh nghiệm gì để học thêm về Back-end ko?

    Like

  2. em cũng đang chuyển sang dùng vim+tmux mà thấy khoản config phím tắt này nọ cũng hơi lằng nhằng. :v hy vọng tương lai sẽ bỏ đc cái bàn rê chuột và dùng trackpoint :v. À em xem trên youtube có ông Luke Smith làm mấy trò về vim + terminal khá hay 😀

    Liked by 1 person

  3. Không biết đến bao giờ electron được M$ đưa vào Visual Studio để kéo thả như WPF nhỉ, biết js mà code giao diện mệt nên lười :v.

    Like

Leave a comment