Tại sao mọi người sử dụng sách lập trình? [đóng cửa]


94

Tôi thấy rằng khi ai đó hỏi cách tốt nhất để học cách lập trình, mọi người thường cung cấp cho họ các tài liệu tham khảo cho một loạt các văn bản được viết bởi các tác giả khác nhau.

Tuy nhiên tôi không tin nhiều người học lập trình từ sách. Tôi thấy rằng họ thường phải đối mặt với một thách thức và sau đó sử dụng lập trình như một công cụ để vượt qua nó.

Ví dụ: tôi đã tham gia lập trình vì tôi muốn khởi động một máy chủ cho một trò chơi mà tôi đang chơi, vì vậy tôi đã tìm hiểu và đọc qua sự hỗ trợ cho máy chủ cụ thể đó và bây giờ tôi là một kỹ sư phần mềm được tuyển dụng, chỉ sử dụng các kỹ năng tôi đã phát triển ( và sau đó được phát triển thêm) bằng cách mã hóa các tập lệnh C # cho gói máy chủ không phổ biến.

Vì vậy, câu hỏi của tôi là, mọi người thường thấy dễ dàng hơn để học hỏi từ những cuốn sách này? Tôi biết tôi đã xem xét một vài trong số họ và thấy họ quá 'khô khan' để khuyến khích tôi hoàn thành nó.


3
sách không phải là chính ở đây nhưng lợi thế lớn nếu bạn đọc sách chúng chỉ là một cuốn sách khác mà bạn thấy thú vị.
cnd

42
Bạn đang nói về việc học cách lập trình ngay từ đầu, hay những thứ cao cấp hơn? Có một sự khác biệt lớn giữa 'Tìm hiểu C ++ trong 24h' và một cuốn sách hay về những thứ lý thuyết tiên tiến hơn - bạn sẽ không tìm thấy công việc của Knuth trực tuyến.
André Paramés

78
Có vẻ như bạn chưa bao giờ bắt gặp một cuốn sách lập trình tốt.
Jaywalker

46
Điều này là ẩn dụ cho câu hỏi, "tại sao đi học?"
Jodrell

8
Tôi chưa bao giờ thấy sách là một công cụ học tập chính, nhưng tôi có rất nhiều sách và tôi khuyên bạn nên dùng chúng mọi lúc. Rõ ràng là bạn chỉ học bằng cách làm. Tuy nhiên, sách là nguồn ý tưởng và có thể được sử dụng như một tài liệu tham khảo có sẵn. Chúng tôi không đọc / giới thiệu những cuốn sách để học hỏi. Chúng tôi đọc / giới thiệu những cuốn sách để chia sẻ những ý tưởng có trong đó.
Joel Etherton

Câu trả lời:


229

Đây là cách tôi học, nói chung là:

  • Mua một quyển sách
  • Đừng đọc nó để che nhưng biết nơi mọi thứ có thể được tìm thấy
  • Tìm một dự án thú cưng để làm việc trên
  • Học hỏi kinh nghiệm, nhưng sử dụng cuốn sách làm tài liệu tham khảo
  • Cuốn sách thất bại ở đâu, luôn có google

Lưu ý: điểm thứ ba đôi khi đến trước.

Chỉnh sửa : Để trả lời câu hỏi "Tại sao?"

Google thật tuyệt khi tìm hiểu cách làm một cái gì đó, nhưng thật tuyệt vời khi tìm hiểu những gì bạn không biết. Tại sao bạn lại bao giờ google "đại biểu C #", nếu trước tiên bạn không biết rằng C # có một khái niệm gọi là đại biểu và nó có thể hữu ích để giải quyết vấn đề bạn đang làm việc?

Ngoài ra, đôi khi tỷ lệ tín hiệu trên tạp âm có thể hơi cao. Nếu bạn có một ý tưởng sơ bộ trong đầu về cách thực hiện một cái gì đó thì bạn có thể dễ dàng xác nhận xem bài viết bạn đang đọc có đúng hay không. Nhưng nếu bạn không có đầu mối ... bạn có thể sẽ gặp rắc rối lớn hơn.


19
Câu trả lời tuyệt vời, đặc biệt là chỉnh sửa để đáp lại "tại sao". Gần đây tôi đã bắt đầu học ASP.NET và đã làm như vậy bằng cách sử dụng google. Tôi đã sử dụng C # cho .NET 2.0 trong nhiều năm nên tôi nghĩ mình có thể sử dụng được. Mỗi lần tôi gặp phải một vấn đề, tôi đã tìm được câu trả lời bằng cách tìm kiếm trên google, nhưng tôi nhận ra rằng tôi chỉ đang chạm vào tảng băng trôi về những gì tôi có thể làm và tôi hoàn toàn thiếu các thư viện lớn. Một cuốn sách cung cấp một cái nhìn tổng quan tốt hơn về công nghệ và mọi thứ nó có thể làm. Tránh sử dụng sách "học x trong 24 giờ" và thay vào đó hãy tìm sách "nâng cao x".
Gavin Coates

44
+1 cho "tìm hiểu những gì bạn không biết."
Covar

2
Mở rộng đến điểm thứ 5: Khi cuốn sách thất bại, luôn có google và các cuốn sách khác về chủ đề này, bao gồm cả những mục tiêu không dành cho người mới bắt đầu trong chủ đề .
Richard

5
+1 cho "tỷ lệ tín hiệu trên tạp âm đôi khi có thể hơi cao. Nếu bạn có ý tưởng sơ bộ về cách thực hiện một cái gì đó thì bạn có thể dễ dàng xác nhận xem bài viết bạn đang đọc có đúng không. Nhưng nếu bạn không có manh mối ... bạn có thể kết thúc trong một mớ hỗn độn lớn hơn. "
Tom Squires

9
"Trường hợp cuốn sách thất bại, luôn có google." Ý bạn là Stack Overflow;)
Joren

42

Một số lý do tại sao sách vẫn có liên quan:

  1. Tôi thấy việc đọc nhiều văn bản trên giấy dễ dàng hơn trên màn hình LCD tiêu chuẩn, có thể sách điện tử trên màn hình e-ink sẽ thay đổi điều này.
  2. Sách có xu hướng mô tả bức tranh lớn và một số thực tiễn tốt, điều đó thực sự tốt khi bạn cần bắt đầu nhanh hoặc một cái nhìn mới.
  3. Google thực sự tốt khi bạn cần các ví dụ về chủ đề cụ thể, nhưng không phải cho bức tranh lớn.

Nhưng một cuốn sách sẽ không bao giờ đưa bạn đi hết con đường, nó sẽ chỉ đẩy bạn đi đúng hướng.


2
+1 cho bức tranh lớn. Sau khi tôi đã lập trình trong một số ngôn ngữ / môi trường mới trong một thời gian, tôi thấy sách thực sự hữu ích để điền vào bức tranh lớn và những điều tôi đã bỏ lỡ từ khám phá của riêng mình.
Adam Morris

