Giới thiệu loạt bài Bài tập tư duy lập trình

Mình đã hướng dẫn khá nhiều bạn học lập trình, tuy nhiên rất nhiều bạn tư duy chưa tốt lắm để giải quyết các bài toán. Các bạn thường chỉ làm được theo mẫu mà không nghĩ được là để làm cái này thì cần có cái gì. Tức là khi gặp một bài hoàn toàn mới, các bạn không thể hoặc rất khó khăn để giải quyết nó. Do vậy mình viết loạt bài tập trung vào hướng dẫn giải các bài tập lập trình hi vọng giúp các bạn cải thiện, nâng cao tư duy lập trình nhất là các bạn mới bắt đầu học.

Trong loạt bài này mình sẽ xử dụng ngôn ngữ C (file *.c) để các bạn dễ tiếp cận và hoàn toàn có thể chuyển hóa dễ dàng sang các ngôn ngữ lập trình khác. Danh sách các bài sẽ được sắp xếp từ dễ đến khó ở menu bên phải mỗi bài viết và cả bài viết này.

Image source: flickr/cblue98
Image source: flickr/cblue98

Tư duy là một khái niệm khá trừu tượng, nó kiểu như là khi gặp một vấn đề nào đó các bạn có thể hình dung ra cách chúng ta làm, để làm nó thì cần có cái gì… Để có được một tư duy tốt trong lập trình các bạn cần rèn luyện khá nhiều (trừ những bạn có bẩm sinh), khi luyện nhiều thì các bạn sẽ hình thành nên một cái lối mòn – lối mòn tư duy. Và sau này các bạn có thể nảy sinh ý tưởng, cách làm một cái gì mới hết sức tự nhiên.

Về tài liệu để các bạn rèn luyện tư duy lập trình thì có khá nhiều, các bạn có thể tham khảo:

  1. Website spoj.com hoặc vn.spoj.com – Nơi tổng hợp các bài tập rèn luyện để thi Olympic tin học.
  2. Website vnoi.info – Một website tuơng tự spoj.
  3. Diễn đàn dạy nhậu học :v – Diễn đàn chia sẻ kiến thức lập trình, trao đổi rất sôi nổi.
  4. Tài liệu Giáo trình cấu trúc dữ liệu và giải thuật của thầy Lê Minh Hoàng – Một giáo trình khá chi tiết và đầy đủ về cấu trúc dữ liệu và nhiều thuật toán cơ bản.
  5. Tài liệu Giáo trình Giải thuật và lập trình của thầy Lê Minh Hoàng – Một giáo trình tập trung vào giải thuật rất chi tiết kèm các bài tập thực tế hay.

Trong loạt bài này mình có tổng hợp thêm từ nhiều nguồn khác nhau, trong đó có một số bài lấy theo tư tưởng các bài tập của anh Nguyễn Tô Sơn – giảng viên Đại học sư phạm Hà Nội – chuyên luyện thi học sinh giỏi và olympic tin học các cấp.

Rèn luyện tư duy lập trình cũng chính là rèn luyện tư duy cho các công việc hàng ngày, cho cuộc sống. Hi vọng loạt bài này sẽ giúp ích được một phần nào đó cho các bạn.