Làm thế nào tôi có thể giúp một đứa trẻ có động lực trong việc học lập trình?


39

Làm thế nào tôi có thể giúp một đứa trẻ trước tuổi thông minh (trước tuổi thiếu niên) học lập trình? Anh ấy học rất giỏi ở trường, và anh ấy đã trượt 2 lớp và là một mọt sách rập khuôn hướng nội. Anh ấy rất quan tâm đến việc phát triển web và đã nắm vững các nguyên tắc cơ bản của HTML , CSSJS , điều mà tôi không biết gì về tôi (Tôi không phải là một lập trình viên). Ông đã xây dựng một trang web cá nhân từ kiến ​​thức của mình. Anh ấy đã học được điều này từ internet trên các trang web hướng dẫn khác nhau và Stack Overflow.

Làm thế nào tôi có thể khuyến khích anh ta phát triển những kỹ năng này? Có cách nào để giúp anh ấy học hỏi mà tôi không biết lập trình? Tôi không nghĩ rằng tôi có thể học được tất cả những gì anh ấy đã học, vì anh ấy dành rất nhiều thời gian cho nó và rất tận tâm.

Tôi nghĩ rằng mối nguy hiểm lớn nhất là mất động lực và bỏ cuộc. Việc gỡ lỗi đôi khi có thể làm nản lòng và tôi không muốn anh ta dừng lại vì điều đó. Trong các môn học khác, tôi có thể giúp anh ta làm việc đó, nhưng với lập trình, tôi không thể vì tôi không có kiến ​​thức về miền.

Tôi nên làm gì để giữ động lực viết mã của anh ấy để anh ấy có thể không nản lòng khi gặp khó khăn khi tôi không thể tự mình vượt qua những khó khăn đó?

(không phải cha mẹ tôi)


41
Hmm, chỉ cần cấm nó, và họ sẽ vô cùng thích thú với chủ đề này.
Per Alexandersson

Một người bạn của tôi đã viết một bài đăng trên blog ( davidketcheson.info/2014/12/09/teaching_kids_to_program.html ) về cách anh ấy dạy con cái mình lập trình có thể hữu ích cho bạn.
Jeff

3
Tôi đã tự học lập trình từ khi còn rất nhỏ. Cha tôi đã mua cho tôi các công cụ (ngày nay, bạn có thể có được một phiên bản miễn phí của studio hình ảnh) và sách. Anh ấy không cần phải lập trình như một chuyên gia, chỉ để vui vẻ làm điều đó. Tôi đã có niềm vui bằng cách làm game, bắt đầu với một cuộc phiêu lưu dựa trên văn bản, sau đó là game bắn súng 2D. Ngoài ra với studio hình ảnh, anh ta có thể tăng độ phức tạp của trang web này bằng cách làm cho nó năng động.
the_lotus

Học cách viết mã với anh ấy. Hoạt động vui chơi cho bạn để làm cùng nhau. Bằng cách đó, bạn có thể làm những phần bực bội cho anh ta ngay từ đầu.
Evorlor

9
the fundamentals of HTML, CSS, and JS, which I don't know anything about (I'm not a programmer) cho biết người có danh tiếng 4k SO và các thẻ hàng đầu của họ là HTML, CSS và JS
Santa Claus

Câu trả lời:


25

Trước hết, về mặt giúp trẻ học:

  1. Nhiều / hầu hết các trường đều có câu lạc bộ máy tính. Khuyến khích trẻ hỏi thăm các học sinh khác, hoặc tự hỏi các chuyên gia của trường. Điều này sẽ đặt đứa trẻ với các bạn cùng lứa phát triển, đó là sự khích lệ lớn nhất mà bạn có thể cung cấp.

  2. Nói chuyện với một giáo viên máy tính trong trường nếu có. Họ có thể đồng ý giúp đỡ đứa trẻ, hoặc đưa ra lời khuyên.

  3. Tương tự như # 1 / # 2, quảng cáo cho một gia sư nếu bạn có đủ khả năng. Một sinh viên đại học CS nghèo nhưng xuất sắc có thể thực sự thích dạy một thiếu niên thông minh, nhiều hơn so với những người cùng tuổi kém thông minh mà họ thường dạy kèm. Tôi biết tôi làm được. Thách thức (ngoài thực tế là bạn phải trả tiền) là tìm một người giỏi dạy - kinh nghiệm giảng dạy hoặc dạy kèm trước nên được yêu cầu, cũng như khả năng làm việc với trẻ nhỏ.

  4. Các khóa học trực tuyến (Coursera, v.v ...) có thể rất tuyệt, đặc biệt đối với một mọt sách xen kẽ ( tôi nhìn vào gương )

  5. Để thách thức họ chỉ cho họ đến Rosetta Code và các trang web Đánh giá mã Stackexchange .

Thứ hai, nếu bạn cảm thấy họ có thể sử dụng động lực cho các bước tiếp theo:

  1. Nếu đứa trẻ trưởng thành (có khả năng là vậy), hãy cho chúng thấy mức lương trung bình cho các ngành nghề khác nhau và các kỹ sư phần mềm đang tăng so với hầu hết các ngành nghề. Điều này sẽ đảm bảo rằng anh ta có thể nhìn qua những kẻ bắt nạt thông thường mà anh ta có thể gặp phải và có lý do để dính vào tiền mã hóa.

  2. Chỉ ra rằng có rất nhiều trẻ em như thế này (như bạn có thể thấy từ những lời chứng thực cá nhân trên hầu hết tất cả các câu trả lời ở đây :) - anh ta có thể sẽ được khuyến khích nhiều hơn nếu anh ta không cảm thấy mình là một kẻ lập dị ngay cả khi anh ta sống tự nhiên.


3
Many/most schools have computer clubsTôi xin không đồng ý.
Ông già Noel

