Làm thế nào để bạn chia sẻ nghề của bạn với các lập trình viên không?


43

Đôi khi tôi cảm thấy như một nhạc sĩ không thể chơi các chương trình trực tiếp. Lập trình là một kỹ năng khá tuyệt vời và một thế giới rất rộng, nhưng rất nhiều trong số đó xảy ra "tắt camera" - trong đầu bạn, trong văn phòng của bạn, cách xa khán giả.

Tất nhiên bạn có thể nói về lập trình với các lập trình viên khác, và có lập trình ngang hàng, và bạn có thể tạo ra thứ gì đó mà bạn có thể hiển thị cho mọi người, nhưng khi giải thích cho những người lập trình không biết bạn làm gì, hoặc làm thế nào ngày của bạn tại nơi làm việc, đó là loại khó khăn.

Làm thế nào để bạn có được những người không lập trình trong cuộc sống của bạn để hiểu những gì bạn làm?

LƯU Ý: đây không phải là sự lặp lại của việc khiến những người không phải lập trình viên hiểu được quy trình phát triển , bởi vì câu hỏi đó là về việc quản lý kỳ vọng của khách hàng.


Đó là bản chất của nghề nghiệp: có rất ít phần thưởng hữu hình cho nỗ lực của bạn bởi vì bạn là người duy nhất hiểu những gì bạn làm. Tuy nhiên, kiến ​​thức, tiền là phần thưởng đủ cho hầu hết.
Không ai vào


12
Hãy vui mừng bạn không viết công cụ cho an ninh. An ninh thậm chí còn ít sai sót hơn bất cứ điều gì khác. "Hãy xem, nó đang làm điều tương tự như trước đây, chỉ bây giờ nó an toàn ..."
Shawn D.

2
Ai đó có thể giải thích cho tôi, loại câu hỏi này phù hợp với các lập trình
viên.stackexchange.com/faq

1
@Dave nó phù hợp với thể loại câu hỏi đã được đăng khi trang web vẫn đang trong giai đoạn thử nghiệm, nếu bộ nhớ phục vụ tôi đúng. Các quy tắc không hoàn toàn được đánh bóng trở lại sau đó.
EpsilonVector 2/212

Câu trả lời:


31

Ba từ:

dumb it down

Lập trình rất phức tạp. Phải mất rất nhiều công việc để hiểu nó. Và niềm vui của lập trình thậm chí còn tinh tế hơn.

Để tôi truyền đạt những thành công của mình và như vậy cho những người khác (ví dụ như gia đình), tôi phải giao tiếp ở mức độ phổ biến hơn. So sánh lập trình với những thứ thực tế bình thường.

(tức là một đối tượng cho một chiếc xe có bảng điều khiển và ghế ngồi và ....)

Thậm chí còn tốt hơn nếu bạn biết điều gì đó về khán giả của mình vì bạn có thể sử dụng những thứ mà họ hiểu là phức tạp hơn các khái niệm thông thường hàng ngày.

Ví dụ, vợ tôi là một giáo viên trường học, vì vậy tôi có thể so sánh một số quy trình phát triển phần mềm của tôi với các quy trình giảng dạy mà cô ấy phải sử dụng. Nó giúp rất nhiều.

Nhưng cuối cùng, bạn phải đơn giản hóa, đơn giản hóa và đơn giản hóa một số chi tiết. Và thậm chí sau đó, thật khó để khiến ai đó hiểu được một lớp học được chế tạo tốt với các bài kiểm tra đơn vị tốt như thế nào. :)


25
+1 cho "Và thậm chí sau đó, thật khó để khiến ai đó hiểu được một lớp học được chế tạo tốt với bài kiểm tra đơn vị tốt như thế nào." Tôi có một thời gian khó khăn để một số lập trình viên hiểu điều đó.
CaffGeek

3
Tôi là một fan hâm mộ của việc sử dụng các tương tự xấu để giải thích các khái niệm bí truyền.
Malachi

49

