post-image

Lộ Trình Toàn Tập Cho Back-end Developer Năm 2021

Tổng quan

Trong bài trước đó, mình đã cung cấp cho bạn Lộ trình hoàn chỉnh để trở thành Front-End Developer năm 2020. Và giữ đúng lời hứa, bài tiếp theo đây sẽ là về vị trí Back-End với những lời khuyên, gợi ý hữu ích nhất, giúp các bạn có một con đường rõ ràng, thuận lợi nhất để tiến đến vị trí Back-End Dev đầy thử thách.

*Lưu ý: Trước khi bắt đầu, lộ trình này đòi hỏi bạn phải có những hiểu biết tối thiểu và cách sử dụng HTML/CSS cơ bản.

Bước 1: Ngôn Ngữ Lập Trình


Có vô số những lựa chọn khi bạn muốn học một ngôn ngữ lập trình. Các loại ngôn ngữ được chia ra để bạn dễ dàng quyết định hơn. Với những người mới bắt đầu, bạn nên chọn ngôn ngữ Scripting bởi tính phổ biến của chúng sẽ giúp bạn có thể học hỏi và tiến bộ nhanh hơn. Nếu bạn có kiến thức về Front-End thì Node.js sẽ là một lựa chọn không tồi.

Nếu bạn đang làm về Back-end rồi và đã biết 1 số ngôn ngữ Scripting, bạn không nên chọn học thêm 1 ngôn ngữ cùng nhóm nữa mà nên học thêm 1 ngôn ngữ thuộc nhóm Functional hoặc Multiparadigm để mở rộng hiểu biết và giúp bạn có cái nhìn rộng hơn. Ví dụ, nếu đã biết về PHP hay Node.js, đừng học Python hay Ruby nữa mà hãy học Erlang, Golang…

Một số dự án nhỏ mà bạn có thể dùng để luyện tập:

  • Triển khai một số lệnh mà bạn có thể sử dụng, ví dụ như thực hiện chức năng của ls
  • Viết lệnh tìm nạp và lưu các bài đăng Reddit trên /r/ lập trình dưới sạng tệp JSON
  • Viết lệnh cung cấp cấu trúc thư mục ở định dạng JSON
  • Viết lệnh đọc JSON từ bước trên và tạo cấu trúc thư mục
  • Nghĩ thêm 1 số task khác mà bạn thường làm và tự động hóa chúng

Bước 2: Package Manager (PM) và bảo mật


Khi bạn đã hiểu những kiến thức cơ bản của một ngôn ngữ và có thể tạo ra 1 số ứng dụng, hãy tìm hiểu cách sử dụng PM cho ngôn ngữ đó. PM giúp bạn sử dụng các thư viện bên ngoài trong các ứng dụng và phân phối thư viện của bạn để người khác có thể sử dụng.

Nếu bạn chọn PHP, bạn cần học thêm về Composer, Node.Js có NPM hoặc Yarrn, Python có Pip còn Ruby thì là RubyGems. Học cách sử dụng PM là yêu cầu tối quan trọng trong đối với vị trí Back-End Developer.

Đảm bảo rằng bạn đã học và nắm chắc các kiến thức về bảo mật. Hướng dẫn OWASP là một trong những tài liệu bạn nên đọc thật kĩ để hiểu rõ các vấn đề bảo mật khác nhau và tránh mắc phải khi sử dụng ngôn ngữ lập trình mà bạn đã chọn.

Sau khi đã có những kiến thức cơ bản từ 2 bước trên, bạn cần tích cực tập luyện, bám thật sát theo những tiêu chuẩn đã đề ra. Nếu học PHP, bạn cần chạy trên Packagist; hoặc Npm registry nếu bạn chọn Node.Js…

Bạn có thể tìm kiếm 1 số project trên Gitbub và mở một số yêu cầu trong dự án, ví dụ như:

  • Tái cấu trúc và thực hiện các task mà bạn đã học
  • Thử giải quyết các vấn đề mở
  • Thêm các chức năng bổ sung
    ….

