NHỮNG MÔN HỌC CẦN THIẾT NẾU BẠN MUỐN TRỞ THÀNH SENIOR DEVELOPER


Cấu trúc dữ liệu và thuật toán:

Không cần nói nhiều về môn học này nhỉ? Bạn sẽ cần tìm hiểu về các cấu trúc dữ liệu thường dùng như: danh sách liên kết, cây, stack, queue… hoặc các thuật toán từ đơn giản đến phức tạp như tìm kiếm, sắp xếp, nén dữ liệu, tìm đường đi…

Các cấu trúc bạn học được dùng rất nhiều, khi học các môn khác bạn sẽ cảm thấy khó hiểu nếu không nắm chắc phần này. Ví dụ danh sách liên kết (linked list), stack được dùng trong quản lý bộ nhớ máy tính, queue rất phổ biến trong các hệ thống phân tán, hoặc xử lý dữ liệu không đồng bộ. Cấu trúc cây được dùng rất nhiều trong các hệ cơ sở dữ liệu, không hiểu nó bạn sẽ khó đi sâu vào mảng này.

Các thuật toán cũng vậy, làm quen với các thuật toán là cách hiệu quả nhất để hiểu cách máy tính làm việc, cũng như phương pháp giải quyết vấn đề dựa trên máy tính. Trong thực tế bạn sẽ không bao giờ phải làm lại các bài toán trong môn Thuật toán vì chúng luôn có sẵn trong các thư viện của ngôn ngữ lập trình. Tuy nhiên, bạn sẽ phải áp dụng kiến thức của môn học này để giải quyết những vấn đề bạn gặp trong các bài toán thực tế.

Bạn không cần phải quá đi sâu nếu không có ý định dự các cuộc thi. Đừng cố gắng học hết tất cả các thuật toán, làm tất cả các bài tập, chỉ cần hiểu cách chúng làm việc là được. Bởi sẽ còn một núi kiến thức khác bạn cần tiếp thu ngoài môn học này.

Lập trình hướng đối tượng:

Tôi sẽ không nói nhiều vì sao, các bạn chỉ cần đọc link sau là đủ: https://daohainam.com/2021/08/13/oop-chu-de-huyen-thoai-trong-cac-cuoc-phong-van-tuyen-dung/

Kiến trúc máy tính và hệ điều hành:

Bạn sẽ gắn bó cuộc đời, kiếm tiền và xây dựng sự nghiệp với máy tính, vì vậy chẳng có gì khó hiểu nếu môn học này là quan trọng.

Môn học Kiến trúc máy tính và hệ điều hành (thường được tách thành 2 phần cho dễ học) giúp bạn hiểu nguyên lý máy tính hoạt động. Bạn sẽ được học các thành phần có trong máy tính, máy Turing – vốn là nguyên tắc hoạt động của một hệ thống máy tính, nhưng khi đi học hầu hết sinh viên chẳng hiểu tại sao lại phải học về nó 😁. Bạn sẽ được học hệ điều hành hoạt động thế nào, có cái gì, vì sao lâu lâu máy tính lại hiện ra màn hình xanh… Vì sao Windows “lởm khởm” (là tôi đọc trên mạng) lại vẫn phổ biến nhất thế giới? Hơn cả Linux mượt mà và MacOS xinh gái.

Bạn phải trả lời được các câu hỏi trên, vì bạn muốn trở thành một chuyên gia mà!

Networking:

Máy tính bây giờ mà không có network thì mất một nửa công lực. Hầu hết công việc bạn làm sẽ liên quan đến network: từ viết web, backend, frontend, database… cho đến Docker, mobile apps… vậy nên hãy dành thời gian tìm hiểu xem mạng máy tính hoạt động thế nào, TCP/IP là gì, làm việc thế nào, làm sao một gói thông tin từ máy tính của bạn lại biết đường tìm đến đúng máy chủ ở bên kia trái đất? Chạy đúng ngay vào cái app có tên Apache? Rồi giao thức HTTP là gì? Nó liên quan gì đến mấy chữ GET, POST… khi bạn làm việc với API? Tại sao bạn lại cần có cookie? Có session?

Cơ sở dữ liệu:

Môn này giúp bạn biết các thiết kế, tổ chức các database – thành phần cực kỳ quan trọng trong các hệ thống phần mềm ứng dụng. Cơ sở dữ liệu là một trong những thành phần tốn kém nhất của một hệ thống phần mềm, nên làm tốt phần này sẽ giúp hệ thống hoạt động hiệu quả hơn rất nhiều. Hãy học để biết thiết kế như thế nào là tốt, thế nào là dư thừa dữ liệu, là tối ưu… Rồi hãy học các các thành phần được quản lý, lưu trữ thế nào trong các hệ quản trị cơ sở dữ liệu phổ biến.

Bạn phải hiểu thì mới có thể đưa ra những quyết định như: nên chọn hình thức lưu trữ nào, dùng cơ sở dữ liệu gì, trong trường hợp xảy ra thảm họa thì phải làm sao… Đó là những quyết định mà một senior phải trả lời được.

Ngôn ngữ lập trình:

Tôi muốn nói đến việc học một ngôn ngữ lập trình nào đó: C/C++, Java, C#… Hãy thực hành thật nhiều vào, với môn này không có cách học nào hiệu quả hơn là thực hành, code, code và code… Chẳng có ông thợ cắt tóc giỏi nào mà không biết cách cầm kéo cả.

Đây là 6 môn học cơ bản nhưng quan trọng nhất. Nhớ là thời gian của bạn có hạn, đừng học lan man, tập trung vào những thứ quan trọng nhất. Thằng hàng xóm nó học chăm lắm, bạn không học sau này không tranh việc lại với nó đâu!

One thought on “NHỮNG MÔN HỌC CẦN THIẾT NẾU BẠN MUỐN TRỞ THÀNH SENIOR DEVELOPER

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s