Chủ Nhật, 23 tháng 6, 2013

Phần mềm ...

Nhà trường phổ thông dạy cho chúng ta cách để giải một bài toán, nhưng chưa chắc đã dạy cho chúng ta cách ứng dụng chúng đưa vào đời sống thực tiễn.
Với chuyên tin cũng vậy. Chúng ta được học cách giải một bài toán và giải bài toán đó tối ưu hơn. Nhưng có ai tự hỏi rằng: Bài toán ứng dụng thực tiễn như thế nào? Phần mềm là câu trả lời cho vấn đề trên.
Phần mềm - hai chữ này có vẻ gì đó cao siêu đối với nhiều người. Nhưng thực ra, nó chỉ đóng gói các bước thực hiện một bài toán (hoặc nhiều bài toán) thành một gói duy nhất. Tất nhiên là để tạo ra nó, phải học cách sử dụng công cụ tạo ra nó (IDE và ngôn ngữ lập trình, các công cụ hỗ trợ, ...), và điều đó không quan trọng. Điều quan trọng là: Ý tưởng của bạn là gì? Tính thực tiễn của nó cao hay không? Nó có thể được làm như thế nào? Phương pháp bạn làm có khả thi và tối ưu không?
Với mình, cách để tìm một ý tưởng là: đi dạo, vì chỉ có đi dạo mới thấy được thực tiễn hiện hữu, để thấy những bất cập, những cái người ta cần, và suy nghĩ xem nó có khả thi không (Ví dụ: chẳng ai làm được phần mềm để yêu cả, hay anh không thể dùng phần mềm để bắt mọi người chấp hành luật giao thông).
Có ý tưởng rồi, tạo chúng ư? Công cụ rất nhiều: C/C++, C#, VB.NET, PHP, Java, ... và cả Pascal nữa. Việc học chúng cũng rất đơn giản, nhất là với các ngôn ngữ hỗ trợ sẵn như: C#, VB.NET, Java.
Một số điều mình muốn nói nữa là:
  • Cho dù cách bạn giải quyết bài toán rất "đẹp", nhưng nếu bạn không chú ý đến diện mạo phần mềm thì coi như bạn "công cốc". Vì người sử dụng người ta không quan tâm cách bạn giải quyết, người ta chỉ quan tâm: Sử dụng phần mềm như thế nào? Kết quả xử lý có đúng không ?
  • Đừng so sánh giữa các ngôn ngữ lập trình với nhau, cái nào cũng có mặt lợi và mặt khó khăn của nó. Đừng nói rằng: "để làm được phần mềm này, bọn tui sử dụng ngôn ngữ abcxyz gì đó, và phải làm việc rất nhiều do ngôn ngữ này không hỗ trợ một thứ gì đó, trong khi các anh dùng ngôn ngữ ghiklm, bọn tui thấy nó hỗ trợ nhiều và lập trình dễ hơn". Vì sao? Đó là so sánh khập khiễn, cách nhìn phiến diện, qua loa mà chưa đứng ở góc độ người làm việc. Bạn có chắc bạn sẽ làm được nó không?
  • Ý tưởng mới không có nghĩa là mọi thứ trong ý tưởng đều mới, mà là cách bạn giải quyết chúng theo một hướng hoàn toàn mới.
Ở cấp học phổ thông, về phần mềm thì có cuộc thi Tin học trẻ - bảng D là được biết đến rộng rãi. Nhưng mình thấy những phần mềm ở cuộc thi này hình như thiếu tính thực tiễn, vì mình vẫn chưa thấy phần mềm nào được ứng dụng trong cuộc sống (mình không nói tất cả), và mang tính cạnh tranh quá nhiều (vì tỉnh nhà mà, bất chấp thủ đoạn là điều dễ hiểu). Còn một cuộc thi khác là Sáng tạo khoa học công nghệ thanh thiếu niên nhưng mình chưa tìm hiểu nó.
Tuy nhiên, nếu như có điều kiện, bạn hãy tạo một phần mềm của riêng mình, sau đó có thể đưa nó ra thực tiễn thông qua một thứ gì đó (Google Plays, Apple Store, hay nhờ một người trung gian giới thiệu sản phẩm). Còn nếu đã vì tỉnh nhà và cần có giải, hãy suy nghĩ về một thứ gì đó đơn giản và ứng dụng được (ví dụ như quản lý dữ liệu chẳng hạn), làm một cái giao diện thân thiện, thêm một vài chức năng bạn cảm thấy thích, và quan trọng là trình bày báo cáo một cách rõ ràng. Vì sao ư? Chúng ta có rất ít thời gian để giải quyết chúng (còn học hành nữa).

Không có nhận xét nào:

Đăng nhận xét