8 kĩ năng cần thiết cho lập trình viên tự học vào cuối tuần [NEW]

Vì bài viết này khá hữu ích nên Karmi Phúc đã dịch từ SitePoint để các bạn tham khảo.

Một lập trình viên, cho dù có kinh nghiệm đến đâu, vẫn cần phải học hỏi thêm, bởi vì không bao giờ thiếu những thứ mới để học. Những kỹ thuật mới, công nghệ mới sẽ giúp ích cho bạn rất nhiều trong sự nghiệp lập trình, đặc biệt là lập trình web.
Hơn nữa, điều thú vị là hầu hết những kỹ năng đó có thể được học và mài dũa chỉ trong vài ngày cuối tuần. Nếu bạn có một vài ngày để rảnh rỗi, đây là danh sách các kỹ năng cơ bản mà bạn nên thử:

1. Sự kỳ diệu của kiểm soát phiên bản

8 kĩ năng cần thiết cho lập trình viên tự học vào cuối tuần [NEW]

Nguồn: Hướng dẫn kiểm soát phiên bản

Nếu chưa từng sử dụng hệ thống quản lý phiên bản, bạn có thể gặp rắc rối khi vô tình thay đổi mã của mình và hối hận vì muốn “quay ngược thời gian” để lấy mã cũ. Hoặc có thể, quản lý phiên bản hiện tại của bạn chỉ là thêm một hậu tố sau tên tệp, như index_17.html Như là.

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

Nếu bạn đang do dự giữa các hệ thống quản lý phiên bản, hãy xem tổng quan năm 2014 của chúng tôi về các hệ thống phổ biến tại SitePoint. Cá nhân tôi thích các hệ thống quản lý phiên bản phân tán như Git hoặc Mercurial, và một phần tôi thích phần mề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 sử dụng Git cho các dự án mã nguồn mở.

Nếu bạn muốn có bài hướng dẫn Git bằng tiếng Việt, Thachpham.com sẽ viết sau khi hoàn thành loạt bài cơ bản về VPS.

2. Bí mật của người soạn thảo văn bản

text-editor-chart

Nguồn: Trang web của Manuel

Hầu hết thời gian của một lập trình viên thường là ngồi trước màn hình máy tính và nhìn chằm chằm vào một biên tập viên. Tùy theo nhu cầu và môi trường phát triển của mỗi người mà việc lựa chọn editor cũng khác nhau. Tuy nhiên, dù là trình soạn thảo nào thì bạn cũng nên dành thời gian để học cách sử dụng nó chuyên nghiệp hơn, cũng như tìm hiểu các mẹo hay cách sử dụng hay ho khác.

Nếu bạn thường làm việc trong môi trường dòng lệnh (thiết bị đầu cuối), bạn có thể quen với VIM đẹp Emacs. Nếu không Văn bản tuyệt vời đẹp TextMate dành cho Mac là những lựa chọn tốt.

Một số trình chỉnh sửa cho phép bạn tăng sức mạnh với các plugin và tiện ích mở rộng. Đây là danh sách các plugin Sublime Text cần thiết cho một nhà phát triển ngăn xếp đầy đủ.

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

sql-truyện tranh

Nguồn: XKCD

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

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

Nếu bạn quan tâm đến SQL, tôi khuyên bạn nên đọc cuốn sách Simply SQL của Ruby Limeback. Nếu bạn vẫn gặp sự cố với một số câu lệnh SQL nhất định, chỉ cần đăng lên diễn đàn SitePoint và ai đó sẽ giúp bạn ngay lập tức.

4. Những bí ẩn của NoSQL

NoSQL là viết tắt của Not Only SQL (tạm dịch: “Không chỉ SQL”) là các hệ cơ sở dữ liệu có cách tổ chức dữ liệu khác với dạng bảng truyền thống của hệ cơ sở dữ liệu SQL. Cơ sở dữ liệu NoSQL sẽ được xây dựng cho hai mục đích: tính sẵn sà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 (mở rộng quy mô theo chiều ngang). Về truy vấn dữ liệu, NoSQL thường có ngôn ngữ truy vấn giống SQL.

Cơ sở dữ liệu NoSQL được phân lớp theo cách chúng tổ chức dữ liệu. Mặc dù một số công ty lớn như Quora không sử dụng NoSQL, nhưng các công ty khởi nghiệp rất thích nó, đặc biệt là khi họ cần xử lý một lượng lớn dữ liệu.

Ở cấp độ cao hơn nữa, bạn sẽ cần phải suy nghĩ về việc phát triển cơ sở dữ liệu của mình thông qua nhân rộng và sharding.

5. Thoải mái khi sử dụng thiết bị đầu cuối (giao diện dòng lệnh)

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

Nếu bạn thường xuyên làm việc trên hệ thống máy chủ từ xa, bạn cần trau dồi kỹ năng đầu cuối của mình. Đồng ý rằng bạn có thể sử dụng giao diện GUI để làm việc thuận tiện hơn, nhưng thiết bị đầu cuối sẽ luôn hoạt động nhanh hơn. Hơn nữa, thiết bị đầu cuối cũng tiết kiệm băng thông của bạn hơn GUI, vì thực sự dữ liệu được trao đổi chỉ là các chuỗi ký tự.