2
Blog của Raymond Chen, hay loạt Đi sâu trên Kênh 9, cực kỳ hữu ích trong việc tìm hiểu lý do tại sao . Một khi bạn biết " tại sao " một cái gì đó là như vậy, làm thế nào để làm cho nó trở thành một chi tiết tầm thường có thể được googled. Thông thường, tác giả của một cuốn sách có thể đi vào nền để hiểu logic của những gì đang diễn ra, thay vì cố gắng nhầm lẫn thông qua các chuỗi đoạn mã được ghép lại với nhau mà bạn tìm thấy trên mạng.
Ian Boyd

IMO, một trong những lợi thế lớn mà sách có là khả năng dính ngón tay của bạn ở nhiều nơi cùng một lúc để bạn có thể nhanh chóng lật giữa các phần. Tôi thấy điều này là vô giá khi tôi đang cố gắng học một cái gì đó mới bằng cách xem qua một số mã, vì tôi thường xuyên tìm kiếm một thứ khác (đôi khi là một vài thứ) để hiểu những gì tôi đã tìm kiếm ở nơi đầu tiên. Điều hướng trên một màn hình không giống nhau.
TMN

Đã đồng ý. Nhảy ngay vào Asp.Net MVC, ví dụ, bạn có thể tìm ra cách để làm điều đó. Nhưng có rất nhiều điều bạn có thể nhận được là quá sai. Sau đó, bạn đang gãi đầu tại sao một cái gì đó không hoạt động.
Andy

28

Khi tôi học lập trình trở lại trong những năm 1980, trong đó ít nhiều nguồn thông tin duy nhất có sẵn để hoàn toàn học một ngôn ngữ lập trình nói chung. Ngoài ra, bạn có thể mua tạp chí máy tính, nhưng nội dung của chúng là những bài viết ngẫu nhiên có thể thú vị và hữu ích hay không.

Ngày nay bạn có thể tìm thấy tất cả thông tin bạn cần trên Internet. Mặc dù tôi sẽ coi một hướng dẫn hoàn chỉnh là đủ tương tự như một cuốn sách.

Cách bạn học có thể phụ thuộc vào sở thích cá nhân của bạn hoặc vào nhu cầu thực tế.

Ưu điểm của một "văn bản hoàn chỉnh", nếu cuốn sách hoặc hướng dẫn trực tuyến, sẽ là nó bao gồm các tài liệu mà trong khi không thực sự cần thiết sẽ giúp bạn sau này. Chỉ cần biết rằng một cái gì đó là có thể và để biết nơi để tìm thấy nó. Đặc biệt nếu bạn tìm hiểu về một môi trường phức tạp hoặc một ngôn ngữ rất phức tạp như C ++. Bạn có thể đọc qua nhiều blog nhỏ về Ruby on Rails mà không bao giờ nghe về Ajax hoặc các vấn đề bảo mật. Miễn là bạn chỉ chơi xung quanh, điều này có thể không có vấn đề. Nhưng nếu, như đã xảy ra với tôi, bạn muốn đi vào phát triển Ruby on Rails chuyên nghiệp trong vòng vài tuần, thì làm việc với một văn bản bao gồm tất cả các điểm quan trọng sẽ giúp ích rất nhiều.

Các cuốn sách khác bao gồm các chi tiết về phong cách lập trình, thực tiễn tốt nhất, các mẫu thiết kế hoặc các nhóm thuật toán nhất định. Bạn có thể làm việc với chúng và có thể trong tất cả các mẫu thiết kế bạn sẽ chỉ áp dụng một tập hợp con rất nhỏ. Tuy nhiên, thật hữu ích khi biết họ và biết nơi để tìm thấy họ. Và nó chỉ đơn giản là một cách để huấn luyện các quá trình suy nghĩ của bạn thành một hướng mà bạn quan tâm hơn đến việc "xây dựng một giải pháp" hơn là "làm cho nó chạy bằng cách nào đó".

Cá nhân tôi thích đọc sách, vì vậy tôi không có cảm giác sách bị khô. Mặc dù điều quan trọng là tất nhiên, cuốn sách nằm ở trình độ kiến ​​thức thực tế của bạn hoặc hơn thế nữa. Nếu bạn đã nắm vững tất cả những điều cơ bản về C #, thì việc đọc một cuốn sách dành cho người mới bắt đầu sẽ không có ý nghĩa gì.


7
+1 để đề cập đến những gì tôi đã viết: loại sách "thực hành / phương pháp tốt nhất" khác biệt rất nhiều so với loại sách "cách làm X sử dụng Y". Và trước đây là những thứ thực sự có giá trị, bởi vì nó dạy kinh nghiệm giải quyết vấn đề chung khó kiếm được. Khi bạn học kiểm tra đơn vị, tái cấu trúc, ước tính, v.v., bạn có thể áp dụng và điều chỉnh nó cho một loạt các ngôn ngữ / miền / dự án.
Péter Török

1
Chắc chắn đánh giá cao đề cập về phong cách, thực hành và các mẫu. Đây là những cuốn sách thực sự là những người có lợi. Bạn có thể học lập trình bằng cách chỉ cần có một vấn đề để giải quyết và giải quyết nó. Bạn học lập trình tốt bằng cách học các phong cách, thực hành và các mẫu. Tuy nhiên, nơi tốt nhất để có được sự hiểu biết toàn diện về các khái niệm này là các văn bản.
Giàn

+1 cho "nó bao gồm các tài liệu, trong khi không thực sự cần thiết, sẽ giúp bạn sau này" - các lập trình viên giỏi có kiến ​​thức sâu rộng để rút kinh nghiệm. Ngay cả khi bạn không nhớ tất cả các chi tiết, nhưng bạn biết chủ đề để kéo và tìm hiểu nó khi bạn cần, nó có thể là vô giá!
Jared Updike

22

Một cuốn sách (hoặc tài liệu web có cấu trúc như một cuốn sách) vẫn là cách ưa thích nhất của tôi để học hầu hết các ngôn ngữ.

Nếu bạn chỉ đi sâu vào một ngôn ngữ và tự mình tìm ra thứ gì đó, bạn có khả năng bỏ lỡ những khía cạnh quan trọng, một cuốn sách hay sẽ được gửi đến cho bạn vào đúng thời điểm.

Ví dụ, một số đồng nghiệp của tôi đã học Java bằng cách lặn mà không có sách. Họ đã lập trình bằng Java trong một vài năm, khi tôi phát hiện ra họ thường xuyên thao tác các mảng byte [] bằng cách chuyển đổi mảng thành Chuỗi, sử dụng .sub chuỗi (), sau đó chuyển Chuỗi trở lại thành một mảng. System.ArrayCopy () được giới thiệu trên trang 155 của Java In A Nutshell

Tôi hy vọng bạn nhận ra rằng học tập dễ dàng hơn với một giáo viên, hơn là một mình. Một cuốn sách tốt là một thay thế giá rẻ cho một giáo viên tốt. Nó sẽ giới thiệu các khái niệm theo một trật tự được lên kế hoạch cẩn thận, vì vậy bạn có thể xây dựng một sự hiểu biết thấu đáo - không chỉ đủ để có được.