Tôi phải đồng ý với @SantaClaus về điều này. Đặc biệt là ở Texas, không có nhiều nhóm lập trình. Tôi đã vô cùng khó chịu khi phát hiện ra rằng trường trung học địa phương của tôi không có câu lạc bộ. Chúng tôi đã cố gắng nói chuyện với họ và họ từ chối vì tài trợ. Tuy nhiên, họ có hơn 20 câu lạc bộ thể thao. Điều này rõ ràng là đúng với hầu hết các trường học ở Texas, ngoại trừ với các trường nội thành.
Damien Bochkarev

12

Một vài điều cần thêm vào câu trả lời tuyệt vời của user3143:

Công cụ. Công cụ không phải là công cụ thay thế cho kinh nghiệm hoặc kiến ​​thức, nhưng mọi thợ thủ công / phụ nữ đều đánh giá cao các công cụ tốt và chúng là thứ mà bạn với tư cách là một phụ huynh không lập trình có thể giúp đỡ. Một số thứ tốt nhất là miễn phí, nhưng nếu đứa trẻ muốn có IDE, thư viện, chương trình, v.v ... có chi phí bất kỳ số tiền hợp lý nào, hãy cân nhắc mạnh mẽ để có được nó. Tôi thấy Photoshop chẳng hạn là vô giá để phát triển web (công việc của tôi). Nhận đứa trẻ một số công nghệ di động để phát triển cho. Nó không phải là đắt tiền, và bạn không cần phải kết nối nó với gói dữ liệu, điện thoại và máy tính bảng 2 năm tuổi đã sử dụng sẽ làm được.

Khuyến khích trẻ đóng góp cho nguồn mở, tìm hiểu cách hoạt động của github (nếu trẻ chưa có). Khuyến khích trẻ cố gắng lấy tín chỉ của trường cho các dự án cá nhân (tốt nhất từ ​​trước đến nay). Khuyến khích trẻ viết chương trình làm quà tặng (hiện tôi đang làm một trang web cho con gái 5 tuổi của tôi). Nó giúp học cách dự đoán và đưa ra những mong muốn và yêu cầu của người khác, điều này sẽ rất quan trọng nếu bạn muốn đứa trẻ theo đuổi nghề lập trình. Nói về mà...

Tôi cho rằng (có thể sai) rằng bạn đang khích lệ với hy vọng điều này có thể trở thành sự nghiệp của trẻ em. Nếu đó là trường hợp, có một số điều mà một lập trình viên chuyên nghiệp cần biết rằng một người có sở thích được cho là không. Nếu bạn chưa ở thời điểm đó (trẻ nhỏ) không lo lắng về danh sách các điều kiện tiên quyết sau: kiểm soát phiên bản mã nguồn, làm việc theo nhóm, giao dịch với khách hàng (dù là ông chủ hay khách hàng), tài liệu (chương trình dành cho những người khác đọc và chỉ tình cờ cho máy tính chạy) và cân bằng cuộc sống công việc (ngành của chúng tôi không phải là tồi tệ nhất, nhưng đó là một vấn đề).

Cuối cùng nhưng không kém phần quan trọng là RSI. Con bạn sẽ được gõ. Rất nhiều. Tôi đã có một mùa hè ở trường học để học cách gõ cảm ứng trong cách bố trí bàn phím colemak, và tôi rất vui vì tôi đã làm như vậy. Đáng để kiểm tra.



1
Tôi sẽ cắn. Hobbiests cần một SCM (Git là tốt nhất, IMO) nếu họ muốn được lành mạnh.
Hoàn tác

2
Đó là lý do tại sao tôi nói 'có thể tranh cãi'. Tôi chắc chắn đã tự cao bồi vào một vài lần trong các dự án cá nhân bằng cách nghĩ 'Tôi sẽ không bận tâm đến việc kiểm soát nguồn trong chương trình vứt bỏ nhỏ này' :)
Jared Smith

11

Các câu trả lời khác ở đây đều ổn, nhưng tôi lo lắng có một thực tế quan trọng mà mọi người đều bỏ qua:

một mọt sách rập khuôn hướng nội

Bản thân tôi là kiểu người này và bạn không thể tưởng tượng được cuộc sống khó khăn như thế nào khi bạn ngại ngùng và sợ nói chuyện với người khác (điều này dường như được gọi là lo lắng xã hội), vì vậy nếu có thể bạn nên quan tâm đến điều này trước đây bất cứ điều gì khác, nếu không tôi sợ anh ta sẽ sử dụng lập trình như một "nơi ẩn náu" khỏi cuộc sống thực (như tôi đã làm trong vài năm) và điều đó sẽ gây rắc rối cho anh ta trong tương lai.


1
Đây là một điểm rất tốt để ghi nhớ. Tìm kiếm một câu lạc bộ lập trình, hoặc ngoại khóa kết hợp lập trình (ví dụ giải đấu FIRST LEGO), có thể giúp anh ta phát triển cả sở thích rõ ràng và kỹ năng xã hội hóa của mình.
Acire

2
Đã đồng ý. Tôi có lẽ đã nhận được nhiều hơn một năm của nhà hát ở trường trung học hơn bất kỳ lớp học nào khác ngoài những thứ liên quan đến máy tính. Nó dạy tôi cách đối phó với sự sợ hãi trên sân khấu, cách ứng biến trong một tình huống xã hội căng thẳng và tất cả các loại "kỹ năng mềm" luôn có ích. Và "những người đam mê kịch tính", cũng là một loài phụ khác, vì vậy việc tương tác với các bạn cùng lớp và liên quan đến họ sẽ không gây khó khăn cho đứa trẻ như với một số dạng sống ngoài hành tinh khác đi lang thang trên hành lang của một trường trung học điển hình. Bạn chắc chắn nên khuyến khích (nhưng không đẩy ) anh ấy đi xem kịch.
Mason Wheeler

6

Là một lập trình viên và ở một mức độ nào đó là 'đứa trẻ đó', tôi muốn nói rằng những thứ như bộ dụng cụ phần cứng nhúng (giá rẻ) như Raspberry Pi hay Arduino là con đường để đi. Những bộ dụng cụ này thường khá rẻ (Pi khoảng 30 đô la và được cung cấp bởi bộ sạc điện thoại).