Tôi thậm chí không thử. Nếu họ không định hướng công nghệ đủ để có ít nhất một sự hiểu biết cơ bản về lập trình, tôi sẽ chỉ làm họ nhàm chán với các chi tiết. Thông thường tôi chỉ đi với một cái gì đó rất cao cấp như "Tôi tạo trang web" hoặc "Tôi viết chương trình máy tính để làm X"


13
+1 - Tôi sử dụng phương pháp này mọi lúc. Nếu tôi thực sự muốn họ biết ngày của tôi đã trôi qua như thế nào, tôi sẽ ném một số điều khoản cho họ và xem cái nhìn thủy tinh đó chiếm lấy đôi mắt của họ. Sau đó, một người nào đó thay đổi chủ đề.
Joel Etherton

7
Tôi thấy rằng mọi người có xu hướng thay đổi chủ đề ngay khi tôi đề cập đến máy tính. Hoặc là hoặc họ bắt đầu phàn nàn về máy tính của họ và xin lời khuyên. Tôi đoán các bác sĩ có cùng một vấn đề.
Brian Ortiz

3
@Brian ngoại trừ hầu hết các bác sĩ khắc phục sự cố thay vì xây dựng các hệ thống mới;)
Armand

2
Đúng. Câu trả lời đơn giản nhất là "Tôi tạo ra công cụ ... cụ thể hơn, tôi tạo ra một hệ thống cụm thời gian thực có tính sẵn sàng cao, cho ..." - và ở đây chúng đã biến mất ...
Sorantis

Đây là những gì tôi làm. Sau đó, tôi chờ đợi 5 giây im lặng và nói "Đừng để kẻ giết người trò chuyện tránh đường. Vậy anh phải làm gì?"
pdr

12

Tôi cố gắng giải thích nó dưới dạng giải quyết một vấn đề. Tôi chỉ chọn sử dụng một chương trình máy tính để giải quyết vấn đề. Bằng cách đó bạn có thể thảo luận về những gì bạn đã làm về vấn đề bạn đang cố gắng giải quyết. Một khi họ hiểu điều đó, bước nhảy để giải quyết nó thông qua lập trình không phải là rất xa và thường có thể được thực hiện bởi các loại không phải là techie.


12

Tôi đã có anh trai Rob hỏi tôi về điều đó. (Anh ấy là một nghệ sĩ và họa sĩ minh họa, như những cuốn sách thiếu nhi, nội thất bảo tàng, những thứ tương tự.)

Tôi đã cố gắng giải thích nó bằng cách cho anh ta xem Máy tính Rơle của Harry Porter , bởi vì tôi nghĩ rằng nó nắm bắt được bản chất của máy tính và lập trình theo kiểu cảm nhận ruột thịt.

Đó không phải là những gì anh ấy muốn, và tôi đã rất bối rối.

Chỉ sau này tôi mới nhận ra vấn đề thực sự là gì. Tôi đã được nhắc nhở về trích dẫn Oscar Wilde này:

Thực tế là, nền văn minh đó đòi hỏi nô lệ. Người Hy Lạp đã khá đúng ở đó. Trừ khi có nô lệ để làm công việc xấu xí, khủng khiếp, không thú vị, văn hóa và suy ngẫm trở nên gần như không thể. Chế độ nô lệ của con người là sai trái, không an toàn và làm mất tinh thần. Về chế độ nô lệ cơ học, về chế độ nô lệ của máy móc, tương lai của thế giới phụ thuộc.

Điều làm tôi phấn khích khi là một kỹ sư là tôi đang xây dựng nô lệ cơ khí. Khi còn bé, tôi muốn đặt một con đập vào con lạch, và có một bánh xe nước tạo ra điện, vì vậy nó có thể làm gì đó cho tôi , trong khi tôi chỉ xem. Trong động cơ trong xe hơi, có trục cam. Đó thực sự là một chương trình nguyên thủy. Nó mở và đóng các van khi tôi muốn vì vậy tôi không phải làm điều đó.

