30 phút để giải thích lập trình cho một đứa trẻ 15 tuổi [đóng]


100

Tôi đã tình nguyện ngồi xuống và nói về cuộc sống và công việc của một Nhà phát triển với một sinh viên kinh nghiệm làm việc 15 tuổi vào tuần tới.

Các sản phẩm khai thác là

  • Tôi mới có nửa giờ, và
  • Tôi sẽ chỉ là một trong những người nói chuyện với cô ấy - những người khác trong các vai trò khác nhau trong doanh nghiệp cũng sẽ điều hành các yếu tố công việc của họ với cô ấy suốt cả ngày.

Tôi nên bao gồm những gì, và những gì trên trái đất tôi có thể hy vọng sẽ dạy cô ấy chỉ trong nửa giờ?

Tôi cho rằng cô ấy có thể không có kinh nghiệm về phát triển hoặc lập trình.


158
Thật đáng buồn khi cách bảo trợ nhiều câu trả lời này đối với trẻ em - chúng có những khoảng chú ý ngắn, chúng không hiểu mọi thứ nếu chúng không trực quan, chúng không thể đối phó với bất cứ điều gì phức tạp. Chúng ta đang nói về một đứa trẻ mười lăm tuổi ở đây. Mười lăm tuổi khá có khả năng hiểu và làm những việc phức tạp, dành hàng giờ để tham gia sâu vào một cái gì đó và có những suy nghĩ trừu tượng. Tôi sẽ có một đứa trẻ mười lăm tuổi thông minh hơn bất kỳ học giả nào!
Tom Anderson

8
@tom Mặt khác, cá nhân tôi đã trải nghiệm cách mà hầu hết người lớn thậm chí tìm thấy bất cứ thứ gì khác ngoài hình ảnh trên máy tính trở nên tẻ nhạt. Nó phụ thuộc vào đứa trẻ và mức độ quan tâm của chúng đối với máy tính.
jhocking

6
@jh: Heh! Tôi cho rằng câu hỏi không phải là liệu người này có mười lăm tuổi hay không, mà là họ có thông minh và tò mò không. Bây giờ tất cả chúng ta có thể (cấm Maxpm) là những kẻ lừa đảo cũ, nhưng chúng ta đều mười lăm một lần, và tôi nghi ngờ rằng những người trong chúng ta là những người trưởng thành thông minh và tò mò là những thanh thiếu niên đần độn và không quan tâm.
Tom Anderson

33
"Đầu tiên tôi bắt đầu làm việc một chút sau 10 giờ sáng, uống nhiều cà phê, đuổi theo nó với Mountain Dew và nước tăng lực. Tôi dành 2 giờ tiếp theo để kiểm tra thư của mình, trao đổi công thức nấu ăn với một và chỉ một nhà phát triển nữ trong Toàn bộ tòa nhà, sau đó là một giấc ngủ ngắn sau bữa trưa. Hãy thức dậy, kiểm tra lại email, lướt youtube để xem video về mèo, xem các truyện tranh Dilbert và smbc mới nhất. Trước khi bạn biết điều đó, 4:30, đã đến lúc về nhà. Tôi không thể làm được gì nhiều, nhưng 100 lập trình viên đã cùng nhau làm điều tương tự mỗi ngày trong 3 năm, đó là cách trò chơi điện tử ra đời. "
Juliet

5
@Tom: chính xác. Nhiều lập trình viên bắt đầu trước 15 tuổi, vì vậy tôi không hiểu sự nhượng bộ.
Neil G

Câu trả lời:


130

Tôi tương tác với học sinh trung học rất nhiều, vì vậy tôi trả lời câu hỏi này khá thường xuyên. Hãy nhớ rằng những người 15 tuổi dễ dàng giải thích lập trình hơn so với những người 50 tuổi - vì vậy bạn không cần phải làm mọi thứ ngớ ngẩn hoặc sử dụng các phép loại suy xa.

Tôi thường bắt đầu với các ví dụ về các chương trình là gì:

  • Các ứng dụng như iTunes, Photoshop, Chrome và các trò chơi bao gồm các trò chơi console.
  • Các hệ điều hành như Windows, Mac OS, iPhone của iOS, Android. (Tin tôi đi, họ sẽ biết bạn đang nói gì.)
  • Các chương trình khủng hoảng số hoặc giải các bài toán thực sự phức tạp - mô phỏng thời tiết, mô phỏng sinh học, tính toán pi, AI, xử lý ngôn ngữ, v.v.
  • Hầu hết các trang web tinh vi liên quan đến lập trình quá.
  • Máy bán vé quá cảnh và máy ATM, đồng hồ bấm giờ lò vi sóng và tủ lạnh, điều hướng xe.

Sau đó, tôi thường giải thích rằng chúng ta viết mã chương trình bằng một ngôn ngữ chính thức mà máy tính có thể nhận ra, thường gõ chúng bằng một thứ đơn giản như Notepad. Các ngôn ngữ trông giống như sự giao thoa giữa toán học và tiếng Anh, mô tả các khái niệm và đưa ra các công thức và hướng dẫn cho máy tính tuân theo.

Sau đó, họ thường hỏi tôi có ở trên máy tính mọi lúc không, nếu đây là lý do tại sao tôi luôn ở trên Facebook và tại sao mắt tôi vẫn chưa hết. Các chàng trai hỏi tôi có biết cách "hack người" không, và các cô gái hỏi liệu đó có phải là tiền tốt hay có bao nhiêu cô gái trong các lớp học khoa học máy tính.

Sau đó, nếu họ vẫn quan tâm, họ thường bắt đầu hỏi những câu hỏi cụ thể dễ trả lời hơn (hoặc ít nhất là với Wiki): những thứ như cách bạn tạo trò chơi, cách Windows Messenger hoạt động, v.v.

Nếu bạn có máy tính xung quanh, bạn có thể hiển thị một số mã - thứ gì đó sẽ có hiệu ứng hữu hình, như trình xử lý nhấp nút từ hộp thoại cài đặt trong Firefox, vòng lặp chính hoặc mã vật lý trong công cụ trò chơi, một số Nguồn JavaScript từ một trang web, v.v.


73
Cảm ơn đã nhắc nhở tôi rằng giải thích lập trình cho một đứa trẻ có thể dễ dàng hơn là giải thích nó cho người lớn. Tôi cứ quên rằng họ chưa bao giờ không được bao quanh bởi các máy tính.
jhocking

12
hahaha tôi nhận được cái đó mọi lúc, nếu bạn biết cách "hack người" hahahahaha
John Connelly

3
@jhocking Tôi cũng nghĩ rất nhiều người trong số họ sáng hơn nhiều so với thế hệ hộp ngốc. Bên cạnh chất lượng, số lượng văn bản tuyệt đối mà họ đọc được ràng buộc để làm một số điều tốt.
Rei Miyasaka

4
@rei: Chà, tôi có các kỹ năng xã hội nâng cao, và tôi thấy nó xứng đáng với sự chú ý mà một vài phụ nữ trong các lớp đó nhận được ... Điều đó rất có ý định, nhưng ... đáng báo động. Nếu đó là tôi, tôi sẽ hét lên. Được bao quanh bởi một nhóm những người thở bằng mồ hôi, chắc chắn sẽ là một người thay thế cho bất kỳ người bình thường nào, vì vậy hoặc bạn sẽ phải thích sự chú ý, hoặc bạn phải thực sự thích comp sci. Vì vậy, nó chắc chắn không làm tôi ngạc nhiên khi có rất ít phụ nữ. Tôi tưởng tượng ở các trường nhỏ hơn nó không quá kinh khủng.
Satanicpuppy

