fbpx
ĐĂNG KÝ HỌC THỬ MIỄN PHÍ NGAY

Kiến Thức Cơ Bản Về Khoa Học Máy Tính Rất Quan Trọng

Tôi thực sự không thoải mái khi phải thừa nhận rằng khi tội nhận việc tại Microsoft vào năm 2005, tôi đã không biết cách triển khai BFS (Breadth First Search). Vào thời điểm đó, tôi đã có kinh nghiệm 6 năm chính chiến với nghề “kỹ sư phần mềm” và có bằng thạc sĩ về Khoa học máy tính. 

Vài năm sau, trong một buổi ăn trưa, có người đã đề cập đến việc một ứng viên mà họ đã phỏng vấn trước đó “thậm chí còn không biết cách tìm đường đi ngắn nhất trên biểu đồ”. Cuộc nói chuyện này khiến tôi hoàn toàn sụp đổ và cảm thấy thật kinh khung khi mà chính tôi cũng không thể làm được điều đó. Chỉ trong vài giây ngắn ngủi, tôi từ một Kỹ sư phần mềm có vẻ thành công ở Microsoft đã trở thành một kẻ mà tôi gọi là “mạo danh”. Việc này đã ép thúc tôi cố gắng cải thiện những nguyên tắc cơ bản về Khoa học máy tính của mình.

Mặc dù sau cùng tôi đã học được BFS, nhưng ví dụ để mà cho tối thấy rằng để đạt được tiến bộ vững chắc trong sự nghiệp kỹ thuật phần mềm không cần phải thuộc lòng Giới thiệu về thuật toán (hay còn gọi là CLRS). Nó càng đúng so với ngày nay so với 20 năm trước. Ngày nay, chúng ta làm việc ở mức độ trừu tượng cao hơn. Hầu hết các thuật toán phổ biến như tìm kiếm nhị phân, đều có trong thư viện tiêu chuẩn, và việc triển khai chúng thực sự phí thời gian. 

Mặc dù vậy, tôi vẫn kêu gọi tất cả các lập trình viên nên học Khoa học máy tính từ trình độ cơ bản nhất. 

Tại sao nên học các nguyên tắc cơ bản của Khoa học Máy tính?

Câu trả lời rất đơn giản: học các nguyên tắc cơ bản về Khoa học Máy tính có thể thúc đẩy sự nghiệp của bạn. Và sau đây chính là những lí do: 

Bạn sẽ hiểu các hệ thống không quen thuộc một cách nhanh chóng.

Khi bạn tìm hiểu các thuật toán và cấu trúc dữ liệu cơ bản, bạn sẽ thấy chúng ở mọi nơi. Bạn sẽ nhận ra rằng các tài liệu HTML và XML là những cái cây, các kho lưu trữ giá trị về mặt khái niệm có thể được coi là HashTables và từ góc độ người tiêu dùng, các chủ đề Kafka là hàng đợi. Điều này rất hữu ích vì nó cho phép bạn hiểu hành vi và hạn chế của các hệ thống này ngay cả khi bạn không biết sâu về chúng.

Khi mới bắt đầu sử dụng git, tôi cảm thấy choáng ngợp. Tôi không hiểu nó hoạt động như thế nào và các lệnh chẳng có ý nghĩa gì mấy. Một ngày nọ, tôi xem một người giải thích git trên YouTube và trong đó đề cập rằng git là một DAG (Directed Acyclic Graph). Chỉ qua một đêm, tôi đã trở thành chuyên gia sửa chữa git guru của các thành viên trong nhóm.

Bạn sẽ có thể giải quyết các vấn đề khó khăn

Hầu hết các vấn đề mà các lập trình viên phần mềm phải giải quyết hàng ngày không yêu cầu kiến thức khoa học máy tính nâng cao. Tuy nhiên, thỉnh thoảng, một vấn đề đầy khó khăn lại xuất hiện. Đây là lúc việc biết các thuật toán và cấu trúc dữ liệu có thể rất hữu ích. Tôi nhớ mình đã vật lộn vài ngày với một bài toán về biểu đồ phụ thuộc khi đồng nghiệp của tôi chỉ ra rằng tôi có thể giải quyết nó nhanh chóng nếu tôi áp dụng cách sắp xếp tô-pô.

Bạn sẽ làm tốt hơn trong các cuộc phỏng vấn viết code.

Nhiều cuộc phỏng vấn, đặc biệt là ở các công ty Big Tech, bao gồm các câu hỏi về viết code. Thông thường, những vấn đề này có thể được giải quyết bằng một trong các thuật toán tiêu chuẩn. Nếu bạn quen thuộc với chúng, bạn sẽ có nhiều cơ hội hơn để có thể thể hiện tốt hơn tại các cuộc phỏng vấn. 

Làm thế nào để giữ cho các kỹ năng luôn được cập nhật.

Hầu hết các kỹ năng đều suy giảm theo thời gian. Các kỹ năng thuật toán không khác nhau là mấy. Ngay cả khi bạn nhớ ý tưởng đằng sau một thuật toán hoặc cấu trúc dữ liệu, các chi tiết có thể trở nên mơ hồ theo thời gian. Đây là lý do tại sao việc làm mới kỹ năng của bạn định kỳ là điều tốt. Có rất nhiều cách để làm được điều đó. Điều tôi thích nhất là tham gia thường xuyên vào Advent of Code. Advent of Code là một sự kiện trực tuyến vào tháng 12, nơi bạn gặp hai vấn đề mỗi ngày cho đến Giáng sinh. Việc giải quyết những vấn đề này rất thú vị và luôn cho phép tôi rèn luyện các kỹ năng giải quyết vấn đề và thuật toán của mình. Nhưng phần hay nhất là Solution megathreads – các subreddits chuyên dụng nơi những người khác đăng giải pháp của họ. Tôi kiểm tra các chủ đề này sau khi tôi giải quyết được vấn đề trong ngày nhất định. Chúng là một kho tàng những hiểu biết đáng kinh ngạc, những cách tiếp cận độc đáo và những thủ thuật lập trình mà tôi chưa bao giờ nghĩ tới và tôi học được rất nhiều điều từ chúng.

 

 

NativeX – Học tiếng Anh online toàn diện “4 kỹ năng ngôn ngữ” cho người đi làm.

Với mô hình “Lớp Học Nén” độc quyền:

  • Tăng hơn 20 lần chạm “điểm kiến thức”, giúp hiểu sâu và nhớ lâu hơn gấp 5 lần.
  • Tăng khả năng tiếp thu và tập trung qua các bài học cô đọng 3 – 5 phút.
  • Rút ngắn gần 400 giờ học lý thuyết, tăng hơn 200 giờ thực hành.
  • Hơn 10.000 hoạt động cải thiện 4 kỹ năng ngoại ngữ theo giáo trình chuẩn Quốc tế từ National Geographic Learning và Macmillan Education.

ĐĂNG KÝ NATIVEX

Tác giả: Pawel Kadluczka

Dịch: NativeX

Blog học tiếng anh