Để làm quen với thiết bị đầu cuối, hãy thử duyệt tệp và thực hiện các thao tác cơ bản như sao chép và di chuyển tệp. Theo thời gian, bạn sẽ quen và có thể thực hiện một số thao tác nâng cao nhanh hơn chỉ với một vài lệnh, mà không cần phải click chuột như trên GUI nữa.

Sức mạnh thực sự của thiết bị đầu cuối nằm ở các lệnh đa dạng của nó với nhiều mục đích sử dụng. Như trong ví dụ trên, bạn có thể sử dụng sed để thay thế các ký tự trong tệp, grep để tìm kiếm và awk để thao tác tệp nâng cao hơn nữa. Nếu bạn là một Sysadmin, đây là danh sách 25 lệnh đầu cuối quan trọng và thường được sử dụng mà bạn cần biết.

Nếu bạn hoàn toàn mới làm quen với Linux, Thachpham.com có ​​một loạt các bài hướng dẫn cơ bản về VPS Linux và ở đó bạn sẽ làm quen với các dòng lệnh Linix.

6. Kiểm soát máy chủ

Bản chất công việc của một nhà phát triển thường yêu cầu bạn đặt mã trên máy chủ và định cấu hình nó hoạt động theo cách bạn muốn.

Khi bạn đã quen với việc sử dụng thiết bị đầu cuối, bạn nên thử thách bản thân bằng cách tự cấu hình và thao tác máy chủ.

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

Một lưu ý khi sử dụng AWS là Amazon giữ thông tin thẻ tín dụng của bạn. Bất kỳ lưu lượng nào vượt quá mức cho phép của giải pháp miễn phí sẽ tự động bị tính phí và trừ vào tài khoản của bạn. Do đó, hãy liên tục theo dõi quá trình sử dụng của bạn và tắt các tính năng không cần thiết nếu bạn sợ tiền mất tật mang.

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

Một khía cạnh quan trọng của lập trình là Kiểm thử đơn vị. Khi làm việc trên một dự án lớn, bạn không thể chỉ viết mã tất cả và mong đợi “bấm chơi chạy ngay bây giờ“. Sẽ tốt hơn nếu bạn chia mã thành các phần chức năng nhỏ và viết các bài kiểm tra riêng biệt cho từng phần trong số chúng.

Có nhiều phương pháp để thực hiện Unit Test, và cũng phụ thuộc vào ngôn ngữ lập trình. Tuy nhiên, ý tưởng cốt lõi luôn là: chia mã thành các phần và viết các bài kiểm tra cho chúng. Bạn có thể xem thêm:

  • Làm quen với Kiểm thử đơn vị.
  • Hướng dẫn kiểm tra đơn vị cho PHP với Guzzle.

Đừng nghĩ điều này là khó chịu, vì Unit Testing là một kỹ năng rất quan trọng và hữu ích để giảm và giải quyết lỗi. Bạn càng thực hiện kiểm tra cẩn thận, bạn càng chứng minh được tính chuyên nghiệp và chất lượng sản phẩm của bạn càng cao, đặc biệt là đối với các lập trình viên tự do.

8. Markdown tuyệt vời

đánh dấu

Markdown được đề cập sau cùng vì nó không ảnh hưởng trực tiếp đến kỹ năng của bạn hoặc cách bạn viết mã. Tuy nhiên, đây là một kỹ năng tuyệt vời cho các lập trình viên mã nguồn mở, người viết blog hoặc biên tập viên web.

Markdown là một công cụ để chuyển đổi văn bản thuần túy sang HTML một cách nhanh chóng và dễ dàng. Định dạng hoặc tùy chỉnh được thực hiện khi bạn viết, theo một quy tắc đơn giản được xác định trước. Một cách sử dụng phổ biến của Markdown là các tệp README trên GitHub hoặc BitBucket. Markdown cũng được sử dụng chủ yếu trong Ghost, một nền tảng blog mới nổi gần đây vì sự đơn giản và thiết kế trang nhã của nó. Do đó, trong thời gian sắp tới, nếu bạn là một blogger thích sự tiện lợi và muốn ưu tiên nội dung hơn là định dạng rườm rà, hãy chuyển dần sang Markdown, bạn sẽ thích nó.

Để làm quen với Markdown, hãy thực hành sử dụng các trình chỉnh sửa trực tuyến như Markable hoặc StackEdit (Tôi thích dịch vụ này, vì nó đẹp hơn và có thể đồng bộ hóa tốt với Google Drive). Nếu bạn muốn “tạm biệt” WordPress Editor để viết blog trong Markdown, hãy cài đặt plugin WP-Markdown hoặc sử dụng Jetpack.

Bạn còn chờ gì nữa? Markdown không khó nhưng rất hữu ích. Tìm hiểu ngay và luôn tại đây. Nếu bạn muốn học Markdown chuẩn quốc tế, hãy xem thêm tại đây.

Phần kết

Đây là danh sách các kỹ năng mà tôi nghĩ có thể học nhanh chóng trong vòng vài ngày cuối tuần. Có bất kỳ kỹ năng học nhanh nào mà bạn nghĩ là cần thiết nữa không? Hãy cho tôi biết trong các ý kiến ​​dưới đây.

Đánh giá nội dung này