Bố tôi thiếu kiên nhẫn với tốc độ học lập trình của tôi. Tôi làm gì? [đóng cửa]


200

Vì vậy, bố tôi đã mua cho tôi 5 cuốn sách về lập trình (C ++, Java, PHP, Javascript, Android) khoảng một tháng trước. Anh ấy là một kiến ​​trúc sư và anh ấy không biết gì về lập trình. Anh ấy mua cho tôi vì tôi bảo anh ấy lập trình rất vui và tôi muốn học nó.

Như bạn có thể biết, là một đứa trẻ (tôi 14 tuổi) và được bảo học lập trình từ những cuốn sách buồn tẻ không phải là điều dễ dàng nhất. Tôi luôn bị phân tâm .. Tôi đã nói với anh ấy trước đây rằng tôi không cần mua sách và tôi chỉ có thể xem hướng dẫn trực tuyến .. nhưng không, anh ấy rất cổ hủ. Anh ấy chỉ cho tôi sử dụng những cuốn sách.

Gần đây, anh ấy bắt đầu hỏi tôi đã làm gì với nó và tôi đã cho anh ấy xem một chương trình C ++ mà tôi đã thực hiện để lấy những gì bạn nhập vào, sau đó gán giá trị cho mỗi chữ cái (A là chữ cái đầu tiên trong bảng chữ cái để nó nhận được giá trị của 1) .. vân vân. Sau đó, nó cộng tất cả các giá trị và cho bạn biết nó. Vì vậy, từ "thêm" sẽ có giá trị là 9.

^^ Điều đó không ấn tượng lắm với anh ấy. Anh mắng tôi và nói với tôi tất cả những gì tôi đã làm là vặn vẹo xung quanh. Đo không phải sự thật. Anh ấy cực kỳ truyền thống và bướng bỉnh và không nghe bất cứ điều gì tôi phải nói. Tôi nên nói gì với anh ấy?

Tái bút: Nếu bạn có bất cứ lời khuyên nào về việc phân vùng trên một cuốn sách, hãy cho tôi biết

EDIT: Cảm ơn tất cả mọi người, bạn không biết nó có ý nghĩa như thế nào khi biết rằng có một số người hiểu tình hình của tôi. Tôi đã đọc tất cả mọi người và tôi sẽ xem xét ý kiến ​​của mọi người. Gracias!


15
Bình luận viên : ý kiến ​​có nghĩa là để tìm kiếm làm rõ, không phải để thảo luận mở rộng. Nếu bạn có một giải pháp, hãy để lại một câu trả lời. Nếu giải pháp của bạn đã được đăng, xin vui lòng nâng cấp nó. Nếu bạn muốn thảo luận câu hỏi này với người khác, vui lòng sử dụng trò chuyện . Xem FAQ để biết thêm thông tin.

7
Nhân tiện, bạn nên cho anh ta xem chủ đề này. Nó có thể đi xa hơn với anh ta, nếu anh ta thấy ý kiến ​​của lập trình viên chuyên nghiệp về sự tiến bộ của bạn.
sưu tập

15
@David Đó không phải là truyền thống, đó là một phụ huynh tồi tệ và một người ích kỷ. Tại thời điểm này, anh ấy không muốn bạn thực sự thành công, hoặc anh ấy sẽ ở trong hố với bạn. Anh ấy thực sự chỉ muốn trở thành cha của một đứa trẻ thành công. Thật không may, bạn có thể làm rất ít về điều đó, vì đó là cha của bạn và bạn không thể thiếu tôn trọng. Những gì tôi muốn nói là nhăn nhó và chịu đựng nó, sau đó khi đến lúc học đại học, hãy chọn một giải đấu thường xuân ở rất xa.
Lee Louviere

15
Tôi không ngạc nhiên khi nó bị đóng (nó không có chủ đề), nhưng đó là một trong những câu hỏi mà tôi ước chúng ta có một thẻ / cờ cho "ngoài chủ đề, nhưng vẫn giữ nguyên". :)
Cyclops

12
Hỏi bố bạn xem ông ấy định làm gì khi ông 14 tuổi
CodeART

Câu trả lời:


197

Tôi đã chỉ cho anh ấy một chương trình C ++ mà tôi đã thực hiện để lấy những gì bạn nhập vào, sau đó gán giá trị cho mỗi chữ cái (A là chữ cái đầu tiên trong bảng chữ cái để nó có giá trị là 1) .. v.v. Sau đó, nó cộng tất cả các giá trị và cho bạn biết nó. Vì vậy, từ "thêm" sẽ có giá trị là 9.

Tôi không biết bạn nên làm gì với bố của bạn. Nhưng:

Nếu bạn tự làm tất cả, bắt đầu từ đầu, học từ sách, trong một tháng , điều đó thật ấn tượng. Và bạn đã làm nó trong C ++, một trong những ngôn ngữ lập trình đáng sợ nhất trong sự tồn tại.

Có khá nhiều người ngoài kia tham gia các cuộc phỏng vấn, nghiêm túc cố gắng để có được công việc lập trình, những người sẽ phải vật lộn với điều đó. Xem câu chuyện này .

Tôi chỉ có thể đề nghị: tiếp tục làm những gì bạn thích. Bỏ qua cha của bạn trong bối cảnh này; anh ta không biết mình đang nói về cái gì. Bạn có tài năng lập trình và sẵn sàng học hỏi - những thành phần chính trong việc trở thành một lập trình viên tuyệt vời.


8
Vâng, tôi đã học được nhiều tham vọng (chương trình cụ thể đó đã cho tôi khoảng 60 cơn đau đầu).
David

8
@David: Cho rằng anh ấy là một kiến ​​trúc sư, có thể hiểu rằng anh ấy quan tâm đến mọi thứ trông như thế nào . Nhưng nếu anh ta không biết gì về lập trình, thì anh ta không nên chỉ trích nó. Đồ họa, giao diện của phần mềm chỉ là đỉnh của tảng băng trôi .
Joonas Pulakka

12
Nghiêm túc? "Fatbooth" có một số thuật toán thao tác đồ họa nhiều lông phải mất nhiều năm để học và thành thạo. Nếu cha của bạn muốn bạn thành thạo nhận dạng khuôn mặt thì ông nên mua một cuốn sách về nó. Nó có thể trông dễ dàng (vì nó dễ sử dụng) nhưng khó đạt được hơn bạn nghĩ, khiến bạn bị đau đầu nhiều lần. Giả sử rằng các ứng dụng như "Fatbooth" dễ thực hiện là một sự xúc phạm nghiêm trọng (nhưng bí mật) đối với các lập trình viên.
Spoike

121
+1 cho ấn tượng chết tiệt . Đó là, đặc biệt xem xét nơi bạn đến từ. Tôi đoán bạn có thể hỏi bố bạn có bao nhiêu tòa nhà mà ông ấy đã từng tham gia, ít làm việc hơn một mình, một tháng sau khi bắt đầu học từ nghề của mình. Đặt mọi thứ vào các điều khoản mà anh ta có thể liên quan.
CVn

13
@Joonas: Chưa kể rằng thiết kế đồ họa, khả năng sử dụng và thiết kế giao diện thực sự là tất cả các ngành học thường có rất ít liên quan đến lập trình .
Toby

88

Cho anh ta xem bài này của Peter Norvig. Norvig là người đứng đầu bộ phận R & D tại Google và giảng dạy tại Stanford, cụ thể là Trí tuệ nhân tạo, ông đã viết cuốn sách giới thiệu tiêu chuẩn về AI. Bạn làm việc ở đó bao lâu rồi Tôi không mong đợi gì hơn thế sau một tháng làm việc bởi một người mới không có hướng dẫn bổ sung, đặc biệt là với thứ gì đó gai góc như C ++. Bất cứ điều gì đáng học hỏi đều đáng học tập tốt.