Các lập trình viên trẻ không quan tâm đến việc nắm bắt đúng các khái niệm lập trình như viết mã an toàn / chất lượng cao. Cho đến khi nó trở thành một thói quen, nó sẽ cản trở mọi thứ hoạt động. Tôi ví nó như hóa học khi biết các chi tiết phức tạp về lý do tại sao Mentos và Diet Coke tạo ra một đài phun nước lớn ít thú vị hơn nhiều so với việc thử nghiệm lộn xộn trong sân bằng soda và đồ ngọt.

Lập trình viên trẻ học được nhiều thói quen xấu từ các khóa học trực tuyến và mẫu mã. Chúng thường được thiết kế kém và được chế tạo để chỉ hoạt động trong điều kiện tối ưu. Các lập trình viên giỏi xây dựng cho tất cả những 'trường hợp nhỏ' kỳ quặc đó, nơi mọi thứ không hoàn toàn như mong đợi. Tại một số điểm, họ sẽ phải học hỏi tất cả các hành vi xấu và tránh môi trường 'chuyên nghiệp' cho đến khi họ sẵn sàng là một cách tốt để giúp ngăn chặn các thói quen xấu hình thành.

Họ có động lực để chơi và họ cũng có thể chơi trong khi họ vẫn còn là một đứa trẻ và trong khi họ muốn làm điều đó.

Lấy phần cứng / bảng mạch và thực sự tạo ra thứ gì đó khuyến khích các kỹ năng sáng tạo thường thiếu (rập khuôn) ở trẻ em với những sở thích đó. Là một lập trình viên trẻ, có rất nhiều sự hài lòng hơn trong 'Tôi đã tạo ra NÀY' và một lỗi trong mã có khả năng thực sự phá vỡ một cái gì đó. Ngoài ra, khi bạn hoàn thành việc xây dựng nó, bạn có thể chơi với nó một lúc.

Quan trọng nhất - đối với người không lập trình, việc khen ngợi một cái gì đó về thể chất có mục đích dễ hiểu hơn nhiều. Điều đó dẫn đến lời khen ngợi cao hơn và các cuộc hội thoại mang tính xây dựng hơn so với mã / chương trình trên màn hình cuối cùng biến thành 'săn bọ' hoặc cần một lời giải thích dài hơn trình diễn.


5

Tôi đã từng ở một vị trí tương tự. Tôi là một thanh thiếu niên ham học hỏi về lập trình và tôi đã rất phấn khích khi xem một máy tính thực hiện các lệnh như tôi đã hướng dẫn. Tôi không quan tâm đến việc phát triển web, thay vào đó tôi ban đầu quan tâm đến điều hoàn toàn ngược lại: hack / khai thác. Tuy nhiên, tôi tin rằng kinh nghiệm của tôi với việc học lập trình sẽ có liên quan.

Tôi tin rằng chìa khóa để dạy một thanh niên cách lập trình là sự khuyến khích. Đây là một cái gì đó tôi ước tôi sẽ có nhiều hơn. Bố mẹ tôi không hiểu biết nhiều về công nghệ cũng như bất kỳ ai trong gia đình tôi và vì thế, tôi không nhận được nhiều sự khuyến khích hay hỗ trợ trong việc học / mài giũa kỹ năng lập trình của mình. Bạn đã thực hiện đúng bước bằng cách hỏi người khác về suy nghĩ của họ và điều đó cho thấy bạn ủng hộ lợi ích của anh ấy. Lời khuyên tốt nhất tôi có thể đưa ra cho phụ huynh / người giám hộ / người cố vấn của một đứa trẻ thích lập trình rất đơn giản: đừng để chúng trở nên chán nản hay quá tải. Một đứa trẻ có thể dễ dàng cảm thấy nản lòng hoặc choáng ngợp khi làm việc với một vấn đề lớn. Đó là công việc của bạn để đảm bảo rằng điều đó không xảy ra.

Về cách bạn có thể khuyến khích anh ta, điều đó phức tạp hơn một chút. Mỗi đứa trẻ là khác nhau. Bố mẹ tôi bắt đầu ủng hộ và động viên khi tôi học năm cuối cấp ba. Tôi tìm thấy sự khích lệ nhất khi họ vào phòng tôi, ngồi xuống với tôi, hỏi về những gì tôi đang làm, lắng nghe tôi giải thích chi tiết, xem tôi điều hành cho họ và tỏ ra thích thú. Hôm nay tôi không còn tin rằng cha mẹ tôi có nhiều hứng thú với những giải thích hoặc chi tiết của tôi, nhưng tại thời điểm đó tôi đã bị thuyết phục họ đã làm và nó giúp tôi cảm thấy hài lòng và hoàn thành công việc của mình. Dành thời gian để ngồi xuống với anh ta, nhìn vào những gì anh ta đã xây dựng, thảo luận với anh ta, đặt câu hỏi và dường như bị mê hoặc. Nó sẽ làm cho anh ta cảm thấy đặc biệt và nó sẽ cung cấp củng cố tích cực. Bạn có thể không thể đề nghị anh ta giúp đỡ hoặc chỉ cho anh ta cách làm một cái gì đó,

Một trong những cách tốt nhất để học lập trình là tìm một mục tiêu khó khăn và biến nó thành tâm điểm của sự phát triển. Trong trường hợp của tôi, tôi đã tập trung vào một mục tiêu cụ thể khi tôi 16 tuổi. Tôi đã tập trung vào phát triển một chương trình để khai thác một trò chơi android / iphone rất phổ biến tại thời điểm đó. Tôi đã trở nên cố định vào mục tiêu đó và làm việc với nó trong nhiều tháng. Cuối cùng tôi đã có thể xây dựng một ứng dụng cho nó và sau đó mục tiêu của tôi trở nên rộng hơn. Sau khi tôi đạt được mục tiêu đó, tôi đã hướng tới việc mở rộng chương trình và bổ sung thêm nhiều tính năng cho nó. Trong một năm rưỡi tiếp theo, tôi đã thực hiện nhiều chương trình hoàn thành mục tiêu đó và các tính năng lưu trữ mà tôi chưa bao giờ nghĩ rằng mình có thể đạt được. Tôi sẽ nói, động lực của tôi để mở rộng hơn nữa là tiền. Tôi đã tạo ra một doanh nghiệp trực tuyến bán phần mềm khai thác trò chơi mà tôi đã viết. Tuy nhiên, động lực của anh ấy có thể là bất cứ điều gì. Nó không phải là tiền hoặc bán những gì anh ta tạo ra. Anh ta chỉ đơn giản có thể tìm thấy động lực trong sự hài lòng để đạt được một mục tiêu cuối cùng. Không quan trọng điều gì thúc đẩy anh ta, điều quan trọng là anh ta có động lực.


