Làm thế nào để giải thích cho những người không lập trình rằng lập trình không phải là một nhiệm vụ lặp đi lặp lại? [đóng cửa]


11

Một số người có quan điểm về lập trình rằng đó chỉ là việc gõ lặp đi lặp lại trên bàn phím. Không có điều này là đúng. Trước hết, có rất nhiều việc bạn phải làm hơn là thực sự gõ mã, chẳng hạn như kiến ​​trúc thiết kế, v.v. Thứ hai, nó có thể là một nhiệm vụ rất khác nhau, không lặp đi lặp lại, với những thách thức mới luôn luôn xuất hiện.

Làm thế nào bạn nên giải thích rằng lập trình không phải là một nhiệm vụ lặp đi lặp lại cho những người không lập trình ?


5
Hỏi, công việc của họ là một nhiệm vụ lặp đi lặp lại? Nếu đó là, sau đó, tốt, hút cho họ, có lẽ họ không biết niềm vui của một nghề sáng tạo và đa dạng. Nếu không, hãy nói nó giống hệt nhau.
Mark Canlas

4
@Mark Canlas: Điểm tốt. Những người này làm những công việc gì (với quan điểm lập trình là đánh máy lặp đi lặp lại)? Rất có thể, bạn có thể chỉ ra một số sự lặp đi lặp lại hời hợt trong các công việc hàng ngày của họ và giảm công việc của họ thành "lặp đi lặp lại cái gì đó khác", và sau đó yêu cầu họ giải thích nó không như thế nào .
Thất vọngWithFormsDesigner

14
Nếu nó lặp đi lặp lại, bạn đang làm sai.

1
Câu nói đó có nghĩa là nói chung. Nhiều nhiệm vụ được thực hiện sai khi bạn làm đi làm lại nhiều lần. Chỉ cần gắn các bộ phận xe với nhau? Thiết kế một robot để làm điều đó (tất nhiên là giả sử bạn có thể - nếu không, xin lỗi bạn sẽ mất việc). Chỉ cần gắn các bộ phận robot với nhau? Xây dựng một robot để xây dựng các robot;) Về cơ bản là lập trình . Thêm nhiều lớp hơn để không lặp lại vô hạn.

2
Nói bóng đá là một môn thể thao lặp đi lặp lại (Mọi người cứ làm như vậy, đá bóng).
apoorv020

Câu trả lời:


31

Cho họ ví dụ họ có thể liên quan đến.

Quần vợt là lặp đi lặp lại. Bạn chỉ cần tiếp tục đánh bóng qua phía bên kia của lưới.

Bóng đá là sự lặp đi lặp lại. Bạn chỉ cần tiếp tục đá bóng mỗi lần cho đến khi bạn tìm thấy một mục tiêu bài.

Chơi piano là lặp đi lặp lại. Bạn tiếp tục di chuyển ngón tay của bạn trên bảng.

Chết tiệt, chán quá !!!


3
Chơi tennis, bóng đá và piano thật nhàm chán, theo cách mà lập trình thì không. Trong tất cả những mưu cầu đó, một người liên tục phải đối mặt với tình huống tương tự, và phải làm điều tương tự. Tuy nhiên, trong lập trình, như các câu trả lời khác đã chỉ ra, nếu bạn gặp tình huống tương tự hai lần, bạn đã làm sai.
Avi

1
@Avi trong cùng một chương trình tĩnh mạch là nhàm chán theo cách mà quần vợt hoặc piano không có, vì vậy nó thực sự là một cuộc tranh luận.
Maurycy

18

Bạn luôn có thể nói rằng lập trình là gõ lặp đi lặp lại chính xác đến mức giống như viết văn xuôi là gõ lặp đi lặp lại. Người ta sẽ viết một cuốn tiểu thuyết tuyệt vời (hoặc thậm chí tầm thường) bằng cách ngồi và cẩn thận đặt các chữ cái lại với nhau?