4
Chà, tôi thường đến muộn ít nhất mười lăm phút, à, tôi sử dụng cửa phụ - theo cách đó Lumbergh không thể nhìn thấy tôi, heh heh - và, sau đó tôi chỉ sắp xếp khoảng trống trong khoảng một giờ. Vâng, tôi chỉ nhìn chằm chằm vào bàn của tôi; nhưng có vẻ như tôi đang làm việc Tôi cũng làm vậy trong một giờ sau bữa trưa. Tôi muốn nói trong một tuần nhất định tôi chỉ có thể làm khoảng mười lăm phút thực tế, thực tế, công việc.
teambob

73

Tôi đã giải thích nó cho năm tuổi của tôi với những điều sau đây:

Tôi: "Bạn biết làm thế nào, trong những câu chuyện, người ta nói những từ kỳ diệu và thay đổi mọi thứ trên thế giới?"
Cô: "Yeaaa?"
Tôi: "Đó là những gì lập trình máy tính."
Cô (lặng lẽ): "Wow."

15-30 phút không đủ để giải thích bất cứ điều gì có thật và giải thích sự phức tạp tiềm ẩn là một cách chắc chắn để khiến chúng chạy la hét. Bạn làm việc trong đó mỗi ngày, bạn quên mất nó thật tuyệt. Không có nghề nào khác trên thế giới tạo ra những thứ chức năng không có gì ngoài lời nói ... Đến một lúc nào đó, mọi người khác phải đi ra thế giới của thịt, và bắt đầu đập vào mọi thứ bằng búa. Đó là cách duy nhất họ có thể biến ý tưởng của mình thành một thứ hiệu quả.

Không phải chúng tôi.


77
lol @ dạy con bạn rằng bạn là một phù thủy
jhocking

23
"Không có nghề nghiệp nào khác trên thế giới tạo ra những thứ chức năng không có gì ngoài lời nói" - luật sư hợp đồng và các nhà lập pháp làm.
Tom Anderson

48
@Tom Họ có thể giới hạn những thứ chức năng nhiều hơn họ tạo ra chúng.
Tối đa

16
@tom: Không họ không có. Một bản tóm tắt pháp lý không phải là một điều chức năng hơn một câu chuyện hoặc bài thơ. Một luật giống như một bản thiết kế: nó đưa ra một ý tưởng, nhưng sau đó ai đó phải đi ra ngoài thế giới của thịt và thực thi nó. Nhưng mã? Tôi có thể viết một chương trình để mua hoặc bán cổ phiếu dựa trên logic bên trong của chính nó và nó sẽ thực hiện điều đó mà không cần thêm đầu vào từ tôi. Tôi có thể viết một cái để điều khiển các cửa xả lũ, định tuyến lại điện, bật hoặc tắt đèn tùy thuộc vào thời gian trong ngày. Nó là duy nhất trong số các ngành nghề.
Satanicpuppy

15
@Satanicpuppy: Không, bạn không thể viết một chương trình sẽ làm bất kỳ điều gì trong số đó. Một kỹ sư điện tử có thể xây dựng một máy tính có thể làm chúng, mặc dù. Nếu bạn hỏi độc đáo, có lẽ anh ta sẽ đưa nó vào thế giới thịt và thực thi các chương trình của bạn.
Tom Anderson

56

Một người 15 tuổi có thể hiểu bất kỳ khái niệm. Bản thân tôi bắt đầu lập trình ở tuổi 14. (ở trường, nhiều năm trước)

30 phút là đủ cho một bản demo. Cho cô ấy thấy sự kỳ diệu của lập trình với thứ gì đó phổ biến như trình duyệt.

  1. Tìm một PC kết nối với internet. (vui hơn nếu không phải của bạn và thậm chí nhiều hơn nếu là của cô ấy)
  2. Truy cập http://api.jquery.com/jQuery.getJSON/
  3. Cuộn xuống trang và tìm mã HTML cho ví dụ về mèo .
  4. Chọn mã HTML và sao chép nó.
  5. Tới http://jsdo.it và bấm vào Bắt đầu mã hóa .
  6. Mở một tài khoản bằng OpenID của bạn. (quy trình một bước)
  7. Chọn tab HTML trên bảng điều khiển bên trái và dán vào đó.
    • Trong một giây, một loạt các con mèo sẽ xuất hiện trên bảng bên phải
  8. Cắt javascript và dán nó vào tab JavaScript . (để tô sáng cú pháp)
    • Trong một giây, mèo tự động làm mới trên bảng bên phải
  9. Tìm thuộc tính thẻ trong javascript và thay đổi nó thành "dog".
    • một bầy chó xuất hiện
  10. Làm cho cô ấy lặp lại quá trình một mình với các thẻ khác của sự lựa chọn của cô.
    • đề nghị cô ấy thử với hai thẻ, cách nhau bằng dấu phẩy
  11. Thay đổi dòng "if (i == 3)" thành "if (i == 5)"; để cô ấy nhận ra rằng
    • bây giờ có 6 hình và trước đó có 4
    • Sẽ tốt hơn nếu số trong mã khớp với số trong trang
  12. Sửa lỗi cùng nhau (hoán đổi dòng đó và cái trước đó)
  13. ...

1
Hoặc bạn có thể sử dụng jsfiddle, không cần đăng ký: jsfiddle.net/WXVra
rjmunro


26

Các bước

Là một đứa trẻ gần 15 tuổi, tôi có thể tự tin nói với bạn rằng bạn nên có một khởi đầu ngoạn mục .

  1. Giải thích những gì lập trình viên làm. (Trò chơi, giả lập.) Hiển thị một cái gì đó tuyệt vời bạn đã thực hiện. (Trên máy tính. Xin vui lòng không có dòng lệnh - điều đó dường như làm mọi người sợ hãi.)
  2. Giải thích cách bạn thực hiện nó.

    • Nói với họ bạn không gõ 10101010cả ngày. Nói với họ bạn thậm chí không biết làm thế nào để làm điều đó. ( Nói dối. Bạn biết 10101010phương tiện gì không?)) Nói với họ rằng đó là những năm trước.
    • Khởi động IDE của bạn. Hãy chắc chắn rằng nó trông thật tuyệt - MSVS2010, QtCreator và NetBeans đều tốt. Hãy chắc chắn loại bỏ một số điều bổ sung để làm cho nó trông ít đáng sợ hơn (ít menu hơn), nhưng vẫn giữ hiệu ứng hình ảnh.
    • Chỉ cho họ một mẫu của một số mã giả. Làm cho nó dễ hiểu:

      Display Window
      Display "I like cheese!"
      Display OK button
      
      If user clicks OK button, close Window
      

      Đi qua từng bước một. Nói với họ đây không phải là chính xác mã trông như thế nào. Mã trông như thế English + Math. Nhưng không khó để học "ngôn ngữ" (đọc: cú pháp) mà bạn nói.

    • Cho họ xem một ví dụ với "toán học" hơn một chút, lần này.

      User inputs A
      User inputs B
      
      C = A + B
      
      Display C
      

      Giải thích rằng mã đó cộng hai số lại với nhau, giống như một máy tính. Chỉ cho họ mã "thực" cho việc này. (Hãy chắc chắn rằng bạn đặt phần lớn các giao diện người dùng và các công cụ khác trong một file riêng biệt, và giữ các tập tin bạn chỉ cho họ ngắn và đơn giản.) Thay đổi nó thành một chương trình trừ (bằng cách thay đổi dấu từ +đến -) ngay trước mắt họ.

  3. Giải thích những gì họ cần biết để làm lập trình. (Trên các cấp độ khác nhau.)

    • Kỹ năng đại số cơ bản, như nếu x + 1 = 2, sau đó x = 1.
    • Kỹ năng giải quyết vấn đề.
    • ["Nâng cao"] Toán cấp cao hơn. Điều này là dành cho các lập trình viên làm việc tại những nơi như NASA.

Điều khoản bạn có thể sử dụng

Chúng tôi biết nhiều hơn bạn nghĩ.

  • Facebook, Twitter, Mạng xã hội
  • Windows, Mac, Linux
  • Thiết kế, nhanh hơn, thử nghiệm, bắt đầu / chạy

Điều khoản bạn nên giải thích