Bước 3: Test


Có rất nhiều kiểu test khách nhau tùy thuộc vào mục đích của người dùng. Tuy nhiên, bạn nên học cách viết Unit test và Interdration test trong ứng dụng của mình, cũng như hiểu về các thuật ngữ test khác nhau như mocks, stubs…
Đối với phần này, bạn có thể luyện tập bằng cách viết unit test cho các task đã làm trước đó, đồng thời tìm hiểu và tính toán phạm vi cover cho các test đã viết.

Bước 4: Relational Database


Tìm hiểu các duy trì dữ liệu của bạn trong Relational Database. Trước khi bạn chọn 1 công cụ để học, bạn cần hiểu các thuật ngữ cơ sở dữ liệu khác nhau như key, index, chuẩn hóa, bộ dữ liệu… Những kiến thức bạn nên học gồm có MySQL. MariaDB và PostgreQuery. Bạn nên bắt đầu với MySQL để có thể tiếp cận dễ hơn trong những phần sau đó.

Để luyện tập, bạn có thể tạo ra 1 số ứng dụng blog đơn giản như:

  • Tài khoản – Đăng nhập và đăng ký
  • Tạo blog cho các tài khoản đã đăng ký
  • Xem tất cả các bào blog đã tạo
  • Chức năng xóa bài
  • Chức năng chỉ xem được tài khoản của mình
  • Tạo Unit/Intefration Test cho app
  • Apply index cho truy vấn, phân tích các tuy vấn để xem index nào có thể sử dụng được

Bước 5: Framework

Phụ thuộc vào ngôn ngữ và dự án mà bạn chọn, bạn có thể cần hoặc không cần đến framework. Mỗi ngôn ngữ có những lựa chọn khác nhau, nên bạn cần xem xét ngôn ngữ của mình để chọn framework cho phù hợp.
Đối với PHP, bạn nên chọn Laravel hoặc Symfony, còn với micro-framework thì nên chọn Lumen hoặc Slim. Nếu bạn học Node.js, Express.js là một trong những lựa chọn tốt nhất.

Để luyện tập, bạn có thể chuyển đổi các chức năng/ứng dụng đã làm ở trên và sử dụng các framework đã học. Luôn chắc rằng có test.

Bước 6: 1001 những thứ khác cần học

Đây là 1 bước rất dài mà với mỗi nội dung, bạn hoàn toàn có thể tách ra thành 1 phần quan trọng để học và nghiên cứu. Nhưng để trình bày cho đẹp, mình sẽ gom lại thành 1 bước và trình bày dưới đây.

NoSQL Database


Trước tiên, bạn cần hiểu rõ NoSQL Database là gì, nó khác gì so với relational Database và tại sao chugns ta lại cần dùng đến nó. Có rất nhiều các lựa chọn khác nhau, bởi thế bạn cần nghiên cứu và so sánh các tính năng và điểm khác biệt giữa chúng để chọn ra cái mình nên học.
Ở đây, có 1 số loại khá phổ biến như MongoDB, Cassandra, RethinkDB, Couchbase. Nhưng chúng tôi khuyên bạn nên bắt đầu với MongoDB.

Cache


Tìm hiểu cách triển khai caching trong các ứng dụng của bạn. Hiểu cách sử dụng Redis hoặc Memcached và triển khai cache trong ứng dụng mà bạn đã xây dựng.

Tạo RESTful APIs


Hiểu về REST, học cách tạo API RESTful và đảm bảo rằng bạn đã nắm rõ các phần về REST từ tài liệu gốc của Roy Fielding.

Các phương pháp xác thực


Tìm hiểu về các phương pháp xác thực (Authentication) và ủy quyền (Authorization) khác nhau để nắm được chúng là gì, khác nhau như thế nào và khi nào nên ưu tiên sử dụng từng loại:
OAuth – Xác thực mở
Basic Authentication – Xác thực cơ bản
Token Authentication – Xác thực mã thông báo
JWT – Mã thông báo web JSON
OpenID

