03/12/2018, 22:04

NHỮNG KĨ NĂNG CHO LẬP TRÌNH VIÊN TỰ HỌC VÀO CUỐI TUẦN

Lập trình viên luôn luôn phải học hỏi để trau dồi thêm kiến thức và việc tự học để nâng cao kỹ năng là một điều hết sức cần thiết. Những kĩ thuật mới, các công nghệ mới sẽ giúp bạn rất nhiều trong sự nghiệp lập trình của mình, đặc biệt là mảng lập trình web. Hơn nữa, một điều ...

Lập trình viên luôn luôn phải học hỏi để trau dồi thêm kiến thức và việc tự học để nâng cao kỹ năng là một điều hết sức cần thiết. Những kĩ thuật mới, các công nghệ mới sẽ giúp bạn rất nhiều trong sự nghiệp lập trình của mình, đặc biệt là mảng lập trình web.


Hơn nữa, một điều thú vị nữa là đa số các kĩ năng đó có thể được học hỏi và trau dồi chỉ trong vài buổi cuối tuần. Nếu bạn có một vài ngày rảnh rỗi thì đây là danh sách các kĩ năng cơ bản mà bạn nên thử sức.

XEM THÊM: Các diễn đàn quản trị mạng hay ho dành cho bạn

1. Phép màu từ việc quản lý phiên bản (version control)

Nếu chưa từng sử dụng hệ thống quản lý phiên bản nào, bạn có thể đã gặp rắc rối khi lỡ thay đổi code rồi hối hận muốn “quay ngược thời gian” để có được phần code cũ. Hoặc có lẽ, cách quản lý phiên bản hiện tại của bạn chỉ là thêm 1 hậu tố sau tên file, như index_17.html chẳng hạn.

Việc sử dụng 1 hệ thống quản lý phiên bản sẽ cho phép bạn lấy lại một phiên bản bất kì: từ cách đây vài giờ đến cách đây vài tháng. Hãy tưởng tượng 1 hệ thống quản lý thô sơ như khi bạn sử dụng Google Drive, bạn có thể phục hồi lại các phiên bản cũ của 1 file tùy ý khi file đó có các sự thay đổi.

Nếu bạn phân vân giữa các hệ thống quản lý phiên bản thì hãy xem bài tổng quan tình hình của các hệ thống thông dụng của năm 2014 tại SitePoint. Về cá nhân mình thích các hệ thống quản lý phiên bản phân tán như Git hay Mercurial hơn, và cũng 1 phần là mình thích các phần mềm nguồn mở. Bạn có thể xem thêm hướng dẫn bắt đầu với Git và cách hướng dẫn xài Git cho các dự án nguồn mở.

2. Bí mật của các trình soạn thảo (text editor)

Nếu bạn thường làm việc trên môi trường dòng lệnh (terminal), bạn có thể làm quen với VIM hay Emacs. Nếu không thì Sublime Text hay TextMate for Mac là các lựa chọn tốt.

Một số trình soạn thảo cho phép bạn tăng cường sức mạnh với các plugins (trình cắm) và extensions (tiện ích mở rộng). Đây là danh sách các trình cắm cần thiết cho Sublime Text cho 1 lập trình viên hướng full stack.

3. Sức mạnh của SQL

Một ứng dụng cần lưu trữ dữ liệu sẽ cần chọn file hoặc cơ sở dữ liệu (CSDL). Các ứng dụng web thường sử dụng CSDL cho nhu cầu lưu trữ, do sử dụng nhanh và dễ dàng truy vấn hơn khi lưu file.

SQL (Structured Query Language – ngôn ngữ truy vấn có cấu trúc) là một ngôn ngữ được viết riêng cho việc truy vấn dữ liệu từ 1 CSDL. Tuy nhiên, các kiến thức cơ bản về SQL vẫn là chưa đủ để bạn có thể xây dựng những ứng dụng web phức tạp (có sử dụng nhiều bảng hơn, hay thậm chí nhiều CSDL ở nhiều server khác nhau).

4. Các bí ẩn của NoSQL