83
  1. Hãy nhớ rằng cha của bạn có thể nghĩ rằng bạn là đứa trẻ thông minh nhất thế giới và ông đang cố gắng giúp bạn tìm hiểu về những điều mà bạn nói rằng bạn thích.

  2. Hãy biết rằng mặc dù bố của bạn không nghi ngờ gì nữa (năm chủ đề hoàn toàn khác nhau rất nhiều để ném vào một đứa trẻ cùng một lúc), nhưng ông cũng đúng. Rất nhiều người cố gắng chọn lập trình bằng cách bắt chước "hướng dẫn" mà họ tìm thấy trên web. Điều đó không phải lúc nào cũng là điều xấu, nhưng IMO thường không dẫn đến sự hiểu biết vững chắc. Cuốn sách phù hợp sẽ dạy cho bạn những nguyên tắc cơ bản đầu tiên. Điều đó có thể không thú vị bằng những hướng dẫn sau đây giúp bạn hoàn thành công việc hào nhoáng, nhưng cơ hội thành công lâu dài của bạn sẽ tăng lên và số lượng câu hỏi bạn phải hỏi trên stackoverflow.com sẽ giảm.

  3. Quên tất cả trừ một trong những cuốn sách, ít nhất là bây giờ. Có vẻ như bạn đã bắt đầu với C ++, vì vậy hãy sử dụng nó nếu bạn thích nó.

  4. Thỉnh thoảng bạn sẽ cảm thấy nản lòng. Đôi khi có cảm giác như một nửa chương trình đang bị mắc kẹt, và nửa còn lại đang bị tháo gỡ. Nhận được unstuck là một kỹ năng có giá trị, và bạn càng thực hành nó, bạn sẽ càng có lợi. (Tránh bị mắc kẹt ở nơi đầu tiên cũng là một kỹ năng có giá trị, vì vậy hãy thực hành điều đó.)

  5. Học ngôn ngữ máy tính đầu tiên của bạn là phát triển phần mềm, học cách vẽ là thiết kế một tòa nhà. Nó có thể không phải là phần thú vị nhất, nhưng đó là một kỹ năng cần thiết.

  6. Nếu bạn có thể khiến anh ấy lắng nghe, hãy cố gắng phá vỡ tất cả những điều mà bạn phải học để viết chương trình nhỏ của mình. Phải mất một chút thời gian để học cách sử dụng các công cụ và anh ấy chắc chắn không hiểu cách thức hoạt động của tất cả.

  7. Bây giờ bạn đã đến lúc có một chương trình chạy đơn giản và rõ ràng bạn đã học được một chút về C ++, bạn có thể viết những chương trình nhỏ thú vị nào? Làm thế nào về một máy tính cho vay chấp nhận lãi suất, số tiền vay và thời hạn cho vay và in ra một lịch thanh toán? Hoặc một máy tính đọc công thức phân tử như "H2SO4" hoặc "C6H12O6" và in ra trọng lượng của phân tử? Điều đó không quá phức tạp hơn chương trình mà bạn đã viết.


47
+1 "Quên tất cả trừ một trong những cuốn sách"
PA.

9
+1 cho những ý tưởng tuyệt vời, thiết thực. Khi học, phần khó nhất thường nảy ra ý tưởng cho một dự án đồng thời bạn đang bị vấy bẩn trong thông tin mới.
Morgan Herlocker

5
+1 "Hãy nhớ rằng cha của bạn ..." Rất vui khi có quan điểm của cha mình ở đó, ngay cả khi ông đang làm dịu đi sự nhiệt tình của David với sự phấn khích của chính mình để giúp đỡ.
John MacIntyre

7
Tạo một công cụ giải quyết vấn đề kiến ​​trúc nhỏ / calc bằng cách cho cha bạn tham gia!
Vaibhav Garg

3
+1 cho điểm đầu tiên. Tôi nghĩ rằng việc cha mẹ nghĩ về con cái họ là thông minh nhất trên thế giới là rất quan trọng. Cuối cùng, nếu không phải là thái độ như vậy, OP sẽ không làm được nhiều như vậy trong một tháng, tôi chắc chắn. Tuy nhiên, nó có thể là quá cao nếu nó khiến OP quá đau đầu.
Anton Strogonoff

53

Anh ấy mua cho tôi vì tôi bảo anh ấy lập trình rất vui và tôi muốn học nó. ... Tôi nên nói gì với anh ấy?

"Bố, cách tiếp cận của bạn với điều này là làm cho việc học lập trình hoàn toàn không có gì thú vị . Hãy tắt nó đi."


4
không phải là lời khuyên tốt nhất Bố không muốn được trả lời lại theo cách đó
DETUS

1
đúng nhưng nếu OP chỉ ngồi đó và nhận nó thì bố cảm thấy như mình đúng; Rốt cuộc, đứa trẻ của anh ấy đã không làm việc rất chăm chỉ. Một lúc nào đó, đứa trẻ phải lên tiếng để bố nó nhận ra mình đang làm việc chăm chỉ như thế nào.
Kevin

1
@CyprUS Đúng, nhưng bây giờ tôi chùn bước với từ robot. Đó là tình yêu của cuộc đời tôi một năm trước. Tôi đã cài đặt Lego Mindstorms Kit đã cài đặt RobotC và tất cả những thứ đó. Yêu nó, cho đến khi cha tôi có một số bánh răng và động cơ "thực sự" và bảo tôi làm một cái gì đó "thật" như một cánh tay robot. Ghét người máy với một niềm đam mê bây giờ.
chandsie

48

Là một kiến ​​trúc sư, anh ta chắc chắn phải kéo chân bạn hoặc thô lỗ.

Thăm dò anh ta khi anh ta bắt đầu: Hỏi anh ta nếu anh ta vẽ các tòa nhà chọc trời với kế hoạch hệ thống ống nước chi tiết, tính toán lực lượng và căng thẳng trên vật liệu, và thực hiện các đánh giá rủi ro thảm họa (như bị máy bay đâm vào rắn) sau một tháng chi tiêu với Những cuốn sách khi anh còn trẻ như bạn. Có lẽ điều đó sẽ giúp anh ấy bình tĩnh lại.

Được rồi, có lẽ đó không phải là lời khuyên tốt nhất tôi có thể cung cấp cho bạn, để nói lại với cha mẹ của bạn. Tôi có thể hiểu rằng có một người cha, bị phạt vì sự tiến bộ thay vì khuyến khích, là một chút thuế khi còn bé nhưng thay vào đó là một sự khuyến khích để làm tốt hơn. Anh ta có thể có một vấn đề thái độ, nhưng điều đó không có nghĩa là ý định xấu.


44
Cũng là một lời khuyên cho cha của bạn (mặc dù nằm ngoài phạm vi của câu hỏi): Hãy bỏ thái độ Gordon Ramsay . Nó chỉ hoạt động trên Hell's Kitchen vì các ứng cử viên là những người trưởng thành có kinh nghiệm, những người được cho là sẽ biết nấu ăn và làm sự hoàn hảo trong nhà hàng của mình và Gordon sẽ công nhận khi đến hạn. Nếu bạn làm điều này với người mới bắt đầu hoặc trẻ em, nó sẽ chỉ khiến họ sợ hãi khi học thực hành. Đáng chú ý là Ramsay đẹp hơn trong các bộ phim truyền hình khác của mình vì đây không phải là việc riêng của anh ấy.
Spoike

30

Tôi tò mò không biết cuốn sách nào bạn đang sử dụng. Không phải tất cả chúng đều thực sự tốt. Ngoài ra, không phải cuốn sách nào cũng phù hợp với tất cả mọi người.

Bạn đã không xác định tuổi của mình, vì vậy tôi sẽ cho rằng bạn dưới 18 tuổi. Tôi bắt đầu học khi tôi khoảng 8 tuổi.

Khi tôi còn là một đứa trẻ, tôi đã tận dụng rất nhiều nguồn lực khi học lập trình. Tôi đã có các hướng dẫn đi kèm với TI 99 / 4A của mình, trong đó có rất nhiều chương trình thú vị để vẽ hình ảnh và các hình vẽ động. Internet không có sẵn cho tôi, nhưng thậm chí có những tạp chí máy tính nhắm đến trẻ em, với các chương trình mà tôi có thể nhập và nhận phản hồi ngay lập tức, và các bài viết về cách giải quyết các loại thách thức khác. Tôi rất thích một bộ tiểu thuyết gián điệp cho phép tôi nhập và gỡ lỗi các chương trình được đưa vào như một phần của câu chuyện. Thật không may, tôi không nghĩ rằng loại tài nguyên này vẫn còn, nhưng có một vài cuốn sách lập trình nhắm đến những người trẻ tuổi hơn, như cuốn sách Hello World về Python và Land of Lisp (mặc dù đó cũng là niềm vui cho người lớn).

Tôi không biết về bạn, nhưng đã có lúc tôi bị loại khá nhiều khi viết các chương trình làm những việc rất giống với những gì bạn vừa mô tả. Cuối cùng, tôi chuyển sang những thứ cao cấp hơn. Tôi đã viết một vài trò chơi tầm thường, một số bản demo chơi nhiều âm thanh và hình ảnh động khác nhau để phản ứng với tổ hợp phím và một số công cụ hỗ trợ học tập. Khi tôi khoảng 10 hoặc 11 tuổi, tôi đã viết một chương trình giúp tôi ghi nhớ bảng tuần hoàn các yếu tố bằng cách liên tục hỏi tôi. (Vào thời điểm đó, kỹ năng ghi nhớ của tôi tốt hơn so với hiện tại, vì vậy tôi đã gần như không thể gõ dữ liệu lần đầu tiên khi tôi chơi bài kiểm tra, nhưng vấn đề là phải tiến bộ).

