Có thể dành thời gian cho Lập trình viên.SE hoặc Stack Overflow có thể thay thế các sách lập trình tốt cho người mới bắt đầu không? [đóng cửa]


44

Có thể dành thời gian (và tích cực tham gia) cho Lập trình viên .E và Stack Overflow giúp tôi cải thiện kỹ năng lập trình của mình gần với việc dành thời gian để đọc một cuốn sách như Code Complete 2 (nếu không sẽ là tiếp theo trong danh sách đọc của tôi) sẽ giúp ích.

Ok, có thể là câu trả lời cho câu hỏi này đối với người bắt đầu lập trình có thể là không, nhưng tôi muốn nói thêm rằng câu hỏi này tôi đang hỏi trong ngữ cảnh khi người đó quen thuộc với ngôn ngữ lập trình nhưng muốn cải thiện kỹ năng lập trình của mình. Tôi đã đọc câu hỏi này trên SO và cuốn sách này đã được nhiều người khác giới thiệu (bao gồm cả JeffJoel ).

Để cụ thể hơn, tôi cũng nói thêm rằng mặc dù tôi lập trình bằng C, Java, Python, v.v. nhưng tôi vẫn không hài lòng với kỹ năng mã hóa của mình và đọc bài đánh giá về CC2 tôi nhận ra tôi vẫn cần cải thiện rất nhiều .

Vì vậy, về cơ bản tôi muốn biết cách tốt nhất để tôi cải thiện kỹ năng lập trình - dành nhiều thời gian hơn ở đây / SO hoặc tiếp tục với CC2 và có thể đến đây khi thời gian cho phép.



1
Nó chắc chắn là quá sức đối với một lập trình viên mới bắt đầu.
Surfasb

Câu trả lời:


102

Không, nó không phải là một thay thế, mà là một bổ sung hoàn hảo . Tôi cảm thấy một sự kết hợp của cả hai nắm giữ rất nhiều sức mạnh.

Tại sao một bài giảng hay lại dạy bạn nhiều hơn là chỉ đọc một cuốn sách? Tương tác và khả năng đặt câu hỏi.

Chỉ cần đọc một cuốn sách, một số câu hỏi có thể xuất hiện mà bạn không thể tìm thấy bất kỳ câu trả lời nào. Tìm những câu hỏi ở đây hoặc hỏi họ nếu chúng chưa được thảo luận trước đây.


+1 để bổ sung hoàn hảo. Tôi chỉ có thể tưởng tượng những năm tám mươi sẽ như thế nào đối với tôi nếu SE hoặc SO ở bên. chúng là nguồn tài nguyên tuyệt vời.
Michael Riley - AKA Gunny

1
+1 như một lời khen hoàn hảo cho một bổ sung hoàn hảo. Chỉ cần đọc các câu hỏi "thế giới thực" và cố gắng trả lời (hoặc sao chép các giải pháp của câu trả lời hiện có) là những thanh kiếm nhỏ tuyệt vời để tăng kỹ năng, kiến ​​thức và trực giác
Dave Newton

Nếu bất cứ điều gì, khả năng thể hiện các vấn đề và giải pháp trong một kênh dễ hiểu và dễ tiếp cận sẽ cải thiện khả năng của bạn với tư cách là nhà phát triển, trên hết là cải thiện kỹ năng giao tiếp của bạn.
Surfasb

+1 (một lần nữa) cho lời khen hoàn hảo. Tôi đọc P.SE hàng ngày. Tôi không luôn luôn đọc tất cả các câu trả lời, nhưng tôi đọc hầu hết các câu hỏi và câu trả lời hàng đầu. Đó là một cách tuyệt vời để khiến bản thân suy nghĩ về những điều trong lĩnh vực mà bạn có thể không gặp phải. Đôi khi tôi thấy một cái gì đó trong một câu hỏi và trả lời không trực tiếp với những gì tôi đang làm mà cuối cùng cũng thực sự hữu ích, điều này thật tuyệt.
Andy Hunt

12

Tôi (hiện tại) đã là thành viên của StackOverflow trong 1 năm và 10 tháng. Trong thời gian này, tôi đã trở thành một sinh viên có kỷ luật về nghệ thuật: nhận thức về kiến ​​trúc, mô hình, tách rời, kiểm tra đơn vị, và danh sách có thể tiếp tục ... nhưng, SO đã đóng vai trò gì ???

Đầu tiên, nó trả lời các câu hỏi ngay lập tức của tôi. Nhưng khi tôi bắt đầu khám phá SO, tôi phát hiện ra rằng tôi là một lập trình viên rất tệ. Mong muốn trở thành một nghệ nhân trong nghề của tôi, tôi đã mua sách ... nhưng đó không phải là C # Unleashed, Học lập trình C # hoặc văn bản cho người mới bắt đầu tiêu chuẩn phụ khác mà tôi cần. Tôi đã mua đúng loại sách nhắm vào các lĩnh vực kỹ năng mà tôi phát hiện ra là thiếu sót. Tất nhiên, tôi đã dành thời gian để xem những gì các chuyên gia về SO khuyến nghị.

