Kỳ 2: Nhập môn mạng máy tính
Kỳ 2: Nhập môn mạng máy tính
Như kỳ 1 tôi đã phân tích, việc học tập và nghiên cứu web open source để nó không những giúp các bạn có thể hiểu được một số khái niệm cơ bản, mà còn giúp các bạn hình dung được những hệ thống mà mình sẽ học tập, nghiên cứu cũng như quản trị nó. Tuy nhiên một thực tế mà sau khi tôi ra trường nhìn nhận được đó là nhu cầu thiết kề và quản trị website đang dần phổ biến và ngày phát triển, việc học tập và nghiên cứu nó có thể giúp cho các bạn sau này có thêm 1 nghề nữa để bổ sung vô CV của mình trong quá trình tuyển dụng.
Bên cạnh nghiên cứu web open source, nhưng các bạn cũng không nên đam mê nó mà bỏ quên nhiệm vụ chính của mình là một sinh viên mạng máy tính. Ở kỳ này các bạn sẽ được học một số môn "rìa" chuyên ngành, tuy nhiên các bạn nên tìm hiểu và nếu có thể nên ngấm những môn sau đây : lý thuyết ngôn ngữ lập trình, mạng máy tính, nguyên lý hệ điều hành.
Đối với môn mạng máy tính có thể xem là nhập môn cơ bản của chuyên ngành mạng, ở môn này các bạn sẽ được học những khái niệm và lý thuyết cơ bản của chuyên ngành mạng như thế nào là mô hình OSI, TCP/IP, sự khác nhau giữa mô hình OSI và TCP/IP, cụ thể hơn các bạn sẽ được học sơ lược các tầng của từng mô hình trên, tôi gọi môn này là một trong những môn cơ sở lý thuyết ngành mạng máy tính. Như tôi kể trên khi học môn này bạn sẽ được học xoay quanh 2 mô hình là OSI và TCP/IP. Tuy nhiên theo nhận định của tôi kiến thức ở 2 mô hình này trong môn học này chỉ là mang tính giới thiệu, do đó tôi muốn các bạn nên nghiên cứu chuyên sâu vào mô hình TCP/IP, nói một cách ngắn gọn nó là mô hình chính và được sử dụng trong thế giới mạng mà chúng ta đang dùng hiện này. Một lý do khác để các bạn nên nghiên cứu chuyên sâu nó đó là sau này các bạn sẽ được học riêng một môn gọi là TCP/IP với việc nghiên cứu chuyên sâu ở kỳ này qua môn mạng máy tính các bạn sẽ dễ dàng hơn khi học môn TCP/IP ở các kỳ sau. Thế nghiên cứu chuyên sâu môn này là nghiên cứu những gì và như thế nào. Như tôi nói ở trên, thay vì học sơ lược hay đọc từng tầng của mô hình TCP/IP thì các bạn hãy đi chuyên sâu vô từng tầng và từng giao thức, tôi ví dụ: Khi các bạn học đến phần Tầng transport trong môn mạng máy tính ở phần này các bạn sẽ được học về giới thiệu chức năng của tầng và được giới thiệu 2 giao thức ở tầng này là TCP và UDP. Tại đây thay vì chỉ đọc những kiến thức giới thiệu thì các bạn đi chuyên sâu hơn, tìm hiểu gói tin đến tầng này sẽ như thế nào nếu vượt quá kích thước quy định, đơn vị gói tin tầng này là gì?, quy tắc thiết lập và đóng một kết nối TCP như thế nào? TCP và UDP khác gì nhau? Những trạng thái của một kết nối TCP nó sẽ di chuyển ra sao?....Sau khi tìm hiểu chuyên sâu từng tầng thử tự mình đặt một số câu hỏi có dạng như sau : "Khi mình với nhỏ lùn kìa đang chít chat với nhau thì gói tin sẽ đi thế nào qua từng tầng?", câu hỏi tuy hơi nhảm nhưng theo tôi đó là câu hỏi có thể giúp bạn hệ thống hóa lại kiến thức mà bạn đã nghiên cứu qua. Cụ thể thế nào thì các bạn đọc bài này http://2mit.org/forum/threads/6348-Hoi-dap-ve-TCP-IP.
Đối với môn Lý thuyết ngôn ngữ lập trình, có rất nhiều bạn có tư tưởng rằng "mình học chuyên ngành mạng thôi không nên quan tâm nhiều đến lập trình". Đây là một lối suy nghĩ sai nếu không muốn nói là "quá ngắn", không có sự nhìn nhận về thứ mà mình sẽ làm sau khi ra trường. Công việc của một người học mạng là rất nhiều có thể sẽ là một systemadmin, có thể sẽ là security, và cũng có thể sẽ là system programing(lập trình hệ thống). Tuy nhiên dù ngành gì cũng vậy lập trình đóng vai trò quan trọng cho công việc sau này của bạn, ví dụ cụ thể và thực tế nhất là các bạn tôi và tôi điều đang sử dụng những kiến thức lập trình đã học được ở trường để phục vụ những mục đích công việc riêng của chúng tôi. Đối với bạn tôi(lão Sunboy) thì lập trình Bash Shell để tự động tác vụ cho hệ thống mà lão quản trị, lập trình PHP cho hệ thống web quản lý của lão. Còn tôi cũng vậy, cũng sử dụng Bash Shell để tự động hóa tác vụ, PHP để xây dựng các web quản lý hệ thống, c# để develop một số phần mềm, hay perl & python để control hệ thống phù hợp cho từng mục đích quản trị hệ thống của chúng tôi. Do đó không riêng gì môn này, bất kỳ sau này các bạn học môn lập trình gì các bạn hãy học tập môn đó nghiêm túc, có thể không cần chuyên sâu nhưng ít nhất phải nắm được cấu trúc của từng ngôn ngữ.
Đối với môn nguyên lý hệ điều hành theo tôi mà nói là một môn rất là khô khang và mang lại cho các bạn cảm thấy rất chán nhất trong kỳ này. Thực tế đối với những ai đi sâu vào lập trình thì nên học tập môn này nghiên túc và nghiên cứu chuyên sâu. Đối với dân mạng chúng ta chỉ cần học, đọc và hiểu là tốt rồi ở môn này không cần phải có sự chuyên sâu.
Còn một môn nữa mà làm tôi và các bạn tôi phải đau đầu đó là môn Tiếng Ahh vì chính tôi cũng học dỡ môn này nên tôi không có phương pháp và cũng như kinh nghiệm gì cho các bạn. Nhưng nếu các bạn học tập tốt môn này thì sau này các bạn sẽ tiến bộ rất nhanh khi đọc nhưng tài liệu nước ngoài.
"Kiến thức kỹ thuật có thể thu thập được trong một giờ, một ngày, một tháng, một năm hay cả đời nhưng khả năng thu thập kiến thức nhanh hay chậm, hữu hiệu hay kém hữu hiệu phụ thuộc vào khả năng tư duy. Kiến thức đã quan trọng nhưng khả năng áp dụng kiến thức trong thực tế càng quan trọng hơn và tư duy cũng đóng vai trò tối quan trọng trong việc áp dụng này. Vậy, khả năng tư duy từ đâu có? Rất đơn giản: tư duy nảy sinh từ khả năng đặt câu hỏi và tìm kiếm câu trả lời."