Cha của bạn có thể không nhận ra điều đó, nhưng sách chỉ là một phần của quá trình khi bạn học lập trình. Tìm một vấn đề nhỏ và cố gắng tìm ra cách giải quyết nó là nửa còn lại của phương trình. Tìm một cuốn sách dạy cho bạn từng chút một và cho phép bạn có một điều thú vị xảy ra trên máy là nửa kia. Trong trường hợp của tôi, những cuốn sách nhấn mạnh vào đồ họa và hoạt hình là những cuốn đã chinh phục tôi.

Khi còn bé, mắt tôi trừng trừng khi tôi đọc sách về cách sắp xếp thuật toán và cấu trúc dữ liệu phức tạp, cho đến khi tôi học đủ để thấy cách chúng áp dụng cho các vấn đề tôi thực sự quan tâm. Không phải mọi từ trong sách bạn sẽ đọc sẽ bị thu hút. Vậy là được rồi. Bạn sẽ nhận được những thứ đó khi bạn cần nó; một số vấn đề bạn sẽ muốn giải quyết sẽ nhắc nhở bạn về kỹ thuật mà bạn không nghĩ là thú vị ba tuần, ba tháng hoặc ba năm trước và bạn sẽ quay lại và xem xét nó và tìm ra nó.

Một tháng không phải là một thời gian rất dài để học lập trình. Tôi đã viết mã dưới dạng này hay dạng khác trong khoảng 30 năm, kể cả trong thời thơ ấu, và tôi vẫn học được điều gì đó mới mỗi ngày. Tôi khá chắc chắn trong tháng đầu tiên tôi có máy tính đầu tiên, tôi đã dành rất nhiều thời gian để chơi Munch Man và số giờ nhỏ hơn nhiều để cố gắng hiểu ý nghĩa của các chương trình mẫu trong cuốn sách tham khảo của tôi. Học với tốc độ phù hợp với bạn. Không có áp lực ngay bây giờ, và đó là tuyệt vời.

"Xoay quanh" là những gì bạn phải làm khi mới học lập trình. Tin tặc (loại Paul Graham) chọc ngoáy, cố gắng hiểu hệ thống của chúng hoạt động như thế nào, ngôn ngữ lập trình của chúng hoạt động như thế nào, công cụ của chúng hoạt động như thế nào. Bạn thử một cái gì đó, bạn thất bại, bạn lý do thông qua vấn đề bạn gặp phải, và bạn thử một cái gì đó khác, cho đến khi bạn có được một cái gì đó hoạt động. Đừng lo lắng về nó quá nhiều.

Trừ khi cha bạn làm việc trong cùng những cuốn sách, có lẽ ông không hiểu bạn đã học được bao nhiêu. Tôi không mong đợi có thể thiết kế một ngôi nhà hoặc một tòa nhà chọc trời sau khi đọc một cuốn sách về kiến ​​trúc trong một tháng, đặc biệt là khi còn là một thiếu niên.

Để đưa mọi thứ vào viễn cảnh, trong hơn bốn tuần qua tôi đã làm việc ở một số góc bí truyền của tính năng Động cơ của Ruby on Rails. Cho đến hôm nay, cuối cùng tôi cũng có thứ để thể hiện nó theo quan điểm của người dùng. Tôi đã học được một tấn trong thời gian đó và đã phát triển rất nhiều mã nền tảng quan trọng hoạt động khá tốt, nhưng tương đương chuyên nghiệp của tôi là cho phép người dùng nhập một số nội dung và nhận được một cái gì đó khác: thoạt nhìn không ấn tượng với người dùng thông thường , nhưng toàn bộ công việc đã đi vào nó. Nếu ai đó nói với tôi rằng tôi đã làm phiền trong bốn tuần, tôi sẽ khá thất vọng, nhưng tôi cũng biết họ chỉ hiểu một chút về những gì đã khiến mọi thứ trở nên "đơn giản".


2
+1 để cắt răng của bạn trên TI 99 / 4A. Khá nhiều câu chuyện tương tự đối với tôi lập trình rất thú vị và bắt đầu thực hiện nó dễ tiếp cận hơn nhiều (hoặc có thể nó chỉ có vẻ như vậy). Con gái tôi (10 tuổi) đang tỏ ra thích thú với việc học lập trình và tôi đang gặp khó khăn nhất khi nghĩ đến một cách vui vẻ nhưng lặp đi lặp lại để bắt đầu. Để OP từ 0 kiến ​​thức đến 1 tháng và làm những gì bạn nói nghe có vẻ đúng trên PAR.
Ominus

Ominus (và David), hãy xem Xử lý và cuốn sách này từ Manning: manning.com/pearson
JasonTrue

4
+1 cho không phải tất cả các cuốn sách là tốt. Theo kinh nghiệm của tôi, hầu hết các cuốn sách ngoài kia đều nhắm đến những người đã hiểu về lập trình. Không có nhiều hướng đến người mới, nhưng tôi muốn giới thiệu cái này và / hoặc cái này .
David

@David cảm ơn vì đường link. Đặt mua cuốn sách cho con gái sáng nay.
Ominus

@Jason: Anh ấy đã đề cập rằng anh ấy là một đứa trẻ ở tuổi 14.
DETUS

19

Âm thanh như trong tình huống này bố bạn không phải là người mang đến cho bạn sự củng cố và hỗ trợ tích cực trong những gì bạn đang làm. Giải pháp đơn giản: không sử dụng anh ta cho điều đó.

Thực hiện các dự án của riêng bạn và thực hiện chúng vì chúng rất vui chứ không phải vì anh ấy (hoặc bất kỳ ai khác) muốn bạn thực hiện chúng. Chọn một cái gì đó thú vị cho bạn. Bạn không cần phải học toàn bộ ngôn ngữ / công nghệ từ một cuốn sách. Thay vào đó chỉ bắt đầu mày mò với mọi thứ. Cuối cùng, khi mọi thứ trở nên dễ dàng, bạn sẽ tìm kiếm các khái niệm / thách thức mới. Và bạn sẽ thấy chính mình muốn đọc những cuốn sách mà ngày nay bạn thấy nhàm chán (hoặc ít nhất là một số phần nhất định).

Nếu bạn từng gặp khó khăn và cần trợ giúp về mã hóa bất cứ điều gì, stackexchange là tài nguyên tuyệt vời như bạn đã tìm ra.


16

Nghe có vẻ với tôi rằng cha của bạn có xu hướng kỳ vọng không thực tế, hoặc có lẽ bạn có một lịch sử bắt đầu mọi thứ và không theo dõi thông qua, hoặc cả hai. Điều quan trọng cần nhận ra là không có điều gì thực sự quan trọng ở đây, tất cả vấn đề là bạn thích những gì bạn đang làm và trở nên tốt hơn khi làm điều đó.

Tôi có một thời gian rất khó khăn với những cuốn sách không giải trí cho tôi, tôi luôn luôn có. Tôi học tốt nhất bằng cách xem người khác làm mọi việc, đặt câu hỏi khi tôi không hiểu mục đích của một cái gì đó và sau đó đấu tranh cho đến khi tôi tìm ra nó. Đấu tranh làm cho chúng ta mạnh mẽ hơn và cho chúng ta quyền sở hữu những thành tựu cuối cùng của chúng ta, có lẽ đó là lý do tại sao rất khó để trèo ra khỏi tử cung.

Điều đó đang được nói, một trong những công cụ sắc nét nhất trong hộp công cụ của bạn sẽ là khả năng duy trì mở, làm việc hiệu quả trong bối cảnh bị chỉ trích và không loại trừ lời khuyên dựa trên nguồn. Những cuốn sách lập trình tốt có xu hướng tóm lấy bạn, truyền cảm hứng cho bạn và mong bạn quay lại với chúng khi bạn va vào tường. Không có chúng, bạn sẽ làm được nhiều điều tuyệt vời mà không hiểu chính xác những gì bạn đang làm. Lập trình là một nghệ thuật rất có chủ ý, vì vậy tôi khuyến khích bạn tìm kiếm những cuốn sách được viết theo cách dễ tiêu hóa.

Tôi đã lập trình chuyên nghiệp khá lâu rồi và tôi có thể nói với bạn rằng sự hài lòng của tôi thực sự là của riêng tôi. Sếp tôi không hiểu tại sao những điều tôi viết lại rất tuyệt vời, vợ tôi ngủ thiếp đi khi tôi kể cho cô ấy nghe về ngày của tôi và bạn bè của tôi tránh đường để tránh hỏi tôi về công việc của tôi. Tôi thưởng thức những chiến thắng của mình và cơ hội thỉnh thoảng để chia sẻ chúng với các đồng nghiệp của tôi. Cha của bạn, trong trường hợp này, không phải là một trong những đồng nghiệp của bạn.

