Nội dung bài viết
Video học lập trình mỗi ngày
Có những thứ đơn giản nhưng lại bị bỏ quên để đi tìm những thứ rất phức tạp để học tập và giải quyết NHƯNG lại không bao giờ gặp hoặc ít những vấn đề đó trong cuộc sống.
Sự đơn giản chính là điều cơ bản mà ta cần đạt được trước tiên trong công việc cũng như cuộc sống hiện nay.
Xin chào và chúc mừng sinh nhật JAVA tròn 30 năm. Tôi đến muộn nhưng tôi sẽ không ra về sớm.
Tuần trước sự kiện: Hành trình của JAVA 30 năm
JAVA: Hành trình 30 năm
30 năm JAVA vẫn tồn tại. Nó đại diện cho một người đàn ông tuổi trung niên (35-45), bao nhiêu thăng trầm trong cuộc đời, và đó là tất cả là sự trải nghiệm để vững vàng hơn.
Hiện tại người đàn ông đó vẫn còn đang cạnh tranh công việc, sức khoẻ với những anh chàng sung mãn đại diện như (Go, NestJS, Rust..)
ngoài ra còn gánh vác gia đình, cạnh tranh về kinh tế với các lão làng khác như C, C++
.
Thế đó,JAVA 30 năm
bạn nghĩ nó đã lỗi thời không? KHÔNG, khi mà sự tồn tại càng lâu, minh chứng là kể từ khi ra đời thì luôn nằm trong TOP 5 của các Ngôn Ngữ lập trình được đánh giá cao.
Tôi nghĩ khi mà một thứ đã tồn tại từ lâu thì nó sẽ tiếp tục tồn tại thêm nữa. Do vậy hãy yên tâm với vị trí của JAVA.
Bao nhiêu ngôn ngữ ra đời sau này, nhưng hiện tại chưa có thằng nào qua mặt được nó. Không hẳn các dự án LỚN trước đây sử dụng JAVA thì bắt buộc bây giờ sử dụng, mà nếu như một dự án mới được bắt đầu thì 50% sẽ lựa chọn JAVA, vì sao? Bạn có biết không?
Tôi biết Net, Python
... cũng rất phổ biến nhưng đó là những job dành cho các lập trình viên cấp cao, còn các vị trí khác thấp hơn một chút thì khó có thể tìm việc với các ngôn ngữ như vậy.
Do vậy JAVA vẫn có thể là sự lựa chọn cho bạn. Có rất nhiều tin tuyển dụng backend java > junior trên internet...
Chúc mừng sinh nhật JAVA.
Tôi muốn học JAVA và không biết bắt đầu từ đâu
Rất nhiều câu hỏi như vậy đúng không? Chắc hẳn là mọi người cũng đã được nhận nhiều câu trả lời tương tự như: Hãy cố gắng hết mình
, hãy chọn cho mình một cuộc sống nhiều áp lực để tạo ra kim cương..
Hoặc đi hỏi AI...
Hãy quay lại đầu bài viết: "Bạn có thấy bạn đã bỏ qua những thứ đơn giản để đi tìm những thứ phức tạp chưa?" Tôi đã thấy hình ảnh của tôi ở đó.
Tôi luôn đi tìm những tài liệu hay cao cấp, rồi save
về, lên github clone
những dự án về. Nhưng cuối cùng không bao giờ được mở ra...
Thứ đơn giản là những thứ tôi thường bỏ qua và đã từng nghĩ rằng nó không xứng đáng. Ví dụ bạn thấy một tài liệu FREE, bạn không lấy. Nhưng nói mua một document với giá vừa phải, thì tâm lý bạn là cho rằng là đúng.
Chưa hẳn vậy đúng không? OK, giờ chúng ta sẽ đi xem hành trình thế nào gọi là đơn giản. Chả phải cấp 1, cấp 2, rồi đến cấp 3 sao
..
Cấp 1:
Học những khái niệm trong JAVA là đầu tiên, nhưng hãy nhớ rằng có những khái niệm sẽ được ưu tiên và sẽ có tần suất sử dụng nhiều trong mỗi dự án. Ví dụ những khái niệm trong JUC trong java.util.concurrent
là phải hiểu sâu nhất, vì nó chính là bước phát triển cho JUC-High-Concurrency
sau này. Ví dụ
Bạn thấy nó đơn giản không, giống như con tôi vào lớp một thì học nhiều môn nhưng chỉ tập trung toán, anh, văn. Vì nó sẽ đến hết quá trình học tập theo các cấp độ tiếp theo.
Cấp 2:
Sau khi tốt nghiệp cấp 1, thì chuẩn bị các bước tiếp theo, ví dụ như khi đã có chút vốn liếng về Java và tư duy đa luồng bước tiếp theo không chỉ là học cách dùng một framework nào đó.
Cái tôi muốn các bạn tập trung là học cách triển khai ứng dụng, đặc biệt là các API, một cách chuyên nghiệp và an toàn. Đây là những thứ có mặt trong hầu hết mọi dự án thực tế như các method HTTP (GET, POST, PUT, DELETE,...)
Học thêm database, hiểu về index, transaction
. Tiếp đến phải làm quen nếu thành thạo thì càng tốt về các ORM như JPA, Mybatis
or tốt nữa thì Mybatis Plus
.
Sau đó tiếp đến là học về SpringBoot
để thấy nhiều điều vi diệu với các khái niệm IoC, DI
mà các đại ca đã lấy từ kinh nghiệm cuộc sống vào kiến trúc phần mềm. Ngoài ra thì xuyên suốt các dự án đó là về Security
, Authentication
, Authorization
.
Học API Limiting/Rate Limiting
: Để bảo vệ hệ thống khỏi bị quá tải, tấn công như thế nào? Rồi Logging để tìm kiếm dấu vết...
Cấp hai thấy nhiều hơn chưa, ví chính đó là việc hình thành các sử dụng ngôn ngữ để định hướng cho việc phát triển sau này... Tiếp đến là cấp 3
Cấp 3:
Lên cấp độ này thì chắc rằng bạn sẽ phải chinh Phục Hệ Thống Lớn & Hiệu Năng Cao – "Thử Lửa" Thực Sự
Đây là giai đoạn mà chúng ta thực sự "cháy" với nghề, nơi những kiến thức đã tích lũy được thử thách. Mục tiêu không còn là ứng dụng chạy được, mà là chạy nhanh, ổn định, và chịu tải cực lớn. Ví dụ, thay vì xử lý 200 order/second, hệ thống của bạn phải "cân" được 4000 order/second, thậm chí hơn.
Lúc này cần phải thực hành về các vấn đề sau đây ví dụ như phải tối ưu hoá hiệu năng (Performance Tuning)
, thay vì query chậm quá thì xem cách tối ưu về index, Kiến Trúc Phân Tán (Distributed Systems)
thay vì một database không làm việc hiệu quả thì phải tách ra như thế nào?
Việc tách ra thì phải quan trọng là nhất quán dữ liệu ra sao? Rồi việc Scalability & Resilience thế nào nữa?
Giai đoạn này là giai đoạn không thể nói lý thuyết được nữa, bạn phải tham gia dự án. vậy có dự án nào không? Có, tôi đã thiết kế một dự án mới lượng đồng thời cao. Bạn muốn thử sức có thể tham khảo phía dưới.
Cách học
Tôi không dám nói nhiều, bạn hãy thử nghiệm trình tự với 3 cấp độ khác nhau dưới đây, bằng một tô phở 👉👉👉👉 Tham khảo 3 cấp độ tại đây
Cấp 1: Series JAVA BACKEND: Những khái niệm cơ bản JUC cần phải nắm.
Cấp 2: Xây Dựng API Chuyên Nghiệp – "Mặt Tiền" Của Backend
Cấp 3: Chinh Phục Hệ Thống Lớn & Hiệu Năng Cao – "Thử Lửa" Thực Sự
Một số hình ảnh bạn có thể thấy ở đây hen:
Một bước chân đầu tiên làm nên vạn dặm. Hạnh phúc nằm ở cá nhân...