2
+1 cho việc chỉ ra sự khác biệt giữa học để làm một cái gì đó và học để làm nó tốt.
idbrii

Một cuốn sách tốt là một cách tuyệt vời để nhanh chóng bao phủ khu vực. Ai đó đã thực hiện nghiên cứu cho bạn. Tìm một cuốn sách tốt có thể khó khăn. Đã có lúc tôi có cơ hội 50/50 để có được một cuốn sách tuyệt vời về một chủ đề mà tôi quan tâm (người mua thực sự tốt). Bây giờ tôi tìm thấy cơ hội tìm thấy một cuốn sách tốt trong cửa hàng sách là ít hơn 10%. Tuy nhiên, có nhiều cuốn sách hay như tài nguyên có sẵn trên mạng. Chọn đúng tài nguyên có thể tăng tốc độ học tập của bạn.
BillThor

1
Tôi không chắc lúc đó là khi nào. Tôi đã xem qua những cuốn sách CS cũ của tôi gần đây. Các tiêu chuẩn đã được cải thiện rất nhiều. Ví dụ: tôi đã sử dụng 'Lập trình chức năng với Miranda' năm trước. Tôi đã sử dụng 'Real World Haskell' gần đây. Cuốn sách cũ ngày nay đang trở nên bí ẩn, mặc dù về cơ bản sử dụng các khái niệm và mô thức tương tự như Haskell.
mỏng

21

Tôi nghĩ rằng bạn có thể đang ở một cái gì đó. Đối với tôi ít nhất, hầu hết các kỹ năng của tôi đều xuất phát từ việc muốn / cần một chương trình "X".

Có lẽ những người học theo cách này không yêu cầu giúp đỡ; họ chỉ quá bận rộn để hoàn thành nó (kém, nhưng học trên đường đi). Những người muốn trở thành lập trình viên (như được gọi là nhóm đầu tiên) hỏi rất nhiều câu hỏi về cách trở thành lập trình viên, hoặc cách lập trình, mặc dù họ không nhất thiết phải giải quyết vấn đề, và những điều này không câu hỏi với câu trả lời trực tiếp.

Và vì vậy chúng tôi punt sách. "Ồ đúng rồi, nhặt một bản sao của 'Lặn vào Python.'" "Đó có phải là cách bạn học không?" "Không" "Ừm ..." "Tôi hơi bận, nhưng tôi sẽ giúp nếu bạn gặp khó khăn" "Uh ... OK, tôi đoán vậy"

Mặt khác, tôi đánh giá cao tài liệu đọc tốt khi tôi đang học, để tôi có thể thấy vấn đề tôi đang cố gắng giải quyết được giải quyết như thế nào bởi một tác giả lành nghề hơn, hoặc có thể chỉ để tôi có thể tìm hiểu Kỹ thuật "người mới bắt đầu" tôi có thể không nhận được trên đường đi.

TLDR : sách là tốt, học bằng cách làm là tốt, học bằng cách làm sách là ???


1
+1: Tôi nghĩ bạn đã đóng đinh nó. Học bằng cách làm, những cuốn sách giá trị nhất mà tôi sở hữu là dành riêng cho một ứng dụng tôi đang viết vào thời điểm đó.
Justin Shield

41
Hãy cẩn thận để tránh trở thành một lập trình viên "tự học" mà họ nghĩ rằng họ biết tất cả vì họ đã làm việc thông qua một vấn đề đơn giản, tồi tệ và cảm thấy bản thân "quá tốt" để đọc sách.
Joris Timmermans

2
Cần lưu ý rằng tôi không chống lại việc đọc, tôi chỉ nghĩ rằng phương tiện kỹ thuật số thường hiện tại và hấp dẫn hơn rất nhiều.
Alex Hope O'Connor

2
@Alex Giới thiệu về phương tiện kỹ thuật số. Điều đó thực sự phụ thuộc vào chủ đề được truyền thông giải quyết. Nếu phương tiện truyền thông đang giải quyết những việc như làm thế nào để làm x theo ngôn ngữ y hoặc cách mã hóa hiệu quả nhất trong z, thì tôi đồng ý với tuyên bố của bạn. Tuy nhiên, các chủ đề khác (thường là các chủ đề lý thuyết, nâng cao hơn), chẳng hạn như NP, P, phân tích thuật toán, v.v., IMHO thường được giải quyết tốt nhất bằng sách giáo khoa. Hãy xem nghệ thuật lập trình của Knuth . Đây là một văn bản khá cũ, nhưng vẫn được coi là một trong những cuốn sách quan trọng nhất về lập trình.
cledoux

16
Tôi nghĩ rằng đây là một trường hợp sai lệch xác nhận. @Alex dường như đang tìm kiếm một câu trả lời nhất định. Tôi không nói câu trả lời này là xấu mỗi se, nhưng chắc chắn đó không phải là câu trả lời tốt nhất được cung cấp bởi bất kỳ sự tưởng tượng nào.
zzzzBov

15

Tôi thích đọc sách kỹ thuật. Không phải tất cả các cuốn sách kỹ thuật, chỉ là những cuốn sách về một chủ đề cụ thể mà tôi quan tâm, nói Sharepoint. Tôi nhớ lại cuốn sách đầu tiên tôi thực sự đọc (nhiều lần), s Lập trình Windows của Charles Petzold. Vì điều này và nhiều người khác, tôi có khả năng viết một ứng dụng Win32 từ bộ nhớ. Tôi hầu như không cần phải tìm kiếm một API, vì vậy tôi đã có thể tập trung vào phần kinh doanh thay thế.

Tôi cảm thấy rằng những cuốn sách cung cấp một cách "có thẩm quyền" để làm một cái gì đó, có lẽ bởi một người biết cách đúng đắn để làm điều gì đó tốt hơn tôi. Tôi tin tưởng rằng những gì tôi đang học là, tôi dám nói, cách tốt nhất để giải quyết vấn đề của tôi. Tất nhiên, đó là nếu tôi tin tưởng tác giả (phải yêu khu vực đánh giá ở Amazon).

Mặc dù bây giờ tôi thấy mình ngày càng "googling" và sao chép và dán khi tôi cố gắng giải quyết vấn đề, tôi dành một khoảng thời gian tốt để đảm bảo rằng những gì tôi đang sao chép (hoặc được truyền cảm hứng bởi :) là điều đáng tin cậy mà tôi có thể đặt mã của tôi Chỉ vì tôi tìm thấy một giải pháp trên web, nó không hẳn là tốt nhất.

Trong khi tôi, giống như rất nhiều lập trình viên khác, bây giờ chỉ cần google câu trả lời, tôi vẫn thấy mình chọn sách từ các tác giả đã biết. Tôi cảm thấy nội dung được mang đến cho tôi bởi một người giỏi giải thích nó (dạy nó) và nó giúp tôi không phải lọc tất cả rác từ kết quả Google của mình.


14

