Chào em @homer,
=> Suy cho cùng JavaScript cũng chỉ là một ngôn ngữ lập trình, một công cụ sử dụng để xây dựng nên ứng dụng, mà mỗi công cụ bản thân nó đều có ưu nhược và lịch sử phát triển riêng. Em dùng nó đúng mục đích là nó sẽ hiệu quả.
Tuy nhiên ở đây anh không muốn nói sâu về ưu nhược của JavaScript, PHP, Java hay .Net.
Cái anh muốn nói là một vài lời khuyên cho em nếu em muốn đi theo con đường sự nghiệp “Backend Engineering” vì theo anh ngôn ngữ sử dụng không phải là vấn đề quan trọng nhất để em xây dựng một sự nghiệp ổn định trong ngành
① Em phải có kiến thức cơ sở ngành công nghệ thông tin.
Không cần biết quá nhiều, nhưng phải là một “ít” về cấu trúc dữ liệu, giải thuật lập trình, kiến trúc máy tính, mạng và hệ điều hành.
※ “ít” ở đây là tuỳ vào mỗi người
② Em phải có kỹ năng lập trình
Những kỹ năng như là lập trình hướng đối tượng (OOP), lập trình các cấu trúc dữ liệu hay gặp, Design Patterns, Refactoring, Clean Code.
Khi nắm vững kỹ năng lập trình, em có thể chuyển đổi ngôn ngữ, công nghệ hoặc tìm hiểu sâu hơn để khai thác ưu điểm của từng ngôn ngữ lập trình dễ dàng.
③ Có kiến thức về cơ sở dữ liệu
Dữ liệu (data) là trái tim của ứng dụng, em cần phải có kiến thức về nó.
Nền tảng nhất là hệ Relational Database (cơ sở dữ liệu quan hệ) sử dụng SQL để truy vấn dữ liệu
※ MySQL rất được ưa dùng.
Nếu đã nắm được cơ bản, thì em có thể tìm hiểu thêm về Document-oriented Database ( MongoDB nổi tiếng) hoặc dòng Graph Database (Neo4j nổi tiếng )
④ Thực hành xây dựng được một cái gì đấy!!!
Không cần quá to lớn, nhưng trước khi ra trường em phải vận dụng được kiến thức mà em hiểu biết nhiều nhất để làm được một cái gì đấy ( một website, app mobile, … ).
Cái này để giúp em biết được, tạo nên một ứng dụng là như thế nào, cấu trúc nó ra sao, ngoài ra còn là một phần để em bỏ vào CV để xin việc hoặc xin thực tập tại các công ty sau khi ra trường.
⑤ Tự thân tìm hiểu và xây dựng cho mình một con đường sự nghiệp “phù hợp” với nguyện vọng bản thân
“Backend Engineering” có thể là mong muốn của em hiện giờ, nhưng vài năm nữa thì không chắc. Sau một thời gian nữa “lửa” trong em có thể bị tắt nếu nghề nghiệp không phù hợp, thu nhập không đúng mong đợi hay sức khoẻ không đáp ứng, …
Hoặc em tìm ra một vị trí khác phù hợp hơn cho em!!
Không biết trước được!
Nhưng vào nghề một thời gian em cứ để ý sự phát triển của bản thân mỗi tháng, nếu cứ ì ạch mãi không lên thì phải luôn hỏi và tìm hiểu xem mảng mình đang làm có phù hợp không? mình sai gì? thiếu gì rồi tự định hướng bản thân lại.
“Ai cũng là thiên tài. Nhưng nếu bạn đánh giá một con cá bằng khả năng leo cây, nó sẽ sống suốt đời với niềm tin rằng nó là kẻ đần độn.” [Albert Einstein]
Anh gợi ý cho em nên tìm đọc blog của chú Hồ Sỹ Hùng (vinacode.wordpress.com), sẽ có nhiều thông tin cho em. Và tham khảo Road Map của Backend Engineering ở đây
Vậy thôi, chúc em đạt được mục tiêu của bản thân mình.
Thân,
Nguyễn Hữu Quyền
ーーーーーーー
※ Một số ý trả lời nhanh cho phần câu hỏi của em
=> Không đúng, cái này là ý kiến quá cá nhân không có cơ sở rõ ràng.
=> Không hẳn, tuỳ thị trường, tuỳ công ty gia công cho nước nào!