18

Vâng, đó là một cách. Bạn lặp đi lặp lại gõ cùng một chữ cái (AZ, az, 0-9) nhiều lần. Chỉ trong sự kết hợp khác nhau.

Tôi thường cố gắng tránh những cuộc thảo luận với những người như vậy.


1
@Rook - Lời khuyên tốt.
John Trục

4
+1. Làm cho tôi nghĩ về một so sánh tốt đẹp giữa sách và bảng chữ cái . (Loosely dịch để: .. Các bảng chữ cái là một tập hợp các chữ cái, mà vượt qua cuốn sách trong cả hai cấu trúc và nội dung Trong thời gian ở cuốn sách các chữ cái đều hỗn hợp lên, những người trong bảng chữ cái được liền viết bằng thứ tự tăng dần )
back2dos

1
Tôi hy vọng rằng bạn không tránh tất cả những người có hứng thú với bạn.

3
@Rook: Có ai đó đặt câu hỏi về thế giới lập trình là một điều may mắn. Đừng tránh chúng. Nói chuyện với họ. Càng nhiều càng tốt.

4
Tôi cố gắng trộn mọi thứ lên bằng cách sử dụng dấu câu. AZ không đủ thú vị đối với tôi.
MJB

13

Lập trình khá giống như sáng tác nhạc . Đó là xa quá trình là lặp đi lặp lại.

  • Bạn bắt đầu nghĩ về cái nhìn tổng thể về những gì bạn cần đạt được
  • Bạn nghĩ về một đoạn nhỏ của tác phẩm của bạn và bạn viết nó
  • Khi đã xong, bạn chơi nó (F5 trong Visual Studio)
  • Bạn lặp lại quá trình, khi cần thiết
  • Đôi khi bạn mượn ý tưởng hoặc lấy cảm hứng từ các bộ tổng hợp khác
  • Đôi khi bạn cấu trúc lại bài hát của mình bằng cách di chuyển hoặc làm lại các phần

Đôi khi, bạn không biết mình muốn gì và chơi xung quanh. Có lẽ là cách tốt nhất để có được các tác phẩm thú vị nhất ...


1
Haha ... +1 để chơi nó (F5 trong Visual Studio). Bây giờ nếu tôi chỉ có thể thêm một phím F5 vào guitar của mình ...
JasCav

3
-1 cho Visual Studio;)
Jordan

Pierre, trong khi không đồng ý với phản hồi chung của bạn với OP, tôi không đồng ý rằng thành phần âm nhạc tương tự như lập trình. Thành phần là khó khăn hơn - Tôi nghĩ tôi đặt nó khá tốt cho bài viết này: linkedin.com/...
azheglov

1
@azheglov: khó hơn dựa trên cái gì? Bất cứ ai cũng có thể sáng tác. Bây giờ rất ít người sẽ ở trên MTV như rất ít người trong chúng ta sẽ được phỏng vấn bởi CNN

Ngay cả khi, giả sử, soạn nhạc là "khó" hơn, các vấn đề trong thang đo CS phải bù: mỗi dòng mã có thể dễ viết hơn một nốt, vì vậy chúng tôi có các dự án với hàng triệu dòng mã (nếu không phải là nhiều hơn). Vì vậy, ngay cả khi mỗi hành động nguyên tử đơn giản hơn, các lập trình viên giỏi nhất chỉ đơn giản được mong đợi sẽ giải quyết các vấn đề khó khăn hơn.
Tikhon Jelvis

4

Tôi thường giải thích rằng lập trình là giải quyết vấn đề sáng tạo. Bạn có một vấn đề - bạn muốn có một tính năng trong một sản phẩm (và tôi thường chọn một sản phẩm nổi tiếng, Amazon.com, MS Word, v.v.), và nó không có ở đó. Điều này chưa bao giờ được thực hiện trước đây và bạn là người đầu tiên, vì vậy đây giống như bất kỳ dự án nghệ thuật nào - bạn có tầm nhìn, nhưng bạn cần tìm ra một con đường.