Tôi cho rằng câu hỏi của bạn không có nghĩa là "tại sao sử dụng công nghệ cũ như sách in thay vì trang HTML", nhưng "tại sao lại đọc các văn bản dài hơn về lập trình được viết bởi một hoặc một vài tác giả".

Bạn có thể nghĩ về những cuốn sách như là bộ sưu tập thông tin có cấu trúc về một chủ đề nhất định. Nó có lợi thế là ai đó đã nỗ lực xây dựng từng chương để làm cho việc hiểu chủ đề trở nên dễ dàng. Thông thường, bạn cũng được cho biết ranh giới của thông tin là gì (những gì được đề cập và những gì khác mà bạn cần để ý ở nơi khác). Sau khi đọc và làm việc với nó, bạn có thể chắc chắn đã đạt được một kỹ năng nhất định. Nếu bạn muốn học với nút chuyển tiếp nhanh được nhấn, một cuốn sách có thể buộc bạn phải làm việc qua mọi khía cạnh mà không bỏ qua các phần nhàm chán, ít nhất là nếu bạn tin tưởng vào cấu trúc của cuốn sách. Bộ sưu tập có tên "cuốn sách" cũng thường hữu ích như một tài liệu tham khảo.

Sử dụng Internet, blog, "loay hoay", v.v. thường rơi vào loại thông tin không có cấu trúc. Bạn nhận được vô số bitcoin và trí tuệ, nhưng bạn phải thực hiện nhiều công việc tìm kiếm hơn để xây dựng kiến ​​thức của mình, bởi vì không ai sẽ hướng dẫn bạn nói "hãy học cái này trước hoặc bạn sẽ không thấy công đức của thứ đó bạn đã googled lên bây giờ ". Bạn có thể bỏ lỡ một số phần nhất định vì chúng quá nhàm chán hoặc không ai nói với bạn rằng chúng quan trọng. Bạn có thể học những điều sai, bởi vì không phải mọi thứ được viết trên Internet đều là chất lượng đầu tiên. Bạn có thể dành nhiều thời gian để lọc ra các kết quả tìm kiếm vô dụng. Bạn có thể lãng phí nhiều ngày với việc cố gắng tự mình hoàn thành một cái gì đó, chỉ vì bạn không biết một mẫu thiết kế hoặc cấu trúc lập trình nhất định và không ai nói với bạn. Bạn càng ít biết

Nói một chút khiêu khích: Tôi sẽ không bao giờ tin tưởng một kiến ​​trúc sư xây dựng cây cầu mà tôi phải đi qua mỗi ngày nếu anh ta nói với tôi rằng anh ta chưa bao giờ đọc một cuốn sách về xây dựng cầu hoặc phân tích kết cấu mà chỉ học nó bằng cách nghịch ngợm và sử dụng Google ...


Câu hỏi của tôi có thể được hiểu là trung thực, nhưng sau đó là sự đồng thuận chung của tôi.
Alex Hope O'Connor

10

Nếu bạn là một lập trình viên C, làm thế nào bạn mong đợi học Python mà không có sách hay giáo viên?

Nếu bạn chỉ học cú pháp cơ bản và lặn ngay, cuối cùng bạn sẽ viết mã C bằng Python và đi đến kết luận sai rằng Python cũng dài dòng và đau đớn như C.


Đó là một cường điệu. Nếu bạn bắt đầu lập trình Python, bạn có thể google câu trả lời cho các vấn đề và tìm những thứ như công thức Python mô tả các giải pháp Pythonic cho các vấn đề cụ thể.
idbrii

6
@pydave: Nếu đó là một sự cường điệu thì sẽ không có quá nhiều mã C được viết bằng mã Python trên SO (ví dụ)
BlueRaja - Danny Pflughoeft

4
Tôi đọc câu hỏi ví dụ của bạn, đọc câu trả lời của bạn và tôi hiểu ý của bạn: Học cú pháp cơ bản không giống như học ngôn ngữ. (Tôi thậm chí đã không cân nhắc việc không học các cấu trúc của ngôn ngữ.) Nếu bạn học vừa đủ Python để viết mã C bằng Python, thì bạn vẫn chưa học lập trình bằng Python.
idbrii

Đây là một vấn đề nghiêm trọng đáng được quan tâm hơn. Tất cả các ngôn ngữ lập trình đều hoàn thành Turing, điều đó có nghĩa là bạn có thể giải quyết mọi vấn đề bằng cách viết mã Python giống C hoặc mã Ruby giống như Java. Không có rào cản nào ở đó sẽ buộc bạn phải tuân theo chủ nghĩa ngôn ngữ mà bạn đang lập trình. Tệ hơn nữa, bạn thậm chí có thể không cảm thấy đau đớn vì sự kém hiệu quả của mã hóa bởi vì nó sẽ đau đớn như ở bản địa C hoặc bản địa Java, một mức độ đau đớn mà bạn đã chấp nhận như bình thường.
Wedge

không thể đồng ý nhiều hơn - Tôi là một lập trình viên C trong PHP khi tôi viết bất kỳ: - |
warren

9

Google thường chỉ tốt khi tìm các đoạn mã nhỏ hoặc thư viện nguồn mở. Tài liệu cho một số thư viện / chương trình là không đáng tin cậy nhất (nếu nó tồn tại, nó chỉ hiển thị cho bạn các ví dụ đơn giản hoặc phổ biến.)

Tôi không có nhiều sách lập trình, nhưng tôi có thể nói với bạn ngay bây giờ rằng tôi đã có một cuốn sách về OpenGL và nó có phần lớn mã cho một công cụ 3D trong đó, bạn có thể sao chép đơn giản, nhưng bạn có thể sao chép đọc lý thuyết là tốt - bạn chỉ cần lật một vài trang và một lời giải thích về mã ở ngay đó, chờ đợi để được đọc. Ngày nay, bạn có thể tìm thấy một số công cụ 3D nguồn mở trên mạng, nhưng nếu bạn cần thay đổi mã đáng kể, có lẽ bạn đang gặp rắc rối - thường không có diễn đàn trợ giúp nào tồn tại và mọi người trên SO sẽ không biết Trả lời câu hỏi của bạn nếu nó rất chuyên biệt. Khi nói đến những thứ thực sự chuyên dụng, chỉ có vài chục người trên toàn thế giới sẽ có thể trả lời câu hỏi của bạn mà không mất hàng giờ để tìm ra đủ để có thể đưa ra câu trả lời. Nếu bạn hỏi cách triển khai danh sách được liên kết trong C #, bạn sẽ nhận được hơn 5 câu trả lời trên SO trong 10 phút đầu tiên, nhưng nếu bạn hỏi cách tốt nhất để thực hiện thuật toán tạo bóng phức tạp trong ba.js là gì , câu hỏi của bạn sẽ chìm xuống trang đầu như một tảng đá.

