Một lần, từ lâu khi còn là sinh viên, tôi đã được yêu cầu giải thích điều gì đó vào bữa trưa Chủ nhật - một trong những trải nghiệm giáo dục nhất mà tôi từng có. Người đặt câu hỏi thật ngu ngốc không ngu ngốc - nhưng không có nền tảng, mức độ kiến thức tôi cho là không có ở đó. Tôi bắt đầu trả lời, có một cái nhìn trống rỗng, thay đổi, vẫn trống rỗng, lại thay đổi, vẫn trống rỗng ... hmm ... vì vậy tôi bắt đầu giống như cách bạn bắt đầu xây dựng một ứng dụng, với những khối giải thích nhỏ mà bạn có thể xây dựng thành một cái gì đó quan trọng hơn.
Phần quan trọng của bài học này, đối với tôi, là (và là) chúng ta giả định bao nhiêu (không chỉ lập trình viên, mọi người) về kiến thức của người khác về chuyên môn đã chọn của chúng ta trong khi thực tế, thậm chí, bạn có thể cho rằng phần lớn mọi người biết rằng 1 + 1 = 2 nhưng sau đó nó trở nên thú vị.
Vì vậy, điều đầu tiên và quan trọng nhất cần nắm bắt là mọi người không biết và không hiểu những gì bạn làm - nhưng họ hiểu những gì họ làm và khi bạn giải thích công cụ, do đó bạn cần bắt đầu đơn giản và giữ ở mức phù hợp mức độ cho khán giả của bạn.
Về mặt kỹ thuật cụ thể - Tôi nghĩ rằng @Josh K có phần khá hay - và tôi nhấn mạnh rằng Analogies là một người chiến thắng tuyệt đối.
Một điều nữa - đôi khi, có thể chấp nhận viết những điều đó thành "công cụ chuyên nghiệp", mọi người không luôn muốn giải thích đầy đủ về lý do và nếu trước đây bạn đã thể hiện sự sẵn sàng giải thích và khả năng thực hiện Vì vậy, theo cách dễ hiểu thì mọi người sẽ có xu hướng tin tưởng bạn khi bạn đề xuất rằng "lý do kỹ thuật phức tạp" được áp dụng hoặc cuối cùng bạn có thể đạt được một kết quả cụ thể bằng cách "làm công cụ chuyên nghiệp" (hoặc "công cụ lập trình viên" hoặc bất kỳ thuật ngữ nào hoạt động tốt trong môi trường của bạn).
Truyền đạt những thứ kỹ thuật cho đối tượng không có kỹ thuật (của một hoặc nhiều) là một kỹ năng, một thứ bạn có thể phát triển và một thứ bạn cần.