Hãy tiếp tục và tiếp tục cải thiện. Làm quen với thực tế là những người không lập trình viên cần nhìn thấy một cái gì đó ấn tượng trực quan trước khi bị ấn tượng. Tại sao không thử vận ​​may của mình bằng cách viết một cái gì đó giống như bộ tạo Mandelbrot / Julia ? Điều đó có thể cho anh ta thấy loại tiến bộ mà anh ta đang tìm kiếm, đưa anh ta ra khỏi trường hợp của bạn trong một thời gian. Trong mười năm, bạn sẽ làm một cái gì đó rất giống để đưa người quản lý phi kỹ thuật ra khỏi lưng để bạn có thể hoàn thành công việc thực sự.

Chỉ cần nhớ, bạn đang làm điều đó bởi vì bạn thích nó.


1
Nghe người đàn ông này, anh ta biết anh ta đang nói về cái gì;)
drxzcl

2
hehe, tôi thích 'thực tế là những người không phải lập trình viên cần nhìn thấy một cái gì đó ấn tượng trực quan trước khi bị ấn tượng'. Viết một máy phát điện fractal là một trong những dự án đầu tiên của tôi ở trường khoa học máy tính. Và tôi đã rất ấn tượng về bản thân mình :)
Guillaume

Có lẽ câu trả lời tốt nhất trong tất cả các chủ đề này ...
Venki

15

Thật khó để nói liệu câu hỏi này là tốt nhất cho diễn đàn Làm cha mẹ, hay diễn đàn Lập trình. Tôi sợ rằng lời khuyên của tôi không phải là mục tiêu, bởi vì tôi cảm thấy rằng rối rắm trong câu hỏi này có khả năng rất nhiều "vấn đề" quan hệ cha con.

Điều đó đang được nói, những gì tôi sẽ tập trung vào là cơ hội tuyệt vời để bạn và cha bạn kết nối về một chủ đề mà hai bạn có thể chia sẻ niềm đam mê theo một cách nào đó. Là một người cha, và biết chính cha mình, tôi biết rằng chúng tôi muốn con cái lắng nghe chúng tôi một cách tuyệt vọng như thế nào, làm theo chỉ dẫn của chúng tôi và học hỏi từ chúng tôi. Con cái chúng ta thường bị thúc đẩy để làm điều ngược lại. Vì vậy, việc hai bạn chia sẻ mối quan tâm chung này, thật tuyệt vời.

Những người cha có thể bướng bỉnh chắc chắn, nhưng tôi vẫn nghĩ rằng có một cơ hội để bạn linh hoạt cá tính và lựa chọn của riêng bạn thông qua bài tập này. Không thoát khỏi cảm giác thách thức, nhưng xuất phát từ nỗ lực và tham vọng của bạn để biết rõ về chủ đề lập trình. Cá nhân, có vẻ như cha của bạn đã ném bạn vào tận cùng khi nói đến lập trình. Cấp nó có thể không phải là ngôn ngữ hội MIPS hoặc LISP, nhưng vẫn là C ++? Java? Rất tiếc. Tôi thích lập trình, nhưng đọc những thứ đó sớm có thể đã khiến tôi tắt tất cả cùng nhau. Đùa. :)

Vì vậy, những gì tôi sẽ hỏi là đây: điều gì truyền cảm hứng cho bạn ? Bạn muốn xây dựng những thứ gì? Trả lời điều đó, và sau đó tìm kiếm các cuốn sách và hướng dẫn của riêng bạn về chủ đề đó. Hãy đến đây và đặt câu hỏi. Xây dựng một cái gì đó. Sau đó cho cha bạn xem những gì bạn xây dựng. Nói với anh ấy những gì bạn đã học. Cảm ơn anh ấy đã gắn bó với bạn và nói với anh ấy rằng bạn đánh giá cao anh ấy. Tôi nói điều đó bởi vì cuối cùng, đó là tất cả những gì về nó. Anh ấy muốn chia sẻ điều gì đó với bạn vì anh ấy yêu bạn. Đôi khi những người cha có một thời gian khó khăn để thể hiện rằng theo những cách truyền thống, vì vậy chúng tôi tìm kiếm những cách gián tiếp này để nói điều tương tự. Đôi khi chúng ta còn làm điều đó. Nhưng đừng quên rằng trong tất cả những điều này là mong muốn được gần gũi với bạn hơn.


15

Dường như không có ai đề xuất điều này cả:

Gần đây, anh ấy bắt đầu hỏi tôi đã làm gì với nó và tôi đã cho anh ấy xem một chương trình C ++ mà tôi đã thực hiện để lấy những gì bạn nhập vào, sau đó gán giá trị cho mỗi chữ cái (A là chữ cái đầu tiên trong bảng chữ cái để nó nhận được giá trị của 1) .. vân vân. Sau đó, nó cộng tất cả các giá trị và cho bạn biết nó. Vì vậy, từ "thêm" sẽ có giá trị là 9.

^^ Điều đó không ấn tượng lắm với anh ấy. Anh mắng tôi và nói với tôi tất cả những gì tôi đã làm là vặn vẹo xung quanh. Đo không phải sự thật. Anh ấy cực kỳ truyền thống và bướng bỉnh và không nghe bất cứ điều gì tôi phải nói. Tôi nên nói gì với anh ấy?

Nếu bạn nghĩ về nó, chương trình đó không ấn tượng lắm đối với người sử dụng máy tính và không biết gì về lập trình.

Chỉ cho cha của bạn cách bạn thực hiện nó. Đi bộ qua mã nguồn. Anh ấy có thể (chắc chắn) sẽ không hiểu nó, nhưng nó sẽ truyền đạt bao nhiêu công việc bạn đã bỏ ra, và bạn hiểu bao nhiêu, và có thể anh ấy sẽ đi với ấn tượng tích cực hơn về việc bạn đã thực sự đạt được bao nhiêu.


3
Cách này xứng đáng được công nhận nhiều hơn nó nhận được. Một giải pháp không đối đầu tốt có thể khiến cha hiểu được sở thích của con trai hơn một chút.
Fergus Tại Luân Đôn

@FergusMorrow Đồng ý. Câu trả lời này có quá ít upvote.
stommestack

12

Làm bất cứ điều gì bạn muốn

Đó là cuộc sống của bạn. Bạn có thể làm bất cứ điều gì bạn muốn. Đừng để bất cứ ai (kể cả bố bạn) kiểm soát cuộc sống của bạn.

Tôi cho rằng bạn thích lập trình ít nhiều và muốn trở thành một chuyên gia thành công (và bố bạn muốn, mọi người đều muốn). Nhưng điều quan trọng là, bạn sẽ không bao giờ thành công trừ khi bạn biết bạn đang làm gì và trừ khi bạn thích nó .

Làm chủ bất kỳ lĩnh vực nào cũng khó. Bạn không thể làm điều này chỉ dưới ảnh hưởng của ai đó. Và không ai biết bạn nên làm gì tốt hơn bạn . Bạn muốn nghỉ ngơi hôm nay và cảm thấy thích chơi game cả ngày? Đó là quyết định của bạn và bạn chịu trách nhiệm cho nó. Bạn nên học cách chịu trách nhiệm cho quyết định và cuộc sống của bạn. Chịu trách nhiệm về quyết định của bạn là bắt buộc đối với mọi chuyên gia thành công.

Vậy bạn sẽ làm gì trong tình huống đó? Hãy đứng vững, đừng lắng nghe bất cứ ai và làm bất cứ điều gì cảm thấy có giá trị với bạn.


3
OP là trẻ vị thành niên hợp pháp (14, rõ ràng). Cha mẹ anh ta dự kiến ​​sẽ kiểm soát cuộc sống của anh ta, và chiến đấu một cách mù quáng trong bốn năm tới rất có thể sẽ khiến mọi người khốn khổ.
jwodder

1
@jwodder: Nếu những bậc cha mẹ đó cảm thấy cần kiểm soát những gì con trai họ học được trong thời gian rảnh rỗi , thì đó có thể là điều tốt nhất mà anh ấy bắt đầu để chống lại ASAP. Tôi cũng vậy, có những đứa trẻ, một đứa chỉ bằng David. Nếu con tôi không thể nói với tôi rằng tôi đã sai khi cô ấy nghĩ tôi, tôi sẽ lo sợ cho tương lai của cô ấy. Một đứa trẻ 14 tuổi không phải là 7yo, nó biết một vài điều về thế giới và biết một vài điều cha mẹ không biết. Và nếu anh ta hóa ra không phải là điều họ muốn, họ đã thất bại trong suốt những năm trước đó và không còn cơ hội để bắt kịp nữa, ít nhất là bằng cách tiếp tục làm những gì họ đã làm trong 14 năm.
sbi

10

Bạn yêu cầu sách. Thành thật mà nói, bạn sẽ giải quyết vấn đề tốt hơn là đọc sách. Tìm một câu đố hoặc một vấn đề bạn đam mê. Project Euler là một nguồn tuyệt vời và CodeGolf có thể đưa ra những câu hỏi thú vị. Dự án lập trình đầu tiên của tôi là một ứng dụng C ++ tìm thấy các số nguyên tố. Sách giáo khoa tôi đang sử dụng tại thời điểm đó cung cấp một cách thực hiện đơn giản như thế này:

bool isPrime(int x){
    int c = 1;
    while(c < x){
        if(x%c == 0){
            return False;
        }
        c=c+1
        /*c+=1 if compiler is set to '98 or more recent*/
    }
    return True;
}

đó là không hiệu quả ồ ạt. Tôi đã tìm thấy khoảng 500 số nguyên tố đầu tiên có chức năng đó trước khi từ bỏ sự ghê tởm về sự chậm chạp của nó. Bố và tôi đã có một khoảng thời gian tuyệt vời để cố gắng tối ưu hóa ở trên, và mặc dù đó là một ứng dụng đơn giản thậm chí không ghi đầu ra của nó vào một tệp mà tôi rất vui và sản phẩm tạo ra rất tuyệt.

Bạn sẽ học bằng cách đọc sách? vâng, nhưng tôi không thể nhấn mạnh giá trị của việc chỉ lẩm bẩm với ngôn ngữ lập trình và học bằng cách thử và sai.

Nếu bạn đang học lập trình cho cha của bạn, hãy dừng lại và tìm lý do của riêng bạn làm điều đó. Tôi vẫn săn lùng tôi để xây dựng cho anh ta một hệ thống giao dịch tự động khối lượng lớn. Tôi cực kỳ nghiêm túc khi tôi nói rằng bạn cần tìm thứ gì đó bạn muốn làm việc bởi vì nếu không bạn có thể sẽ từ bỏ việc lập trình hoàn toàn bởi vì bạn sẽ xem nó như một việc vặt không phải là một sở thích hay một môn thể thao.

Hãy thử đọc cuốn sách "Chỉ để giải trí" của Linus Torvalds, trong đó ông kể lại nguồn gốc của hệ điều hành Linux. Tiêu đề nói lên tất cả.

Nghiêm túc. Chỉ cần đi hack về một số vấn đề. Khi bị mắc kẹt, có được ông già tham gia.

Nếu bố của bạn không đánh giá cao công việc của bạn, thì không phải vì ông thất vọng. Anh ấy là một kiến ​​trúc sư, anh ấy không biết một số thứ phức tạp như thế nào. Cố gắng đưa anh ta đi qua mã của bạn, nếu chỉ logic và khiến anh ta đánh giá cao những gì về logic đó mà bạn đã học bằng cách viết nó.


TL; DR


  1. Chỉ cần lộn xộn với một cái gì đó. Giải quyết vấn đề. Nếu bạn không thể giải quyết nó, hãy tìm giải pháp của người khác và cố gắng hiểu nó.
  2. Hãy vui vẻ với # 1
  3. Bất cứ khi nào bạn học được một cái gì đó hoặc làm đầu, hãy nhớ nói với ông già của bạn.
  4. Tăng tốc cho bản thân. Mọi người đều học theo cách riêng của họ và theo tỷ lệ riêng của họ. Chỉ cần giữ nó và cuối cùng bạn sẽ có kỹ năng để làm bất cứ điều gì bạn muốn.

1
Trên thực tế, anh đặc biệt tuyên bố rằng anh không yêu cầu sách .... Phần còn lại của điều này tôi đồng ý
Paul

6

Hãy thử tìm một cuốn sách đặc biệt giới thiệu về lập trình cho người mới. Có lẽ một cái gì đó như Hello World! Lập trình máy tính cho trẻ em và người mới bắt đầu khác của Warren Sande.

Bạn cũng nên xem những gì thư viện của bạn có. Hầu hết các thư viện nên có một vài cuốn sách mới bắt đầu.


5

Trong tâm trí tôi có hai vấn đề:

  1. Bạn muốn học lập trình và giữ cho nó vui vẻ (niềm vui là điều cần thiết, nó làm cho mọi thứ dễ dàng hơn)
  2. Bạn có một khách hàng thực sự không hiểu gì về lập trình nhưng có ý tưởng anh ta muốn gì. (Cha của bạn trong trường hợp của bạn)

IMHO:

  1. Đối với vấn đề đầu tiên của bạn, bạn chỉ cần truy cập các trang web như thế này và đặt câu hỏi như bạn đã làm. Tìm các tài nguyên như thế này https://softwareengineering.stackexchange.com/questions/62224/how-to-become-a-prof Profession-programmer / 66363 # 62263 . Hãy nghĩ về thứ gì đó bạn muốn tạo (một trò chơi, danh sách việc cần làm, hệ thống quản lý bộ sưu tập phim, nền tảng xã hội tốt nhất tiếp theo) và chỉ cần bắt đầu viết mã. Hoặc bắt đầu với việc giải các câu đố Tôi có thể tìm thấy các câu đố và thách thức lập trình ở đâu?

  2. Vấn đề thứ hai của bạn khó khăn hơn, bạn cần phải giáo dục cha mình (trong khi ông ấy có vẻ không sẵn lòng) Trong khi bạn học, bạn sẽ trở nên tốt hơn trong việc giải thích cho ông ấy những gì khó về lập trình. Bạn có thể thử sử dụng các phép ẩn dụ như giải thích cô ấy Một ẩn dụ lập trình tốt là gì? . Một mẹo khác là những người không phải là lập trình viên nói chung không có được sự phức tạp của một thuật toán tuyệt vời nhưng lại dễ dàng bị thu hút bởi các giao diện đẹp mắt. Tùy thuộc vào nền tảng bạn chọn, bạn có thể tạo ra các giao diện đẹp mắt khá dễ dàng để gây ấn tượng với cha của bạn. Sử dụng ví dụ:

Hi vọng điêu nay co ich.


+1 Tôi thích bài đăng của bạn, nhưng tôi không nghĩ có ai ở đây thậm chí còn đề nghị đứa trẻ này tìm hiểu những gì kỳ vọng của cha mình. Có vẻ hơi sớm để loại trừ những kỳ vọng của người cha mà không biết họ là gì.
dùng179700

5

Tôi chỉ muốn nói thêm rằng tôi đã ở một vị trí rất giống nhau trong một lần trong đời, bố tôi không thực sự hiểu sự củng cố tích cực có nghĩa là gì. Nhưng khi thấy tôi kiên trì và kiên cường trước sự không tán thành đôi khi gay gắt của anh, tôi đã cố gắng giữ lấy nó. Vài mươi năm sau mối quan hệ với bố tôi đã thay đổi rất nhiều, nó đã được cải thiện nhưng những sắc thái tinh tế của thời đó vẫn còn đó.

Đây chỉ là một thời gian khó khăn trong cuộc sống của bạn và điều quan trọng ở đây là bạn có niềm vui khi làm điều này hơn bất cứ điều gì khác.


5

Về ngôn ngữ lập trình, tôi đồng ý rằng bạn nên tập trung vào chỉ một.

Trên thực tế, tôi khuyên bạn nên một cái mà bạn chưa có: Python. Python là một ngôn ngữ khá dễ học, nhưng cũng khá mạnh mẽ. C ++, Java, PHP và Javascript đều phức tạp hơn nhiều.

Có một vài cuốn sách từ Manning dạy lập trình bằng Python. Tôi thực sự cân nhắc "Xin chào, Thế giới!", Ngay cả khi nó nhắm vào nhân khẩu học trẻ hơn một chút.

Nếu bạn muốn tiếp tục với C ++, thì tôi khuyên bạn nên dùng cuốn sách này:

Mặc dù nó nhiều hơn một "tài liệu tham khảo" và ít hơn một "hướng dẫn". Tôi không biết về một hướng dẫn tốt về C ++ - có rất nhiều loại sách "dạy cho mình C ++ nhanh" ngoài kia, nhưng tôi không nghĩ chúng rất hữu ích. (C ++ là một ngôn ngữ khá khó học trước tiên; hầu hết các lập trình viên C ++ bắt đầu với một ngôn ngữ dễ dàng hơn).


Đồng ý, python là một lựa chọn tốt hơn như là ngôn ngữ đầu tiên. C ++ rất tuyệt nhưng nó rất mạnh và khó sử dụng - giống như học lái máy bay trước khi học đi bộ. Với python bạn có thể sử dụng các thư viện ngay lập tức và làm những điều thú vị. Hàm string_add của bạn là 5 dòng mã có thể đọc được. Ví dụ: def string_add(a_string): \n\t sum = 0 \n\t for letter in a_string:\n\t\t sum += ord(letter) - ord('a')+1 \n\t return sum(\ n - dòng mới \ t -tab) hoặc sử dụng lập trình chức năng nâng cao hơn, nó là một lớp lót. string_add = lambda a_string: sum(map(lambda ch: ord(ch)-ord('a')+1, a_string))
dr jimbob

+1 Tôi mất khoảng một năm để học C ++, trong khi tôi chỉ mất mười phút để học Python.
đúng vào

+1 Tôi cũng khuyên bạn nên lập trình Head First sử dụng Python.
David

