Skip to content

2. Computer Science

Phân loại này gồm các bài viết về khoa học máy tính

Nghề trong khoa học máy tính

Ngày nay Khoa học máy tính có lẽ là một trong những việc làm phát triển nhanh nhất trên thế giới, và người lập trình máy tính, người phát triển phần mềm có nhu cầu rất cao. Với lương trung bình $98,000 một năm (dữ liệu năm 2012), bằng cử nhân trong khoa học máy tính dứt khoát là điều được mong muốn có trong thị trường việc làm này nơi nhiều người tốt nghiệp đại học đang gặp khó khăn trong tìm việc làm. Khoa học máy tính là một lĩnh vực đa dạng với nhiều tuỳ chọn nghề nghiệp bao gồm người lập trình máy tính, người phát […]

Khoa học máy tính và kĩ nghệ phần mềm

Bạn tôi, một giáo sư khoa học máy tính hỏi tôi: “Sao mọi người tạo ra cái tên mới cho “Khoa học máy tính” và gọi là “Kĩ nghệ phần mềm?” Tôi không thấy khác biệt giữa “Máy tính” và “Phần mềm.” Sinh viên của chúng tôi học tốt môn học Khoa học máy tính và không cần môn nào khác với cái tên mới cho nó.” Tôi ngạc nhiên với câu hỏi này: “Có khác biệt giữa hai chương trình này chứ, nhưng trước hết ta hãy bắt đầu với máy tính. Tôi tin không phải tất cả máy tính đều như nhau bởi vì không ai nghĩ rằng […]

Ngôn ngữ lập trình

Một sinh viên hỏi tôi: “Ngày nay có bao nhiêu ngôn ngữ lập trình? Ngôn ngữ nào là tốt nhất? Liệu có thể dùng một ngôn ngữ máy tính cho mọi ứng dụng không? Tôi cần biết ngôn ngữ nào?” Có lẽ có nhiều ngôn ngữ lập trình hơn ngôn ngữ nói trên thế giới ngày nay. Cứ vài tháng, ai đó lại tạo ra một ngôn ngữ lập trình ở đâu đó. Ngôn ngữ lập trình đã tiến hoá từ ngôn ngữ mã máy thế hệ thứ nhất của 0 và 1 sang thế hệ hai được phân loại như “hợp ngữ” nơi mã có thể được viết và […]

Ngôn ngữ lập trình

Một sinh viên năm thứ nhất hỏi tôi: “Tôi phải học ngôn ngữ lập trình nào? Tôi có phải học mọi ngôn ngữ lập trình hay chỉ vài ngôn ngữ thôi?” Tôi bảo anh ta: “Không ai có thể học mọi ngôn ngữ lập trình được vì có nhiều lắm. Tuy nhiên, nếu bạn học một ngôn ngữ cho tốt, sẽ dễ dàng học ngôn ngữ khác. Tôi tin người lập trình tốt nên thấy thoải mái với một số ngôn ngữ khác nhau và người lập trình phải có khả năng dùng tri thức nền tảng của một ngôn ngữ và áp dụng cho các ngôn ngữ khác tương […]

Kĩ nghệ phần mềm và Khoa học máy tính

Một sinh viên hỏi tôi: “Tại sao tôi cần học Kĩ nghệ phần mềm thay vì Khoa học máy tính? Sau rốt, chúng là như nhau và sau khi tốt nghiệp đằng nào chúng tôi cũng sẽ làm việc trong công nghiệp phần mềm?”   Trả lời: “Kĩ sư phần mềm và khoa học máy tính là KHÔNG như nhau. Từng lĩnh vực hội tụ vào các khía cạnh khác nhau của công nghệ tính toán và dẫn tới các nghề nghiệp khác nhau trong công nghiệp phần mềm. Trong quá khứ, phần lớn phần mềm đều nhỏ và đơn giản, cho nên hội tụ là vào “khoa học về […]

Kĩ nghệ phần mềm và Khoa học máy tính

Một sinh viên năm thứ nhất hỏi tôi: “Tại sao một số người gọi chương trình đào tạo “Kĩ nghệ phần mềm” nhưng số khác lại gọi nó là “Khoa học máy tính” cái nào đúng? Sao tên khác nhau?”   Đáp: Có nhiều khác biệt giữa “Khoa học máy tính” và “Kĩ nghệ phần mềm”. Xin đọc các bài trước đây trên website SEGVN. Để hiểu tại sao có những cái tên khác nhau chúng ta cần quay trở lại lịch sử. Vào quãng sáu mươi hay bẩy mươi năm trước, khi máy tính vẫn còn là phát minh mới, chỉ vài nhà khoa học có thể dùng chúng […]

Lập trình cặp đôi

Một trong những thực hành tốt nhất trong lập trình cực đoan (XP) là lập trình cặp đôi. Khái niệm này là đơn giản: “Hai người tốt hơn một người” cho nên bằng việc có hai người phát triển tích cực xây dựng mã sẽ có kết quả phần mềm chất lượng tốt hơn. Với XP, mọi mã đều phải được thực hiện bằng lập trình cặp đôi. Tuy nhiên, không phải là một người viết mã và người kia chỉ theo dõi mà cả hai cùng đổi lượt viết mã vài lần mỗi ngày. Khi người này viết mã, người kia nghĩ về cách kiểm thử nó và cách tích […]

Lời khuyên cho sinh viên khoa học máy tính

Một sinh viên viết cho tôi: “Là sinh viên năm thứ nhất về khoa học máy tính, em bị lẫn lộn bởi vài ngôn ngữ lập trình. Bạn em bảo em rằng em nên học PHP và Java. Trường em chỉ dạy Java. Em nên học ngôn ngữ nào bây giờ? Em có nên theo học thêm lớp đào tạo đặc biệt về các ngôn ngữ khác không? Xin thầy lời khuyên.”   Đáp: Tôi đã trả lời câu hỏi này nhiều lần trước rồi. Xin đọc lại các câu trả lời trước vì mỗi năm, tôi thường nhận được vài câu hỏi về ngôn ngữ lập trình. Sự kiện […]

Học lập trình

Một sinh viên viết cho tôi: “Em thích công nghệ và muốn theo đuổi bằng cấp trong khoa học máy tính nhưng em không giỏi toán. Có cần biết giỏi toán để làm lập trình không? Có thể là người lập trình mà không có toán không?”   Đáp: Không nhất thiết phải rất giỏi toán để là người lập trình. Theo ý kiến tôi, lập trình giống như học “ngoại ngữ” như tiếng Anh hay tiếng Pháp. Bạn có thể học nói chỉ đủ để nói cho mọi người khi bạn du hành, hay bạn có thể học nó giỏi để diễn thuyết hùng biện. Cùng điều này cũng […]

Học ngôn ngữ lập trình “Ruby”

Ruby là ngôn ngữ lập trình hướng đối tượng vạn năng động bắt nguồn từ Nhật Bản bởi Yukihiro Matsumoto. Ông ấy muốn tạo ra một ngôn ngữ mới cân bằng lập trình hàm với lập trình mệnh lệnh. Tin đồn là ở chỗ ông ấy đã chọn tên “Ruby” vì nó là viên đá quí của một trong những người bạn của ông ấy. (Một số người nói đó là tên của một cô gái làm tan vỡ trái tim ông ấy vì ông ấy không thể mua được cho cô ấy viên đá quí cho nên ông ấy gây ấn tượng cho cô ấy bằng kĩ năng máy tính […]