Dưới đây là một số tài nguyên tốt nhất tôi đã tìm thấy để học lập trình:

  1. YouTube: Điều này có vẻ như là một đề xuất kém, nhưng hãy để tôi giải thích. Tìm kiếm "[Bất cứ ngôn ngữ nào anh ấy muốn học] hướng dẫn" và chọn danh sách phát. Có rất nhiều hướng dẫn tuyệt vời cho rất nhiều ngôn ngữ trên YouTube, từ người mới bắt đầu đến nâng cao.
  2. Khan Academy: Tôi đã không tìm thấy điều này cho đến một năm trước, nhưng Khan Academy có một khóa học lập trình miễn phí. Tôi lướt qua khóa học và nó dường như là một khóa học rất tốt cho một lập trình viên mới bắt đầu. Nó bao gồm các khái niệm cơ bản và nó rất dễ hiểu. Nó có thể là một nguồn lực tốt cho anh ta.
  3. "TeachMeComputer": TeachMeComputer là tên YouTube của một người đàn ông đã được tạo ra các hướng dẫn tuyệt vời cho Visual Basic .NET và PHP. Ông đã tổ chức tất cả chúng và cung cấp nội dung bổ sung trên www.HowToStartProgramming.com . Với sự quan tâm của trẻ em trong phát triển web, đây có thể là một tài sản quý giá để học PHP. Tôi tin rằng VB.NET là một ngôn ngữ lập trình cho người mới bắt đầu tuyệt vời, vì vậy bộ hướng dẫn này cũng có thể rất hữu ích với anh ta.

Chỉnh sửa : Tôi xin lỗi vì cho rằng bạn là cha mẹ. Tôi không nhận thấy dòng cuối cùng của bài viết của bạn nói rằng bạn không phải. Mặc dù vậy, tôi tin rằng câu trả lời của tôi vẫn có thể hữu ích.


4

Học cách phát triển phần mềm theo cách tương tự (mặc dù vào đầu những năm 90, có rất ít tài liệu hữu ích có sẵn trên mạng và vì vậy tôi đã tìm / mua sách làm nguồn thông tin chính của mình), tôi có thể nói rằng điều quan trọng nhất là đứa trẻ cần anh dường như đã có: Động lực để học hỏi.

Các câu trả lời khác ở đây đưa ra những gợi ý hay, bao gồm các yếu tố như có liên quan đến những người cùng chí hướng, giúp làm quen với các công cụ và đơn giản như nó có vẻ, học cách gõ hiệu quả là chìa khóa (nếu không, việc nhập bất kỳ loại thông tin nào vào máy tính có xu hướng khó khăn đến mức bạn khó có thể đối đầu với ý tưởng giải quyết các vấn đề lớn với mã).

Tôi cũng sẽ nói thêm: Khuyến khích người trẻ này chọn một mục tiêu / dự án do chính anh ta / cô ta chọn và gắn bó với nó để hoàn thành. Điều này có thể mất vài lần thử và lần đầu tiên có thể không hoàn thành, quá tham vọng, cuối cùng trở nên nhàm chán, v.v. Nhưng học cách vượt qua điều này và thực sự tạo ra thứ gì đó có chất lượng mà ai đó sử dụng (có thể là một dự án nguồn mở hoặc một cái gì đó được sử dụng ở trường hoặc bởi bạn bè, v.v.) - đó là một điểm quan trọng và một bước quan trọng.

Tôi đã học được rất nhiều về lập trình ở cùng độ tuổi đó (10-12), nhưng khi tôi mười ba tuổi, một người thực sự đã cho tôi tiền để lập trình một cái gì đó cho họ, và nó có thời hạn liên quan đến nó. Đó là một kinh nghiệm khác nhau. Trong khi nó có một số căng thẳng liên quan đến nó, nó cũng khiến tôi có trách nhiệm. Tôi đã có vô số dự án chưa hoàn thành và những ý tưởng thông minh, nhưng cho đến khi ai đó giúp tôi huấn luyện về việc cung cấp bất kỳ phần mềm nào tôi đang viết (và nó có đủ tốt và khả thi, không phải là một đống lỗi quá mức), rằng Tôi thực sự xem xét rằng tôi "trở thành một nhà phát triển thực sự".

Đó là hai xu của tôi.


3

Bắt đầu với Scratch: http://scratch.mit.edu/

"Scratch là một công cụ soạn thảo đa phương tiện trực tuyến và đa phương tiện miễn phí, có thể được sử dụng bởi các sinh viên, học giả, giáo viên và phụ huynh để dễ dàng tạo ra các trò chơi và tạo bước đệm cho thế giới lập trình máy tính tiên tiến hơn hoặc thậm chí được sử dụng cho một loạt giáo dục và mục đích xây dựng giải trí từ các dự án toán học và khoa học, bao gồm mô phỏng và trực quan hóa các thí nghiệm, ghi lại các bài giảng với các bài thuyết trình hoạt hình, đến các câu chuyện khoa học xã hội hoạt hình, và nghệ thuật và âm nhạc tương tác. " WP


5
Ew. Tôi đã buộc phải sử dụng Scratch trong một khóa học "hiểu biết về máy tính" vào năm lớp 6, và điều đó thật tồi tệ. tại sao bạn lại ép tôi sử dụng chuột nhiều như vậy, hãy để tôi tyyyyype
Doorknob