Thế giới của một nghệ sĩ hoàn toàn khác. Nếu bạn lắng nghe, nhắm mắt lại, để thể hiện bản giao hưởng số 9 của Beethoven, bạn sẽ được chuyển đi. Bạn phải dành cho nó sự chú ý hoàn toàn, và khi nó kết thúc, bạn khao khát điều đó. Nếu bạn đến thăm ngôi nhà tuyệt tác của Frank LLoyd Wright, Falling Water, bạn sẽ được vận chuyển. Tôi thực sự không biết làm thế nào bất cứ ai có thể sống trong đó. Bạn có thể làm cho một mớ hỗn độn ở đâu? Nó nắm bắt bạn hoàn toàn. Đó là một bản giao hưởng kiến ​​trúc.

Nghệ thuật không làm điều gì đó cho bạn, nó làm điều gì đó cho bạn.

Tôi đã cố gắng tìm ra nghệ thuật trong những gì tôi làm. Có vẻ đẹp trong đó, nếu bạn nhìn, nhưng bạn phải nhìn. Đó là những gì sẽ kết nối chúng ta.


3
Tôi đọc rằng ban đầu là Máy tính Rơle của Harry Potter , ma thuật thường được sử dụng để mô tả những gì chúng ta làm là điều tất nhiên;)
jk.

@jk: Tôi cá rằng một mình đưa học sinh vào lớp học của mình :)
Mike Dunlavey

@jk. Thường xuyên hơn không tôi thấy ma thuật đen trong các tác phẩm của chúng tôi.
heishe

7

Kể một câu chuyện. Đừng tập trung vào những gì bạn làm, mà là bạn cảm thấy thế nào khi làm điều đó, bạn đam mê hay chán nản về nó, về mối quan hệ với đồng nghiệp.


1
+1 để tập trung vào mối quan hệ với đồng nghiệp. Mọi người đều có thể liên quan đến loại điều đó. "Tôi đã đi ăn trưa với ông chủ và ông ấy đã nói ..." còn dễ tin hơn "Tôi đã dành nửa ngày để cố gắng loại bỏ các điều kiện cuộc đua"
Andy Hunt

3

Hai tương tự của tôi cho mục đích này là: một công thức, và một bộ máy quan liêu lớn. Đó là những gì tôi đã giải thích trong QA này: 30 phút để giải thích lập trình cho một đứa trẻ 15 tuổi

Tôi đã sử dụng phép tương tự công thức nhiều lần để giải thích cách lập trình về việc viết một bộ hướng dẫn nghiêm ngặt có kết quả rõ ràng và có thể dự đoán được khi làm theo.

Tôi thực sự chỉ sử dụng phép so sánh quan liêu một vài lần, bởi vì hầu hết mọi người không thực sự cần phải hiểu ngoài sự tương tự công thức, nhưng cả hai lần đều rất sáng cho người đó. Họ dường như nghĩ rằng lập trình có nghĩa là thu hồi toàn bộ từng dòng mã (ví dụ: "Nhưng nếu bạn có một bộ nhớ nhảm nhí như vậy, thì làm thế nào bạn có thể lập trình máy tính?") Nhưng thực sự đó là về việc xây dựng nhiều mô-đun độc lập hoạt động cùng nhau để thực hiện mục tiêu lớn hơn. Các mô-đun của một chương trình giống như các phòng ban trong một công ty lớn: các đơn vị độc lập chủ yếu xử lý toàn bộ phần của riêng họ và liên lạc với các phòng ban khác thông qua các bản ghi nhớ.


Có người nói rằng họ đang xây dựng nô lệ cơ học, sau khi có một "vấn đề" khác của khách hàng, tôi cảm thấy như chúng ta là nô lệ và chúng ta đang xây dựng những kẻ mắc bệnh cơ học để chúng ta sống cùng.
gbjbaanb

2

Tôi nghĩ rằng tôi nhận được nhiều phản hồi nhất khi tôi giải thích điều gì đó về ý tưởng đằng sau mã thay vì chính mã. Tôi chỉ loại bỏ tất cả các thuật ngữ kỹ thuật, tránh đề cập đến các thuật ngữ liên quan đến lập trình và chỉ nói về ý tưởng và những gì thực sự được thực hiện .