Vâng, chúng tôi vẫn cần một số công cụ giải thích.

  • Trình biên dịch: Chuyển đổi mã (như ví dụ ở bước 2) thành 10101010.
  • Ngôn ngữ lập trình: Trông giống như ví dụ trong bước 2.

Điều khoản bạn không thể sử dụng

Một số người trong chúng ta biết những thứ này, nhưng xin đừng nói nó.

  • Bất kỳ loại "hệ thống" nào khác ngoài Hệ điều hành
  • Tối ưu hóa, phân tích (oh oh)
  • Đầu vào / đầu ra (nếu bạn cần sử dụng cái này, hãy cố gắng làm cho nó đơn giản nhất có thể)

Tìm kiếm một IDE 'mát mẻ'? Không tìm đâu xa hơn Xcode.
Alan Zeino

2
@Alan Zeino bạn có nghĩa là Emacs.
đúng

Tôi thích câu trả lời này nhất. Tôi nghĩ rằng ai đó thực hiện chiến thuật này sẽ đạt được nhiều hơn so với ai đó thực hiện các câu trả lời khác (cũng có chất lượng cao) cho câu hỏi này.
TehShrike

17

Nếu bạn bắt đầu nói về những thứ như quy trình, mô hình, yêu cầu và những thứ tương tự, cô ấy sẽ tắt ngay lập tức. Trẻ em ngày nay là đồ họa và động lực trực quan, vì vậy tôi sẽ mang một cái gì đó để giúp thúc đẩy các loại kích thích. Chỉ cho cô ấy một cái gì đó hấp dẫn trên web và sau đó ở mức độ cao mô tả cho cô ấy những gì làm cho điều đó xảy ra. Tôi thậm chí sẽ đề nghị đưa máy tính xách tay phát triển của bạn vào và làm cho một cái gì đó "mát mẻ" xảy ra trên màn hình - thay đổi mã trước mặt cô ấy và sau đó xem nó thay đổi trên màn hình. Ở tuổi đó, họ RẤT thông minh và bất cứ điều gì trực quan sẽ giúp thu hút sự quan tâm.


oh yeah hình ảnh là một ý tưởng tuyệt vời. Có nguy cơ điều này quá giống một lớp học, tôi rất có khả năng vẽ sơ đồ trên bảng trắng để minh họa mọi điều tôi nói.
jhocking

1
Nói về hình ảnh, làm thế nào về việc hiển thị cho cô ấy một video hoặc chương trình nhỏ Alice?
Carlos Campderrós

9
@Carlos Là một đứa trẻ 15 tuổi, cá nhân tôi có thể chứng thực rằng tôi ghét Alice với niềm đam mê cháy bỏng của một ngàn mặt trời. Điều đó có lẽ bởi vì tôi đã biết cách lập trình. Tôi không chắc chắn làm thế nào tổng số người mới bắt đầu xem nó.
Tối đa

1
+1 cho "thay đổi mã trước mặt cô ấy và sau đó xem nó thay đổi trên màn hình" - bắt đầu bằng cách hiển thị cho cô ấy một kết nối trực tiếp giữa vật 'thật' và mã đằng sau nó. Một cái gì đó sâu vừa phải, như sắp xếp hoặc truy vấn một số dữ liệu, không chỉ điều chỉnh một chút định dạng của JSP hoặc chuỗi. Tạo kết nối đó, sau đó xây dựng từ nó.
Tom Anderson

1
Khả năng thay đổi giao diện của một chương trình chỉ với một vài dòng mã là điều đã đưa tôi vào lập trình nhiều năm trước - cảm ơn vì lời đề nghị
Dexter

13

Có hai sự tương đồng tuyệt vời mà tôi dựa vào khi giải thích công việc của các lập trình viên. Một là một công thức; phép ẩn dụ đó rất hữu ích để giải thích ở quy mô nhỏ những gì mỗi dòng mã đang làm. Công việc của một lập trình viên là viết công thức, và máy tính là đầu bếp.

Sự tương tự khác là một chương trình lớn giống như một công ty lớn. Có một loạt các bộ phận khác nhau tập trung vào các lĩnh vực khác nhau và gửi tin nhắn qua lại, và toàn bộ kết thúc hoàn thành mục tiêu của công ty. Công việc của một lập trình viên là thiết kế cách tổ chức được thiết lập và máy tính là tất cả những người trong công ty.


8

Tôi muốn nói giữ nó chung chung. Lập trình và nhiều ngành nghề khác sôi sục để giải quyết vấn đề. Chỉ cho cô ấy cách bạn giải quyết vấn đề hàng ngày. Bạn có thể nói với cô ấy về một dự án bạn đang thực hiện và cách nó sẽ giúp khách hàng của bạn. Cũng bao gồm một chút về lý do tại sao bạn (có lẽ) thích công việc của bạn.

Trong trường hợp của tôi, tôi đã phát triển một trang web video hướng dẫn giáo dục nơi các nhân viên khác đăng bài hướng dẫn. Tôi sẽ giải thích về động lực cho dự án (dạy người khác từ xa mà không phải trói buộc mọi người), những vấn đề tôi gặp phải (tôi không nhất thiết phải xem đây là những vấn đề khó khăn) và cách tôi giải quyết chúng. Tôi cũng sẽ nói về lý do tại sao tôi thích lập trình ngay từ đầu: Tôi thích tạo ra mọi thứ và sự đóng góp của lập trình cho thế giới hiện đại.


8

Cho cô ấy ví dụ về phần mềm bạn đã làm việc trên. Bạn có một khách hàng sử dụng công khai phần mềm của bạn? Bạn có phát triển một ứng dụng trong nhà mà bạn có thể chỉ cho cô ấy không? Chỉ cho cô ấy kết quả cuối cùng của công việc của bạn, những gì người dùng cuối nhìn thấy và sử dụng.

Sau đó, giải thích rằng bạn đã giúp viết nó. Đi qua những phần mà bạn đã viết. Hiển thị một số mã nếu bạn có thể. Phác thảo cách các dòng mã đó làm cho một phần của ứng dụng hoạt động.

Nói về mức độ thích thú mà bạn nhận được khi thấy mã của mình được mọi người sử dụng.

Đó là cách tôi giải thích nó với em họ 14 tuổi của mình. Anh ấy khá ấn tượng và quyết định học một lớp lập trình trong học kỳ tiếp theo.


5
Nó hoạt động tốt nếu bạn làm việc trên phần mềm trông tuyệt vời cho những người không lập trình. Nhiều dự án gần đây của tôi sống trong cơ sở dữ liệu và "trông" giống như một dòng lệnh (và ngay cả những dự án không có trong ứng dụng web trông rất buồn tẻ - nhưng miễn là dữ liệu được xử lý OK không ai quan tâm). Đối với một người không lập trình, đó là một dấu nhắc nhấp nháy xuất ra một dòng văn bản cứ sau vài phút, sau đó dừng lại. Thật nhàm chán khi nhìn vào ... thở dài :(
Thất vọngWithFormsDesigner

1
Nhìn rộng hơn về "kết quả cuối cùng của công việc của bạn". Điều đó không chỉ có nghĩa là phần mềm bạn đã làm việc trên; nó cũng có thể có nghĩa là các ứng dụng khách khác nhau được kích hoạt bởi phần mềm back-end mà bạn đã làm việc.
jhocking

Ít nhất bạn không phải là nhà phát triển SharePoint như tôi, @FrustratedWithFormsDesigner .. Tôi chắc chắn tôi có thể tìm thấy thứ gì đó tuyệt vời trong tất cả các dấu ngoặc góc của mình!
Dexter

4
@FrustratedWithFormsDesigner Tôi đã tiếp tục "hãy thuyết phục những đứa trẻ ở trường nên đăng ký vào CS" khi tôi 15 tuổi, cùng với một vài đứa trẻ thông minh khác ở trường tôi. Dòng lệnh thứ NHÌN COOL. Nó trông cực kỳ mạnh mẽ đối với chúng tôi, và điều đó đã khiến nó trở nên TUYỆT VỜI. Đừng cho rằng những cô gái 15 tuổi không muốn thống trị vũ trụ :)
thử nghiệm