Tôi cũng tập trung vào thực tế là có nhiều hơn một cách để giải quyết vấn đề, một loạt các cách thực sự tồi tệ và có lẽ nhiều hơn một cách tốt. Về lâu dài có thể có một cách tốt nhất , nhưng cách tốt nhất đó sẽ không rõ ràng trong một thời gian dài (khả năng mở rộng, tái sử dụng, v.v.), vì vậy tại thời điểm phát triển, có rất nhiều lời kêu gọi phán xét quan trọng.

Cuối cùng, sản phẩm cuối cùng có thể được người nhận yêu hoặc ghét. Giống như một số người yêu thích Picasso và một số người không thể tạo ra đầu hoặc đuôi của nghệ thuật hiện đại - một số người có thể yêu thích một tính năng và một số có thể ghét nó. Bạn làm tốt nhất có thể cho hầu hết mọi người, và con số bạn không thể làm hài lòng tất cả mọi người.

Tập trung vào:

  • lãnh thổ chưa biết
  • không ai trả lời
  • có thể giải thích

Cho thấy rằng tác phẩm này rất giống nghệ thuật, và rất ít giống như công việc nhàm chán lặp đi lặp lại.

Tôi thường xuyên nói chuyện này với các nghệ sĩ (và họ dường như có niềm tin theo bản năng rằng công việc máy tính là không sáng tạo. Thông thường tôi cũng có thể liên hệ nó với loại hình nghệ thuật yêu thích của nghệ sĩ. Ở một mức độ nào đó, hầu hết các nghệ sĩ cũng là kỹ thuật viên - vẽ tranh , nhảy múa, tạo ra âm nhạc và có lẽ là bất kỳ nghệ thuật nào khác - tất cả đều liên quan đến một loạt các hoạt động lặp đi lặp lại đưa bạn đến điểm thực hiện một cái gì đó mới, khác biệt và sáng tạo. Nói cách này, các nghệ sĩ thường có vấn đề từ chối rằng các hoạt động dường như lặp đi lặp lại có thể dẫn đến để làm việc của cảm hứng và vẻ đẹp.

Vào thời điểm đó, họ thường sẵn sàng thừa nhận rằng chỉ vì "nghệ thuật" của tôi liên quan đến một tập hợp các câu cú pháp trông kỳ quái và các sơ đồ UML trông nhạt nhẽo, điều đó không có nghĩa là nó không sáng tạo trong các dòng mã đó và các mô hình của hệ thống cuối cùng tạo ra một cái gì đó khá khác biệt so với tổng số các bộ phận của nó.


2
Là một nghệ sĩ, tôi thích sự so sánh này. Nó sẽ có ý nghĩa với hầu hết các nghệ sĩ, thuộc tất cả các loại, và những người có thể liên quan đến các hoạt động nghệ thuật. (Tôi không chắc chắn về những người không phải là nghệ sĩ.)
DarenW

3

Lập trình là về trừu tượng. Bạn càng viết nhiều điểm tương đồng bạn có thể thấy. Nhưng sau đó là thời gian để trừu tượng. Bằng cách tái cấu trúc một khung phát triển giúp loại bỏ sự trùng lặp. Điều này làm giảm sự phức tạp trong mã miền vấn đề.

Lập trình lặp đi lặp lại là có thể. Nhưng nó không hiệu quả.


+1 khi mã hóa trở nên rất lặp đi lặp lại, đó là dấu hiệu có thể "bạn đang làm sai!"
Thất vọngWithFormsDesigner

3

Nếu thực sự là như vậy, chúng tôi sẽ chỉ sử dụng bản sao và dán: D

Một trong những thách thức chính trong lập trình là xây dựng các khối thời trang chất lượng cao, sao cho bạn

  • có thể sử dụng chúng để xây dựng tòa nhà của bạn (tức là phần mềm bạn đang xây dựng) của các thành phần rắn, do đó làm tăng tính ổn định
  • có thể tái sử dụng chúng nhiều lần trong cùng một tòa nhà hoặc thậm chí trong các tòa nhà khác nhau (để giảm sự lặp lại) và do đó làm tăng năng suất của bạn
  • sẽ có thể thay đổi một khối mà không khiến toàn bộ tòa nhà của bạn bị sập, do đó làm tăng tính linh hoạt cục bộ
  • sẽ có thể thay đổi tất cả các phiên bản của một khối cùng một lúc, do đó làm tăng tính linh hoạt toàn cầu

Theo bản chất của nó, thách thức này đòi hỏi bạn không lặp lại chính mình .

Như một hệ quả tất yếu: Nếu bạn lặp lại chính mình như một lập trình viên, bạn sẽ lãng phí thời gian vào việc xây dựng phần mềm, điều đó không ổn định, cũng không linh hoạt.


1

Ngoài các câu trả lời khác chỉ ra cách lặp đi lặp lại hoặc gõ / nhấp là hời hợt, bạn cũng có thể chỉ ra rằng lập trình thường liên quan nhiều đến việc giải quyết vấn đề hơn là về cách gõ (và tôi nghĩ đó là Djikstra đã nói rằng khoa học máy tính là nhiều về máy tính như thiên văn học là về kính viễn vọng - hoặc một cái gì đó tương tự ).

Gõ chỉ là một cách để thực hiện giải pháp (và hiện tại là phổ biến nhất), mặc dù có nhiều cách khác, chẳng hạn như:

  • mã giả trên bảng trắng (minh họa cho giải pháp, nhưng không thực sự chạy hoặc làm bất cứ điều gì, thật không may)
  • thẻ đục lỗ (hiện được coi là lỗi thời)
  • Có thể là các mảng logic có thể lập trình hoặc nếu bạn muốn giải pháp của mình được triển khai trực tiếp trong phần cứng (mặc dù rất có thể sẽ có một số cách gõ để đưa giải pháp từ não của bạn đến PLA, tôi không biết mức độ phổ biến của việc "mã hóa" những điều này những điều trực tiếp - tôi không thực sự làm việc với họ, chỉ biết họ từ những người khác làm).
  • mọi người (tôi đã nghe nói về một nhóm gần đây đã thực hiện các thuật toán sắp xếp như một điệu nhảy)
  • đá trong sa mạc . ;)