Ví dụ, gần đây tôi đã cố gắng giải thích cách bộ lọc thư rác hoạt động. Tôi chỉ nói rằng nó giữ một bản ghi các từ thường thấy trong thư rác và những từ không tìm thấy trong thư rác. Bản ghi được xây dựng bằng cách sử dụng thư rác và thư không phải thư rác đã biết. Sau đó, bất cứ khi nào một email mới đến, chúng tôi chỉ cần kiểm tra xem có bao nhiêu từ có vẻ như spam (nghĩa là xảy ra trong hồ sơ của chúng tôi về các từ spam) và bao nhiêu từ trông không spam. Nếu có quá nhiều từ spam, đó có thể là thư rác và do đó được gửi vào thùng thư rác. Những người phi công nghệ mà tôi đang nói chuyện đã làm theo ý tưởng khá tốt.


1

Phép ẩn dụ

Rất nhiều lần, tôi không mô tả nó như một chương trình, tôi cố gắng thể hiện nó như một khái niệm hoàn toàn khác với các mối quan hệ tương tự.

Nó làm cho việc hình dung chương trình thú vị hơn rất nhiều và đôi khi nó giúp tôi nhìn vào nó trong một ánh sáng mới.

Bạn không mô tả điện cho một người chưa bao giờ làm việc với nó trước đây bằng cách nói về dòng điện và điện áp phải không? Thêm vào đó, thật thú vị khi mô tả một số khái niệm như thể một quá trình máy tính cực kỳ ý thức làm cho chúng xảy ra như thể bằng phép thuật. Một trí tưởng tượng nhỏ không làm tổn thương họ như thực tế về việc máy tính hợp lý và lạnh lùng thực sự như thế nào.


1

Tôi đã trả lời một câu hỏi tương tự chi tiết hơn , nhưng ý chính là, "Lập trình giống như xây dựng một nhà máy hoặc một dây chuyền lắp ráp."


1

Nhiều người chưa lập trình dường như tin rằng một lập trình viên dành nhiều thời gian để săn lùng các con bọ, tìm kiếm trực quan hàng ngàn dòng mã cho một dấu phẩy sai lầm. Vì vậy, trước tiên tôi đảm bảo với họ rằng đây không phải là trường hợp, và nếu có, tôi sẽ hoàn toàn vô vọng với nó.

Tôi thường so sánh lập trình máy tính với viết sách dạy nấu ăn. Sách dạy nấu ăn là một bộ hướng dẫn cho mọi người, trong khi chương trình máy tính là một bộ hướng dẫn cho máy tính. Một số chương trình phức tạp hơn nhiều so với sách dạy nấu ăn và các chương trình được sửa đổi thường xuyên hơn, nhưng có một số điểm tương đồng trong cấu trúc. Nếu một cuốn sách nấu ăn chứa bảy bản hướng dẫn làm nước sốt và công thức phải được thay đổi, ai đó phải tìm tất cả các bản sao đó và sửa tất cả.


Đó sẽ là một thế giới đau lòng khi bạn không thể lập trình máy tính của mình để giúp lập trình dễ dàng hơn ("tìm kiếm trực quan .. Cho một dấu phẩy sai lầm").
compman

1

Tôi nghĩ rằng một sự tương tự tốt là xây dựng một nhà máy. Hầu hết mọi người đã nhìn thấy một cái gì đó như "Cách nó được tạo ra" nơi bạn thấy một số mặt hàng bị xáo trộn qua các băng chuyền và máy móc khác nhau với hy vọng một sản phẩm hoàn chỉnh sẽ ra mắt vào cuối. Tôi nói với mọi người rằng tôi xây dựng những thứ như vậy, nhưng thay vì là các nhà máy vật lý làm việc trên các mặt hàng vật lý, chúng là ảo và chúng hoạt động trên dữ liệu. Tất nhiên đây không phải là một sự tương tự tốt cho mọi loại lập trình, nhưng tôi nghĩ rằng nếu đưa ra một ý tưởng tốt về sự phức tạp và song song nhiều loại ứng dụng.


0