Message Brokers


Tìm hiểu về các message broker và nắm được khi nào và tại sao nên sử dụng chúng. Có nhiều lựa chọn nhưng một trong những lựa chọn phổ biến nhất là RabbitMQ và Kafka. Chúng tôi khuyên bạn nên chọn RabbitMQ.

Công cụ Tìm kiếm (Search Engines)


Khi ứng dụng phát triển, các truy vấn đơn giản trên relational database hoặc NoSQL database sẽ không được cắt ra và cần dùng đến công cụ tìm kiếm. Có nhiều lựa chọn và mỗi cái đều có 1 sự khác biệt riêng.

Docker


Docker có thể hỗ trợ bạn rất nhiều trong quá trình phát triển với các tính năng sao chép môi trường sản xuất, giữ hệ điều hành sạch sẽ hay tiến hành mã hóa, thử nghiệm hoặc triển khai.

Web Server


Việc học cách giải quyết với các máy chủ trong các bước trước là một điều vô cùng cần thiết. Tìm hiểu về web server chủ yếu là tìm ra sự khác biệt giữa các máy chủ khác nhau, biết các giới hạn và các tùy chọn cấu hình có sẵn khác nhau và biết cách viết các ứng dụng có thể tối ưu các hạn chế này.

Web Socket


Mặc dù không bắt buộc, nhưng web socket sẽ khá hữu dụng cho bạn. Tìm hiểu cách viết các ứng dụng real-time web với web socket và viết một số ứng dụng với những gì đã học được. Bạn có thể sử dụng trong ứng dụng blog mà bạn đã tạo trước đó để thực hiện cập nhận theo real-time trên danh sách bài đăng blog.

GraphQL


Tìm hiểu cách tạo API bằng GraphQL, hiểu được nó khác với REST như thế nào và tại sao nó lại được gọi là REST 2.0.

Graph Database


Mô hình Graph rất linh hoạt khi xử lý các mối quan hệ trong data, và graph database cung cấp lưu trữ, truy xuất và truy vấn nhanh, hiệu quả. Bạn nên học về Neo4j hoặc OrientDB

Bước 7: Không ngừng khám phá


Một khi bạn đã bắt đầu học hỏi và khám phá, bạn chắc chắn sẽ bắt gặp những điều hoàn toàn mới lạ chẳng hề có trong Lộ trình này. Nhưng đừng lo, hãy luôn giữ một tinh thần cởi mở và luôn khao khát học hỏi những điều mới mẻ.

Và hãy nhớ rằng, chìa khóa của sự thành công chính là luyện tập không ngừng. Có thể hành trình đó sẽ càng ngày càng đáng sợ, bạn sẽ cảm thấy mình chẳng thể nắm bắt được điều gì, nhưng cũng đừng hoảng sợ, điều đó là bình thường và ai đi theo con đường này rồi cũng sẽ trải qua. Kiên trì học hỏi và rèn luyện, rồi bạn sẽ thấy tốt hơn.

*Lộ trình hoàn chỉnh cho Back-End Developer năm 2020

Tổng kết

Cảm ơn các bạn thật nhiều vì đã kéo đến tận đây. Back-End Developer quả là một hành trình rất dài và chông gai. Có quá nhiều thứ phải học, và kiến thức thì luôn thay đổi mỗi ngày. 

Hi vọng bài viết này sẽ cung cấp cho các bạn được một chút định hướng cho lộ trình tương lai của mình, để con đường chinh phục Back-End của bạn sẽ nhẹ nhàng đi đôi chút. Và đừng quên rằng, Practice Makes Perfect! Luôn giữ vững quyết tâm và luyện tập không ngừng nhé!

Nếu có thắc mắc hay góp ý gì, đừng ngại comment. Cảm ơn các bạn vì đã đọc!

Nguồn: https://codelearn.io/sharing/lo-trinh-toan-tap-cho-back-end-developer-nam-2020

Leave a Reply

Your email address will not be published.