0

Phần lớn hành động lập trình là gõ. Vẽ tranh bao gồm vuốt ve bằng bàn chải nhưng gọi lặp đi lặp lại là khá hời hợt.

Họ sẽ áp dụng logic đó để: - Nhân viên bán hàng nói chuyện điện thoại rất nhiều. - Người quản lý đi đến rất nhiều cuộc họp. - Ca sĩ chỉ hát. - Diễn viên lặp lại kịch bản.

Nếu vậy, đó là lý do tại sao họ không phải là một lập trình viên.


-2

Nếu bạn muốn giỏi lập trình thì nó lặp đi lặp lại nhưng điều tương tự có thể được nói cho bất cứ điều gì. Sự lặp lại là trung tâm của việc thành thạo bất kỳ kỹ năng nào.


-2

Lập trình tốt thực sự có thể là một nhiệm vụ lặp đi lặp lại khá nhiều. Đặc biệt là khi cơ sở hạ tầng đã được xây dựng, quá trình nhàm chán của việc xây dựng cùng một phần mềm hộp thoại / kinh doanh (chỉ khác một chút ) lặp đi lặp lại. Bạn thật may mắn nếu bạn không phải tham gia để đáp ứng thời hạn hoặc nếu bạn có đủ đàn em để làm công việc đó.


1
Tôi phụ thuộc vào loại công việc bạn làm, tôi đoán
Anto
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.