4

Về C ++, Java, PHP, JavaScript và Android (để bạn có thể chọn giữa chúng, vì cố gắng làm chủ tất cả cùng một lúc có khả năng thất bại):

  • C ++: Đó là một ngôn ngữ cực kỳ mạnh mẽ. Nhưng quá mạnh mẽ, quá không tha thứ, quá khó hiểu để bắt đầu. Bạn phải hiểu rất nhiều điều để đi. Tôi nghĩ rằng, đây là một lựa chọn ngôn ngữ kém cho việc bắt đầu quá chương trình.
  • Java: Một lựa chọn phổ biến cho người mới bắt đầu. Theo một nghĩa nào đó, nó trái ngược với C ++: C ++ cung cấp cho bạn về bất kỳ cách tưởng tượng nào để tự bắn vào chân mình, trong khi Java cố gắng không cho phép bất cứ điều gì có thể nằm ngoài tầm kiểm soát của bạn, thực tế là khá tê liệt. Đó là một chút quá đơn giản, quá tầm thường, quá hạn chế để cho bạn thấy nhiều về lập trình. Và bạn không thể thực hiện được nhiều thứ trong Java mà không biết nhiều API tiêu chuẩn và một số khung công tác. Java là một công nghệ có rất nhiều thứ để cung cấp, nhưng có những thiếu sót của nó như là một ngôn ngữ.
  • PHP: Một ngôn ngữ rất phổ biến, chủ yếu là do rào cản lối vào thấp. PHP là một ngôn ngữ đã trưởng thành và hiện đang phong phú với các tính năng mà người ta mong đợi từ một ngôn ngữ hiện đại. Tuy nhiên PHP mang theo rất nhiều hành lý vì lý do lịch sử. Vì vậy, trong khi nó thực sự cho phép viết các chương trình tốt, ít người làm và bạn sẽ không tìm thấy nhiều thông tin về cách thực hiện. Và thư viện tiêu chuẩn là một mớ hỗn độn. Nếu bạn quyết định viết PHP, lời khuyên của tôi là hãy bắt đầu làm việc với một khung ngay từ đầu, vì chúng thường thúc đẩy các giải pháp mạnh mẽ cho các vấn đề phổ biến. Cá nhân, tôi khuyên bạn nên symfony , Flow3CakePHP . Tuy nhiên, lời khuyên của tôi là: đừng bắt đầu với nó.
  • JavaScript: Một ngôn ngữ mạnh mẽ đáng ngạc nhiên, một khi bạn đã biết nó. Nó có một vài "quirks" , nhưng thực tế bạn sẽ có thể sống với điều đó. Mặc dù ban đầu được sử dụng để thêm tính tương tác vào các trang HTML, giờ đây JavaScript có thể được sử dụng trong một số trường. Ngoài việc sử dụng cổ điển, nó có thể được sử dụng cho máy tính để bàn và di động phát triển ứng dụng với các nền tảng như Appcelerator , PhoneGapAIR và để tạo ra các máy chủ sử dụng Node.js .
    Có rất nhiều thư viện và khung công tác JavaScript ngoài kia. Tôi khuyên bạn nên kiểm tra loại trực tiếpjQuery cũng như qooxdooext.jsnếu bạn đang tìm kiếm một cái gì đó đầy đủ Ngoài ra, để phát triển máy chủ, bạn nên kiểm tra express.js .
    Ngoài ra, tôi muốn chỉ ra CoffeeScript , một ngôn ngữ biên dịch thành JavaScript, nhưng có khá nhiều tính năng bổ sung, có ích.
  • Android: Không giống như bốn người kia, đây là một nền tảng. Nền tảng nên được chọn tùy thuộc vào những gì bạn muốn làm. Nếu đó là phát triển ứng dụng di động cho các thiết bị Android, thì hãy dùng nó. Không chắc chắn đó là điều tốt nhất để bắt đầu, nhưng cuối cùng bạn cần tạo ra những thứ bạn nghĩ là tuyệt vời.

Trong mọi trường hợp, điều thực sự quan trọng là, bạn thấy điều này thú vị. Rằng bạn tạo ra mọi thứ, bạn nghĩ là mát mẻ. Điều đó giải quyết một số nhu cầu của bạn, hoặc đó là niềm vui để chơi với. Lập trình dành cho những người thích nó. Bạn cần một bộ công cụ, cho phép bạn xây dựng các ứng dụng với một vài dòng mã. JavaScript / CoffeeScript có thể là một điểm khởi đầu tốt.
Cá nhân, tôi muốn chỉ cho bạn đến Ruby. Nó đã dạy tôi rất nhiều về lập trình và tôi cảm thấy không may vì đã không biết đến nó khi tôi bắt đầu lập trình. Về cơ bản, có hai cuốn sách ghê gớm (cả hai đều có sẵn miễn phí):

  • Tại sao hướng dẫn sâu sắc - Cá nhân, đó là một chút quá nhiều phiền nhiễu (truyện cười, phim hoạt hình, vv) trong cuốn sách đó cho tôi, nhưng bạn có thể thích điều đó.
  • Thực dụng Ruby - Làm việc hoàn hảo cho tôi. Nó là một chút khô, nhưng nó chỉ đơn giản là đối phó với các yếu tố cần thiết.

Cùng với đó tôi đề nghị bạn kiểm tra giày . Nó là một công cụ tuyệt vời với sự trợ giúp tích hợp tuyệt vời, bao gồm tài liệu tham khảo, hướng dẫn và bản demo. Bạn sẽ có những thứ đầu tiên của bạn lên và chạy trong vài ngày.

Và, có lẽ để sau này, tôi muốn chỉ cho bạn haXe . Tôi nghĩ rằng đó là một ngôn ngữ tuyệt vời (ngôn ngữ tôi chọn) và có một hướng dẫn cho người mới bắt đầu hoàn toàn mới , đã được ban hành gần đây. Tuy nhiên, haXe không có sẵn các công cụ, điều đó giúp việc tạo các ứng dụng trở nên đơn giản như với JavaScript và Ruby. Do đó, bạn có thể thấy tẻ nhạt hoặc thậm chí là bực bội khi bắt đầu, điều này đánh bại toàn bộ mục đích.


Tôi chắc chắn sẽ đề nghị anh ấy cắt răng trên C / C ++. Tôi đã làm như vậy và thấy việc học bất kỳ ngôn ngữ nào dễ dàng một cách đáng ngạc nhiên bởi vì hầu hết tất cả các ngôn ngữ hiện đại đều lấy được thứ gì đó từ C / C ++.
DETUS

@CyprUS: Mặc dù tôi đồng ý, cả hai đều đáng để học, tôi không nghĩ một trong hai là một lựa chọn tốt để bắt đầu học lập trình. Ngoài ra, tôi không thấy LISP hoặc gia đình Smalltalk sẽ lấy được bất cứ thứ gì thiết yếu từ cả hai.
back2dos

Tôi nghĩ chúng ta phải để cậu bé quyết định mình muốn làm gì. Điều đó nói rằng, LISP / SmallTalk quá bí truyền để có ích chung (theo ý kiến ​​của tôi)
DETUS

@CyprUS: Tôi chỉ đưa ra lời khuyên. Cuối cùng anh phải chọn. Tôi không có nghĩa là LISP hoặc SmallTalk, nhưng lớp ngôn ngữ hiện đại (một phần) chồng chéo mà họ tạo ra, đáng chú ý nhất là Ruby, Squeak, Objective-C, Lua, Scala, Erlang, Clojure, JavaScript, F #, Nemerle, Scheme. Tất cả chúng trong thực tế được sử dụng, một số thậm chí là một trong những ngôn ngữ phổ biến nhất hiện có .
back2dos

3

Đó là một chút để cố gắng mong đợi trong một tháng. Thay vào đó, bạn nên cố gắng tập trung vào việc học một ngôn ngữ hoặc mô hình tại một thời điểm hoặc nó có thể trở nên quá tải. Nhận quá nhiều xô cùng một lúc cũng là một cách tốt để tắt nó đi. Bạn có thể học tốt hơn bằng cách làm việc trên một chương trình cụ thể mà bạn quan tâm. Nếu điện thoại Android là nơi bạn quan tâm thì có lẽ bạn nên sử dụng Java hơn là C ++. Anh ta có thể đã mong đợi một số giao diện người dùng cá nhân như một khách hàng điển hình nên sẽ không nản lòng với sự thất vọng của anh ta :)

Một số cuốn sách Head First có thể giúp việc học bớt khô khan hơn một chút nếu bạn bị bó buộc với sách.


3

Tôi nghĩ bạn nên bỏ những thứ trang trọng hơn bây giờ và xem Scratch - http://scratch.mit.edu/ - nó cho phép bạn xử lý hầu hết các cấu trúc lập trình một cách dễ dàng hơn trong khi vẫn học hỏi cho bạn những thứ đó bạn cần như vòng lặp, vv

