CSE-HUI
Chào mừng bạn gia nhập diễn đàn của chúng tôi. Hãy click vào để dăng ký, ủng hộ cho diễn đàn nhé.

Join the forum, it's quick and easy

CSE-HUI
Chào mừng bạn gia nhập diễn đàn của chúng tôi. Hãy click vào để dăng ký, ủng hộ cho diễn đàn nhé.
CSE-HUI
Bạn có muốn phản ứng với tin nhắn này? Vui lòng đăng ký diễn đàn trong một vài cú nhấp chuột hoặc đăng nhập để tiếp tục.
CSE-HUI

KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH


You are not connected. Please login or register

Phương pháp học lập trình hiệu quả

Go down  Thông điệp [Trang 1 trong tổng số 1 trang]



Các ngôn ngữ lập trình ra đời và lỗi thời nhanh một cách đáng kinh ngạc trong ngành Khoa học Máy tính. Các ngôn ngữ lập trình mới thường chứa đựng những quy tắc khác nhau làm cho mọi người phải thường xuyên thay đổi cách dùng các công cụ cũng như thói quen lập trình. Nhưng việc học một ngôn ngữ lập trình mới để cung cấp thêm kiến thức cho nghề nghiệp của mình cũng là một nhu cầu chính đáng.



Trước khi học một ngôn ngữ mới, bạn thường đặt ra câu hỏi: Làm sao để học ngôn ngữ lập trình này được hiệu quả? Có một vài gợi ý nhỏ sau có thể giúp bạn học các ngôn ngữ lập trình dễ dàng hơn:

1. Nắm vững các kiểu dữ liệu cơ bản mà ngôn ngữ lập trình cung cấp.

Hầu hết các ngôn ngữ đều cung cấp kiểu số nguyên integer. Bạn phải tìm hiểu thêm thế nào là long integer hoặc short integer? Thế nào là kiểu liệt kê (Enumerated)? Thế nào là kiểu kí tự (Character)? Thế nào là kiểu chuỗi (String)? Ngôn ngữ có hỗ trợ kiểu số thực dấu chấm động hay không, và tầm giá trị của mỗi kiểu dữ liệu là bao nhiêu? Và khi một ngôn ngữ nào đó không hỗ trợ kiểu dữ liệu mà bạn cần dùng thì tốt hơn bạn nên chuyển sang dùng một ngôn ngữ khác.



2. Nắm vững cấu trúc dữ liệu cơ bản được ngôn ngữ cung cấp.

Chẳng hạn Pascal có cấu trúc mảng (array), Lisp có thể thao tác rất dễ dàng với cấu trúc danh sách (list), còn Java thì có thể làm việc với các lớp và các giao tiếp.…Và những vấn đề bạn nghĩ trong đầu cuối cùng phải được biểu diễn bằng các kiểu dữ liệu mà ngôn ngữ cung cấp, việc hiểu rõ mối quan hệ giữa chúng là nền tảng để giải quyết các vấn đề.



3. Ngôn ngữ cung cấp những toán tử dựng sẵn nào?

Ví dụ: Prolog xem tìm kiếm là một thao tác cơ bản, Snobol xem thao tác đối sánh mẫu trên các chuỗi (string pattern matching) là một toán tử cơ sở, các ngôn ngữ hàm (ML, Haskell) cho phép bạn tạo ra một giá trị mới nhưng không làm thay đổi cấu trúc hiện tại, APL cung cấp toán tử ma trận, … Danh sách các toán tử dựng sẵn của một ngôn ngữ sẽ cho ta biết những vấn đề mà những chuyên gia thiết kế ngôn ngữ đó cho là quan trọng nhất.



4. Nắm vững loại vấn đề mà ngôn ngữ có thể trợ giúp giải quyết.

Các ngôn ngữ thường được phát triển vì một lý do nào đó, thường là để giải quyết một loại vấn đề mang tính đặc trưng. Do đó, bạn nên cố gắng nắm rõ những chức năng đặc trưng của ngôn ngữ để giải quyết vấn đề đồng thời cũng nên tìm hiểu tại sao cùng một vấn đề nhưng dùng ngôn ngữ này để giải quyết lại dễ dàng hơn dùng ngôn ngữ khác.



5. Tìm hiểu những thư viện có sẵn trong ngôn ngữ.