Chắc chắn bạn đã lập trình một cái gì đó thú vị trong thời gian rảnh rỗi mà bạn có thể hiển thị. Tôi đã lập trình một trò chơi Tetris, một người xem fractal và một người giải sudoku. Bất kỳ trong số này là thú vị để hiển thị.
Carra

7

Bạn có quen thuộc với trò chơi bảng Robo Rally không?

Tôi đã thấy rằng đó là sự tương tự thú vị cho lập trình. Về cơ bản, bạn đang lập trình cho robot của mình bằng các lệnh đơn giản (chủ yếu là mũi tên) để đạt đến một vị trí nhất định trong bảng trò chơi trước những người khác.

Người đàn ông tôi ước tôi vẫn có BigTrak của mình ...


4
Chúng tôi chơi trò này thường xuyên vào buổi tối chơi game của chúng tôi (tối đa 8 người, hầu hết là sinh viên toán hoặc CS). Thật tốt khi chỉ ra cách đa luồng có thể sai :-p
Paŭlo Ebermann

@Paulo - LOL Không bao giờ nghĩ về nó theo cách đó, nhưng bạn đã đúng!
Hệ thống xuống

6

Hiển thị một cái gì đó đơn giản, nhưng hữu ích. Một ví dụ điển hình tôi nghĩ sẽ như sau:

  1. Nhận một thư mục đầy đủ hoặc hình ảnh (đủ để tất cả chúng không vừa trên một màn hình trong trình thám hiểm thư mục của bạn)
  2. Nói với họ mục tiêu của bạn là thay đổi kích thước hình ảnh (có thể để bạn có thể gửi email cho bạn bè hoặc đăng trực tuyến ở đâu đó, bất cứ điều gì)
  3. Chứng minh thay đổi kích thước một hình ảnh trong GIMP / Photoshop / bất cứ điều gì
  4. Bây giờ chỉ ra rằng làm điều đó mất ít nhất 30 giây và bạn có rất nhiều hình ảnh, bạn không muốn dành một giờ để làm điều này
  5. Viết tập lệnh shell để thay đổi kích thước tất cả chúng bằng ImageMagick
  6. Có làm họ ngạc nhiên khi thay đổi kích thước tất cả các hình ảnh bằng chương trình 3 dòng đơn giản của bạn nhanh hơn thay đổi kích thước một hình ảnh trong Photoshop

Những lý do tôi thích phương pháp này là:

  • Bạn không cần phải nói với họ tại sao lập trình lại hữu ích, họ chỉ thấy tại sao
  • Bạn có thể viết toàn bộ chương trình trong vài giây khi họ đang xem (Tôi khuyên bạn nên thử trước, vì các cuộc biểu tình luôn gặp trục trặc)
  • Bạn không cho rằng họ là những kẻ ngốc / cần một ví dụ "trẻ con" nào đó - Đây là một ví dụ đơn giản, nhưng nó có cách sử dụng trong thế giới thực .

Bạn có thể nghĩ ra những ví dụ tốt hơn, nhưng tôi nghĩ phong cách này hữu ích cho "phần giới thiệu đầu tiên".


5

Hầu hết những đứa trẻ 15 tuổi "những ngày này" có nhiều kinh nghiệm với máy tính. Tôi sẽ tiếp cận nhiều hơn về cách tiếp cận. Tôi sẽ chỉ cho cô ấy một chút mã (đừng cố gắng giải thích chi tiết, nhưng có thể trình bày những điều cơ bản cực đoan của "dòng chảy") và cho cô ấy biết kết quả là gì. Ngay cả HTML sẽ làm việc cho loại ví dụ này. Sau đó nói "Mỗi ngày, tôi làm cơ bản điều đó .. ngoại trừ với hàng chục ngàn dòng mã và một chương trình rất lớn và phức tạp".

Sau đó giải thích loại vấn đề bạn giải quyết bằng lập trình, và tại sao bạn thích làm điều đó. Chẳng hạn, tôi nói rằng tôi thích lập trình vì "Tôi thích thấy mã của mình xuất hiện trong máy tính như một ứng dụng"


4

Đầu tiên, bạn có sự cạnh tranh mà bạn cần gỡ lỗi.

Phim ảnh, văn hóa đại chúng, và thậm chí những người trong lĩnh vực này ( và câu hỏi này cho vấn đề đó ) cố gắng mô tả lập trình (và phần lớn lĩnh vực khoa học máy tính) như một loại phép thuật. Nó không phải là phép thuật.

Lập trình chỉ đơn giản là mô tả các nhiệm vụ và sau đó kết hợp các nhiệm vụ đó để giải quyết vấn đề. Nếu bạn đang cố gắng tìm song song, hãy sử dụng toán học. Một máy tính giống như một giáo viên toán đòi hỏi bạn phải thể hiện tất cả công việc của mình .

Từ quan điểm vật lý, máy tính không thông minh-- chúng chỉ biết nhiều như chúng ta nói với chúng. Vì vậy, khi một lập trình viên máy tính muốn tạo một chương trình, ví dụ như phát nhạc từ CD, họ 'chỉ cần' nói cho máy tính biết cách đọc dữ liệu được lưu trên CD, sau đó làm thế nào để chuyển đổi dữ liệu đó thành sóng âm thanh và cuối cùng , làm thế nào để phát ra những sóng âm thanh từ loa của bạn.

Đưa ý tưởng này lên một tầm cao mới, bạn có thể tiếp tục về cách lập trình xây dựng các nhiệm vụ chồng chéo lên nhau. Giống như anh ấy / cô ấy phải học số học trước khi họ có thể học đại số trong toán học, máy tính cũng cần được hướng dẫn cách 'làm những điều cơ bản' trước khi bạn có thể nói với họ cách thực hiện các nhiệm vụ phức tạp hơn. Trong những năm qua, các nhà khoa học và lập trình viên máy tính đã có thể 'dạy' máy tính đủ những điều cơ bản đến mức chúng ta có thể bắt đầu 'nói chuyện' với họ gần hơn với cách chúng ta nói chuyện với nhau.

Quay trở lại cuộc sống thực, giáo viên toán của bạn có thể bảo bạn giải "15 với sức mạnh của 3", nhưng bạn chỉ biết làm điều đó bởi vì trước đây bạn đã được dạy rằng "X với sức mạnh của Y" phá vỡ các nhiệm vụ của "Nhân X với X và thực hiện Y lần" [về mặt kỹ thuật Y -1 lần, nhưng eh.]

Giống như các lớp toán của bạn, các lập trình viên đã thiết lập một cơ sở của các nhiệm vụ 'đã biết', vì vậy chúng tôi không cần tập trung vào các chi tiết của những điều nhỏ nhặt và có thể dành thời gian của chúng tôi để giải quyết các vấn đề thực tế và không quá nhiều cách thực hiện cơ bản nhiệm vụ-- bây giờ chúng ta có thể giả sử một máy tính hiểu cách làm những việc cơ bản.


3

Tôi sẽ làm những gì khiến tôi bị cuốn hút khi tôi khoảng 9. Lấy C64 ra khỏi gác xép và làm:

10 PRINT "YOU SMELL"

20 GOTO 10

(Cảm ơn bố).

Rồi khi niềm vui đó đã qua. Tôi sẽ cho cô ấy xem trò chơi đoán số. Đúng, tất cả trong BASIC. Không có nhu cầu về ngôn ngữ hiện đại để hiển thị hướng dẫn sử dụng máy tính.


2
Tốt Anh nói trúng phóc. Làm cho nó thực sự đơn giản, và làm cho nó vui vẻ. Và BASIC là hoàn hảo cho điều đó.
Mike Dunlavey

