[Youth Confessions] Lộ Trình Trở Thành Backend Developer Cho Những Ai Chưa Biết Bắt Đầu Từ Đâu (Phần 1)
Phát
triển web ngày nay đã hoàn toàn khác biệt so với những năm về trước, có rất
nhiều thứ khác nhau có thể dễ dàng cản trở bất kỳ ai tham gia vào quá trình
phát triển web. Đó là một trong những lý do khiến chúng tôi quyết định vẽ ra
một bức tranh tổng quan về lộ trình để trở thành một lập trình viên backend, để
những ai đã và đang mong muốn trở thành lập trình viên backend có được định
hướng phát triển sau này.
Trước
khi bắt đầu, các bạn phải kiến thức nhất định về HTML/CSS, mặc dù trong lộ
trình không đề cập đến nhưng mình khuyên các bạn nên ít nhất là hiểu và viết
được HTML/CSS cơ bản.
BƯỚC 1: HỌC
MỘT NGÔN NGỮ LẬP TRÌNH
Ngày
nay có rất nhiều ngôn ngữ để bạn lựa chọn. Mình chia nhỏ chúng thành các danh
mục như ảnh trên để giúp bạn quyết định dễ dàng. Đối với người mới bắt đầu,
mình khuyên các bạn nên chọn một ngôn ngữ kịch bản (scripting languages) để học
bởi vì chúng được sử dụng khá nhiều cũng như dễ học. Nếu bạn có hiểu biết về
frontend, bạn nên lựa chọn Node.js để dễ làm quen cũng như khá nhiều lựa chọn
công việc sau này.
Nếu bạn
đã và đang là một lập trình backend và đã hiểu một vài ngôn ngữ kịch bản. Mình
khuyên các bạn chọn một ngôn ngữ khác ngoài ngôn ngữ kịch bản như ngôn ngữ
“Functional” hoặc “Multiparadigm”. Ví dụ: nếu bạn đã và đang sử dụng PHP hoặc
Node.js, đừng học thêm Python hay Ruby mà hãy thử Erlang hoặc Golang. Điều đó
chắc chắn sẽ giúp bạn mở mang cũng như phát triển kiến thức của bản thân.
BƯỚC 2: THỰC
HÀNH NHỮNG THỨ BẠN HỌC
Không
có cách nào tốt để học bằng cách thực hành. Thứ nhất bạn chọn ngôn ngữ và hiểu
được các khái niệm cơ bản, và mang chúng ra sử dụng. Cố gắng tạo càng nhiều ứng
dụng nhỏ càng tốt.
BƯỚC 3: TÌM
HIỂU VỀ PACKAGE MANAGER
Khi bạn
đã hiểu cơ bản về ngôn ngữ cũng như tạo được một số ứng dụng cơ bản, chúng ta
bắt đầu học về package manager cho ngôn ngữ bạn lựa chọn. Package manager giúp
bạn mở rộng ứng dụng bằng các thư viện bên ngoài.
Khái
niệm chi tiết bạn có thể đọc tại đây: Package manager
Nếu bạn
chọn PHP bạn nên học về Composer, Node.js là NPM hoặc Yarn, Python là Pip và
Ruby sử dụng Gems. Bất kể bạn lựa chọn là gì, hãy tiếp tục tìm hiểu và học cách
sử dụng chúng.
BƯỚC 4: TIÊU
CHUẨN VÀ CÁCH THỰC HÀNH TỐT NHẤT
Mỗi
ngôn ngữ có một tiêu chuẩn và các thực hành riêng để làm mọi thứ. Nghiên cứu về
những tiêu chuẩn theo ngôn ngữ bạn chọn. Ví dụ PHP có tiêu chuẩn PHP-FIG và
PSRs, Node.js cũng có nhiều quy tắc cộng đồng và tương tự với các ngôn ngữ
khác.
BƯỚC 5: BẢO
MẬT
Đảm bảo
rằng bạn đã đọc về các phương pháp tối ưu nhất để đảm bảo an toàn cho ứng dụng
của bạn. Đọc các hướng dẫn của Open Web Application Security Project (OWASP) để
hiểu về những vấn đề bảo mật khác nhau và làm thế nào để tránh chúng với ngôn
ngữ bạn chọn.
BƯỚC 6: THỰC
HÀNH
Bây giờ
khi bạn đã có những hiểu biết nhất định về ngôn ngữ, các tiêu chuẩn và cách
thực hành các tiêu chuẩn, bảo mật và cách sử dụng package manger. Bây giờ hãy
phát triển thêm bằng cách tự tao một package và công khai cho người khác sử
dụng.
Ví dụ:
Nếu bạn sử dụng PHP bạn nên phát hành Packagist, nếu bạn sử dụng Node.js bạn có
thể phát hành trên Npm …
Nếu bạn
đã hoàn thành những điều trên, hãy tìm kiếm một số projects trên Github, mở một
số pull requests trong các projects đó:
§ Refactor
và implement lại code là một trong những cách tốt nhất để bạn học.
§ Xem xét
những sự cố có thể xảy ra và giải quyết chúng.
§ Bổ sung
thêm bất kỳ tính năng nào có thể.
BƯỚC 7: HỌC
VỀ KIỂM THỬ
Có rất
nhiều loại kiểm thử để bạn có thể test lại ứng dụng của mình. Hiểu về những
loại kiểm thử này và mục đích của chúng. Nhưng trước tiên, hãy học để biết sử
dụng Unit Tests và Integration tests cho ứng dụng của bạn. Đồng thời hiểu về
các thuật ngữ trong kiểm thử như: mocks, stubs…
BƯỚC 8: THỰC
HÀNH KIỂM THỬ
Thực
hành về kiểm thử bằng cách viết unint test cho các ứng dụng mà bạn đã hoàn
thiện lúc trước, đặc biệt là những gì bạn làm ở bước 6.
Đồng
thời tính toán và tìm hiểu mức độ phù hợp cho các test mà bạn đã viết.
BƯỚC 9: HỌC
VỀ HỆ QUẢN TRỊ CƠ SỞ DỮ LIỆU QUAN HỆ
Học
cách xử lý dữ liệu của bạn trong cơ sở dữ liệu. Trước khi lựa chọn một CSDL và
học chúng bạn nên tìm hiểu về các thuật ngữ cơ bản trong CSDL như: khóa, chỉ
mục, chuẩn hóa CSDL…
Có
nhiều lựa chọn để bắt đầu. Tuy nhiên khi bạn đã quen thuộc với một CSDL thì
những loại còn lại sẽ không khó để làm quen. Những CSDL bạn nên học là MySQL,
MariaDB và PostgreSQL. Hãy bắt đầu bằng MySQL.
BƯỚC
10: THỰC HÀNH
Đây là
thời điểm bạn mang tất cả những gì bạn học ra sử dụng.
Tạo một
ứng dụng đơn giản bằng cách sử dụng những thứ bạn đã học. Lựa chọn một ý tưởng
bất kỳ, có thể tạo một blog đơn giản và triển khai các tính năng như sau:
§ Tài
khoản người dùng – Đăng ký và đăng nhập
§ Người
dùng đã đăng nhập có thể tạo bài đăng.
§ Người
dùng có thể xem toàn bộ bài đăng mà người dùng đó tạo.
§ Đồng
thời người dùng có thể xóa bài đăng của họ.
§ Đảm bảo
rằng người dùng chỉ có thể nhìn thấy bài đăng của mình và không thể nhìn thấy
bài đăng của người khác.
§ Viêt
unit/integration test cho ứng dụng.
§ Bạn có
thể áp dụng chỉ mục cho truy vấn. Đảm bảo rằng chỉ mục đó được sử dụng.
BƯỚC
11: HỌC MỘT FRAMEWORK
Tùy
thuộc vào dự án cũng như ngôn ngữ bạn lựa chọn, bạn có thể cần hoặc không cần
sử dụng framework. Mỗi ngôn ngữ có nhiều lựa chọn khác nhau, vì vậy hãy cân
nhắc và lựa chọn một framework thích hợp cho dự án của bạn.
Nếu bạn
sử dụng PHP, mình khuyên bạn nên bắt đầu với Laravel hoặc Symfony và với các
micro-framework như Lumen hoặc Slim. Nếu bạn lựa chọn Node.js, có nhiều lựa
chọn khác nhau nhưng tiêu biểu là Express.js.
BƯỚC
12: THỰC HÀNH TIẾP
Đối với
bước này, chuyển đổi ứng dụng bạn tạo trong bước 10 bằng cách sử dụng framework
bạn chọn.
------------------------------------------------------------------------------------------------------------------------------------------------------
>>> Giới trẻ Việt Nam thiếu định hướng nghề nghiệp, các anh chị hãy cùng YBOX giúp các bé một tay vì một thế hệ trẻ không lãng phí bao năm đại học bằng những chia sẻ rất thật của mình tại đây nhé: Link 🍁
(*) Đăng kí làm CTV cho dự án Youth Confessions để có cơ hội đóng góp cho cộng đồng và tích lũy thêm những kiến thức định hướng cho nghề nghiệp tại đây: Link 😍
----------------------------
Hợp Tác Cùng YBOX.VN Truyền Thông Miễn Phí - Trả Phí Theo Yêu Cầu tại http://bit.ly/YBOX-Partnership
208 lượt xem