Trên hết, các cuốn sách được viết hầu như chỉ dựa trên quan điểm mà người đọc muốn tìm hiểu về lý thuyết liên quan, trong khi google chỉ tạo ra các đoạn mã ngẫu nhiên, lưu trữ các cuộc thảo luận về chủ đề mà không ai biết họ đang nói về cái gì , v.v. Các nguồn trên internet đã tốt hơn rất nhiều: SO, Moz Dev Network, trang web của Microsoft, blog, v.v., nhưng trong lịch sử, sách đã tốt hơn rất nhiều, với các nguồn internet mới bắt kịp.


1
+1 để chỉ ra thời gian bạn cần phân loại rác ngẫu nhiên bằng phương pháp "học bằng cách googling"
Ray

1
+1 cho 'các cuộc thảo luận được lưu trữ về chủ đề mà không ai biết họ đang nói về vấn đề gì, v.v.' - ROFL.
5arx

7

Chất lượng của việc viết trong những cuốn sách tốt nhất là rất nhiều vấn đề không rõ ràng được đặt ra trước khi bạn bắt đầu. Một tác giả có nhiều kinh nghiệm sẽ biết để nói với bạn về những điều như: tác dụng phụ không mong muốn, hậu quả lâu dài, tính năng không có giấy tờ, kịch bản sử dụng điển hình ...

Về cơ bản, bạn đang nhận được lợi ích của một nhà văn có nhiều kinh nghiệm hướng dẫn bạn giải quyết vấn đề và chỉ ra những điều thực sự thú vị.

Đôi khi bạn cũng có thể tìm thấy điều này trong các tài liệu tham khảo trực tuyến, nhưng do rào cản thấp để nhập nhiều thông tin trực tuyến là quá cơ bản, thiếu thông tin chi tiết hoặc hoàn toàn sai. Điều này cũng có thể xảy ra với sách, vì vậy hãy chắc chắn rằng bạn chỉ hoàn toàn tin vào những cuốn sách kinh điển với những đánh giá tốt. Các cuốn sách khác cũng có thể hữu ích, nhưng chỉ là một trong những nguồn, bạn vẫn sẽ phải xác minh thông tin bằng cách tham khảo chéo hoặc tự mình thử.


1
+1000 'hoàn toàn sai' Có rất nhiều mã ví dụ trực tuyến được viết bởi 'những lập trình viên giỏi nhất' không biên dịch người dùng hoặc biết họ đang nói về cái gì. Thêm vào đó, một cuốn sách hay sẽ được viết với mô hình sư phạm giới thiệu sau đó củng cố nội dung một cách nhất quán và dễ đọc.
jqa

6

Sách có xu hướng đi kèm với rất nhiều thông tin trong một định dạng có cấu trúc. Google có xu hướng đi kèm với một lượng thông tin khổng lồ không phải lúc nào cũng có cấu trúc đặc biệt và khó tổ chức theo những gì bạn cần làm.

Tôi thực sự không đọc sách giấy vật lý nữa - có một đầu đọc điện tử bên cạnh tôi và tôi có phần mềm Kindle trên máy tính xách tay cho phép tôi truy cập vào thông tin mà tôi đang tìm kiếm.

Google hữu ích ở đâu nếu bạn không tìm kiếm một tổng quan có cấu trúc về cách lập trình, nhưng cần chi tiết về cách lập trình một tác vụ cụ thể. Ai đó gần như luôn luôn viết mã cho nhiệm vụ đó trước đó, hoặc, ít nhất, một cái gì đó giống như nó.

Tôi nghĩ rằng có một sự khác biệt giữa học lập trình và học lập trình một nhiệm vụ cụ thể. Tôi sẽ đặt câu hỏi về chất lượng mã đến từ một người chỉ học các bit và phần từ việc thực hiện các nhiệm vụ cụ thể nếu họ chưa bao giờ thực sự có được một cái nhìn tổng quan đúng đắn về cách lập trình. Đây không phải là ngôn ngữ cụ thể, nó mang tính khái niệm hơn.


4

Sách rất hữu ích nếu bạn muốn đi sâu hơn vào một chủ đề. Chắc chắn tôi đã học được C # từ việc thực hiện một vài hướng dẫn và viết một số dự án (thú cưng). Nhưng C # chuyên sâu vẫn hữu ích để xem những gì diễn ra bên dưới và tìm hiểu một vài điều mới.

Ngoài ra, tôi có thể lấy một cuốn sách lập trình và đọc nó trong bồn tắm của tôi hoặc ngoài trời nắng. Tôi không thể làm điều đó với máy tính để bàn của tôi.


4

Bởi vì đó là một cách thuận tiện để học hỏi từ các lập trình viên khác.

Sách là một bổ sung. Bạn chỉ có thể nhận được rất nhanh để làm việc nhanh chóng của riêng bạn. Ai sẽ không tham gia vào một dự án với một lập trình viên giỏi hơn sẵn sàng dạy bạn điều gì đó hơn là chỉ đọc cuốn sách?

Tôi có xu hướng sử dụng chúng nhiều hơn như một tài liệu tham khảo hơn là "Mọi thứ bạn cần biết về lập trình."


3

Sách cho phép bạn tiếp thu một tập hợp thông tin theo cách "thụ động". Bạn không cần phải xem những gì có thể bạn nhận được một tập hợp con của các khả năng. Khi tôi đang học C #, cuốn sách thực sự đã giúp chỉ ra các khả năng, và tự hỏi những gì tương đương với C ++. Tất nhiên việc làm chủ đã diễn ra khi sử dụng nó trong một dự án (kích thước thật). Nhưng cuốn sách thực sự đã giúp chỉ ra sự khác biệt và khả năng.


3

Tóm lại, tôi nghĩ rằng sách có xu hướng hữu ích hơn ở mức cao. Họ có thể cung cấp cho bạn hướng dẫn thiết kế và giúp bạn ngăn chặn các vấn đề thay vì giải quyết chúng.


Sách chắc chắn có nhược điểm của họ. Bản sao Lập trình Python của tôi bao gồm Python 2.0, nhưng thời gian chạy tôi sử dụng là 2.6.

Tuy nhiên, tôi nghĩ khía cạnh quan trọng của sách là bạn có thể tìm thấy những thứ mà bạn sẽ không vấp ngã. Google giúp bạn giải quyết các vấn đề cụ thể, nhưng sách sẽ giúp bạn thiết kế. Và không chỉ thiết kế sách. Nếu bạn đọc một cuốn sách hay giúp bạn hiểu thiết kế của một ngôn ngữ, bạn sẽ hiểu rõ hơn về cách sử dụng ngôn ngữ đó.

Những cuốn sách khác là tốt cho tinh chỉnh kiến ​​thức của bạn. Tôi nghĩ cuốn sách C ++ hiệu quả của Scott Murphy là một ví dụ điển hình. Mặc dù cuốn sách này không thực sự tốt cho việc học C ++, nhưng nó giúp bạn thấy các vấn đề trong thiết kế thuật toán / giao diện / kế thừa mà bạn chưa gặp phải (chưa) hoặc làm việc xung quanh. Có thể dễ dàng tìm thấy một giải pháp đơn giản (rằng tôi gây ra các vấn đề khác sau này), nhưng bằng cách hiểu ngôn ngữ tốt hơn, bạn có thể thiết kế phần mềm của mình để tránh những vấn đề này ngay từ đầu.