Nó cũng cho phép đa luồng hoàn hảo, có lẽ là phần khó nhất để làm bằng tay, và cần thiết để mang lại kết quả thú vị trong thế giới ngày nay.

Đừng đánh giá thấp nó bởi vì nó sử dụng màu sắc và một viên gạch lego giống như cách tiếp cận lập trình. Bạn có thể làm rất nhiều với nó, mà không bị mất các chi tiết kỹ thuật.


+1 - Scratch là một cách tuyệt vời và thú vị để học hỏi. Nó thực sự được thiết kế với khung tuổi, nhưng vẫn là Turing Complete. Ngoài ra, hãy xem BYOB (Xây dựng khối riêng của bạn) để biết tiện ích mở rộng hướng đối tượng đến Scratch.
Morgan Herlocker

3

Hỏi cha của bạn nếu ông có thể thiết kế một tòa nhà cao tầng ở tuổi của bạn. Đó là những gì lập trình là. Phải mất thời gian để học, bởi vì có rất nhiều thứ để học. Giống như đi xe đạp, chỉ có bạn có một ngàn bàn đạp, bánh răng, tay cầm, núm và bạn không thể chọn và chọn loại nào để sử dụng chúng vào bất kỳ thời điểm nào. Nó cần thực hành.

Tôi không nghi ngờ bạn. Bạn đã sớm học được C ++ trong mục tiêu trở thành lập trình viên. Đó là ấn tượng với tôi .

Hãy tham gia và chúc may mắn với nghề lập trình viên!


3

Tôi biết đã có rất nhiều câu trả lời rồi. Nhưng tôi không thấy lời khuyên này: hãy cố gắng để cha bạn giúp bạn. Cố gắng chọn một cái gì đó có lông trong cuốn sách C ++, mà bạn có thể hiểu và nhờ anh ấy giúp đỡ.
Đưa cho anh ta cuốn sách và để anh ta bò trong C ++. Tôi khá chắc chắn rằng điều này sẽ khiến anh ấy nhận ra việc viết mã khó đến mức nào.


3

Hãy cố gắng để biến tình huống này vì lợi ích của riêng bạn. Chỉ cần chấp nhận rằng những gì bạn đạt được cho đến bây giờ là không đủ và cố gắng làm tốt hơn ... Bạn sẽ có đủ thời gian khó khăn như thế này khi bạn sẽ làm việc cho một ông chủ nếu bạn không bắt đầu vượt qua và cải thiện từ bây giờ .

Giá như tôi làm việc chăm chỉ gấp đôi khi tôi bằng tuổi bạn ...


3

Đầu vào của cha bạn không có lợi cho quá trình học tập của bạn. Vâng, có một số cách để trải qua việc học lập trình như những người khác đã đề cập. Tuy nhiên, theo tôi, bạn đã cho thấy sự tiến bộ phi thường trong C ++. Chương trình thêm của bạn sẽ là thứ tôi khó có thể xử lý sau học kỳ đầu tiên về lập trình java.

Có hai điều bạn phải giải quyết nếu muốn tiếp tục:

1) Xử lý cha của bạn.

Hãy nhìn xem, mọi người cha đều có những giấc mơ xa hoa cho con cái của họ. Tuy nhiên, kỳ vọng của họ có thể rất cao và cuối cùng sẽ dẫn đến một điều thậm chí không thể xảy ra trong một số truyện cổ tích. Tôi khuyên bạn nên đưa ai đó ra ngoài trong tình huống để đánh giá tốt hơn sự tiến bộ của bạn và đưa cha bạn xuống trái đất. Bạn có thể thử nói chuyện với gia đình / bạn bè mà bạn biết bằng kinh nghiệm lập trình hoặc thậm chí những người trong cộng đồng này có thể gửi email cho anh ấy thay mặt cho kinh nghiệm và kiến ​​thức của chúng tôi. Đây là bước quan trọng nhất trong tất cả, bởi vì nếu bố bạn không bình tĩnh, bạn sẽ mất hứng thú với nhau.

2) Tìm một trọng tâm.

Nó không có lợi để học mọi thứ cùng một lúc. Chọn một ngôn ngữ và gắn bó với nó. Khi bạn đọc một cuốn sách về một ngôn ngữ cụ thể. Theo nguyên tắc của cuốn sách nguyên văn không phải là cách để đi chính xác. Sự hồi sinh là một quá trình học tập đối với một số người, nhưng không phải tất cả (đặc biệt là bản thân tôi). Điều quan trọng là phải tấn công nó từ nhiều góc độ mà bạn có thể và là những góc độ mà bạn quan tâm. Lập trình sách của các tác giả khác nhau trên cùng một ngôn ngữ nhưng cách sử dụng khác nhau có thể làm tăng sự tò mò của bạn về cách bạn muốn sử dụng ngôn ngữ và hiểu biết sâu sắc về mong muốn của riêng bạn từ lập trình (làm game? thiết kế ứng dụng? thử nghiệm? ect, ect). Bạn cũng có thể thực hiện một cuộc phiêu lưu cá nhân để tạo ra một chương trình. Chỉ ra những gì bạn muốn làm bất kể những gì bạn biết vào lúc này, sau đó nghiên cứu nó khi bạn lập trình. Thời gian trôi qua, bạn ' Cuối cùng sẽ muốn thử các ngôn ngữ lập trình khác có liên quan hay không. Bạn cũng có thể nhận ra rằng bạn không muốn lập trình tất cả cùng nhau.

Trên hết, hãy nhớ rằng đó không phải là kết quả cuối cùng mới là vấn đề, đó là hành trình. Đừng quên vui chơi!


3

Bạn đã nhận được một số phản hồi và lời khuyên tốt về các khía cạnh lập trình trong tình huống của bạn. Nhưng tôi muốn thêm một cái gì đó từ một góc nhìn khác ...

Tôi có ấn tượng rằng bạn trải qua một số suy nghĩ tiêu cực về cha của bạn - ông đã gây áp lực cho bạn và đã đưa ra một số ý kiến ​​gây cho bạn một số đau buồn và lo lắng - và điều đó đã làm cho chương trình trở nên thú vị. Đó là một sự xấu hổ và tôi nghĩ rằng hầu hết mọi người ở đây sẽ đồng ý rằng lập trình là niềm vui - tôi đã lập trình được hơn ba mươi năm và tôi vẫn thấy nó vui.

Nhưng, tôi nghĩ rằng bố của bạn đứng về phía bạn thực sự. Anh ấy đã làm những gì anh ấy nghĩ là đúng, anh ấy đang cố gắng giúp đỡ, anh ấy đã mua cho bạn những cuốn sách để cho bạn một khởi đầu tốt. Nhưng anh ấy đã hiểu sai (và tôi nói như một người cha, đôi khi chúng tôi làm mọi thứ sai!). Đối với anh ta, sách có lẽ là nơi anh ta bắt đầu trong sự nghiệp kiến ​​trúc của mình (tôi cho rằng điều này bắt đầu trước khi internet và www thường có sẵn, nếu có). Vì vậy, theo suy nghĩ của anh ấy, sách là nơi bạn bắt đầu.

Vì vậy, giả sử rằng bố của bạn đứng về phía bạn (và tôi chắc chắn rằng ông ấy) thì vấn đề là ông ấy không hiểu nó khó khăn như thế nào khi bạn bắt đầu lập trình - vì vậy hãy cho ông ấy thấy tất cả các câu trả lời mà ông ấy đã đăng ở đây - Tôi chắc rằng bố bạn là một chàng trai tốt và ông sẽ hiểu và ông sẽ ủng hộ bạn.

Và chúc may mắn với chương trình của bạn - có vẻ như bạn đang có một khởi đầu tuyệt vời.


có lẽ thêm 'thần đồng' sẽ không quá nhiều nhỉ? Làm một chương trình như thế sẽ khó khăn với nhiều người bạn của tôi, tôi có thể đảm bảo với bạn
DETUS

@CyprUS - Tôi không đưa ra bất kỳ bình luận nào về khả năng cụ thể của anh ấy (mặc dù tôi chắc chắn rằng họ vẫn ổn). Đó là để làm với cha mình thực sự.
Hiệp sĩ Simon

3

Một điều không được đề cập trong các câu trả lời khác:

Như bạn có thể biết, là một đứa trẻ (tôi 14 tuổi) và được bảo học lập trình từ những cuốn sách buồn tẻ không phải là điều dễ dàng nhất. Tôi luôn bị phân tâm .. Tôi đã nói với anh ấy trước đây rằng tôi không cần mua sách và tôi chỉ có thể xem hướng dẫn trực tuyến .. nhưng không, anh ấy rất cổ hủ. Anh ấy chỉ cho tôi sử dụng những cuốn sách.

Bạn chắc chắn cần phải làm việc trên phần đó. Internet là công cụ quan trọng của mọi lập trình viên và bạn phải làm việc với nó.

