Don''t be a junior developer: technical roadmap
Bài viết với mục tiêu là đưa ra một roadmap để giúp bạn tiết kiệm thời gian cho việc định hình những gì bạn cần phải học (ít nhất là như vậy) và bạn có thể bắt đầu luôn. Dưới đây là một số recommend và hầu hết những resources này là free: 1. SSH: SSH, hoặc được gọi là Secure Shell, là một ...
Bài viết với mục tiêu là đưa ra một roadmap để giúp bạn tiết kiệm thời gian cho việc định hình những gì bạn cần phải học (ít nhất là như vậy) và bạn có thể bắt đầu luôn. Dưới đây là một số recommend và hầu hết những resources này là free:
1. SSH:
SSH, hoặc được gọi là Secure Shell, là một giao thức remote control cho phép người dùng kiểm soát và chỉnh sửa server từ xa qua Internet. Dịch vụ được tạo ra nhằm thay thế cho Telnet vốn không có mã hóa và sử dụng kỹ thuật cryptographic để đảm bảo tất cả giao tiếp gửi tới và gửi từ server từ xa diễn ra trong tình trạng mã hóa.
- Tìm hiểu về ssh hoạt động như thế nào? và how to ssh into server
- Tìm hiểu về cách manage ssh keys
2. Advanced Javascript
- Tìm hiểu về common algorithms and data structures
- Tìm hiểu về common design patterns
- Hiểu được sự khác nhau giữa OOP vs Functional programming. Điểm mạnh và yếu của mỗi loại
- Biết những programming techniques cơ bản
- Biết được các modules hoạt động như thế nào
3. Popular Frontend Library + How to Manage Complex State
Có khá nhiều frontend library/framework hot cho bạn lựa chọn: React, Vue, Angular. Ở đây tôi chọn React:
- React: beginner, advance
- Principle of Redux hoặc một state management tool tương tự. Không đơn thuần chỉ là việc quản lý các state mà còn suy nghĩ về cả data flow khi app của bạn phát triển hơn.
- Biết một chút về module bundling with webpack
4. Testing
- testing landscape and tools
- Các loại test: unit test vs integration test vs e2e test
- TDD vs BDD
- Cách sử dụng Mock, stub and spy
- Snapshot testing
5. Client-side and Server-side rendering
- Khi nào sử dụng Server-side rendering/Client-side rendering
- Lợi ích của việc sử dụng server-side rendering với Next.js
6. Docker and containers Chắc hẳn mọi người cũng không xa lạ gì với cái tên docker vì hầu hết các dự án hiện nay đều sử dụng nó để phát triển ứng dụng web.
- Containner là gì và khác gì với VMs
- Ứng dụng docker vào mô hình microservice
7. Different type of databases
- relational vs non relational database
- Lợi ích của từng loại và context để áp dụng
- Lợi ích của in memory storage như Redis
8. Manage Sign In + Sessions In Your App
- Sự khác nhau cookies vs token-based
- Cách sử dụng token-based như JWTs
- Implement và hiểu được authentication/authorization flow trong app của mình
9. Infrastructure as a Service and Platform as a Service
- Tìm hiểu về một số cloud service thông dụng hiện nay như AWS, GCP, Azure
- Tìm hiểu và học các sử dụng AWS lamda và ứng dụng serverless
- Tìm hiểu thêm về Serverless architecture
10. CI and CD
- Tìm hiểu và so sánh về CI vs CD và cách ứng dụng vào project
- Biết config và tích hợp Circle CI hoặc Travis trên github
Conclusion
Bạn sẽ phải mất một khoảng thời gian để tìm hiểu và apply được những điều trên nhưng tôi nghĩ rằng ít nhất thì bạn cũng đã có roadmap để biết được điều gì cần nên học. Là một Developer thì việc học hỏi công nghệ là một hành trình không có hồi kết mà.
Reference
https://hackernoon.com/dont-be-a-junior-developer-the-roadmap-9fde5cf384bb