1
Đồng ý, BASIC là tuyệt vời và GOTO là cấu trúc ngôn ngữ tốt nhất để bắt đầu. Chương trình đầu tiên của tôi rất giống nhau.
Tomas Andrle

Tôi sẽ không nói rằng tôi hoàn toàn chống lại điều này, nhưng tôi đã không tìm hiểu về goto cho đến sau vài năm lập trình C ++. Kể từ đó, tôi chưa bao giờ gõ một chiếc goto nào trong đời. Tốt hay xấu, tôi sẽ không phán xét - tôi chỉ muốn biết rằng goto không nhất thiết phải ... ờ ... cần thiết.
31eee384

3

Có thể hữu ích khi bắt đầu với những thứ cô ấy làm thường xuyên, như Facebook và giải thích cho cô ấy biết một khía cạnh đơn giản như đăng nhập có thể rất phức tạp.

Bạn có thể phân nhánh từ đây vào cơ sở dữ liệu, thiết kế ứng dụng và sau đó vào một số khía cạnh của bảo mật, thứ gì đó hữu ích mà cô ấy có thể lấy đi.

Bạn thậm chí có thể hỏi cô ấy một câu như "Nếu có một điều gì đó về Facebook bạn có thể thay đổi, đó sẽ là gì?" Sau đó dẫn cô ấy đi qua cách bạn có thể tạo ra sự thay đổi và có bao nhiêu người sẽ tham gia.

Lần đầu tiên tôi học lập trình Pascal và tôi đều bị cuốn hút rằng chương trình của tôi đã chấp nhận đầu vào của tôi, làm hỏng nó và in một cái gì đó khác nhau. Tôi đã được nối từ đó. Một số người chốt dễ dàng.


Sử dụng Facebook là một gợi ý hay, cảm ơn @ client09
Dexter

2

Tôi có hy vọng đã đi đến một vị trí làm việc ở một nơi nào đó có lẽ là phát triển phần mềm mà cô ấy phải có hứng thú với lĩnh vực này không?

Không có câu trả lời nào được đặt ra, tôi sẽ đố cô ấy trong 5-10 phút về những gì cô ấy biết sau đó chỉ cần cố gắng và xây dựng dựa trên đó tốt nhất có thể.


Không chắc chắn @Chris - có rất nhiều vai trò khác nhau trong một công ty công nghệ, từ kế toán đến nhân sự đến phát triển và tư vấn. Chúng tôi sẽ cho cô ấy nếm thử rất nhiều vai trò khác nhau, vì vậy tôi không nghĩ rằng tôi sẽ đưa ra giả định này
Dexter

Vâng, để công bằng, bạn không bao giờ nói tại sao loại công ty đó. : p Sẽ an toàn khi nói rằng nếu ai đó đã đi đến một vị trí tại một cửa hàng guitar, họ có thể sẽ quan tâm đến guitar hơn là một nghệ nhân chơi đàn gỗ.
Ẩn danh

2

Bắt đầu cấp cao. Có thể giải thích rằng lập trình máy tính là về giải quyết vấn đề: đưa ra một vấn đề và đưa ra một giải pháp được viết ra dưới dạng một loạt các hướng dẫn mà một máy có thể sử dụng và hiểu.

Phần khó có thể đến với các ví dụ mà một cô gái 15 tuổi sẽ thấy thú vị và phù hợp . Chưa bao giờ ở trong tình huống đó và không biết cô ấy, tôi không biết nên khuyên gì cho điều đó ... Tránh các mẫu mã, cho đến gần cuối, và ngoại trừ các trường hợp rất đơn giản hoặc thú vị, chẳng hạn như chương trình "Hello world" hoặc một cái gì đó đơn giản và đồ họa (vẽ một số hình dạng trong cửa sổ, theo dõi chuột, v.v ...).


Tôi không nghĩ rằng tôi có thể dạy ai đó về lập trình mà không cho họ xem ít nhất một số mẫu mã tôi đang làm việc ..
Dexter

@Dexter: Trong 30 phút, tôi không chắc mình muốn hiểu quá nhiều về mã trông như thế nào. Tôi không có ý định không hiển thị bất cứ điều gì, nhưng vì bạn không có nhiều thời gian, tôi không nghĩ mã nên là trọng tâm. Nó có thể rất khô và nhàm chán. Nói thêm về ý tưởng và khái niệm nếu bạn có thể. Nếu bạn có thể tìm thấy một ví dụ đơn giản (có thể ít hơn 10 dòng) dễ hiểu và cũng thú vị, hãy tìm nó!
Thất vọngWithFormsDesigner

đồng ý, nhưng tôi nghĩ thay vì đi vào một ví dụ chương 1 đơn giản, tôi muốn hiển thị một chương trình mà tôi đã phát triển và chuyển một vài dòng mã trong đó để hiển thị kết quả .. cuối cùng tôi không nghĩ là tôi sẽ có thể dạy cô ấy cách lập trình, nhưng có lẽ tôi có thể truyền cảm hứng cho cô ấy muốn tìm hiểu thêm ..
Dexter

2

Đây là sự đảm nhận của tôi sau một vài lần thất bại và một vài nỗ lực khá tốt:

Lập trình là giải quyết vấn đề.

Bắt đầu với những thứ cụ thể được lập trình mà họ sử dụng hàng ngày - trình duyệt internet (facebook), điện thoại di động, máy tính tiền, v.v. Hãy lấy chúng để cung cấp cho bạn rất nhiều ví dụ. Thiết lập rằng tất cả những thứ này có một loại máy tính trong đó. Trái tim của máy tính là bộ xử lý.

Bộ xử lý giống như một công nhân rất nhanh, nhưng rất ngu ngốc. Nếu bạn cung cấp cho nó một số hướng dẫn, nó sẽ thực hiện chúng chính xác như bạn nói. Nó sẽ không làm gì thêm và nó sẽ không cho bạn biết nếu điều gì đó bạn bảo nó làm là sai. Tuy nhiên, bộ xử lý này thực hiện mọi thứ - nếu bạn nói chính xác cách thực hiện, nó có thể thực hiện cuộc gọi điện thoại hoặc đặt ảnh vào e-mail.

Hỏi cô ấy làm thế nào cô ấy sẽ nói với một công nhân rất nhanh nhưng rất ngu ngốc để mua một lon soda từ máy soda. Khi cô ấy bắt đầu mô tả các bước ("Đặt tiền vào máy và nhấn nút.") Bắt đầu mổ xẻ nó như một chương trình ("Tiền là gì? Làm thế nào để tôi đặt nó vào máy? Khi tôi đặt tiền vào máy và nhấn nút cùng một lúc, không có gì xảy ra. "). Nếu bạn có bảng trắng, hãy bắt đầu bên trái với bộ hướng dẫn đầu tiên của cô ấy. Khi cô sửa lại chúng, đặt danh sách mới lớn hơn ở phía bên phải. Khi bạn có một bộ hướng dẫn tốt, hãy bắt đầu khái quát các phần ("Bỏ tiền ra khỏi túi của bạn và lấy soda ra khỏi khay có âm thanh tương tự - phần nào giống / khác nhau?") Lấy phần tổng quát và đặt chúng vào giữa và gạch bỏ những mảnh mà bây giờ chúng bao gồm. Cố gắng cuối cùng buộc các mảnh để phù hợp với hướng dẫn ban đầu của cô ấy, loại cuộc gọi giống như chức năng. Các bài tập tốt khác: gửi thư, đi qua cửa, vẽ hình tròn / hình vuông / hình tam giác.

Vì vậy, Lập trình là giải quyết vấn đề: chia vấn đề thành các phần, xác định các phần phổ biến và nhóm các phần đó lại để giải quyết vấn đề. Ngay sau đó, bạn phát hiện ra rằng một số phần là phổ biến trong nhiều vấn đề, và sau đó bạn bắt đầu kết hợp các phần lại với nhau để giải quyết vấn đề mà bạn thậm chí không biết là mình có.