1
Nếu điều duy nhất bạn học được khi làm việc với Scratch là bạn không thích chuột, thì bạn đã bỏ lỡ vấn đề. Đây là một công cụ tuyệt vời để học các khái niệm lập trình cơ bản. Và đó là rất nhiều niềm vui để thử nghiệm. Cả hai đứa con tôi đều thích nó và chúng tiếp tục học lập trình thực sự. Điều quan trọng không phải là nó có sử dụng chuột hay không; điều quan trọng là đó là một cách thú vị để bắt đầu, điều này có thể kéo họ vào việc học thêm.
james.garriss

5
Scratch là một điểm khởi đầu khá tốt để giới thiệu các nguyên tắc cơ bản của logic lập trình, nhưng có thể là một chút về phía trẻ đối với một thanh thiếu niên đã bắt đầu. Đó cũng là một cách tốt để làm cho chúng quen với các ngôn ngữ lập trình trực quan, có thể được sử dụng trong sự nghiệp (ví dụ: LabVIEW).
Acire

3

Mọi người đã thêm một số gợi ý tuyệt vời. Điều duy nhất tôi có thể thêm vào là tìm thứ gì đó mà anh ấy thích làm, lập trình đó sẽ mang lại cho anh ấy lợi thế cạnh tranh. Ví dụ, nếu anh ấy thích trò chơi điện tử và biết cách viết mã nghĩa là anh ấy có thể sửa đổi hệ thống hoặc phần mềm của mình (vâng Tôi biết điều này có thể dẫn đến gian lận) để cho anh ta một lợi thế, sau đó có lẽ đó là một cách để anh ta hack mã và học cách bẻ cong hành vi của một ứng dụng để đáp ứng nhu cầu của anh ta. Nó có thể là những điều ngớ ngẩn mà anh ấy bắt đầu hack đi; nhưng với thời gian, kỹ năng của anh ta sẽ phát triển tự nhiên mà không trở thành việc vặt. Khi mọi người thích những gì họ làm, họ học nhanh hơn và tiếp tục phát triển.


3

Không bao giờ quên rằng có hai mục tiêu, đôi khi có thể xung đột.

  • Chúc bạn lập trình vui vẻ
  • Trở thành một nhà phát triển phần mềm tuyệt vời

Hãy ghi nhớ hai điều đó, bởi vì nếu bạn đưa ra quyết định mà không có ý thức về điều nào trong hai bạn đang ưu tiên, bạn có thể không có được sự cân bằng phù hợp. Luôn luôn ưu tiên tương tự như vậy sẽ không tốt.

Ai đó đang tự dạy mình cách lập trình mà không có hướng dẫn từ các lập trình viên giàu kinh nghiệm hơn có thể tự dạy mình một số thói quen xấu, điều mà họ sẽ phải học hỏi sau này.

Nếu nhận được một gia sư cho đứa trẻ là một lựa chọn cho bạn, thì nó có thể rất hữu ích.

Khuyến khích đứa trẻ tham gia vào các dự án nguồn mở, vì điều đó có thể cung cấp nhiều lợi ích:

  • Bạn học cách làm việc cùng với những người khác trong một dự án, điều này rất quan trọng nếu bạn hy vọng một ngày nào đó sẽ lập trình để kiếm sống.
  • Những người có kinh nghiệm hơn tham gia vào dự án có thể cung cấp một số hướng dẫn trên đường đi.
  • Nếu bạn quản lý để đóng góp một cái gì đó tốt đẹp cho dự án, điều đó có nghĩa là có một cái gì đó để đưa vào CV nếu một ngày nào đó bạn sẽ làm một nghề nghiệp như một nhà phát triển.

Có rất nhiều dự án nguồn mở, vì vậy rất có thể có một dự án sẽ khiến đứa trẻ thích thú.

Ngay cả khi bạn không có bất kỳ kỹ năng kỹ thuật nào, bạn vẫn có thể hướng dẫn trẻ trong quá trình đó. Một số điều cần thiết để tham gia vào một dự án như vậy là về kỹ năng người tốt, nơi bạn có thể cung cấp một số hướng dẫn.

Một số cộng đồng trực tuyến có thể đi qua như một chút thù địch với người mới. Một vài lời khuyên có liên quan trong hầu hết các trường hợp là:

  • Hãy chỉ khiêm tốn một chút lúc đầu. Những người mới đến thỉnh thoảng (đôi khi vì lý do chính đáng) được xem là những người kiêu ngạo với lòng tự trọng cao hơn so với lý do chính đáng.
  • Cho thấy rằng bạn sẵn sàng học hỏi.
  • Cho thấy rằng bạn có thể đóng góp có giá trị.

Nhiều dự án nguồn mở đang thảo luận về sự phát triển trong danh sách gửi thư mở, vì vậy bạn sẽ phải quyết định xem bạn có chú ý đến những điều đó để xem đứa trẻ hòa nhập với cộng đồng như thế nào không.


2

Tôi hiện đang ở độ tuổi trẻ và đã được lập trình trong vài năm.

Lần đầu tiên tôi được giới thiệu vào C khi tôi khoảng tám tuổi, mặc dù tôi chưa tiếp xúc với ngôn ngữ này nhiều. Tôi tập trung nhiều hơn vào thiết kế và phát triển web, mặc dù tôi có kiến ​​thức cơ bản về Java cho API Bukkit và tôi sẽ sớm mở rộng lên cả Objective C hoặc Swift.

Theo kinh nghiệm hiện tại của tôi, tốt nhất là tự học qua chính mình. Tôi thấy khó khăn hơn ở độ tuổi trẻ hơn để học hỏi từ những người khác, nhưng thay vào đó là thử nghiệm và sai sót. Tôi biết rằng nhiều trường cung cấp các câu lạc bộ máy tính và như vậy, như tôi đã được yêu cầu tham dự nhưng bị từ chối, mặc dù tôi không cảm thấy như vậy là đủ cho tôi. Ở độ tuổi trẻ hơn, mọi người khái quát rằng trẻ em chúng ta không có khả năng với những gì họ mong đợi. Tôi biết rằng tôi hiểu biết nhiều hơn với các ngôn ngữ lập trình và viết kịch bản khác nhau với nhiều người lớn đảm nhận trình độ hiểu biết của tôi về chủ đề này.