Thứ hai, SO đã cho tôi một nơi để tiếp tục học hỏi từ những người (đại diện cho danh tiếng) thực sự biết họ đang làm gì - về mặt cú pháp và triết học. Có một số lượng hiểu biết nhất định phải đạt được trên SO, CodeReview và Lập trình viên mà bạn đơn giản không thể có được từ một cuốn sách.

Rõ ràng, SO không thể thay thế sách hoặc tất cả các tài nguyên web khác (mặc dù, nếu tôi có thể kết hợp MSDN và SO thành một tài nguyên nội dung duy nhất ...); thay vào đó, SO bổ sung cho các tài nguyên khác. Giáo viên tốt nhất, tuy nhiên, vẫn còn kinh nghiệm .


11

Cách tốt nhất để tôi cải thiện kỹ năng lập trình là gì?

Lập trình nhiều hơn. Đọc sách và các trang web là thứ yếu.

Bạn học tốt nhất bằng cách làm.


17
Có và không. Làm nhiều hơn có thể được thực hiện mà không cần học hỏi thêm. Tôi có thể lập trình trong một ngôn ngữ nhất định sau năm năm và không học bất cứ điều gì mới. Đọc và học dạy bạn những thứ bên ngoài "vùng thoải mái" của bạn. Không đủ cho một downvote, nhưng vẫn không phải là một bình luận tốt imo.
WernerCD

1
Sự thật là, tôi đã lập trình rất nhiều mà không cần học. Vì vậy, tôi đã tạo các trang web trong PHP mà không biết các đối tượng hoặc sử dụng một khung công tác. Bạn phải rời khỏi mã và đi và học hỏi
Bojan Kogoj

@ Werner Huyền rất đúng. Tôi có nghĩa là "lập trình nhiều hơn" theo nghĩa "tìm thứ gì đó bạn muốn xây dựng và xây dựng nó, lý tưởng theo cách mới để học cái gì đó mới"
Humphrey Bogart

Tôi nhớ khi tôi còn là thực tập sinh, "giáo viên" trong công việc đôi khi sẽ giao cho chúng tôi các bài tập lập trình, hy vọng rằng chúng tôi sẽ học tốt nhất bằng cách làm. Vấn đề là dù vấn đề là gì đi nữa, chúng ta thường không ở cấp độ đó. Và khi ai đó hỏi cô một câu hỏi về nó, cô sẽ tiếp tục nói, "Ồ, điều này thật dễ dàng! Bạn cần phải tìm ra nó. Bạn học tốt nhất theo cách đó." Vài giờ sẽ trôi qua, với việc chúng tôi miệt mài với tài liệu, thử đồ, v.v. Khi cuối cùng cô ấy sẽ cho chúng tôi câu trả lời ...
Panzercrisis

... nó sẽ là thứ mà chúng ta đơn giản không được cung cấp thông tin cần thiết để tìm ra . Sẽ mất cả tuần hoặc lâu hơn để tìm thông tin cần thiết, khi chúng tôi không có thời gian và khi đôi khi thông tin không có sẵn cho chúng tôi hoặc công chúng. Vì vậy, đủ để nói, hướng dẫn là rất quan trọng, và chỉ cần nói với ai đó tự mình tìm ra công cụ là tốt khi và chỉ khi họ sẵn sàng và đạt đến mức đó.
Panzercrisis

5

Học cần một số thành phần:

  1. Người học (tất nhiên là bạn)
  2. Thời gian (mà bạn nên quản lý và dành)
  3. Tài nguyên (từ đó, các trang SE chỉ là một phần nhỏ)

Bạn có phải là người học giỏi? Bạn có dành đủ thời gian cho việc học? Nếu câu trả lời của 2 câu hỏi này là , thì bạn đã có đủ tiềm năng để học gần như từ bất kỳ tài nguyên nào.

Nhưng để trả lời câu hỏi của bạn, yeah, cá nhân tôi đã học được rất nhiều từ các trang SE. IMHO, họ không nên trở thành nguồn học tập duy nhất của bạn , nhưng chúng có lợi.


5

Hai điều mà SO và P.SE cung cấp mà không phải đọc các cuốn sách khác cũng như tự viết mã cung cấp: kiểm tra và giảng dạy. Nếu bạn chỉ mù quáng đặt câu hỏi như

Tại sao không biên dịch này

wall
of
code
100
lines
long

Và ai đó nói "trên dòng 33 dấu phẩy nên là dấu chấm phẩy" và bạn chấp nhận câu trả lời và tiếp tục, và tiếp tục hỏi những câu hỏi tương tự mãi mãi, sau đó bạn có thể không cải thiện.

NHƯNG, nếu bạn đang đọc câu hỏi của người khác, suy nghĩ về câu trả lời, xem để xem câu trả lời nào và cách họ so sánh với những gì bạn biết, điều đó sẽ thực sự cải thiện bạn. Nếu bạn nhập một số mã vào trình soạn thảo yêu thích của bạn và thử một vài điều để xem câu trả lời là gì, điều đó sẽ thực sự cải thiện bạn. Và khi bạn bắt đầu cố gắng giải thích các khái niệm (và mọi người đang chờ ở đó để "làm rõ" những gì bạn nói) cũng sẽ cải thiện bạn.