Được rồi, đến lúc này cô ấy có thể hiểu nhưng có lẽ cô ấy đã chán. Theo dõi nó với một tập hợp các ví dụ lập trình thú vị. Shader và mã hình ảnh liên quan rất dễ để demo - bạn có thể đưa ra một hình ảnh và bắt đầu thực hiện các thay đổi với nó với những thay đổi mã rất nhỏ. Nếu cô ấy bày tỏ sự quan tâm đến Facebook, hãy thể hiện việc nói chuyện với Facebook thông qua REST để xem dữ liệu của bạn bè (6 độ của cô ấy). Nếu cô ấy thích trò chơi điện tử, hãy thể hiện một vài bản demo trò chơi mã nguồn mở cùng với một vài đoạn mã của họ và cách họ giúp trò chơi hoạt động. Hoàn thành nó bằng cách hiển thị một vài công cụ và tài nguyên miễn phí mà cô ấy có thể điều tra tại nhà. (Python, C #, v.v.)

Những lần thử thất bại của tôi: cố gắng giải thích tính toán số pi (họ đang hỏi), trò chơi bảng C-Jump http://c-jump.com/ (họ không hiểu và hướng dẫn bị lỗi) và mã hóa trực tiếp 2d trò chơi (không thể giữ mối quan tâm, bất kể tôi đã thực hiện các bước nhỏ như thế nào giữa các bản demo).

Chúc may mắn!


2

Làm một chương trình đơn giản. Không, không phải "Xin chào thế giới!"

Những gì tôi muốn làm là nói rằng có nhiều loại ngôn ngữ lập trình - những loại tạo ra trò chơi, những loại điều khiển robot - nhưng thứ bạn sẽ làm việc với là HTML.

Tạo một trang web không có gì trên đó, sau đó thêm một biểu mẫu sẽ gửi email đến địa chỉ email của cô ấy. Cô ấy có lẽ có một chiếc điện thoại di động có khả năng thông báo cho chủ sở hữu rằng họ có một email mới, vì vậy bạn có thể nói với cô ấy rằng đó là một cách tuyệt vời để bạn bè và gia đình cô ấy liên lạc với cô ấy. Nếu cô ấy có trang web của riêng mình trong tương lai, bạn có thể nói với cô ấy rằng cô ấy có thể đặt biểu mẫu trên trang web của mình, cho phép khách hàng và đối tác kinh doanh liên hệ với cô ấy.

Ngoài ra, nếu cô ấy hơi tinh nghịch, tôi sẽ cho bạn biết điều khiến tôi hứng thú với việc lập trình: hack. Trước đây, tôi đã thực hiện chương trình tốt nhất từng được thực hiện để tìm hiểu về AOL (bên ngoài một chương trình vượt trội hơn tôi chỉ trong một trong số hàng tá điều tôi đã làm) - ở tuổi 14-15. Về phía mũ trắng, tôi cũng đã thực hiện một trong những chương trình loại bỏ thư rác đầu tiên (1995.) Tôi có thể làm cho trải nghiệm trực tuyến của mình thú vị hơn rất nhiều và chúng tôi sẽ để nó ở đó. Tất cả những gì tôi muốn làm trên máy tính là một cuộc phiêu lưu hoặc câu đố mà tôi phải tìm ra, và những điều tôi muốn làm trên máy tính là vô tận. Chắc chắn, đôi khi làm cho nó hoạt động là một vấn đề đau đầu, nhưng viết một chương trình hoàn thành mọi thứ tốt hơn và nhanh hơn bất kỳ con người nào có thể, hoặc làm những việc đơn giản là không thể đối với công chúng, giống như chế tạo một bộ máy tốt mà người ta có thể tự hào. Bây giờ, bạn có thể tránh né bất cứ điều gì nghiêm trọng, nhưng sẽ cực kỳ dễ dàng để tạo ra thứ gì đó trong Visual Basic có thể được khởi chạy khi khởi động (ngồi bên cạnh màn hình hoặc khay hệ thống,) và từ đó, bạn có thể làm cho nó khởi chạy các trang web yêu thích của cô ấy, các chương trình yêu thích của cô ấy, v.v. Bạn có thể giới thiệu cho cô ấy các lệnh cần thiết để khởi chạy exe và một trang web, sau đó chỉ cần yêu cầu cô ấy tạo một số nút, sau đó thêm mã vào các nút đó , đưa vào các trang web yêu thích của cô ấy (facebook, twitter, v.v.) và các chương trình (iTunes, trình xử lý văn bản, v.v.) Nếu máy tính của cô ấy ở trong phòng của cô ấy, bạn cũng có thể ném đồng hồ báo thức vào đó để thêm chức năng. Tất nhiên, 30 phút là quá ngắn để đưa cô ấy đi qua đó, vì vậy bạn phải hoàn thành nó. Cuối cùng, bạn sẽ gửi email một chút hướng dẫn sử dụng 2-3 trang, mã và .exe cho cô ấy ... và sau đó để lại cho cô ấy một chút doanh số: ban đầu không dễ dàng gì, nhưng một khi bạn đã nhận được Mặc dù vậy, nó không tệ lắm, sẽ cực kỳ hữu ích trong cuộc sống và sẽ giúp phát triển tư duy phân tích của cô ấy.


2

Tôi đã từng dạy sinh viên đại học 18 tuổi, và tôi cho rằng những người 15 tuổi cũng như vậy. Đừng mong đợi thành công mà không cần thực hành. Phải mất vài tuần trong lớp học đầu tiên của tôi để có được "đột nhập".

Điều lớn nhất tôi phải học là những gì tôi nghĩ rất đơn giản và rõ ràng đến nỗi tôi sợ rằng tôi không thể lấp đầy thời gian không phải là như vậy với các sinh viên. Tôi đã học được rằng bạn phải đi từng bước nhỏ - nếu không thì đó chỉ là phép thuật "gee whiz".

Làm thế nào bạn phù hợp với điều này trong 30 phút Tôi không chắc chắn, nhưng điều đầu tiên tôi làm là chỉ cho họ một chiếc máy tính nhỏ tự chế tạo mà tôi đã chế tạo, được lập trình để chơi một giai điệu nhỏ bằng cách nhấp vào loa. Tôi đã giải thích rằng nó có thể phát một ghi chú bằng cách giảm một bộ đếm, để hoạt động như một độ trễ, giữa các lần nhấp. Tôi chỉ viết mã giả trên bảng, giống như một công thức. Sau đó, có một tụ điện nhỏ mà tôi có thể móc dưới một sợi dây có thể khiến toàn bộ hoạt động chậm hơn khoảng 1000 lần. Sau đó, họ có thể nghe thấy nhấp - chờ - nhấp - chờ ... Sau đó, khi tôi tháo tụ điện, nó bật ra với giai điệu nhỏ.

Mục đích của việc này là vượt qua các máy tính chỉ làm những việc đơn giản và thực hiện từng việc một. Họ không bắt đầu từng bước cho đến khi bước trước kết thúc. (Vâng, vâng, tôi biết - đường ống và tất cả những thứ đó, nhưng chúng ta đang nói chuyện với người mới .) Chỉ có tốc độ điện tử khiến họ dường như làm mọi thứ cùng một lúc, đó là điều mà người mới có xu hướng giả định (cùng với việc đọc suy nghĩ) . Đó là một trong những khái niệm thực sự cơ bản mà bạn không thể bắt đầu hiểu về lập trình và máy tính. Đối với chúng tôi, điều này rất khó hiểu đến nỗi chúng tôi thậm chí không nhận ra rằng chúng tôi biết điều đó, nhưng những người mới bắt đầu không biết điều đó.


1

Tôi biết nó không phải ngôn ngữ lập trình nhưng tôi nghĩ HTML là một nơi tốt để bắt đầu. Bởi vì bạn nhận được kết quả ngay lập tức .... bắt đầu với

Chào thế giới

Sau đó làm:

Xin chào <b> Thế giới </ b>

Vân vân.


1

Nếu là tôi, tôi sẽ nói với cô ấy rằng lập trình là về việc chia một nhiệm vụ thành các nhiệm vụ nhỏ theo cách giúp bạn giải quyết chúng; và sau đó diễn đạt những nhiệm vụ nhỏ đó bằng ngôn ngữ mà máy tính ngốc không thể hiểu nhầm. Nhưng bạn cũng phải làm điều đó theo cách mà các lập trình viên khác cũng có thể hiểu nó một cách dễ dàng - và đó không phải là điều tương tự.

Đó là, trên hết những gì mọi người khác đã nói ...


1

Đây là nhiều kinh nghiệm cá nhân của tôi hơn là một "câu trả lời" đơn giản.

Tại sao tôi lại quan tâm? Cha mẹ tôi đã mua một máy tính IBM PC XT vào năm 1984 (tôi sinh năm 1984). Nó có RAM 640kb và 20 MB ổ cứng và 5 "FDD và chạy MS-DOS v3.2. Tôi không được phép chạm vào nó cho đến khi tôi ở chuẩn thứ 5 và cuối cùng khi tôi được phép sử dụng, tôi đã đổ hết năm của sự tò mò tích lũy vào nó.

Mặt khác, chị tôi đã được cho phép cùng một PC và Quadra 610 mackffy bất cứ khi nào cô ấy muốn và cô ấy đã trả nhiều tiền cho nó khi cô ấy trả cho cái bàn được đặt.

Dạy em gái tôi ... Tôi đã cố gắng dạy em gái tôi lập trình máy tính bằng BASIC. Tôi làm cho cô ấy mọi thứ ngay từ khi khởi động máy tính đến gõ chương trình và thực hiện nó. Đó là chương trình trực tuyến.

10 PRINT "CAT"
20 END

Điều này mất nửa giờ. Cuối cùng khi cô thực hiện nó, nó đã in chữ 'CAT' và cô rất tức giận. Cô đã mong đợi một hình ảnh của một con mèo xuất hiện. Cô ấy xông ra khỏi phòng và đó là kết thúc của chương trình mãi mãi!

Đạo đức: Sản lượng tốt hơn tỷ lệ thuận với thời gian và nỗ lực họ bỏ ra.

Dạy cho học sinh cấp ba Labview và Lego NXT Tôi là cố vấn cho FIRST Robotics trong một năm và phải hướng dẫn các em lập trình robot trong NI Labview. Thành thật mà nói, kỹ năng lập trình cần có cao hơn nhiều so với một học sinh cấp ba. Nhưng cuộc thi nhằm mục đích khiến trẻ em hào hứng với kỹ thuật và nâng cao khả năng tham gia thử thách. Miễn là các chương trình chỉ có một câu lệnh if và một vòng lặp, mọi thứ đều ổn. Mọi người đã bỏ ra khỏi phần lập trình của robot khi họ nhìn thấy sơ đồ mã mà tôi đã tạo cho robot mà chúng tôi đã xây dựng năm trước.

Nhiều như mọi người nói rằng những đứa trẻ 15 tuổi có thể làm những việc phức tạp và có thể có sự chú ý trong nhiều giờ, tôi thấy thiếu động lực kỳ lạ ở chúng để làm điều đó. Họ muốn làm những việc dễ dàng mà không đánh thuế bộ não của họ. Họ rất thích các bộ phận CAD và máy nghiền trên máy tiện hơn là viết chương trình.


1

CS là gì?

Tôi nghĩ rằng trước khi bạn đi vào bản demo, điều đó sẽ giúp bạn nhanh chóng đưa vị trí của CS vào thế giới. Tôi thích mô tả CS của Hal Abelson liên quan đến toán học: trong khi toán học giúp bạn mô tả thế giới theo các định luật, CS giúp bạn mô tả cách làm mọi việc. Ví dụ của ông là hàm căn bậc hai: math sẽ định nghĩa nó, nhưng sẽ không giúp bạn tìm thấy nó cho bất kỳ đầu vào nào. CS sẽ. Ở cấp độ thấp hơn, kỹ thuật điện và vật lý đã đặt nền tảng cho phần cứng kích hoạt internet, nhưng vẫn bỏ ngỏ các câu hỏi về cách khiến mọi người sử dụng nó.

Làm thế nào là một lập trình viên?

Sau đó, có câu hỏi về việc trở thành một lập trình viên như thế nào. Điều thu hút tôi là nó có vòng quay thử nhanh hơn - một cái gì đó, kiểm tra nó, sửa chữa nó, hơn bất kỳ lĩnh vực kỹ thuật nào khác. Đó là giải quyết vấn đề không ngừng nghỉ, trong khi ở các lĩnh vực khác, thời gian quay vòng cho một vòng lặp có thể là vài tháng. Nó cũng hữu ích cho hầu hết các lĩnh vực kỹ thuật khác, có thể nói nhiều hơn ... hầu hết các lĩnh vực kỹ thuật khác. Vì vậy, nếu bạn không biết những gì bạn muốn làm (có thể), đó là một điều tốt để sớm có được tốt. Ở trường đại học, một vài điều sẽ giúp bạn trở nên hữu ích hơn đối với nhiều giáo sư hơn là có thể viết mã các thí nghiệm của họ.

Mắt kẹo, gắn liền với mã

Sau đó, tất nhiên, đừng quên các bản demo. Thật tuyệt khi lấy một bản sao của trận động đất (nguồn mở) và thực hiện một số thay đổi một dòng (ví dụ: thay đổi cường độ trọng lực) và biên dịch lại, chẳng hạn. Cũng có cô ấy nhìn vào mã. Hãy trấn an cô ấy rằng cô ấy sẽ không muốn hiểu nhiều, bây giờ nó có vẻ như vô nghĩa, nhưng sau đó, một lần nữa, những tờ báo bằng tiếng nước ngoài mà cô ấy chưa học. Bạn có thể nói rằng dù sao cô ấy cũng có thể thấy rằng mọi thứ đang được gán cho mọi thứ, các đối tượng đang được cho biết phải làm gì và đây là nơi chúng ta đặt trọng lực, v.v.


1

Tôi bắt đầu lập trình khi tôi 14 tuổi. Trong khi hầu hết (47 trong số 50 sinh viên theo học) bỏ học giữa năm hoặc chỉ quyết định không tiếp tục học khóa nâng cao vào năm tới, tôi đã kiên trì và học được một điều rất quan trọng:

Lập trình cung cấp cho bạn khả năng tạo ra một cái gì đó từ không có gì. Bạn có khả năng biến lời nói thành một công cụ hữu ích đáp ứng nhu cầu, hoạt động giải trí cho bạn và bạn bè của bạn hoặc chỉ là thứ bạn có thể chỉ cho bạn bè và nói: "Hãy nhìn những gì tôi đã làm".

Chúng tôi đã được dạy "Hello World" để bắt đầu, nhưng tôi không có hứng thú cho đến khi tôi có thể làm cho mã của mình tương tác với người dùng . Khoảnh khắc chúng tôi được dạy đọc đầu vào với "cin", tôi bắt đầu thực hiện một chương trình Mad-Lib mà chúng tôi có thể chơi trong lớp. Rào cản đầu tiên của tôi là đọc đầu vào chứa khoảng trắng, tiếp theo là định dạng đầu ra. Sau đó tôi muốn có thể lưu những câu chuyện này vào một tập tin và vì vậy tôi cần học tập tin IO. Giải quyết những trở ngại để hoàn thành mục tiêu của riêng tôi là điều khiến tôi gắn bó.

Sau đó vào năm chúng tôi phát hiện ra rằng các quản trị viên mạng đã đăng nhập việc sử dụng "Gửi mạng" của chúng tôi và ứng dụng khách Novell SendMessage mà chúng tôi đã sử dụng để liên lạc trong lớp máy tính và họ đã vô hiệu hóa nó sau khi sinh viên sử dụng nó để gian lận trong bài kiểm tra. Vì vậy, tôi đã viết một phòng trò chuyện để thay thế một quản trị viên bị vô hiệu hóa. Đó là điều thực sự hữu ích đầu tiên tôi tạo ra. Tôi đã lập mô hình nó sau hệ thống trò chuyện của Battle.Net, hoàn thành với đăng ký người dùng, người kiểm duyệt và thậm chí là hệ thống mã hóa và bóng tối cơ bản để ngăn người dùng giả mạo (tất cả các tệp phải nằm trên ổ đĩa mạng chung để sinh viên truy cập và sử dụng chương trình). Đây không phải là những khái niệm mà tôi đã biết, nhưng các giải pháp tôi tự mình nghĩ ra để giải quyết vấn đề. Đối với tôi, đó là niềm vui của lập trình.

Vì vậy, để trả lời đúng câu hỏi, ngoài việc thảo luận về ý nghĩa của việc phát triển phần mềm, một bản demo tương tác có lẽ là một ý tưởng tuyệt vời. Tốt nhất là một cái gì đó giải quyết vấn đề cô ấy có, chẳng hạn như thay đổi kích thước tất cả những hình ảnh khổng lồ từ máy ảnh của cô ấy. Mặc dù phức tạp hơn một chút, cô ấy có thể vui vẻ với một trang web để lại tin nhắn đơn giản mà cô ấy có thể chia sẻ với bạn bè. Bạn có thể gửi email cho ai đó bất cứ khi nào một tin nhắn mới được đăng và nhờ cô ấy chỉnh sửa mã để gửi nó đến email của cô ấy thay vì của bạn. Ngoài ra, hãy để trang hiển thị số X bình luận cuối cùng và yêu cầu cô ấy điều chỉnh số đó, và xem kết quả là gì.


1

Nơi tôi từng làm việc đôi khi chúng tôi có những đứa trẻ có kinh nghiệm làm việc. Một số người thích máy tính, một số thì không. Chúng tôi thường bắt họ ngồi trước máy tính và bắt họ viết một trò chơi đoán. (Máy tính chọn ngẫu nhiên một số, người dùng sẽ nhận được phản hồi nếu dự đoán của họ quá cao / thấp.) Thật đơn giản để làm và đó thực sự là một kết quả thú vị. Không có gì mạnh mẽ hơn là cho họ thấy một cách hữu hình những gì HỌ có thể tạo ra.


1

Khi bạn muốn có được - và giữ-- sự chú ý của ai đó, thì HỎI, KHÔNG NÓI. Hỏi làm thế nào họ sẽ thực hiện một nhiệm vụ đơn giản, chẳng hạn như uống nước. Sau đó chỉ cho họ cách làm theo các hướng dẫn mà họ đã cung cấp (Chẳng hạn như "Đi xuống hội trường") không thực sự xử lý các vấn đề khi nào rẽ trái, rẽ phải, dừng lại, v.v. Hiểu và xử lý các điều kiện biên đó, đó là công việc lập trình! Sau đó, bạn có thể chỉ ra cách vòng lặp "làm cho đến khi" có thể xử lý tình huống "đi bộ cho đến khi bạn đến tường", để thực hiện các tác vụ meta ra khỏi nhiệm vụ một bước trước mặt khác đi bộ.


1

Tôi không chắc đây là một huyền thoại hay một câu chuyện có thật, nhưng tôi đã đọc về lý do tại sao một ngày may mắn cứng lại. Một phần của câu chuyện là cách anh ấy thể hiện chương trình cho một đứa trẻ (hoặc thậm chí là trẻ em) mà anh ấy gặp trên một chuyến tàu.
Như một số bạn có thể biết, _why là một chàng trai Ruby (và Ruby, tốt, khá thân thiện với người thường). Anh ta đang làm việc với một số trò chơi trong Ruby, trong khi một đứa trẻ tiếp cận anh ta để xem anh ta đang làm gì. Ông cho họ thấy kết quả đầu tiên - trò chơi làm việc. Sau đó, anh ta chỉ cho đứa trẻ cách anh ta có thể sửa đổi mọi thứ trong mã để thay đổi kết quả. Sau đó, ông cho đứa trẻ chơi với mã và xem kết quả sửa đổi.
Tôi nghĩ rằng đó nên là quy trình công việc chung của bạn - kết quả, sửa đổi, chơi. Bạn nên tìm một số dự án (trò chơi sẽ là sự lựa chọn tốt nhất) bằng ngôn ngữ thân thiện với con người và cho trẻ xem.

Vì tôi buồn, tôi không biết câu chuyện này có đúng hay không. Nó vẫn rất tuyệt.

Ngoài ra, một điều nữa. Tôi nhớ trải nghiệm đầu tiên của tôi với lập trình - MessageBoxở Delphi. Thật tuyệt, vì tôi có thể khiến máy tính làm những gì tôi muốn và ngay lập tức thấy kết quả.
Sau đó, vi điều khiển xuất hiện. Họ thậm chí còn tốt hơn, bởi vì mã của tôi có thể thay đổi thế giới thực. Ý tôi là, việc gán một số giá trị cho biến đã dừng quá trừu tượng, vì nó khiến điện áp xuất hiện trên cổng đầu ra, sau đó khiến động cơ của tôi di chuyển. No đa rât tuyệt. Bạn có thể muốn chọn cách này - chỉ cho đứa trẻ một cái gì đó như Arduino.

Bạn thấy đấy, tôi nghĩ đó là tất cả về việc thay đổi và nhìn thấy kết quả.


0

Chỉ cho cô ấy kết quả cuối cùng của một số điều bạn đã làm. Nói chung về vai trò của bạn trong các dự án. Thậm chí có thể giúp cô ấy làm một thế giới xin chào nếu cô ấy có vẻ quan tâm.


0

Tương tự yêu thích của tôi để lập trình là thuật sĩ (phong cách harry potter), như Satanicpuppy. Tôi sử dụng nó cho các đồng nghiệp phi kỹ thuật cũng như trẻ em, nó dường như hoạt động khá tốt, và chắc chắn truyền tải sức mạnh mà máy tính mang lại cho chúng ta.

Máy tính là cây đũa thần của chúng tôi. Chúng cho phép chúng tôi thực hiện phép thuật bằng cách búng tay phải của cổ tay và bùa chú. Là lập trình viên, chúng tôi có quyền truy cập vào sách chính tả (thư viện) được làm việc và tinh chỉnh bởi những người đi trước. Chúng ta có thể tạo ra các phép thuật và bùa chú mới hoặc làm việc với các phép thuật hiện có. Một số dễ dàng, một số thực hành nhiều hơn để thực sự sử dụng hiệu quả, thường có sự đánh đổi và nhiều cách khác nhau để giải quyết cùng một vấn đề (tôi nên sử dụng một loại thuốc tốt hay một câu thần chú?).

Phép ẩn dụ mở rộng này thực sự có thể được kéo dài và nó thường cho phép tôi truyền niềm đam mê lập trình của mình theo cách mà những người ngoài lĩnh vực có thể tiếp cận được.


0

Cách tốt nhất để hiểu trẻ em là trở thành một đứa trẻ đầu tiên ..! Khi còn bé, tôi thường ghét làm bài tập về nhà, áp đặt vv ..! vì vậy có những điểm vào trong đó bạn có thể thu hút sự chú ý của họ. Trong khoảng thời gian 30 phút mặc dù chúng tôi không thể giải thích mọi thứ, chúng tôi có thể cố gắng cung cấp cho họ một loại tiếp xúc mà ở những đứa trẻ quan tâm tìm thấy nó như nguồn cảm hứng. Bắt đầu với các chủ đề liên quan của họ như bài tập về nhà, v.v. Hãy cho họ biết làm thế nào một máy tính có thể viết áp đặt chỉ trong vài giây, v.v.

Chúc các bạn mọi điều tốt đẹp ..! làm tốt lắm

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.