Khi tôi mới bắt đầu lập trình, tôi sẽ xem nhiều hướng dẫn trực tuyến, mặc dù chỉ có hướng dẫn trực quan mới giúp tôi. Tài nguyên đọc và tương tác sẽ không giúp tôi chút nào, mặc dù video cũng hạn chế tôi.

Tôi sẽ sao chép mã từ video và khám phá cách nó hoạt động. Tôi sẽ nghiên cứu một số chức năng nhất định và thử nghiệm ngôn ngữ cho đến khi tôi có kiến ​​thức trung gian về nó.

Tôi cảm thấy như là một đứa trẻ, tôi bị giới hạn trong những gì tôi có thể đạt được. Về mặt lý thuyết, tôi có thể được phân loại là 'Nerd' hoặc đại loại như vậy vì có phạm vi kiến ​​thức mở rộng như vậy cho máy tính và lập trình, mặc dù nó không giúp ích nhiều cho tôi. Tôi không thể tập trung toàn bộ thời gian của mình vào máy tính và lập trình cho các rào cản như trường học, gia đình và bạn bè. Nếu tôi là người lớn, tôi tin rằng tôi có thể mở rộng kiến ​​thức của mình nhanh hơn và học hỏi nhiều hơn, mặc dù mỗi người mỗi khác.

Dù sao, nếu bạn không muốn đọc văn bản lộn xộn của tôi, tôi chỉ khuyên bạn nên để trẻ tự học. Có lẽ anh ta ở cùng vị trí với tôi cảm thấy bị giới hạn, mặc dù nếu bạn rời xa anh ta, tôi chắc chắn anh ta sẽ tìm thấy các tài nguyên giúp anh ta thay vì được cung cấp các tài nguyên sẽ không giúp anh ta.

Tôi xin lỗi vì bất kỳ lỗi ngữ pháp nào vì bản thân tôi vẫn còn là một đứa trẻ và không có khả năng viết chi tiết hoặc theo cách có cấu trúc mà một người lớn có nhiều kinh nghiệm và kiến ​​thức sẽ có thể làm được.

Tôi hy vọng thông tin của tôi sẽ giúp tuy nhiên, mặc dù đó là thông tin khá rộng.

Chỉnh sửa: Tôi sẽ không khuyên bạn nên sử dụng các công cụ như đầu hoặc tự động hoàn thành hoặc tự động tạo các công cụ mã vì chúng sẽ đánh bại mục đích lập trình. Scratch bao gồm ý thức chung hơn là lập trình - đây không phải là cách người ta nên xem lập trình.


2
+1 để chỉnh sửa của bạn. Đây là khiếu nại lớn nhất của tôi đối với việc sử dụng một số IDE khi học. Nếu IDE viết hầu hết mã của bạn cho bạn, thì bạn đang học gì? Tôi thận trọng khi giới thiệu Visual Basic .NET vì vấn đề này. Visual Studios cho VB.NET thường tự động viết rất nhiều mã khóa và gợi ý những gì cần viết cho phần còn lại. Điều này tốt nếu người dùng tìm hiểu mã tự động / hoàn thành thực sự làm gì, nhưng nếu người dùng không tự mình tìm kiếm kiến ​​thức này, thì họ sẽ không học đúng cách. Vì vậy, +1 cho lời khuyên của bạn chống lại những loại điều này.
Spencer D

1
Cảm ơn bạn đã đồng ý với tôi. Khi tôi có kiến ​​thức về nhiều ngôn ngữ, tôi sẽ sử dụng các IDE tự động hoàn thành. Điều này chỉ dành cho quản lý thời gian và mặc dù tôi muốn giới thiệu nó cho các nhà phát triển có kinh nghiệm hơn, mọi người vẫn cần học cách lập trình. Nó giống như biết cách nói một ngôn ngữ mà không biết cách viết nó theo một cách.
Hồ sơ

Tương tự tốt cho nó. Nếu tôi có thể, tôi sẽ nói giống như biết một vài từ bằng tiếng nước ngoài và sau đó sử dụng google dịch để dịch phần còn lại của những gì bạn muốn nói. Vâng, nó nhận được điểm và nó hoạt động, nhưng bạn đã không tự viết và do đó bạn không học được từng từ riêng lẻ có nghĩa là gì. Tuy nhiên, như bạn đã nói, một khi bạn hiểu ngôn ngữ và mã, sử dụng mã tự động hoàn thành và mã tự động thường có thể là một trình tiết kiệm thời gian chính.
Spencer D

Heh, vâng. Hoàn toàn đồng ý với điều đó.
Hồ sơ

2

Tôi muốn thêm một điểm vào câu trả lời ở đây. Nếu bạn có thể làm như vậy trong khi vẫn duy trì mối quan tâm của họ, hãy cố gắng khuyến khích nghiên cứu về cách ngôn ngữ hoạt động (lý thuyết điện toán, mô hình ngôn ngữ, v.v.), có thể từ việc đọc sách giáo khoa chứ không chỉ là cú pháp ngôn ngữ và tài liệu. Thử và sai rất tốt cho việc học những gì hiệu quả, nhưng hiểu lý do tại saođằng sau những gì làm hoặc không làm việc trong lập trình là rất quan trọng để trở thành một nhà phát triển phần mềm thay vì một người chỉ quan tâm đến việc hoàn thành nhiệm vụ mà không quan tâm đến việc mã được viết tốt như thế nào. Chỉ cần hai xu của tôi là một kỹ sư phần mềm, người đã thấy sự khác biệt giữa các công việc, vì vậy nó phải hoàn hảo và ý tưởng viết mã sạch hoạt động tốt, có thể mở rộng, thích nghi, v.v. Nghiên cứu lý thuyết thực sự có thể giúp ích điều này.


1