Bạn không thể thực sự chia sẻ nghề của mình - chỉ cần tiêu đề về công việc của bạn với người khác

Tuy nhiên, những gì bạn có thể làm là thay vì chia sẻ nghề của mình, là chia sẻ cuộc sống của bạn với những người cùng nghề với bạn (:


0

Tôi thường không nói về cách nó được thực hiện, mà là các tính năng của công việc .

Tôi thường nhấn mạnh rằng nó cực kỳ phức tạp, phức tạp đến mức không một người nào có thể hy vọng có thể bắt đầu hiểu chi tiết hoàn hảo chính xác những gì đang diễn ra. Có lẽ sẽ cần 30 năm để nghiên cứu các bộ phận tương tác khác nhau (điện tử thông qua khung), cộng với khoảng một giờ cho mỗi dòng mã hoạt động và đến lúc đó bạn phải quay lại nghiên cứu vì phần cứng sẽ thay đổi rất nhiều đó là 10 năm nữa tìm kiếm phiên bản mới nhất.

Phần quan trọng khác là làm thế nào bổ ích để tạo ra thứ gì đó linh hoạt đến mức hàng ngàn, có lẽ hàng triệu người có thể sử dụng nó để làm phong phú cuộc sống của họ, một cái gì đó độc đáo (ít nhất là chi tiết) và một thứ mà bạn đã học được rất nhiều từ đó.

Nếu không có ai nhét miệng tôi bằng vớ vào thời điểm này, tôi sẽ vui vẻ trình diễn một ứng dụng, cho thấy một chút phức tạp liên quan và tính linh hoạt có thể.


0

Tôi nói với họ rằng ngoài việc viết các bản giao hưởng và luận văn và tiểu thuyết toán học, lập trình là cơ hội duy nhất bạn sẽ tham gia với các nhiệm vụ / cấu trúc với mức độ phức tạp và phức tạp này. Tất nhiên, không nói rằng một ứng dụng web tử tế là một kiệt tác lịch sử, nhưng một khi mọi người nhận ra bạn sẽ sử dụng trí óc của mình ở cấp độ này mỗi ngày, thì họ sẽ 'hiểu được'. Nhiều công việc là xứng đáng và được trả lương cao, nhưng đi đến một nhiệm vụ thủ tục khá đơn giản, lặp đi lặp lại nhiều lần.

Ít nhất, đó là cách tôi nhìn vào nó. Tôi có thể sai.


0

Như một cách khác với 15 câu trả lời khác ...

Thay vì giải thích chi tiết về công việc của tôi (lập trình), tôi cố gắng tập trung vào các giải pháp mà công việc giải quyết, tức là những vấn đề nào mà hệ thống / phần mềm tôi xây dựng thực sự giải quyết cho người dùng. Đó thường là một miền không lập trình, trừ khi bạn viết trình biên dịch hoặc thứ gì đó, trong trường hợp đó bạn phải giải thích tại sao điều đó hữu ích.

Bằng cách đó, nó giúp mọi người dễ dàng nắm bắt rằng đó là bản chất phức tạp và cách nó liên quan đến "thế giới thực".

Tương tự như một thợ rèn thời trung cổ, có lẽ tôi sẽ giải thích (với người phụ nữ trong quán rượu địa phương) rằng tôi tạo ra những thanh kiếm để hack kẻ thù thành từng mảnh, chứ không phải cách tôi luyện thép và đập vào nó với một góc và lực nhất định (trừ khi họ hỏi). Hy vọng rằng, cô ấy hiểu rằng việc hack kẻ thù thành nhiều mảnh là hữu ích (...) và có thể khó thực hiện (thiếu thép, kẻ thù bọc thép, nơi làm việc khói, v.v.) và do đó bạn có được sự đánh giá cao khi thực hiện một nhiệm vụ phức tạp.

(Vì vậy, việc đúc đe sẽ tương đương với việc tạo trình biên dịch và bạn phải giải thích chúng được sử dụng cho mục đích gì ...)


0

Tôi so sánh nó với việc xây dựng một ngôi nhà, nếu chúng ta sống trong một vũ trụ kỳ lạ với các hạt kỳ lạ và chống thời gian:

Bạn có một ý tưởng cho một ngôi nhà thực sự tuyệt vời, vì vậy bạn xây dựng một bản phác thảo sơ bộ về diện mạo của nó và có một kế hoạch chung về cách tiến hành. Bạn đến cửa hàng phần cứng và mua một số gỗ xẻ để xây tường, nhưng chúng cứ rơi xuống vì mặt đất không bằng phẳng. Vì vậy, bạn đi và mua xi măng để đặt nền móng, nhưng xi măng sẽ không khô và bạn không thể hiểu tại sao. Bạn quay lại cửa hàng phần cứng và hỏi tại sao, nhưng nhân viên lại đi catatonic. Bạn đến 8 cửa hàng phần cứng khác nhau cho đến khi một cửa hàng nói với bạn rằng xi măng bạn đã sử dụng được phát triển vào mùa thu năm 1989, nhưng bạn đã mua bất động sản của mình vào mùa đông năm 1989, vì vậy chúng không tương thích và ông bán cho bạn loại xi măng 2013.1.1 gần đây nhất. Bạn quay trở lại để đặt nền móng và ngay khi bạn làm, xi măng biến mất. Lần này tất cả nhân viên đi catatonic, Vì vậy, bạn google nhà của bạn và thấy rằng nó đã từng là một trang web thử nghiệm hạt nhân. Sau đó, bạn google các tác động của thử nghiệm hạt nhân trên đất và thấy rằng nó gây ra các gốc tự do. Bạn google nó và bắt đầu nghiên cứu bức xạ điện từ, sau đó là fermion, rồi boson, sau đó là lý thuyết dây và một cái gì đó về một con mèo. Bạn không muốn từ bỏ vì bạn đã lãng phí quá nhiều thời gian, vì vậy bạn đã đánh mạnh vào cái chai. Bạn về nhà muộn và trút giận lên vợ, cho rằng cô ấy là lý do bạn không thể xây nhà vì cô ấy và lũ trẻ chiếm hết thời gian của bạn ... Khoảng 3 tháng sau bạn nhận ra bạn đã đi từ đâu và một cái gì đó về một con mèo. Bạn không muốn từ bỏ vì bạn đã lãng phí quá nhiều thời gian, vì vậy bạn đã đánh mạnh vào cái chai. Bạn về nhà muộn và trút giận lên vợ, cho rằng cô ấy là lý do bạn không thể xây nhà vì cô ấy và lũ trẻ chiếm hết thời gian của bạn ... Khoảng 3 tháng sau bạn nhận ra bạn đã đi từ đâu và một cái gì đó về một con mèo. Bạn không muốn từ bỏ vì bạn đã lãng phí quá nhiều thời gian, vì vậy bạn đã đánh mạnh vào cái chai. Bạn về nhà muộn và trút giận lên vợ, cho rằng cô ấy là lý do bạn không thể xây nhà vì cô ấy và lũ trẻ chiếm hết thời gian của bạn ... Khoảng 3 tháng sau bạn nhận ra bạn đã đi từ đâugần như hoàn thiện ngôi nhà, thậm chí không biết tại sao bạn muốn xây dựng ngôi nhà ngay từ đầu.


-1

Tôi chỉ nói với họ rằng những gì tôi làm là nhìn vào những gì họ làm cho công việc của họ và tạo ra phần mềm máy tính sẽ giúp công việc của họ dễ dàng hơn.


hoặc thay thế công việc của họ, oh noes !!!
jhocking

-2

Giống như một số bạn đã nói, sử dụng các chất tương tự, có ý nghĩa với chúng. Tôi luôn cố gắng mang vào Google bằng cách nào đó, nếu mã của tôi làm điều gì đó giống như google hoặc hiển thị lợi ích tài chính hoặc cách thức này giúp mọi người theo một cách nào đó ...


-2

Đôi khi tôi bỏ cuộc và chỉ nói rằng tôi dành cả ngày để chỉnh sửa các tệp văn bản. Điều này thường đúng nếu không phải là câu chuyện đầy đủ.

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.