Tất nhiên, không phải thực tế là sách được in trên giấy khiến chúng đáng giá. Sự quan tâm và nỗ lực tạo ra chúng và mong muốn cung cấp một nền giáo dục nghiêm ngặt là những gì mang lại giá trị cho sách. Thường là một hiệu ứng phụ, bạn có được các tài nguyên trực tuyến hữu ích như C ++ FAQ lite hoặc ebooks như Lặn vào Python . Ngoài ra còn có các hướng dẫn chỉ trực tuyến là các công cụ học tập kỹ lưỡng và hữu ích (như tài liệu cho một số nền tảng / ngôn ngữ / thư viện).

Đoạn trích trên web là một cách tốt để trả lời câu hỏi của bạn, nhưng chúng hiếm khi cho bạn biết những gì bạn nên hỏi.


3

Tôi muốn trở thành một lập trình viên, vì vậy tôi đang sử dụng sách lập trình. Sách sẽ cho phép tôi trở nên thành thạo chuyên môn về lập trình.


3

Tôi đã không thực sự đọc một cuốn sách lập trình trong một thời gian dài. Tôi sử dụng để sử dụng chúng làm hướng dẫn tham khảo, nhưng bây giờ tôi nghĩ rằng Internet dễ dàng hơn đối với hầu hết các ngôn ngữ và khung.

Dù sao, tôi nghĩ rằng điều tốt nhất để học từ sách lập trình là ngôn ngữ cốt lõi. Ví dụ, ngôn ngữ thực sự đầu tiên của tôi là C. Tôi đã học nó bằng cách viết một hệ điều hành (tôi không khuyến nghị điều này). Kết quả là, kiến ​​thức về C của tôi đã bị tê liệt ngay cả sau hai hoặc ba năm lập trình trong đó. Tôi không bao giờ có kiến ​​thức cốt lõi về ngôn ngữ. Tôi không biết tôi có thể biến 15 dòng mã lộn xộn này thành hai dòng mã sạch. Vì vậy, tôi có thể giải quyết vấn đề, nhưng tôi đã không sử dụng C đến mức tối đa.

Sau đó, tại một thời điểm, tôi quyết định học C ++ ... (khoảng 2 năm sau khi bắt đầu học C). Vì vậy, tôi đã đọc cuốn sách C ++ duy nhất tôi có xung quanh, một cuốn sách C ++ For Dummies. Tôi đã đọc khoảng 3/4 số đó trong suốt thời gian đó, thực hiện rất ít việc "làm" trong thời gian đó .. và kết quả là khi tôi nhảy vào dự án đầu tiên của mình thay vì cảm thấy thoải mái với 15 dòng mã lộn xộn đó, tôi biết rằng có một cách dễ dàng hơn để làm điều đó (mặc dù tôi có thể phải tìm kiếm nó).

Tôi đã làm điều tương tự khi tôi học C # / ASP.NET. Tôi gần như không làm gì ngoài việc đọc cho đến khi tôi hoàn thành xong khoảng 3/4 cuốn sách. Và với những gì tôi không học được, tôi đã duyệt Stack Overflow cho những câu hỏi thú vị về C #. Khi tôi bước vào dự án đầu tiên của mình, tôi đã nói rằng hầu hết mã của tôi tương đối sạch và chỉ phải được "tái cấu trúc" một cách mạnh mẽ kể từ đó.

Vì vậy, tôi sẽ nói rằng sách rất hữu ích cho việc học các khả năng của một khung hoặc ngôn ngữ. Mặc dù vậy, hầu hết chúng đều vô dụng bởi Internet, ngoại trừ những cuốn sách tài liệu lý thuyết mạnh mẽ và được thiết kế đặc biệt để tham khảo.


2

Nó ít hơn về những gì bạn đọc, nhưng bao nhiêu. Tôi muốn có một vài cuốn sách lập trình khi đang thực hiện một dự án. Thỉnh thoảng (thường xuyên hơn bạn nghĩ) bạn sẽ đọc về một kỹ thuật có thể áp dụng cho dự án hiện tại của bạn.

Khi bạn đã triển khai thành một giải pháp trong thế giới thực, thông tin sẽ được lưu lại.


2
Tôi thực sự thấy rằng trường hợp khi trả lời các câu hỏi trên các trang web như SE. Tôi thường thấy rằng các bình luận dẫn tôi đến thông tin liên quan để giải quyết vấn đề mà tôi đang làm việc hoặc biết sẽ sớm được giải quyết.
Lea Hayes

2

Tôi thích sử dụng sách vì tôi cảm thấy rằng chúng cung cấp một ảnh chụp nhanh về tình trạng của công nghệ bạn đang làm việc. Tác giả sẽ nói rằng với phiên bản XX của ngôn ngữ / thư viện Y, đây là cách bạn giải quyết vấn đề Z. Có thể không liệt kê các phiên bản mà họ đang sử dụng hoặc cung cấp mã ví dụ mà họ sử dụng trong khi sách thường làm.

Sách thường đề cập đến "tại sao" giải pháp này giải quyết vấn đề trong khi các tài liệu trực tuyến thường sao chép dán.

Bạn cũng có thể thường xuyên mất liên kết đến tất cả các tài liệu tham khảo của mình, chúng có thể di chuyển hoặc đi xuống. Tôi bảo vệ và chăm sóc những cuốn sách của mình như một khoản đầu tư (chính là chúng).


2

Bạn có thể giải quyết vấn đề mà không cần đọc sách, nhưng sau đó bạn sẽ thực sự biết những gì đang xảy ra đằng sau chương trình của mình để giải quyết vấn đề đó?

Bạn cần biết những gì đang xảy ra và những gì có thể là một sự thay thế tốt hơn. Cho rằng bạn cần sách lập trình tốt. Chỉ đọc sách tất nhiên là không đủ, bạn cần hiểu nội dung, xem qua các cuốn sách khác, nghĩ ra các cách tiếp cận khác nhau để giải quyết vấn đề, v.v. Việc học tiếp tục có và không có sách.


1

Khi tôi học C ++, tôi thấy hầu hết các tài liệu đều vô dụng cho đến khi một cái gì đó trong đầu tôi nhấp vào. Cho đến hôm nay tôi không chắc nó là gì, nhưng mọi thứ bắt đầu có ý nghĩa. Sách và trang web sau đó có ý nghĩa hơn nhiều. Tôi đã mất 2 cuốn sách để học cách lập trình trong C ++ và cũng không phải là sách C ++ thực sự (chúng là những cuốn sách Visual C ++ tập trung chủ yếu vào MFC).

Nếu bạn nhận được đúng cuốn sách thì nó có thể thực sự hữu ích. Một người bạn của tôi đã đọc một số cuốn sách Dietel tại uni và tôi thấy những cuốn sách đó được viết rất tốt. Tôi chưa bao giờ tìm thấy những cuốn sách "... cho người giả" hữu ích vì chúng không giải thích mọi thứ theo cách phù hợp với tôi. Lời khuyên tốt nhất là đến một cửa hàng sách và tìm hiểu thêm về cuốn sách để bạn không lãng phí vô số tiền cho những cuốn sách có xu hướng cực kỳ đắt tiền.