Đứa trẻ đã biết cách học và đã chứng minh rằng nó muốn. Nhiều câu trả lời khác tập trung vào việc hiển thị các tài liệu trẻ em, điều này không hữu ích, vì đứa trẻ có thể tự đặt câu hỏi về các tài liệu ở bất cứ đâu trên web. Vật liệu xô đẩy và kỳ vọng vào đứa trẻ thậm chí có thể làm nản lòng và giết chết bất kỳ quan tâm đến chủ đề này.

Tôi nghĩ chỉ có 2 điều cần chú ý: Mất hứng thú vì thiếu thử thách hoặc bị choáng ngợp bởi thử thách.

Để chống lại việc bị áp đảo, hãy thể hiện sự quan tâm đến những gì anh ta đã làm để anh ta có thể tự hào về sự tiến bộ của mình (hoặc ít nhất nhận ra rằng có sự tiến bộ, nếu mọi thứ đang diễn ra chậm chạp). Và nếu không có thách thức nào đề cập đến một số điều nữa anh ta có thể làm (ví dụ: làm việc trên một mod cho trò chơi anh ta thích, hãy mua Raspberry PI, v.v.), nhưng đừng đẩy anh ta lên - hãy để anh ta là người quyết định nếu anh ta muốn làm chúng.


1

Anh ấy cần các dự án cá nhân để được quan tâm. Nguồn mở là tuyệt vời. Làm một trò chơi là tuyệt vời - nhưng chắc chắn là thứ tự cao nhất để điền vào.

Hoàn thiện những thứ có công dụng rõ ràng, cho anh ấy hoặc người khác, là giải pháp linh hoạt, đáng tin cậy nhất. Tôi khuyên bạn nên chơi game, vì tôi yêu game. Nhưng một lần nữa, tôi yêu các trò chơi và các trò chơi đòi hỏi phạm vi kỹ năng rộng nhất để hoàn thành.

Nhưng nếu anh ta là một mọt sách, anh ta cũng sẽ thích game. Trò chơi cũng có lãi. À


1

Tôi nghĩ rằng, hầu hết các đề xuất ở đây dẫn đến sai hướng.

Với thực tế là anh ta dường như có thể có được kiến ​​thức hoặc kỹ năng liên quan cho một dự án, tôi sẽ đề nghị hai điều sau đây:

Đề nghị anh ấy cho một lớp giảng dạy sau giờ học hoặc một vài cuộc nói chuyện về lập trình cho các sinh viên của anh ấy. Cách tốt nhất để học là dù sao đi nữa. Điều này cũng có thể cải thiện các kỹ năng xã hội của anh ấy.

Cung cấp cho anh ta một số dự án "thực sự". Yêu cầu anh ta lập trình một trang web cho lớp học hoặc một số ứng dụng web cho một dự án toán học hoặc vật lý. Hoặc một điều cơ sở dữ liệu nhỏ, hoặc wiki. Bằng cách này, anh ta sẽ thấy một sự liên quan thực tế trong các kỹ năng của mình. Anh ta sẽ hiểu rằng anh ta là chuyên gia và những người khác cần anh ta. Và anh sẽ học sớm để tiếp thị bản thân.


1

Xin chúc mừng cho tâm trí trẻ này vì đã có một kỹ năng thị trường đáng kinh ngạc ở tuổi 14! Làm thế nào là đứa trẻ này mát mẻ. (Tôi là một lập trình viên nên tha thứ cho tôi trong khi anh ta nhìn ra).

  1. Đầu tiên của cuộc gọi khuyến khích đây là một kỹ năng tuyệt vời để có!

    Một lập trình viên cấp nhập cảnh có thể bắt đầu ở mức 30.000-50.000 đô la một năm tùy theo khu vực. Các lập trình viên tiên tiến (thường có tiêu đề là Kỹ sư) có thể làm cho sáu con số dễ dàng.

  2. Tất cả các tài nguyên mà anh ấy cần để học hỏi, vui chơi và tiếp tục cải thiện là trực tuyến miễn phí, Ill đăng một số liên kết dưới đây.
  3. Mặc dù lập trình rất thú vị, bàn phím và bàn làm việc có phần khó khăn trên cơ thể. Padawan trẻ đã bắt đầu từ rất sớm, anh ta cần xem xét một số hoạt động thể chất để đảm bảo rằng anh ta không nhận được đường hầm cá chép ở tuổi 16.

    Tôi thực sự khuyên bạn nên tập yoga, và ở dạng đơn giản nhất, chỉ cần thực hiện tìm kiếm trên YouTube và thực hiện 15 phút kéo dài mỗi ngày mà không ngại ở trường hoặc một số hoạt động khác.

    Anh ta có thể nghĩ tôi nói đùa (đặc biệt là một đứa trẻ 14 tuổi) nhưng ngành này rất .... nặng ... chủ yếu là do một lập trình viên ngồi ở một vị trí và loại. Xây dựng thói quen tốt ngay bây giờ.

Liên kết tình yêu:

Có rất nhiều tài nguyên ngoài kia nhưng một khi anh ta nhìn vào những tài nguyên này, anh ta sẽ có thể tìm thấy nhiều hơn từ các liên kết, v.v.



0

Nếu anh ta giỏi về HTML CSS và JS mà không cần nhắc, anh ta đã có sở trường về nó. Nếu anh ta muốn mài giũa kỹ năng của mình tại sao không chỉ cho anh ta đến CodeEval ? Khi hoàn thành những thử thách này, anh ta sẽ cảm nhận được bất kỳ ngôn ngữ nào anh ta tiếp thu và nếu anh ta tiếp thu nhiều ngôn ngữ tốt hơn (ngôn ngữ mã hóa giống như ngôn ngữ của con người, bạn càng biết nhiều, càng dễ học ngôn ngữ tiếp theo ).

Nếu anh ấy là kiểu đọc rộng rãi, bạn có thể lấy một số bài đọc bắt buộc từ một lớp CS101 tại trường đại học gần nhất của bạn. Nếu anh ta đã có thể lập trình thì những thứ này sẽ không qua đầu anh ta và thậm chí có thể khiến anh ta quan tâm.


Xin lỗi, -1. Là nhà phát triển chuyên nghiệp, không có gì tệ hơn khi ai đó nghĩ rằng chơi golf là một điều tích cực; và như một người đã dạy lập trình, chơi golf vượt xa những gì người mới bắt đầu nên tiếp xúc.
dùng3143