Các ngôn ngữ thường có các thư viện do nhiều người đã phát triển để giải quyết những vấn đề khác nhau, bạn có thể sử dụng lại để giải quyết một vấn đề mới. Smalltalk có một thư viện đồ sộ với lượng mã luôn sẵn sàng để người lập trình sử dụng. C++ với thư viện chuẩn STL chứa nhiều cấu trúc dữ liệu thường dùng. Java có các thư viện cung cấp các tác vụ về mạng. Bạn hãy cố gắng tìm và sẽ thấy những gì cần thiết sẵn có.



6. Hãy học hỏi, mô phỏng lại!

Bắt đầu với việc mô phỏng lại các chương trình hiện có. Phải làm cho chúng có thể hoạt động trên hệ thống của bạn, bởi vì hệ thống mà nó được phát triển có thể không giống với hệ thống của bạn, và khi bạn có thể làm cho nó hoạt động tốt trên hệ thống của mình thì tức là bạn đã hiểu rõ về nó. Học các chương trình để hình dung được các tính năng khác nhau của ngôn ngữ.



7. Hãy thử nghiệm và rút ra kết luận!

Khi bạn đã có một vài chương trình có thể chạy tốt, bạn thử nghiệm bằng cách tạo ra một vài thay đổi. Bạn có thể lấy ra một chương trình và sửa lại nó để giải quyết một vấn đề sai khác chút ít so với chương trình ban đầu hay không? Bạn có thể lấy ra một phần nhỏ của chương trình và diễn đạt lại bằng cách khác hay không?



8. Hiện thực lại các vấn đề đã hiểu rõ bằng một ngôn ngữ mới.

Lấy một vài chương trình đã được viết trong một ngôn ngữ rồi cố gắng viết lại chúng trong ngôn ngữ mới. Không nên dịch từng câu lệnh sang ngôn ngữ mới mà hãy xem xét những tính năng đặc trưng nào của ngôn ngữ mới có thể dùng để giải quyết vấn đề. Cẩn thận xem xét những vấn đề nào dễ dàng hiện thực trong ngôn ngữ mới và những vấn đề nào khó khăn hơn. (Chương trình truyền thống đầu tiên nên viết là chương trình in ra chuỗi "hello world").



9. Khi gặp một vấn đề mới thì nên nghĩ về những vấn đề đã biết trước đó có cùng đặc điểm với vấn đề mới. Sau đó hãy bắt đầu thử nghiệm.

Người xưa từng dạy "Dục Tốc Bất Đạt", tôi đồng ý với ý kiến cho rằng nếu bạn là một người chưa có khái niệm thế nào là lập trình và software development thì không nên bắt đầu bằng những quyến sách học cấp tốc như vậy. Tuy nhiên cũng không thể cực đoan cho rằng những quyển sách như vậy là không có giá trị riêng của nó.



Chúng rất có ích đối với những người lập trình có kinh nghiệm, đã thành thạo ít nhất 2 đến 3 ngôn ngữ thì việc tham khảo những ngôn ngữ khác để sử dụng trong quá trình thiết kế và phát triển phần mềm. Và trong một số trường hợp mà bạn phải nắm bắt nhanh một ngôn ngữ nào đó để hoàn thành công việc trong một thời gian rất ngắn thì ắt hẳn bạn phải tạm thời sử dụng những cuốn sách đó như một quick reference và cố gắng có một cái nhìn tổng quan, cũng như những khía cạnh đặc biệt của ngôn ngữ mới đó.



Về cơ bản để là một lập trình viên tốt, ngoài năng lực, kỹ năng lập trình, kinh nghiệm, bạn còn cần có cái nhìn rộng và khả năng tư duy thoát ra khỏi phạm vi của một hay nhiều ngôn ngữ mà bạn đang sử dụng để viết phần mềm. Tất nhiên bạn giành nhiều thời gian để đào sâu, khai thác các khía cạnh của 1 ngôn ngữ nhưng cũng không nên bó hẹp hay phụ thuộc vào nó. Bên cạnh đó cũng cần nói thêm là các ngôn ngữ lập trình hiện đại về sau này có rất nhiều điểm tương đồng và làm thuận tiện hơn cho developers, và nếu quan sát kỹ thì phần lớn đều dựa trên những basics từ ngôn ngữ C.



Điều tôi muốn nhấn mạnh ở đây là "THINKING". Mỗi một ngôn ngữ lập trình đều có những đặc thù, điểm mạnh, điểm yếu, và phạm vi ứng dụng, chúng ta cần biết phân tích tình huống để vận dụng sao cho có hiệu quả.

Về Đầu Trang  Thông điệp [Trang 1 trong tổng số 1 trang]

Permissions in this forum:
Bạn không có quyền trả lời bài viết