Đối với một số chủ đề lập trình tôi thấy hữu ích khi đọc một số sách, thực hiện nghiên cứu thông qua Google và thử nghiệm. Tôi thấy mình làm điều này rất nhiều khi tôi làm việc với các thuật toán AI khi tôi đang làm việc với một trò chơi cờ đam với J2ME. Tôi cũng thấy mình làm điều này khi tôi đang học cách tạo một trình biên dịch trình biên dịch cho các cú pháp tùy chỉnh. Có rất nhiều biến thể và quan điểm khác nhau.

Đôi khi có sự hiểu biết về nhiều chế độ xem cho phép bạn thực hiện các kết nối khó hiểu hơn.


1

Tôi có xu hướng học (lập trình) từ cả hai cuốn sách và các nguồn "chỉ trong thời gian" như web. Cả hai đều có thể tốt nhưng nhìn chung tôi thích học từ sách hơn, đây là lý do:

Khi bạn chỉ học những gì bạn cần biết ngay lập tức để hoàn thành một phần của dự án đôi khi bạn bỏ lỡ bức tranh lớn. Những cuốn sách hay nhất không chỉ đơn thuần là tài liệu tham khảo mà theo một nghĩa nào đó đạt được một cái gì đó gần hơn với việc học nghề, bằng cách cung cấp một cái nhìn tổng quan về công nghệ và rất nhiều lời khuyên dày dạn về các giải pháp tốt nhất cho các vấn đề phổ biến.

Việc học đúng lúc có thể rất dễ gặp phải vấn đề thỏa mãn, khi bạn xác định được một vấn đề bạn muốn giải quyết, bạn chuyển sang giải pháp đầu tiên có vẻ hiệu quả, sau đó bạn chạy đến các interwebs để tìm ra cách thực hiện nó . Tuy nhiên, điều này thường có thể khiến bạn gặp rắc rối, nếu bạn đã có thể nói chuyện với một lập trình viên có kinh nghiệm về vấn đề của bạn, họ sẽ không nói với bạn "đây là cách làm X" thay vào đó họ sẽ nói với bạn "đừng làm X, làm Y thay thế ". Và đây là loại kiến ​​thức mà bạn có xu hướng nhận được từ những cuốn sách hay nhất. Thật vậy, một số cuốn sách hoàn toàn nói về loại điều này, chẳng hạn như Javascript: The Good Parts .

Vấn đề khác mà việc học JIT có thể có là quá trình học chậm hơn nhiều. Với học JIT, bạn có xu hướng chỉ học những gì bạn cần biết. Nhưng thường chỉ cần có một nền tảng kiến ​​thức cơ bản có thể đẩy nhanh việc học một ngôn ngữ hoặc khuôn khổ mới. Thay vì vấp ngã những điều cơ bản, bạn bắt đầu với một nền tảng vững chắc và sau đó xây dựng từ đó. Một khối tài liệu tốt mà bạn có thể bao gồm trong khi đọc một cuốn sách có thể không hữu ích ngay lập tức cho bạn, nhưng có kiến ​​thức nền tảng đó có thể có ích trong việc hướng dẫn việc ra quyết định của bạn và đặc biệt là trong việc hiểu mã mới mà bạn tiếp xúc. Tất nhiên là có sự đánh đổi và có những cuốn sách tồi chỉ chứa đựng những sự thật vô ích mà bạn sẽ không nhớ sau khi đọc chúng, nhưng cũng có những cuốn sách hay giúp bạn có nền tảng tốt về các nguyên tắc cơ bản và những gì '

Cũng có những cuốn sách ở cấp độ cao hơn một chủ đề công nghệ duy nhất mà tôi nghĩ là rất quan trọng để trưởng thành như một nhà phát triển. Những cuốn sách như Hoàn thành mã , Tái cấu trúc , Làm việc hiệu quả với Mã kế thừa , v.v. Bạn sẽ không tiếp thu kiến ​​thức từ những cuốn sách đó chỉ thông qua học tập JIT.


1

Tôi nghĩ rằng tôi sẽ đọc sách. Đặc biệt là tải về sách điện tử. Đọc từng phần của chương. Sao chép mã của họ! dán vào trình chỉnh sửa lập trình của bạn và sau đó xem đầu ra là gì. Sau đó, hãy thử thay đổi logic của nó. Tôi đã đề cập đến sách điện tử có thể tải xuống vì để làm việc nhanh hơn. Sách thực sự tuyệt vời. Tôi không nói dối nhưng kể từ tháng 11 năm ngoái. Tôi đã hoàn thành khoảng 20 cuốn sách. Tất cả đều đòi hỏi phải đọc. Những người mới làm gì là họ giải quyết vấn đề cụ thể bằng cách sử dụng internet. Nhưng khi một nhiệm vụ phức tạp thực sự được trao cho họ, họ từ bỏ. Lý do, không có kiến ​​thức về nhiệm vụ và Giải pháp của nó. Ví dụ: Tôi đã giới hạn các điều khiển với khả năng truy xuất dữ liệu và không biết bộ dữ liệu nào và tôi đã được cung cấp nhiệm vụ để tạo (các) mối quan hệ giữa các bản sao lưu trú của bộ nhớ cơ sở dữ liệu mà tôi không thể làm được.


0

Rất khó để các lập trình viên mới có thể hiểu lập trình thực sự là gì, nó sâu đến mức nào.

Bất cứ ai cũng có thể viết một chương trình để bảo máy tính làm - cũng như mọi thứ với rất ít việc học, điều này không khó! Điều khó là làm cho một chương trình có thể hỗ trợ và có thể được hiểu nhanh chóng và hiểu sâu sắc bởi các thành viên khác trong nhóm, phần này mất nhiều năm, hàng chục năm.

Ngoài ra, học tập để làm việc như một phần hiệu quả của một nhóm là một chút đường cong.

Vậy làm thế nào để sách giúp giải quyết các vấn đề lập trình "Thực" này theo cách tìm kiếm tài liệu tham khảo trên web không?

Vâng, hai cuốn sách yêu thích của tôi là "Mẫu thiết kế" và "Tái cấu trúc".

Tái cấu trúc là một cuốn sách tuyệt vời cho bạn biết cách nhận biết mã xấu. Nếu bạn đã học được bằng cách tra cứu các tài liệu tham khảo về mã hóa, cuốn sách này (Một trong nhiều cuốn sách Tái cấu trúc) là rất quan trọng.

Các mẫu thiết kế không thực sự cung cấp nhiều thứ mà một lập trình viên giỏi không thể tìm ra, nhưng nó đã đặt tên cho một loạt các mẫu mà mọi người đã sử dụng trong mã. Điều này cho phép các lập trình viên giao tiếp hiệu quả hơn và giúp một số lập trình viên tìm ra những cách mới để tấn công các vấn đề. Mặc dù bạn có thể tìm thấy các mẫu thiết kế trên web, nhưng việc tìm kiếm tên của mẫu thiết kế sẽ dễ dàng hơn nhiều so với - google những gì bạn đang cố gắng thực hiện.