@ user3143 Điểm, xóa liên kết golf. CodeEval (ít nhất là các thử thách cho người mới bắt đầu) là một cách tuyệt vời để nhận các thủ thuật và làm việc thông qua các thuật toán cơ bản.
Sidney

0

Tất cả các đề xuất ở trên đều hữu ích, nhưng nếu bạn đang ở một trong những khu vực được liệt kê dưới đây, bạn có thể đi đến Coderdojo ở đó. Nếu không và bạn có thể tìm thấy một số trẻ em và cha mẹ có đầu óc, bạn có thể xem xét bắt đầu một trong khu vực của riêng bạn. Xem chi tiết tại https://zen.coderdojo.com/dojo

Tôi điều hành một trong khu vực Sallins, Naas (ở Co Kildare. Ireland) và từ 4 đứa trẻ hai năm trước, chúng tôi hiện có hơn 50 đứa trẻ mỗi tuần, từ 6 đến 17, tất cả đều làm việc ở các ngôn ngữ và công cụ khác nhau, từ Scratch và MineCraft, với Python và PyGame, tới Java, Blender, Unity, Eclipse, v.v.

Tôi hy vọng bạn có thể kết nối với một nhóm, vì nó thực sự làm tăng thêm trải nghiệm, để có thể chia sẻ sự phấn khích của những trải nghiệm học hỏi không ngừng của chúng tôi và thể hiện từng dự án mới :-) JK


0

Tôi bắt đầu lập trình ở trường trung học với cuốn sách Lập trình trò chơi cho thanh thiếu niên . Nó dạy ngôn ngữ lập trình BlitzMax . Tôi nghĩ rằng đây là ngôn ngữ lập trình tốt cho người mới bắt đầu vì nó có cú pháp giống tiếng Anh và một bộ lệnh đơn giản để vẽ trên màn hình. Nhiều ngôn ngữ khác như Java có một API khổng lồ là tài sản cho các lập trình viên chuyên nghiệp nhưng có thể áp đảo cho người mới bắt đầu. Khi bạn học một ngôn ngữ lập trình, việc học ngôn ngữ khác sẽ dễ dàng hơn nhiều, vì vậy anh ta có thể chuyển sang ngôn ngữ khác như Java hoặc C # khi anh ta sẵn sàng.


0

Tôi không thể nói rằng tôi đã đọc tất cả các câu trả lời, nhưng vài lần đầu tiên đã làm tôi rất buồn. VIRTUALLY KHÔNG phải của những người vĩ đại trong lĩnh vực điện toán hiện đại (nghĩ rằng Gates, Jobs, v.v.) đã cắt răng của họ ở mức độ trừu tượng cao như vậy (tức là các công nghệ dựa trên web). Tất cả đều xuống và bẩn với phần cứng. Các bậc thầy trong bất kỳ đội nào hầu như luôn là những người có kiến ​​thức cấp thấp sâu nhất.

Nếu bạn muốn anh ấy học máy tính THỰC SỰ và khiến anh ấy hào hứng với nó, hãy lấy cho anh ấy những đồ chơi cần thiết (đồng hồ vạn năng chất lượng tốt và CRO (một đơn vị Tektronix 50 MHz đẹp mắt sẽ làm tốt), một ban phát triển tiện lợi (Raspberry PI, Intel Edison, v.v.), và lên kế hoạch cho một số dự án tuyệt vời để anh ấy thực hiện. Một cái gì đó giống như có thể kết nối cảm biến chuyển động và gửi email cho anh ấy một bức ảnh về phòng ngủ của anh ấy khi có bất kỳ chuyển động nào được phát hiện. bạn tình của bạn.

Một khi anh ta gặp lỗi và có các công cụ, các kỹ năng của anh ta sẽ phát triển một cách tự nhiên. Điều quan trọng nhất là đặt cho anh ta những thử thách tương xứng với trình độ kỹ năng của anh ta. Anh ta sẽ cần một số người nắm tay ban đầu, nhưng một khi anh ta phát triển các kỹ năng cơ bản về I / O phần cứng, kiến ​​trúc chương trình và làm thế nào để có được thông tin cần thiết để giải quyết vấn đề tiếp theo, sẽ không có gì ngăn cản anh ta.


Sparkfun là một nơi tốt để bắt đầu với những thứ này. Rất nhiều dự án robot cuộn trước. Tôi đã suy nghĩ về việc giới thiệu robot / công cụ nhúng bản thân mình.
Tyler

0

từ kinh nghiệm của riêng tôi, tôi có thể nói rằng bạn chỉ cần làm cho nó tự học như tôi đã làm, tôi bắt đầu từ việc nhìn thấy những gì người khác đã làm, đọc wiki, xem hướng dẫn và cố gắng hiểu cơ học của họ sau đó bắt đầu cố gắng tự làm và ở đây tôi là. tôi cũng đã học được một số thứ từ codeacademy.com, đó là nền tảng của tôi cho html, css, javascript, php và ruby. Quan trọng nhất trong tất cả những gì bạn cần cho anh ấy một máy tính, internet, rất nhiều thời gian, sự hiểu biết, và tất nhiên anh ấy cần nguồn cảm hứng (như dự án của riêng anh ấy hoặc một cái gì đó quan trọng với anh ấy) và KHÔNG BAO GIỜ nói anh ấy làm thế nào nếu anh ấy nói BIẾT làm thế nào để làm điều đó, vì anh ta cần phải tự mình tìm hiểu mọi thứ để học nó, anh ta có thể nhận được tên miền phụ và lưu trữ miễn phí tại http://api.hostinger.co.uk/redir35386817(<- tôi đang sử dụng công cụ đó) và anh ta không cần bất kỳ công cụ đặc biệt nào để mã hóa vì nó dễ học hơn khi bạn làm điều đó trong trình chỉnh sửa tệp đơn giản Nhưng thực sự bạn biết, đừng làm bất cứ điều gì anh ta không yêu cầu

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.