Trong khoảng 30 năm nay tôi đã phát hiện ra tôi không bao giờ học một chủ đề tốt như vậy, khi tin rằng tôi biết nó, tôi bắt đầu dạy nó. Đối với tôi đó là sự đóng góp chính của các trang web * .se cho các kỹ năng của tôi với tư cách là một nhà phát triển. Thêm vào đó, khi tôi chỉ muốn biết một sự thật đơn giản, đó là nơi số một của tôi để tìm (hoặc thỉnh thoảng hỏi).


3

Kỹ năng lập trình của bạn được cải thiện tốt nhất không phải bằng cách đọc các trang web hoặc sách, mà bằng cách lặp lại

  1. viết mã dựa trên kiến ​​thức hiện tại
  2. đánh giá kết quả
  3. học hỏi từ đánh giá về những gì nên làm và không nên làm.
  4. đi đến 1

Tập luyện giúp hoàn hảo hơn. Những gì trông đẹp mắt trên một blog hoặc trong một cuốn sách có thể chứng minh là cồng kềnh khi sử dụng vì một số lý do mà người viết blog không hiểu, hoặc tác giả cuốn sách không bao gồm.


2
Sách (và blog và SO) có thể đưa bạn đến các khái niệm mà bạn có thể không tự mình nghĩ ra, nhưng bạn trở thành một lập trình viên giỏi hơn bằng cách viết mã.
Annika Backstrom

2
Mặt khác, nếu tôi không bao giờ chú ý đến lời khuyên bên ngoài, tôi sẽ không đi quá xa. Những người khác đã học một cách khó khăn, và sẽ thật ngu ngốc nếu không học hỏi từ kinh nghiệm của họ. Chắc chắn, đừng chỉ dựa vào đọc và nghe, nhưng đừng phạm sai lầm khi cố gắng học mà không có sự giúp đỡ từ người khác.
Phil

đọc bên ngoài đi vào # 2

đọc bên ngoài là cần thiết để khám phá các tính năng không nhạy cảm, độc đáo hoặc nâng cao cho một kỹ thuật hoặc ngôn ngữ lập trình hoặc thư viện cụ thể. Chúng là những thứ không thực sự cần thiết để thực hiện bất kỳ nhiệm vụ nào, nhưng có thể cải thiện cách bạn thực hiện (ví dụ: siêu lập trình). Vì chúng không bao giờ thực sự cần thiết, mọi người hiếm khi tìm kiếm chúng bằng cách thử nghiệm một mình.
Lie Ryan

2

Như bạn đã tự trả lời, không, nhưng dành thời gian ở đây là một sự bổ sung hữu ích cho việc học tập có cấu trúc hơn. Tôi sẽ không phụ thuộc vào nó độc lập vì có thể có những khoảng trống trong một số khái niệm có thể không được đề cập. Một trong những cược tốt nhất của bạn để cải thiện mã hóa cho những người ở cấp độ trung cấp là đọc mã của nhà phát triển giỏi khác bằng cách dành thời gian cho GitHub hoặc kho lưu trữ nguồn mở khác.


1

Tư duy và phân tích quan trọng vẫn còn cần thiết

Trong và của chính nó không. Cách duy nhất để tạo nguồn học tập (sách, blog, trang web, SO, v.v.) là bằng cách hiểu, phân tích và sau đó kết hợp lại nhiều lần. Những gì mọi người viết trên các diễn đàn như thế này không phải là tin lành và không nên được đối xử như vậy cho dù có bao nhiêu phiếu bầu. Bạn cần tự phân tích về ý kiến ​​được đưa ra để tìm hiểu xem:

  1. Một ý kiến ​​hay
  2. Một ý tưởng áp dụng cho tình huống của bạn

Cách tốt nhất để cải thiện

Là thường cụ thể cho người. Một số người trở nên tốt hơn thông qua việc đọc và nghiên cứu. Một số người trở nên tốt hơn thông qua chơi và thử nghiệm. Khác thậm chí có thể trở nên tốt hơn thông qua tự phản ánh và phân tích. Hãy thử bất cứ điều gì hấp dẫn bạn và xem nếu nó hoạt động tốt hơn cho bạn.


0

Việc học java trở nên dễ dàng hơn nhiều khi tôi tìm hiểu về stackoverflow. Tôi không đặt câu hỏi, nhưng tôi bắt đầu đọc các câu hỏi java hàng ngày. Phần lớn các câu hỏi nằm ngoài tầm hiểu biết của tôi, nhưng thỉnh thoảng có ai đó hỏi câu hỏi dành cho người mới bắt đầu. Nhiều người hỏi về các khái niệm họ đọc từ một cuốn sách nhưng không hiểu và nhận được câu trả lời dễ hiểu hơn ở đây, thường với mẫu mã nhỏ để giải thích thêm vấn đề.

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.