Tin tức
LỘ TRÌNH TRỞ THÀNH MỘT BACKEND DEVELOPER
LỘ TRÌNH TRỞ THÀNH MỘT BACKEND DEVELOPER
Bạn đang thắc mắc Backend Developer là gì? Bạn đang muốn phát triển trên con đường Backend Developer? Bài viết dưới đây sẽ cung cấp cho bạn những thông tin về ngành nghề hot này và Lộ trình trở thành Backend Developer.
Backend Developer là gì?
Backend là gì? Phần backend của website là những điều mà bạn không thấy được trên trang web đó. Nó sẽ bao gồm máy chủ, ứng dụng và cơ sở dữ liệu. Vậy, Backend Developer là gì? Backend Developer là người sử dụng những công nghệ phù hợp để phát triển sản phẩm cho các chương trình backend của bất kỳ một website nào đó.
Hoặc bạn có thể hiểu, Backend Developer là người tạo ra những dòng code giúp trình duyệt giao tiếp với cơ sở dữ liệu để lưu trữ, đọc, cập nhật hoặc xóa thông tin từ cơ sở dữ liệu. Trách nhiệm chính của Backend Developer là xây dựng cấu trúc ứng dụng phần mềm.
Kỹ năng và công cụ cần có của Backend Developer
Để máy chủ, ứng dụng và cơ sở dữ liệu có thể giao tiếp với nhau, Backend Devs sẽ sử dụng ngôn ngữ phía máy chủ (server-side languages) như PHP, Ruby, Python, Java, và .Net để xây dựng ứng dụng. Những công cụ như MySQL, Oracle, and SQL Server được sử dụng để tìm kiếm, lưu trữ, hoặc thay đổi dữ liệu và phân phát chúng trở lại với người dùng trong frontend code.
Mặt khác, nếu bạn định hướng xa hơn với mong muốn trở thành một Full Stack Developer thì kiến thức về web service và API cũng rất quan trọng. Ví dụ như REST và SOAP.
Cuối cùng, bạn có thể cân nhắc luyện thêm thuật toán (Algorithms) và Data structures để tăng tính cạnh tranh trên thị trường tuyển dụng.
Trông có vẻ vị trí này cần quá nhiều kiến thức và kỹ năng nhỉ? Bạn đừng hoảng, những thứ mình liệt kê phía trên bạn chỉ cần chọn 1 thứ trong mỗi mục. Mặt khác, để giúp bạn bớt mông lung trên con đường sự nghiệp bạn có thể tham khảo lộ trình trở thành Developer dưới đây.
Lộ trình trở thành Backend Developer
Bạn có thể xem full roadmap lộ trình Backend Developer trong ảnh dưới, sẽ có phần giải thích từng bước chi tiết ở bên dưới.
Trước khi bắt đầu với lộ trình backend, mặc dù chúng tôi chưa list ra các kiến thức về HTML/CSS trên roadmap trên, bạn cũng nên tự tìm hiểu và ít nhất đã nắm được cách viết HTML/CSS căn bản.
Các bước cần thiết cho lộ trình backend:
Bước 1 – Học một ngôn ngữ mới
Có cả tá lựa chọn về ngôn ngữ dành cho bạn. Tôi có chia nhỏ nó ra các categories để bạn dễ lựa chọn hơn. Đối với những người mới thì tôi khuyên bạn nên chọn các ngôn ngữ scripting vì chúng có nhiều demand và cho phép bạn bắt kịp nhanh chóng. Nếu bạn có một ít kiến thức frontend, bạn sẽ thấy Node.js dễ hơn nhiều và có rất nhiều job về nó đang mở.
Nếu bạn đang làm backend và biết một số scripting language, tôi đề xuất không chọn một ngôn ngữ scripting language khác nữa mà chọn trong section “Functional” hoặc “Multiparadigm”. Ví dụ, nếu bạn đang làm PHP hoặc Mode.js, đừng nên chọn Python hoặc Ruby, mà hãy thử Erlang hoặc Golang. Nó sẽ giúp bạn tư duy xa hơn và open với những mảng khác hơn.
Bước 2 — Thực hành ngay những cái đã học
Học phải đi đôi với hành. Một khi bạn đã chọn được ngôn ngữ phù hợp và có được nền tảng căn bản về nó, hãy dùng nó ngay. Hãy tạo nên càng nhiều app nhỏ càng tốt. Dưới đây là một số gợi ý cho bạn:
- Ứng dụng các command mà bạn dùng trên bash, ví dụ ứng dụng function ls
- Viết một command để fetch và lưu các post reddit trên /r/programming dưới dạng file JSON
- Viết một command cung cấp directory structure dưới dạng format JSON ví dụ jsonify dir-name cho ra file JSON có structure bên trong dir-name
- Viết một command đọc JSON của bước trên và tạo ra directory structure
- Nghĩ một vài task hằng ngày của mình và automate chúng
Bước 3 — Học Package Manager
Một khi đã học được những cái cơ bản của một ngôn ngữ và tại nên một vài app mẫu, hãy học cách dùng package manager ngôn ngữ đó. Các package manager sẽ giúp bạn dùng các thư viện ngoài và phân phối các thư viện cho người khác dùng.
Nếu bạn chọn PHP thì bạn có thể học về Composer, Node.js sẽ có NPM hoặc Yarn, Python có Pip và Ruby có RubyGems. Dù cho bạn chọn cái nào đi nữa, hãy cứ tiếp tục và học về package manager.
Bước 4 — Các tiêu chuẩn và Best Practices
Mỗi ngôn ngữ có những tiêu chuẩn riêng và best practices (cách làm tốt nhất). Hãy tìm ra và học hỏi từ nó. Ví dụ, PHP có PHP-FIG và PSRs. Với Node.js sẽ có rất nhiều hướng dẫn phục vụ cộng đồng cũng như nhiều ngôn ngữ khác.
Bước 5 — Bảo mật
Hãy nhớ đọc về các best practices trong mảng bảo mật. Đọc OWASPguidelines để hiểu về nhiều vấn đề bảo mật khác nhau và cách phòng tránh nó đối với từng ngôn ngữ mà bạn chọn.
Bước 6 — Thực hành thêm nữa
Sau những nền tảng cơ bản, tiêu chuẩn và best practice, bảo mật cũng như cách dùng package manager, bây giờ là lúc tự tạo nên một package và phân phối nó đi cho người khác dùng, nhớ follow các tiêu chuẩn và best practices đã học. Ví dụ như, nếu bạn chọn PHP, bạn có thể release nó trên Packagist, còn nếu chọn Node.js thì release trên Npm registry,…
Sau khi đã xong, bạn có thể search thêm một số project trên Github và mở một số pull request trong các projects. Dưới đây là một vài gợi ý cho bạn:
Refactor và ứng dụng những best practice mà bạn học được
Xem các vấn đề mở và thử giải quyết nó
Add thêm một số functionality
Bước 7 — Học thêm về Testing
Hiện có rất nhiều kiểu test, mục tiêu đó là phải hiểu rõ các loại này là gì. Nhưng trước mắt hãy cách viết Unit Test và Integration test cho app trước đã. Đồng thời hãy tìm hiểu thêm về các phương pháp testing như mocks, stubs,…
Bước 8 — Thực tế
Hãy viết thử unit test cho một số task thực tế mà bạn đã làm, đặc biệt là những cái bạn đã làm ở Bước 6.
Đồng thời nhớ tính toán thử mức độ cover của các test đã viết.
Bước 9 — Học về Relational Database
Làm thế nào để bảo toàn data trên relational database (dữ liệu quan hệ). Trước khi bạn lựa chọn tool để học, hãy tìm hiểu trước về các phương pháp database terminologies khác nhau như các key, index, normalization, tuple, v.v
Có rất nhiều sự lựa chọn, tuy nhiên nếu bạn học một cái rồi, thì những cái còn lại sẽ trở nên dễ hơn. Một trong những cái lý tưởng để bắt đầu đó là MySQL, MariaDB (khá giống nhau và là một mảnh của MySQL) và PostgreSQL. Pick MySQL.
Bước 10 — Thời gian thực tế
Bây giờ bạn sẽ đem tất cả những thứ bạn đã học ra để sử dụng. Tạo nên một ứng dụng đơn giản, bất cứ idea nào, ví dụ một ứng dụng viết blog, rồi áp dụng các feature dưới đây:
- User Account — Đăng ký và Đăng nhập
- Những user đã đăng ký có thể tạo các bài blog
- User có thể xem tất cả các bài blog mà mình đã viết
- User có thể xoá bài blog
- User chỉ xem được blog của mình chứ không xem của người khác được
- Viết các unit/integration test cho app
- Bạn có thể áp dụng index cho các query. Phân tích queries để biết chắc là các index đang hoạt động
Bước 11 — Học một Framework
Tuỳ vào project và ngôn ngữ mà bạn chọn thì bạn có thể cần hoặc không cần đến framework. Mỗi ngôn ngữ có rất nhiều lựa chọn, hãy tìm hiểu và xem xem ngôn ngữ của bạn có gì và chọn một cái liên quan.
Nếu bạn chọn PHP, tôi đề xuất bạn nên dùng Laravel hoặc Symfony hoặc đối với các framework nhỏ thì bạn có thể dùng Lumen hoặc Slim. Nếu bạn chọn Node.js thì cũng có rất nhiều lựa chọn nhưng cái mạnh nhất đến nay đó là Express.js.
Bước 12 — Thời gian thực hành
Để thực hành bước này, hãy convert app và bạn đã làm ở Bước 10 để áp dụng framework mình đã chọn. Nhớ port mọi thứ kể cả các test nhé.
Bước 13 — Học NoSQL Database
Đầu tiên hãy tìm hiểu nó là cái gì, chúng khác dữ liệu quan hệ chỗ nào và tại sao cần dùng đến nó. Có rất nhiều sự lựa chọn, chỉ cần tìm kiếm một chút và so sánh các feature sẽ thấy được sự khác nhau. Một số option phổ biến gồm có MongoDB, Cassandra, RethinkDB và Couchbase. Nếu phải chọn một thì bạn nên chọn MongoDB.
Bước 14 — Caching
Hãy tìm hiểu cách ứng dụng app level caching cho ứng dụng của mình. Hiểu được cách sử dụng mà bạn đã build ở Bước 12.
Bước 15 — Tạo các RESTful API
Tìm hiểu về REST và học cách tạo ra các RESTful API và nhớ đọc về REST trong bài viết gốc của Roy Fielding, để cứ hễ ai bảo REST chỉ dành cho HTTP API là bạn sẽ có thể sửa lưng họ ngay.
Bước 16 — Học các Auth Method khác nhau
Bạn cần phải biết chúng là gì, sử dụng thế nào và cái này khác cái kia ở chỗ nào
- OAuth — Open Authentication
- Basic Authentication
- Token Authentication
- JWT — JSON Web Tokens
- OpenID
Bước 17 — Các Message Broker
Cũng có nhiều lựa chọn cho bạn nhưng có 2 cái nổi bật hơn đó là RabbitMQ và Kafka. Nếu phải chọn một thì nên hãy học RabbitMQ trước.
Bước 18 — Công cụ Search
Khi app đã bắt đầu phát triển, các query đơn giản dù cho trên dữ liệu quan hệ hay dữ liệu NoSQL sẽ không từ cắt ra và bạn sẽ phải resort riêng công cụ search. Bạn nên cân nhắc tuỳ nhu cầu, vì có rất nhiều option và mỗi option đều có những điểm đặc biệt riêng.
Bước 19 — Học cách dùng Docker
Docker có thể giúp bạn rất nhiều trong quá trình lập trình ứng dụng, không chỉ tạo lặp một môi trường tương tự khi produce, giữ cho hệ điều hành luôn sạch sẽ hoặc thúc đẩy code, test và deploy. Tôi sẽ cho bạn một câu hỏi để tìm hiểu và tự trả lời cho mình “Nó sẽ giúp tôi bằng cách nào?”. Cứ thế hãy tìm hiểu và học cách dùng Docker.
Bước 20 — Trau dồi kiến thức về các Web Server
Nếu đã đến bước này, bạn chắc chắn đã phải tiếp xúc với nhiều server. Lúc này chủ yếu bạn sẽ tìm điểm khác nhau giữa các web server, hiểu được những giới hạn và các configuration option có sẵn cũng như cách viết app để tối ưu hoá các giới hạn này.
Bước 21 — Học cách dùng Web Socket
Mặc dù không bắt buộc, có thêm kiến thức này có thể giúp ích cho bạn rất nhiều. Tìm hiểu xem cách viết web app real-time và một số app mẫu bằng web-socket, bạn có thể dùng nó trên blog application để ứng dụng các update real-time trên blog posts listing.
Bước 22 — Học GraphQL
Hiểu rõ nó khác chỗ nào REST và tại sao lại gọi nó là REST 2.0.
Bước 23 — Xem các biểu đồ dữ liệu
Các Biểu đồ đồ thị sẽ giúp bạn linh hoạt hơn khi xử lý data, cũng như cung cấp cho bạn nguồn lưu trữ nhanh chóng và hiệu quả để dễ thu hồi hoặc query nó. Học thêm về Neo4j or OrientDB.
Bước 24 — Không ngừng khám phá thêm
Một khi bạn đã bắt tay vào học và làm, chắc chắn bạn sẽ vấp phải thêm nhiều thứ mà chúng tôi chưa liệt kê hết trên đây. Hãy luôn ở trong tâm lý mở không ngại học cái mới, vì kết quả thế nào là do bạn chọn.
Hi vọng thông tin trên đây đã có thể làm rõ thắc mắc của bạn về Backend Developer là gì cũng như lộ trình trở thành Backend Developer. Mọi thông tin đều mang tính tham khảo, bạn hãy tìm hiểu thật kỹ và đưa ra lộ trình phù hợp với bản thân nhé. Điều quan trọng là hãy đam mê và thật kiên trì.
- Sưu tầm -
BKACAD với 20 năm kinh nghiệm đào tạo CNTT, giáo trình được biên soạn phù hợp nhất với yêu cầu doanh nghiệp.
Tham khảo các khóa học Lập trình tại BKACAD: Xem ưu đãi tháng này
--------------------------------------------
CHƯƠNG TRÌNH HỌC VIỆN CÔNG NGHỆ BKACAD
Đào tạo chuẩn Quốc tế - Cam kết hỗ trợ việc làm sau khoá học.
Quản trị Mạng - Quản trị hệ thống - Lập trình viên - Chuyên gia Bảo mật.
Website: http://www.bkacad.edu.vn/
Fanpage: https://www.facebook.com/Bkacad/
Tel: 0243 868 4321
Add: P214, Nhà A17, Số 17 Tạ Quang Bửu, HN