NoSQL là viết tắt của Not Only SQL là các hệ CSDL có cách tổ chức dữ liệu khác với dạng bảng truyền thống của các hệ CSDL SQL. Các CSDL NoSQL sẽ được xây dựng với 2 mục đích là tính khả dụng cao (khi làm việc với lượng lớn dữ liệu) và tăng trưởng theo chiều ngang (horizontal scaling). Về mặt truy vấn dữ liệu, NoSQL thường có ngôn ngữ truy vấn giống SQL.

Các CSDL NoSQL được được phân lớp theo cách mà chúng tổ chức dữ liệu. Dù một số công ty lớn như Quora không dùng NoSQL, nhưng các startup lại rất chuộng, đặc biệt khi họ cần xử lý lượng lớn dữ liệu.

5. Thoải mái sử dụng terminal

Có nhiều thao tác nếu sử dụng ở terminal sẽ nhanh hơn nhiều khi làm trên giao diện người dùng GUI. 1 trường hợp cụ thể như khi bạn cần tìm kiếm 1 chuỗi kí tự trên hàng ngàn file và thay thế nó bằng 1 giá trị khác chỉ trong vài giây. Ngoài ra, còn 1 số lý do khác thể hiện sức mạnh của terminal trên các hệ thống nền Unix có thể được theo dõi ở đây.

Nếu bạn thường làm việc trên các hệ thống server ở xa, bạn càng cần phải trau dồi kĩ năng làm việc trên terminal. Đồng ý là bạn có thể sử dụng giao diện GUI để làm việc tiện hơn, nhưng terminal sẽ luôn thao tác nhanh hơn. Hơn nữa, terminal cũng tiết kiệm băng thông của bạn hơn GUI, vì thật ra dữ liệu trao đổi qua lại chỉ là các chuỗi kí tự thôi.

Để làm quen với terminal, hãy thử duyệt file và thực hiện các thao tác cơ bản như sao chép, di chuyển các file. Dần dần, bạn sẽ quen thuộc và có thể thực hiện một số thao tác nâng cao nhanh hơn chỉ với vài câu lệnh, mà không cần phải click chuột 1 nùi như trên GUI nữa.

6. Nắm quyền điều khiển server

Bản chất công việc của 1 lập trình viên thường đòi hỏi bạn đưa code lên một server và cấu hình để nó hoạt động theo ý bạn muốn.

Khi bạn đã quen với việc sử dụng terminal, bạn nên thử thách mình bằng cách tự cấu hình và thao tác trên server.

Mặt khác, bạn có thể sử dụng 1 giải pháp trên cloud. Amazon Web Services (AWS) cung cấp 1 giải pháp nhỏ trên cloud và hoàn toàn miễn phí (bạn chỉ cần cung cấp thông tin thẻ tín dụng là đủ). Các dịch vụ khác bạn có thể thử như Microsoft Azure, Openshift RedHat hay Digital Ocean. Nếu bạn muốn xài thử AWS thì có thể làm theo bài hướng dẫn của chính Amazon tại đây. Khi đã tạo xong, bạn có thể đăng nhập vào thông qua SSH và sử dụng terminal như bình thường.

7. Hoàn thiện code của bạn với Unit Test

Một khía cạnh quan trọng của lập trình chính là Unit Test. Khi làm việc với 1 dự án lớn, bạn không thể cứ code hết tất cả và mong đợi vào việc “bấm phát chạy ngay“. Sẽ tốt hơn nếu bạn chia code thành từng phần chức năng nhỏ và viết test riêng cho từng phần đó.

8. Markdown tuyệt vời

Markdown được đề cập cuối cùng vì nó không phải ảnh hưởng trực tiếp đến kĩ năng cũng như cách thức bạn code. Tuy vậy, đây là 1 kĩ năng rất tuyệt cho các lập trình viên mã nguồn mở, cho blogger hay những người thường xuyên biên tập trên web.

Markdown là 1 công cụ để chuyển từ văn bản đơn thuần sang HTML một cách nhanh chóng và dễ sử dụng. Việc định dạng hay tùy chỉnh được thực hiện ngay khi bạn viết, theo một quy tắc đơn giản đã quy định trước. Một ứng dụng phổ biến của Markdown chính là các file README trên GitHub hay BitBucket. Markdown cũng được sử dụng chính trong Ghost, một nền tảng blog mới nổi gần đây vì tính đơn giản và thiết kế trang nhã.

Học bảo mật, ANM từ chuyên gia an ninh mạng Bùi Quang Minh

0