Một lập trình viên phải biết cách tư duy như của máy tính. Mọi công việc phải được chia thành những mảng nhỏ để có thể được giải quyết dễ dàng và không thể xảy ra lỗi.
Tư duy như người máy
Hãy tưởng tượng ở một quán cà phê nơi bồi bàn là một con robot. Con robot này có một bộ não máy tính đơn giản và cần phải được chỉ cách hoạt động từ việc lấy cà phê an toàn cho đến phục vụ thức ăn cho các thực khách.
Đầu tiên quá trình này được chia thành hai nhiệm vụ nhỏ mà máy tính có thể hiểu được.
+ Chương trình robot bồi bàn 1: 1. Lấy thức ăn. 2. Di chuyển từ bếp tới bàn của thực khách. 3. Để thức ăn xuống. Thảm họa.
Khi sử dụng chương trình này, robot sẽ lấy thức ăn từ đĩa, lao thẳng qua tường bếp tới khu vực khách ăn và đặt thức ăn xuống sàn nhà.
Những chỉ dẫn này không rõ ràng: chúng ta quên mất không bảo robot dùng cửa ra vào. Điều này có vẻ rất rành mạch với con người nhưng tự bản thân máy tính lại không thể nghĩ được vậy.
+ Chương trình robot bồi bàn 2: 1. Cầm đĩa có đồ ăn. 2. Di chuyển từ bếp tới bàn ăn của thực khách bằng cách: Di chuyển tới cửa ra vào nằm giữa bếp và khu vực khách ăn. Di chuyển tới cửa ra vào từ chiếc bàn. 3. Đặt đĩa thức ăn lên trên bàn trước mặt thực khách. Lần này chúng ta đã chỉ cho robot bồi bàn biết dùng cửa bếp. Nó đi qua ô cửa này nhưng lại đụng phải con mèo, vấp ngã và khiến đĩa thức ăn rơi vỡ trên sàn nhà. Vẫn chưa hoàn thiện.
Con robot vẫn chưa biết cách đối phó với các chướng ngại vật như con mèo.
Chương trình cần thiết lập cho robot những chỉ dẫn cụ thậm chí cụ thể hơn thế nữa để nó có thể di chuyển khắp nơi một cách an toàn.
+ Chương trình robot bồi bàn 3: 1. Cầm đĩa đồ ăn, luôn giữ cân bằng. 2. Di chuyển từ bếp tới bàn của thực khách bằng cách: Di chuyển tới cửa ra vào nằm giữa bếp và khu vực khách ăn, kiểm tra các chướng ngại vật và hướng vòng qua chúng. 3. Đặt đĩa đồ ăn lên bàn phía trước thực khách.
Cuối cùng cũng thành công?
Với phiên bản chương trình này, robot sẽ phục vụ đồ ăn thành công tới thực khách mà tránh được bất cứ chướng ngại vật nào.
Nhưng sau khi đặt đĩa đồ ăn xuống, robot vẫn đứng cạnh bàn ăn trong khi đồ ăn chồng đống trong bếp. Rốt cuộc, robot có thể phục vụ đồ ăn an toàn nhưng chúng ta lại quên đưa chỉ dẫn cho nó quay lại bếp và lấy đĩa đồ ăn tiếp theo.