Thứ nhất, lập trình là về giải quyết vấn đề. Khi bạn không biết cách thực hiện X bằng ngôn ngữ XYZ, bạn hãy google nó và tìm giải pháp. * Việc tìm kiếm giải pháp nhanh chóng cũng quan trọng đối với người lập trình như sử dụng bàn phím.

Thứ hai, một kỹ năng quan trọng khác là sử dụng tài liệu . Sách thường giống như hướng dẫn - chúng cung cấp hướng dẫn, nhưng chúng không cung cấp cho bạn kiến ​​thức đầy đủ - và đây là nơi tài liệu có ích. Ví dụ: bạn đang lập trình trong C ++, bạn có một tháng kinh nghiệm. Sớm hay muộn (tôi sẽ nói khá sớm) bạn sẽ cần sử dụng thư viện chuẩn ... hoặc có thể bạn đã sử dụng nó? Nếu vậy, đó là một dấu hiệu tốt, cuốn sách của bạn có lẽ không phải là một điều xấu trong trường hợp đó. Dù sao đi nữa, sẽ rất hữu ích khi biết những gì đã có trong các thư viện chuẩn C ++ và những gì không. Vì thế, thật hữu ích khi giữ một tài liệu tham khảo như http://cplusplus.com/ luôn mở trong suốt quá trình lập trình.


Internet là rất quan trọng để mã hóa, và thậm chí quan trọng hơn cho việc học viết mã. Nếu bố của bạn không hiểu điều đó và mong bạn chỉ học lập trình bằng sách , thì cách tiếp cận của anh ấy sẽ phản tác dụng và khiến bạn tiến bộ chậm hơn (và có thể có thói quen xấu).


2

Anh ta không có ý tưởng về quá trình nghiêng về chương trình. Bạn có thể đọc tất cả những cuốn sách đó mà vẫn không thể viết bất cứ điều gì tử tế, bởi vì điều mất nhiều thời gian nhất là sự hiểu biết chân thực về những gì bạn có thể làm và cách tiếp cận nó.

Bạn đã nói với bố rằng bạn thích lập trình - đừng để ông làm hỏng nó cho bạn. Và chắc chắn đừng thử và học 5 ngôn ngữ lập trình, ít nhất là không phải bây giờ. Gắn bó với một thứ tương đối đơn giản như Java, có thể được chuyển cho những người khác một khi bạn đã thành thạo nó.

Nhân tiện, liên quan đến những cuốn sách, đó là cách đúng đắn để làm điều đó, bởi vì bạn học về ngôn ngữ đúng cách. Làm theo hướng dẫn thường dẫn đến chọn thói quen xấu, vv

May mắn nhất; và cho anh ấy biết rằng bạn đang làm đúng, tiến độ chậm nhưng bạn đang học rất nhiều trong khi bạn đang làm điều đó.


2

Tôi nghĩ rất nhiều lập trình viên ở độ tuổi 25 - 35 trở lên chơi Nintendo và Sega. Một phần tốt của họ / chúng tôi đã thực hiện chuyển đổi tinh thần tại sao chơi một trò chơi khi bạn có thể làm cho riêng mình. Đó là một động lực rất tự phục vụ có thể thúc đẩy bạn trở thành một lập trình viên tốt hơn. Đó là một sự khởi đầu. Sau này, bạn có thể chuyển từ viết trò chơi video (vấn đề ảo) sang trò chơi có cổ phần cao hơn (vấn đề trong thế giới thực). Giống như đơn thuốc này cho bệnh nhân này sẽ không tương tác bất lợi với một loại thuốc theo quy định khác, những chiếc xe tải này có thể tạo ra lượng giao hàng nhiều nhất với lượng khí ít nhất để giảm ô nhiễm hay không, hoặc làm cách nào tôi có thể đảm bảo mua cổ phiếu này sẽ mua với mức giá tôi muốn khi có 1000 người khác mua nó cùng một lúc.


1

Kiến trúc bắt nguồn từ thế giới vật lý mà bạn đã học từ khi bạn sinh ra. Đối với một sinh viên đại học kiến ​​trúc, chơi với legos sẽ là một sự lãng phí thời gian. Cha của bạn giả định rằng vì bạn biết toán, bạn đã quen thuộc với các nguyên tắc cơ bản và bạn sẽ có thể bắt đầu sản xuất mọi thứ. Vâng, điều đó không đúng. Anh ta không biết điều đầu tiên về lập trình, bởi vì anh ta thậm chí không nhận ra rằng đó không phải là một nhánh của toán học .

Lập trình là một thế giới mới. Cách tốt nhất để trở nên lão luyện là học nó giống như bạn đã học thế giới vật lý: Đắm chìm và thử nghiệm. Trong một từ, chơi. Đó là thời gian lego.

Để so sánh, hãy xem xét các phi hành gia. Họ cũng có một thế giới mới mà họ hoàn toàn không chuẩn bị. Họ phải bắt đầu với những điều cơ bản như làm thế nào để di chuyển khắp phòng.

Bước tiếp theo, tôi khuyên bạn nên tạo một trò chơi trong đó máy tính chọn một số ngẫu nhiên và bạn cố gắng đoán nó và nó sẽ cho bạn biết nếu bạn đoán quá cao hoặc quá thấp.

Hãy thử nhiều ngôn ngữ khác nhau, quá! Không phải tất cả cùng một lúc, nhưng có thể trong một tuần tại một thời điểm.

Khi bạn đã có được một số kinh nghiệm, làm cho một trò chơi video đầy đủ là một trong những thách thức lớn nhất bạn có thể thực hiện với tư cách là một lập trình viên hành trình. Trò chơi video chạm vào hầu hết mọi lĩnh vực của chúng tôi và xây dựng một trò chơi là một cách tuyệt vời để xây dựng kỹ năng của bạn. Đây cũng là một nơi hoàn hảo để thử nghiệm và học hỏi ở cấp độ kỹ năng cao hơn và cao hơn.


0

Dành thời gian riêng cho việc học ngôn ngữ lập trình, bạn càng thực hành nhiều thì bạn sẽ càng lập trình nhiều hơn, lần này bạn đã tạo ra một chương trình rất đơn giản, khá dễ thương cho người mới bắt đầu nhưng khi bạn tiến bộ, hãy chắc chắn rằng bạn chắc chắn rằng bạn tạo ra một chương trình tốt có thể thực sự được sử dụng bởi cha của bạn, tốt, nếu bạn hỏi tôi đây là cách tôi đã giúp cha tôi trong công việc của mình.

Chỉ cần nói chuyện với bố của bạn và giải thích cho anh ấy những điều và tôi chắc chắn rằng anh ấy sẽ thực sự hiểu và tôi chắc chắn rằng một ngày nào đó bạn sẽ là một nhà phát triển xuất sắc.


0

Tôi học như một kỹ sư phần mềm và sự tiến bộ của việc học lập trình ở giáo dục của tôi không chỉ là đọc sách.

Trước hết tôi khuyên bạn nên học C, vì đây là ngôn ngữ dễ sử dụng và nhiều ngôn ngữ khác (như C ++, object-c) được xây dựng dựa trên C. Cách chúng tôi đã làm là chúng tôi phải mua một con chip siêu nhỏ ( trong trường hợp của chúng tôi, Atmel Mega16 với bộ STK 500, chỉ là một bảng có đèn LED và nút trên đó), và sau đó chúng tôi chỉ chơi xung quanh với nó, lập trình các chương trình để làm cho nó bip và bop. Điều đó thú vị hơn là chỉ đọc và viết các chương trình chào thế giới IMO.

Khi C trở thành một cuộc dạo chơi trong công viên cho bạn, hãy chuyển sang C ++ và lập trình hướng đối tượng (OOP). OOP là khái niệm chính trong nhiều ngôn ngữ và cách nghĩ về lập trình và do đó là điều bắt buộc nếu bạn nghiêm túc với lập trình của mình. Hãy chắc chắn để hiểu lý thuyết đằng sau OOP trước khi đi sâu vào nó - nếu không nó có thể là một quá trình khó khăn :-)

Cuối cùng nhưng không kém phần quan trọng, tôi sẽ khuyên bạn nên nghiên cứu các loại dữ liệu khác nhau, chẳng hạn như ngăn xếp, hàng đợi, đống, v.v., rất tuyệt vời để hiểu khi bạn đang lập trình và đọc về các ngôn ngữ mới.

Chúc bạn may mắn!


Tôi muốn giới thiệu một cái gì đó ngoài C ++ để học OOP. Python là một trong những tốt. C ++ là một ngôn ngữ phức tạp đến nỗi cố gắng học các khái niệm OO với nó là rất đau đớn; một khi bạn thực sự đã học được chúng, bạn sẽ biết phải làm gì với nhiều tính năng trông mờ đục của nó.
nmichaels
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.