Tôi đã được hỏi trong các cuộc phỏng vấn để mô tả hai cuốn sách này và những gì họ đang cố gắng thực hiện, tôi nghĩ đây là một câu hỏi phỏng vấn rất hợp lệ ... Tôi muốn chú ý đến một lập trình viên không biết về hai cuốn sách này sách trừ khi anh ta đang ứng tuyển cho một vị trí cực kỳ trẻ.


0

Tôi học lập trình từ sách trực tiếp. Khoảng 20 năm trước khi google và mạng trở nên phổ biến. Tôi nghĩ rằng họ là nguồn tài nguyên tuyệt vời. Tuy nhiên hầu hết các sách hiện đại chỉ trích dẫn các bài viết kỹ thuật của các nhà sản xuất. Vì vậy, bây giờ tôi đồng ý tốt hơn là học trực tuyến. Với một lời cảnh báo như sau:

Mặc dù tôi đã đọc rất nhiều sách và đã truy cập internet gần như vì nó khả thi về mặt tài chính. Tôi chưa bao giờ, có thể hoàn thành bất kỳ loại dự án lớn nào. Chắc chắn tôi có thể thực hiện nhiều dự án lớn trong những cuốn sách tiên tiến lớn, trong đó họ mất 20 chương để đưa bạn đi qua nó, nhưng khi nói đến các dự án trong thế giới thực của riêng tôi, tôi luôn không thực hiện được một bức tường gạch. Tôi phải nói với bạn, tôi đọc một số sách nặng.

Tôi đã gặp vấn đề trong suốt cuộc đời vào đại học, nhưng giờ tôi đang bước sang năm thứ ba. Trong năm đầu tiên của tôi, tôi đã gặp mọi người vào năm thứ 4, và các bậc thầy, và có thể tổ chức các cuộc trò chuyện hữu ích về các lý thuyết về AI, HCI, trình biên dịch và phát triển trình biên dịch. Nhưng với tất cả kiến ​​thức này, tôi không thể tạo ra một chương trình hợp lý. Tôi đã bỏ lỡ điều gì ... Một điều bạn không thể có được từ bất kỳ cuốn sách hoặc trực tuyến nào.

Kết cấu. Vào năm đầu tiên, tôi không học được gì về bản chất kỹ thuật Trong kỳ nghỉ hè đầu tiên của tôi, tôi đã gần hơn bao giờ hết để hoàn thành công việc thực sự đầu tiên của mình.

Trong năm thứ hai của tôi, tôi đã học được rất nhiều thứ công nghệ mới (vẫn là những điều cơ bản trong comparson với những gì tôi biết, nhưng tôi đã đưa lý thuyết mà tôi biết vào thực tế thực tế). Điều này nhấn mạnh tầm quan trọng của cấu trúc một lần nữa. Tôi chưa hoàn thành dự án thực sự đầu tiên của mình. Bây giờ tôi coi mình là một lập trình viên.

Tôi không tin rằng nó cần thiết để đọc sách để học lập trình. Nhưng nó là một trợ giúp. Tuy nhiên, tôi tin chắc rằng không có cuốn sách hay trang web nào dạy hoặc có thể dạy những gì bạn nhận được từ ngay cả 2 năm đại học. Nếu bạn đã quản lý để hoàn thành các dự án mà không bao giờ học đại học, chơi công bằng, nhưng đó là một kinh nghiệm tôi rất khuyến khích cho dù tuổi tác.

Sách là tốt, internet là tốt hơn, google và bạn ống là fab, nhưng không có gì đánh bại trường đại học giả cũ tốt trong quan điểm của tôi. Và tôi nghi ngờ bất kỳ số lượng googling và youtubing nào sẽ bao giờ, và tôi biết tận mắt rằng sẽ không có số lượng sách nào có thể.


Nơi nó nói ở trên "Tôi chưa hoàn thành dự án thực sự đầu tiên của mình. Bây giờ tôi coi mình là một lập trình viên". Nó nên đọc "Bây giờ tôi đã hoàn thành dự án thực sự đầu tiên của mình. Bây giờ tôi coi mình là một lập trình viên". Xin lỗi về lỗi chính tả.
Jack Spratt

0

Tôi không có đầu mối. Tôi chống lại sách lập trình. Trong hầu hết các trường hợp, bạn vẫn phải nghiên cứu trên Internet để tìm kiếm thêm thông tin.

Bạn có muốn học một ngôn ngữ lập trình? Google cho nó. Tôi ghét jQuery vì nó trông khó. Sau đó, tôi đã đến Stack Overflow, và tôi biết rất nhiều từ đó. Nếu không có sự giúp đỡ của bất kỳ cuốn sách.

  • Google cho nó
  • Nhìn xung quanh để tìm một số ứng dụng nguồn mở hoàn chỉnh, chuyên nghiệp
  • Duyệt mã đó và TRY để biết điều gì đang xảy ra.
  • Cố gắng viết một số ứng dụng nhanh / đơn giản từ các đoạn mã hiện có.
  • Hãy cố gắng viết lại cho chính mình.
  • Tìm thêm hướng dẫn trên Internet
  • Trải nghiệm
  • Trải nghiệm nhiều hơn
  • Bạn vừa học một ngôn ngữ mới! (Tôi không nói bạn sẽ là một chuyên gia, nhưng những điều cơ bản được học trong vài giờ hoặc vài ngày)

Có một cuốn sách làm tài liệu tham khảo rất hữu ích - bạn có được từ kinh nghiệm của người khác. "Cuốn sách" thậm chí có thể là tài liệu / hướng dẫn trực tuyến rộng lớn như django hoặc jquery . Nhưng dùng thử & lỗi + đọc nguồn một mình sẽ để lại những lỗ hổng lớn trong kiến ​​thức của bạn. Bây giờ nếu bạn chỉ cần một vài dòng jQuery, phương thức của bạn sẽ hoạt động nhưng bạn không học ngôn ngữ. Nhưng nếu bạn muốn học C, tôi khuyên bạn nên có K & R làm tài liệu tham khảo. Chắc chắn hầu hết thông tin là trực tuyến ở đâu đó, nhưng rải rác trong nhiều bài viết trên blog.
dr jimbob

0

Tôi nghĩ đúng là chỉ có thể học lập trình từ sách (như hầu hết mọi người đã đề cập), bạn cần thực hành nhiều và có nhiều tài nguyên có sẵn trên internet (bài viết, video, mẫu, v.v.).

Nhưng một cuốn sách hay sẽ lấp đầy những khoảng trống trong kiến ​​thức của bạn. Sau khi đọc bìa sách để che cho bạn niềm tin rằng bạn không có bất kỳ lỗ hổng nào trong kiến ​​thức của bạn về chủ đề này. Mặc dù challange là để tìm những cuốn sách hay về chủ đề này.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.