เหตุใดผู้คนจึงใช้การเขียนโปรแกรมหนังสือ [ปิด]


94

ฉันพบว่าเมื่อมีคนถามว่าวิธีที่ดีที่สุดในการเรียนรู้วิธีการเขียนโปรแกรมคืออะไรคนมักจะให้การอ้างอิงกับข้อความที่เขียนโดยนักเขียนหลายคน

อย่างไรก็ตามฉันไม่เชื่อว่าหลายคนเรียนรู้ที่จะเขียนโปรแกรมจากหนังสือ ฉันพบว่าพวกเขามักจะเผชิญกับความท้าทายแล้วใช้การเขียนโปรแกรมเป็นเครื่องมือในการเอาชนะมัน

ตัวอย่างเช่นฉันเข้าสู่การเขียนโปรแกรมเพราะฉันต้องการเริ่มต้นเซิร์ฟเวอร์สำหรับเกมที่ฉันเล่นดังนั้นฉันจึงไปอ่านและอ่านผ่านการสนับสนุนสำหรับเซิร์ฟเวอร์นั้นและตอนนี้ฉันเป็นวิศวกรซอฟต์แวร์ที่ใช้งานโดยใช้ทักษะที่ฉันพัฒนาขึ้นมาเท่านั้น และพัฒนาต่อไป) โดยการเข้ารหัสสคริปต์ C # สำหรับแพ็คเกจเซิร์ฟเวอร์ที่ไม่เป็นที่นิยมมาก

ดังนั้นคำถามของฉันคือผู้คนทั่วไปเรียนรู้จากหนังสือเหล่านี้ได้ง่ายขึ้นหรือไม่ ฉันรู้ว่าฉันได้ดูพวกเขาสองสามคนและพบว่าพวกเขา 'แห้งแล้ง' มากเกินไปเพื่อกระตุ้นให้ฉันทำมันให้สำเร็จ


3
หนังสือไม่ได้เป็นที่นี่ แต่เป็นข้อได้เปรียบที่ยอดเยี่ยมหากคุณอ่านหนังสือพวกเขาเป็นเพียงหนังสืออีกเล่มที่คุณสนใจ
cnd

42
คุณกำลังพูดถึงการเรียนรู้วิธีการเขียนโปรแกรมตั้งแต่ต้นหรือสิ่งที่ก้าวหน้ากว่านี้? มีความแตกต่างอย่างมากระหว่าง 'Learn C ++ ใน 24 ชั่วโมง' และหนังสือดีเกี่ยวกับทฤษฎีที่ล้ำสมัยมากขึ้น - คุณจะไม่พบงานของ Knuth ทางออนไลน์
AndréParamés

78
ดูเหมือนว่าคุณไม่เคยเจอหนังสือการเขียนโปรแกรมที่ดี
Jaywalker

46
นี่คือการเปรียบเทียบกับคำถาม "ทำไมต้องไปโรงเรียน"
Jodrell

8
ฉันไม่เคยพบหนังสือเป็นเครื่องมือการเรียนรู้หลัก แต่ฉันมีหนังสือเป็นจำนวนมากและฉันแนะนำให้พวกเขาตลอดเวลา เห็นได้ชัดว่าคุณเรียนรู้จากการทำเท่านั้น อย่างไรก็ตามหนังสือเป็นแหล่งความคิดและสามารถใช้เป็นข้อมูลอ้างอิงที่หาได้ง่าย เราไม่ได้อ่าน / แนะนำหนังสือให้เรียนรู้ เราอ่าน / แนะนำหนังสือเพื่อแบ่งปันแนวคิดที่อยู่ในหนังสือ
Joel Etherton

คำตอบ:


229

นี่คือวิธีที่ฉันเรียนรู้พูดโดยทั่วไป:

  • ซื้อหนังสือ
  • อย่าอ่านเพื่อปกปิด แต่รู้ว่าสามารถพบทุกสิ่งได้ที่ไหน
  • ค้นหาโครงการสัตว์เลี้ยงเพื่อทำงาน
  • เรียนรู้จากประสบการณ์ แต่ใช้หนังสือเป็นข้อมูลอ้างอิง
  • ในกรณีที่หนังสือล้มเหลว Google จะมีเสมอ

หมายเหตุ: บางครั้งจุดที่สามมาก่อน

แก้ไข : เพื่อตอบคำถาม "ทำไม"

Google นั้นยอดเยี่ยมในการเรียนรู้วิธีการทำบางสิ่งบางอย่าง แต่มันก็ไม่ได้ดีสำหรับการค้นหาสิ่งที่คุณไม่รู้ ทำไมคุณถึง google "C # ผู้รับมอบสิทธิ์" ถ้าคุณไม่ทราบก่อนว่า C # มีแนวคิดที่เรียกว่าผู้ได้รับมอบหมายและมันอาจมีประโยชน์ในการแก้ปัญหาที่คุณกำลังทำอยู่

นอกจากนี้อัตราส่วนสัญญาณต่อสัญญาณรบกวนอาจสูงเล็กน้อยในบางครั้ง หากคุณมีความคิดคร่าวๆในหัวว่ามีบางอย่างเกิดขึ้นคุณสามารถยืนยันได้อย่างง่ายดายว่าบทความที่คุณกำลังอ่านนั้นถูกต้องหรือไม่ แต่ถ้าคุณไม่มีเงื่อนงำ ... คุณสามารถจบลงด้วยความยุ่งเหยิงที่ยิ่งใหญ่กว่า


19
คำตอบที่ยอดเยี่ยมโดยเฉพาะการแก้ไขเพื่อตอบสนอง "ทำไม" ฉันเพิ่งเริ่มเรียนรู้ ASP.NET และทำได้โดยใช้ google ฉันใช้ C # สำหรับ. NET 2.0 มานานหลายปีดังนั้นคิดว่าฉันจะผ่านได้ ทุกครั้งที่ฉันพบปัญหาฉันพยายามหาคำตอบด้วยการค้นหา google แต่ในไม่ช้ามันก็เห็นได้ชัดว่าฉันแค่กดปลายภูเขาน้ำแข็งของสิ่งที่ฉันสามารถทำได้และฉันก็หายไปอย่างสมบูรณ์ของห้องสมุด หนังสือให้ภาพรวมที่ดีขึ้นของเทคโนโลยีและทุกสิ่งที่ทำได้ หลีกเลี่ยงหนังสือ "เรียนรู้ x ใน 24 ชั่วโมง" และไปหาหนังสือ "ขั้นสูง x" แทน
Gavin Coates

44
+1 สำหรับ "การค้นหาสิ่งที่คุณไม่รู้"
Covar

2
ขยายไปยังจุดที่ 5: เมื่อหนังสือเล่มนี้ล้มเหลวมีเสมอ google และหนังสืออื่น ๆ ในหัวข้อรวมทั้งผู้ที่เริ่มต้นการกำหนดเป้าหมายที่ไม่ใช่ในหัวข้อ
Richard

5
+1 สำหรับ "อัตราส่วนสัญญาณต่อเสียงรบกวนอาจสูงเล็กน้อยในบางครั้งถ้าคุณมีความคิดคร่าวๆในหัวของคุณว่ามีบางอย่างเกิดขึ้นคุณก็สามารถยืนยันได้อย่างง่ายดายว่าบทความที่คุณกำลังอ่านนั้นถูกต้องหรือไม่ ไม่มีเงื่อนงำ ... คุณสามารถจบลงด้วยความยุ่งเหยิงที่ยิ่งใหญ่กว่า "
Tom Squires

9
"ในกรณีที่หนังสือล้มเหลว Google จะมีเสมอ" คุณหมายถึง Stack Overflow;)
Joren

42

สาเหตุบางประการที่ทำให้หนังสือยังมีความเกี่ยวข้อง:

  1. ฉันพบว่าการอ่านข้อความบนกระดาษเป็นเรื่องง่ายกว่าบนหน้าจอ LCD มาตรฐานบางทีหนังสืออิเล็กทรอนิกส์บนจอแสดงผลอิเล็กทรอนิกส์จะเปลี่ยนสิ่งนี้
  2. หนังสือมักจะอธิบายภาพรวมและแนวปฏิบัติที่ดีซึ่งเป็นสิ่งที่ดีจริงๆเมื่อคุณต้องการเริ่มต้นอย่างรวดเร็วหรือมุมมองใหม่
  3. Google ดีจริงๆเมื่อคุณต้องการตัวอย่างในหัวข้อเฉพาะ แต่ไม่ใช่สำหรับภาพรวม

แต่หนังสือจะไม่นำคุณไปตลอดทางเพียงแค่ผลักคุณไปในทิศทางที่ถูกต้อง


2
+1 สำหรับภาพรวม หลังจากที่ฉันเขียนโปรแกรมในภาษา / สิ่งแวดล้อมใหม่มาระยะหนึ่งแล้วฉันพบว่าหนังสือมีประโยชน์จริง ๆ ในการเติมภาพรวมและสิ่งต่าง ๆ ที่ฉันพลาดไปจากการสำรวจตนเอง
Adam Morris

2
บล็อกของเรย์มอนด์เฉินหรือไปลึกชุดบนช่อง 9 เป็นประโยชน์เป็นพิเศษในการเรียนรู้ว่าทำไม เมื่อคุณรู้ว่า " ทำไม " มีอะไรบางอย่างเป็นวิธีการที่จะทำมันกลายเป็นรายละเอียดเล็กน้อยที่สามารถ googled โดยปกติผู้แต่งหนังสือจะสามารถเข้าสู่พื้นหลังเพื่อทำความเข้าใจกับตรรกะของสิ่งที่เกิดขึ้นแทนที่จะพยายามยุ่งเหยิงผ่านสตริงข้อมูลโค้ดที่คุณพบทางออนไลน์
เอียนบอยด์

IMO หนึ่งในข้อได้เปรียบที่สำคัญที่หนังสือมีคือความสามารถในการจับนิ้วมือของคุณในหลาย ๆ ที่พร้อมกันเพื่อให้คุณสามารถพลิกระหว่างส่วนต่าง ๆ ได้อย่างรวดเร็ว ฉันพบว่าสิ่งมีค่านี้เมื่อฉันพยายามเรียนรู้สิ่งใหม่ ๆ โดยการอ่านโค้ดเพราะฉันมักจะมองหาสิ่งอื่น (บางครั้งหลายสิ่ง) เพื่อที่จะเข้าใจสิ่งที่ฉันค้นหาในตอนแรก การนำทางบนหน้าจอไม่เหมือนกัน
TMN

ตกลง ยกตัวอย่างเช่นการกระโดดลงสู่ Asp.Net MVC คุณอาจเข้าใจวิธีการใช้งาน แต่มีหลายสิ่งหลายอย่างที่คุณอาจจะผิดด้วยเช่นกัน ถ้าอย่างนั้นคุณก็เกาหัวว่าทำไมบางอย่างไม่ทำงาน
Andy

28

เมื่อฉันเรียนรู้การเขียนโปรแกรมย้อนกลับไปในยุค 80 หนังสือซึ่งมีแหล่งข้อมูลเพียงแหล่งเดียวเท่านั้นที่สามารถเรียนรู้ภาษาโปรแกรมโดยรวมได้อย่างสมบูรณ์ นอกจากนี้คุณสามารถซื้อนิตยสารคอมพิวเตอร์ได้ แต่เนื้อหาของพวกเขาเป็นบทความแบบสุ่มซึ่งอาจน่าสนใจและมีประโยชน์หรือไม่

ทุกวันนี้คุณสามารถค้นหาข้อมูลทั้งหมดที่คุณต้องการบนอินเทอร์เน็ต แม้ว่าฉันจะถือว่าการกวดวิชาที่สมบูรณ์คล้ายกับหนังสือ

วิธีที่คุณเรียนรู้อาจขึ้นอยู่กับความชอบส่วนบุคคลของคุณหรือตามความต้องการที่แท้จริง

ข้อได้เปรียบของ "ข้อความที่สมบูรณ์" หากหนังสือหรือบทช่วยสอนออนไลน์จะครอบคลุมเนื้อหาที่แม้ว่าจะไม่จำเป็นจริง ๆ ก็จะช่วยคุณในภายหลัง เป็นเพียงการรู้ว่ามีบางสิ่งเป็นไปได้และรู้ว่าจะหาได้ที่ไหน โดยเฉพาะอย่างยิ่งถ้าคุณเรียนรู้เกี่ยวกับสภาพแวดล้อมที่ซับซ้อนหรือภาษาที่ซับซ้อนเช่น C ++ คุณสามารถอ่านบล็อกเล็ก ๆ มากมายเกี่ยวกับ Ruby on Rails โดยไม่เคยได้ยินเกี่ยวกับAjaxหรือเรื่องความปลอดภัย ตราบใดที่คุณเล่นไปรอบ ๆ สิ่งนี้อาจไม่มีปัญหา แต่ถ้าเกิดขึ้นกับฉันคุณอยากจะพัฒนา Ruby on Rails แบบมืออาชีพภายในไม่กี่สัปดาห์จากนั้นการทำงานกับข้อความที่ครอบคลุมประเด็นสำคัญทั้งหมดจะช่วยได้มาก

หนังสือเล่มอื่นครอบคลุมรายละเอียดเกี่ยวกับรูปแบบการเขียนโปรแกรมแนวปฏิบัติที่ดีที่สุดรูปแบบการออกแบบหรืออัลกอริทึมบางกลุ่ม คุณสามารถทำงานร่วมกับพวกเขาและบางทีรูปแบบการออกแบบทั้งหมดที่คุณจะใช้ชุดย่อยขนาดเล็กมากเท่านั้น ถึงกระนั้นมันก็มีประโยชน์ที่จะรู้จักพวกเขาและรู้ว่าจะหาพวกเขาได้ที่ไหน และเป็นเพียงวิธีในการฝึกอบรมกระบวนการคิดของคุณไปในทิศทางที่คุณสนใจในการ "สร้างโซลูชัน" มากกว่า "ทำให้มันทำงาน"

โดยส่วนตัวแล้วฉันชอบอ่านหนังสือดังนั้นฉันจึงไม่มีความรู้สึกว่าหนังสือแห้ง แม้ว่ามันจะเป็นสิ่งสำคัญแน่นอนว่าหนังสือเล่มนี้อยู่ในระดับความรู้ที่แท้จริงของคุณหรือเกิน หากคุณเข้าใจพื้นฐานทั้งหมดของ C # แล้วก็ไม่เหมาะสมที่จะอ่านหนังสือเริ่มต้น


7
+1 สำหรับการกล่าวถึงสิ่งที่ฉันจะเขียน: หนังสือประเภท "แนวปฏิบัติ / ระเบียบวิธีที่ดีที่สุด" นั้นแตกต่างอย่างมากจากหนังสือประเภท "วิธีการใช้ X โดยใช้ Y" และอดีตคือสิ่งที่มีค่าจริงๆเพราะมันสอนประสบการณ์การแก้ปัญหาทั่วไปที่หายาก เมื่อคุณเรียนรู้การทดสอบหน่วยการปรับโครงสร้างการประมาณและอื่น ๆ คุณสามารถใช้และปรับให้เข้ากับโฮสต์ของภาษา / โดเมน / โครงการ
PéterTörök

1
ขอขอบคุณที่กล่าวถึงสไตล์การปฏิบัติและรูปแบบ นี่คือหนังสือที่เป็นประโยชน์จริงๆ คุณสามารถเรียนรู้การโปรแกรมโดยเพียงแค่มีปัญหาในการแก้และแก้ไข คุณเรียนรู้ที่จะเขียนโปรแกรมให้ดีโดยการเรียนรู้รูปแบบการปฏิบัติและรูปแบบ ยังคงเป็นสถานที่ที่ดีที่สุดที่จะได้รับความเข้าใจที่ครอบคลุมของแนวคิดเหล่านี้เป็นข้อความ
Rig

+1 สำหรับ "ครอบคลุมเนื้อหาที่ไม่จำเป็นจริง ๆ แล้วจะช่วยคุณในภายหลัง" - โปรแกรมเมอร์ที่ดีมีความรู้อย่างลึกซึ้ง แม้ว่าคุณจะจำรายละเอียดทั้งหมดไม่ได้ แต่คุณรู้ว่าต้องดึงเธรดและเรียนรู้เมื่อคุณต้องการมันอาจมีค่ามาก!
Jared Updike

22

หนังสือ (หรือเอกสารทางเว็บที่มีโครงสร้างเหมือนหนังสือ) ยังคงเป็นวิธีที่ฉันต้องการในการเรียนรู้ภาษาส่วนใหญ่

หากคุณดำดิ่งลงไปในภาษาและค้นหาสิ่งต่าง ๆ ด้วยตัวคุณเองคุณอาจจะพลาดประเด็นสำคัญซึ่งหนังสือที่ดีจะส่งถึงคุณในเวลาที่เหมาะสม

ตัวอย่างเช่นเพื่อนร่วมงานบางคนของฉันเรียนรู้ Java ด้วยการดำน้ำที่ไม่มีหนังสือ พวกเขาต้องการเขียนโปรแกรมใน Java เป็นเวลาหลายปีเมื่อฉันค้นพบว่าพวกเขากำลังจัดการอาร์เรย์ของ byte [] เป็นประจำโดยการแปลงอาร์เรย์เป็นสตริงโดยใช้. string () แล้วแปลงสตริงกลับเป็นอาร์เรย์ System.ArrayCopy () มีการแนะนำในหน้า 155 ของJava In A Nutshell

ฉันหวังว่าคุณจะรู้ว่าการเรียนรู้กับครูง่ายกว่าคนเดียว หนังสือที่ดีเป็นหนังสือราคาถูกสำหรับครูที่ดี มันจะแนะนำแนวคิดตามลำดับที่วางแผนไว้อย่างรอบคอบเพื่อให้คุณสามารถสร้างความเข้าใจอย่างละเอียด - ไม่เพียงพอที่จะผ่าน


2
+1 สำหรับการชี้ให้เห็นความแตกต่างระหว่างการเรียนรู้ที่จะทำอะไรและเรียนรู้ที่จะทำมันได้ดี
idbrii

หนังสือที่ดีเป็นวิธีที่ดีในการครอบคลุมพื้นที่อย่างรวดเร็ว มีคนทำการค้นคว้าให้คุณแล้ว การหาหนังสือที่ดีอาจเป็นเรื่องยาก มีเวลาที่ฉันมีโอกาส 50/50 ที่จะได้รับหนังสือที่ยอดเยี่ยมในเรื่องที่ฉันสนใจ (ผู้ซื้อที่ดีจริงๆ) ตอนนี้ฉันพบว่าโอกาสในการหาหนังสือดีๆในร้านหนังสือน้อยกว่า 10% อย่างไรก็ตามมีหนังสือดี ๆ มากมายเช่นทรัพยากรที่มีอยู่ในเน็ต การเลือกแหล่งข้อมูลที่เหมาะสมสามารถเพิ่มความเร็วในการเรียนรู้ของคุณ
BillThor

1
ฉันไม่แน่ใจว่าเมื่อถึงเวลานั้น ฉันดูหนังสือ CS เก่าของฉันเมื่อเร็ว ๆ นี้ มาตรฐานมีการปรับปรุงอย่างมากมาย ตัวอย่างเช่นฉันใช้ 'ฟังก์ชั่นการเขียนโปรแกรมกับมิแรนดา' เมื่อหลายปีก่อน ฉันใช้ 'Real World Haskell' เมื่อเร็ว ๆ นี้ หนังสือที่เก่ากว่ากำลังสร้างความประหลาดใจในวันนี้แม้โดยพื้นฐานแล้วจะใช้แนวคิดและกระบวนทัศน์เดียวกันกับ Haskell
บาง

21

ฉันคิดว่าคุณอาจจะทำอะไรบางอย่าง อย่างน้อยสำหรับฉันทักษะส่วนใหญ่ของฉันมาจากการต้องการ / ต้องการโปรแกรมที่ใช้ "X"

บางทีคนที่เรียนรู้ด้วยวิธีนี้จะไม่ขอความช่วยเหลือ พวกเขากำลังยุ่งเกินไปที่จะทำ (ไม่ดี แต่เรียนรู้ไปพร้อมกัน) ผู้ที่ต้องการเป็นโปรแกรมเมอร์ (ตามที่ได้ระบุไว้ในกลุ่มแรก) ถามคำถามมากมายเกี่ยวกับการเป็นโปรแกรมเมอร์หรือวิธีการเขียนโปรแกรมแม้ว่าพวกเขาจะไม่ได้มีปัญหาในการแก้ปัญหา แต่สิ่งเหล่านี้ไม่ได้ คำถามที่มีคำตอบโดยตรง

และเราก็อ่านหนังสือ "ใช่แล้วหยิบสำเนาของ 'Dive to Python'" "นั่นเป็นวิธีที่คุณเรียนรู้หรือไม่?" "ไม่" "อืม ... " "ฉันยุ่งมาก แต่ฉันจะช่วยถ้าคุณจมปลัก" "เอ่อ ... ตกลงฉันเดา"

ในทางกลับกันฉันให้ความสำคัญกับเนื้อหาการอ่านที่ดีเมื่อฉันเรียนรู้เพื่อที่ฉันจะได้เห็นว่าปัญหาที่ฉันพยายามแก้ไขนั้นถูกแก้ไขโดยผู้เขียนที่มีทักษะมากขึ้นหรืออาจจะแค่เรียนรู้บางอย่าง เทคนิค "มือใหม่" ฉันอาจจะไม่ได้ไปตามทาง

TLDR : หนังสือดีการเรียนโดยการทำดีการเรียนโดยการทำหนังสือเป็นอย่างไร


1
+1: ฉันคิดว่าคุณถูกจับ เรียนรู้จากการทำหนังสือที่มีค่าที่สุดที่ฉันมีอยู่นั้นเฉพาะกับแอปพลิเคชันที่ฉันเขียนในขณะนั้น
Justin Shield

41
ระมัดระวังที่จะหลีกเลี่ยงการเป็นโปรแกรมเมอร์ "ที่เรียนรู้ด้วยตนเอง" ที่คิดว่าพวกเขารู้ทุกอย่างเพราะพวกเขาทำงานด้วยปัญหาง่าย ๆ ไม่ดีและรู้สึกว่าตัวเอง "ดีเกินไป" ในการอ่านหนังสือ
Joris Timmermans

2
ควรทราบว่าฉันไม่ได้ต่อต้านการอ่านฉันแค่คิดว่าสื่อดิจิทัลมักเป็นปัจจุบันมากขึ้นและมีส่วนร่วม
Alex Hope O'Connor

2
@Alex เกี่ยวกับสื่อดิจิตอล นั่นขึ้นอยู่กับหัวข้อที่สื่อได้รับการกล่าวถึง หากสื่อกำลังพูดถึงสิ่งต่าง ๆ เช่นวิธีการทำ x ในภาษา y หรือวิธีที่มีประสิทธิภาพที่สุดในการเขียนโค้ดใน z ดังนั้นฉันเห็นด้วยกับคำชี้แจงของคุณ อย่างไรก็ตามหัวข้ออื่น ๆ (มักจะสูงกว่าหัวข้อทางทฤษฎี) เช่น NP, P, การวิเคราะห์อัลกอริทึม, ฯลฯ IMHO มักได้รับการกล่าวถึงอย่างดีที่สุดจากตำราเรียน ใช้ของ Knuth ศิลปะของการเขียนโปรแกรม มันค่อนข้างเป็นข้อความเก่า แต่ก็ยังถือว่าเป็นหนึ่งในหนังสือที่สำคัญที่สุดในการเขียนโปรแกรม
cledoux

16
ฉันคิดว่านี่เป็นกรณียืนยันอคติ @Alex ดูเหมือนจะมองหาคำตอบบางอย่าง ฉันไม่ได้พูดคำตอบนี้ไม่ดีต่อ se แต่แน่นอนว่าไม่ใช่คำตอบที่ดีที่สุดจากจินตนาการใด ๆ
zzzzBov

15

ฉันรักการอ่านหนังสือทางเทคนิค ไม่ใช่หนังสือทางเทคนิคทุกเล่มเพียงเล่มที่เกี่ยวกับหัวข้อเฉพาะที่ฉันสนใจพูดว่า Sharepoint ฉันจำหนังสือเล่มแรกที่ฉันอ่าน (หลาย ๆ ครั้ง) ของ Windows Programming โดย Charles Petzold ด้วยเหตุนี้และอื่น ๆ อีกมากมายฉันจึงสามารถเขียนแอปพลิเคชัน Win32 จากหน่วยความจำได้ ฉันแทบจะไม่ต้องค้นหา API ดังนั้นฉันจึงสามารถมุ่งเน้นไปที่ส่วนธุรกิจแทน

ฉันรู้สึกว่าหนังสือมีวิธี "ผู้มีอำนาจ" ในการทำบางสิ่งบางอย่างบางทีโดยคนที่รู้วิธีที่ถูกต้องในการทำสิ่งที่ดีกว่าฉัน ฉันเชื่อมั่นในสิ่งที่ฉันเรียนรู้คือกล้าพูดได้ว่าวิธีที่ดีที่สุดในการแก้ปัญหาของฉัน แน่นอนว่าถ้าฉันเชื่อใจผู้แต่ง (ต้องชื่นชอบบทวิจารณ์ใน Amazon)

แม้ว่าฉันจะพบว่าตัวเอง "googling" มากขึ้นเรื่อย ๆ และการคัดลอกและวางเมื่อฉันพยายามที่จะแก้ปัญหาฉันใช้เวลาอย่างมากเพื่อให้แน่ใจว่าสิ่งที่ฉันกำลังคัดลอก (หรือได้รับแรงบันดาลใจจาก :) เป็นสิ่งที่น่าเชื่อถือ สามารถใส่รหัสของฉัน เพียงเพราะฉันพบทางออกบนเว็บมันไม่จำเป็นต้องดีที่สุด

ในขณะที่ฉันเหมือนโปรแกรมเมอร์คนอื่น ๆ ตอนนี้เพียงแค่ google คำตอบฉันยังพบว่าตัวเองหยิบหนังสือจากผู้เขียนที่รู้จัก ฉันรู้สึกว่าเนื้อหาถูกนำมาให้ฉันโดยคนที่ดีในการอธิบาย (สอนมัน) และมันช่วยให้ฉันไม่ต้องกรองขยะทั้งหมดจากผลลัพธ์ Google ของฉัน


14

ฉันคิดว่าคำถามของคุณไม่ได้มีความหมายว่า "ทำไมต้องใช้เทคโนโลยีแบบเก่าเช่นหนังสือที่พิมพ์แทนที่จะเป็นหน้า HTML" แต่ "ทำไมอ่านข้อความที่ยาวขึ้นเกี่ยวกับการเขียนโปรแกรมที่เขียนโดยผู้เขียนหนึ่งหรือสองคน"

คุณสามารถนึกถึงหนังสือเป็นชุดข้อมูลที่มีโครงสร้างเกี่ยวกับเรื่องบางเรื่อง มันมีข้อได้เปรียบที่ใครบางคนพยายามที่จะสร้างแต่ละบทให้กันเพื่อให้เข้าใจหัวข้อง่าย โดยปกติแล้วคุณจะได้รับการบอกกล่าวว่าขอบเขตของข้อมูลคืออะไร (ครอบคลุมอะไรบ้างและมีอะไรอีกบ้างที่คุณต้องระวังที่อื่น) หลังจากอ่านและทำงานกับมันแล้วคุณสามารถมั่นใจได้ว่าจะมีทักษะที่แน่นอน หากคุณต้องการเรียนรู้ด้วยการกดปุ่มกรอไปข้างหน้าหนังสือเล่มหนึ่งสามารถบังคับให้คุณทำงานผ่านทุกด้านโดยไม่ต้องข้ามส่วนที่น่าเบื่ออย่างน้อยถ้าคุณเชื่อถือโครงสร้างของหนังสือ คอลเลกชันชื่อ "หนังสือ" ส่วนใหญ่มักจะมีประโยชน์เป็นข้อมูลอ้างอิงเช่นกัน

การใช้อินเทอร์เน็ตบล็อก "เล่นซอรอบ ๆ " ฯลฯ มักจะอยู่ในประเภทของข้อมูลที่ไม่มีโครงสร้าง คุณได้รับบิตและชิ้นส่วนของปัญญา แต่คุณต้องค้นหางานเพิ่มเติมเพื่อสร้างความรู้ของคุณเพราะไม่มีใครจะแนะนำคุณในการพูดว่า "เรียนรู้สิ่งนี้ก่อนหรือคุณจะไม่เห็นข้อดีของสิ่งนั้น ตอนนี้ googled " คุณอาจจะพลาดบางส่วนเพราะมันน่าเบื่อเกินไปหรือไม่มีใครบอกคุณว่ามันสำคัญ คุณอาจเรียนรู้สิ่งผิดปกติเพราะทุกสิ่งที่เขียนบนอินเทอร์เน็ตไม่ใช่คุณภาพแรก คุณอาจใช้เวลามากในการกรองผลการค้นหาที่ไร้ประโยชน์ คุณอาจเสียเวลาหลายวันกับการพยายามทำอะไรบางอย่างด้วยตัวเองเพียงเพราะคุณไม่รู้จักรูปแบบการออกแบบหรือการเขียนโปรแกรมบางอย่างและไม่มีใครบอกคุณ ยิ่งคุณรู้น้อย

ถ้าจะบอกว่าเขาไม่เคยอ่านหนังสือเกี่ยวกับการสร้างสะพานหรือการวิเคราะห์เชิงโครงสร้าง แต่เพิ่งเรียนรู้โดยการเล่น ๆ ไปมาและใช้ Google ...


คำถามของฉันสามารถตีความได้ว่าเป็นจริง แต่อย่างหลังคือฉันทามติทั่วไปของฉัน
Alex Hope O'Connor

10

หากคุณเป็นโปรแกรมเมอร์ C คุณคาดหวังที่จะเรียนรู้ Python โดยไม่ต้องมีหนังสือหรืออาจารย์อย่างไร

หากคุณเพิ่งเรียนรู้ไวยากรณ์พื้นฐานและการดำน้ำที่ถูกต้องคุณจะต้องเขียนโค้ด C ใน Pythonและมาถึงข้อสรุปที่ผิด ๆ ว่า Python เหมือน verbose และเจ็บปวดมากเช่น C


นั่นเป็นการพูดเกินจริง หากคุณเริ่มเขียนโปรแกรม Python คุณสามารถ google ตอบปัญหาและค้นหาสิ่งต่าง ๆ เช่นสูตร Pythonที่อธิบายวิธีแก้ปัญหาแบบ Pythonic สำหรับปัญหาเฉพาะ
idbrii

6
@pydave: ถ้ามันพูดเกินจริงแล้วมีจะไม่มาก C-รหัสเขียนในหลามในดังนั้น(ตัวอย่าง)
BlueRaja - แดนนี่ Pflughoeft

4
ฉันอ่านคำถามตัวอย่างอ่านคำตอบของคุณและฉันเข้าใจสิ่งที่คุณหมายถึง: การเรียนรู้ไวยากรณ์พื้นฐานไม่เหมือนกับการเรียนรู้ภาษา (ฉันไม่ได้คิดที่จะไม่เรียนรู้โครงสร้างของภาษา) หากคุณเรียนรู้ Python เพียงพอที่จะเขียนรหัส C ใน Python คุณก็ยังไม่ได้เรียนรู้การเขียนโปรแกรมใน Python
idbrii

นี่เป็นปัญหาร้ายแรงที่สมควรได้รับความสนใจมากขึ้น ภาษาโปรแกรมทั้งหมดนั้นทัวริงสมบูรณ์ซึ่งหมายความว่าคุณสามารถแก้ปัญหาใด ๆ ได้โดยการเขียนรหัส P-like Python หรือ Ruby Ruby เหมือน Java ไม่มีสิ่งกีดขวางบนถนนที่จะบังคับให้คุณต้องปฏิบัติตาม zeitgeist ของภาษาที่คุณกำลังเขียนโปรแกรมแย่กว่านั้นคุณอาจไม่รู้สึกถึงความเจ็บปวดของความไร้ประสิทธิภาพในการเขียนโค้ดเพราะมันจะเจ็บปวดพอ ๆ กับภาษา C หรือเป็นเจ้าของภาษา Java ซึ่งเป็นระดับความเจ็บปวดที่คุณยอมรับมาตามปกติ
ลิ่ม

ไม่สามารถตกลงเพิ่มเติม - ฉันเป็นโปรแกรมเมอร์ C ใน PHP เมื่อฉันเขียนใด ๆ : - |
วอร์เรน

9

โดยทั่วไปแล้ว Google จะใช้สำหรับค้นหาโค้ดขนาดเล็กหรือไลบรารีโอเพนซอร์สเท่านั้น เอกสารสำหรับบางไลบรารี / โปรแกรมไม่น่าเชื่อถือที่สุด (ถ้ามีอยู่จะแสดงเฉพาะตัวอย่างง่าย ๆ หรือทั่วไป)

ฉันไม่มีหนังสือการเขียนโปรแกรมมากมาย แต่ฉันสามารถบอกคุณได้ตอนนี้ว่าฉันมีหนังสือเกี่ยวกับ OpenGL และมันมีรหัสส่วนใหญ่สำหรับเอ็นจิ้นสามมิติในนั้นซึ่งคุณสามารถคัดลอกได้ แต่คุณสามารถ อ่านทฤษฏีเช่นกัน - คุณเพียงแค่ต้องเปลี่ยนหน้าไม่กี่หน้าและคำอธิบายของรหัสนั้นอยู่ตรงนั้นรออ่าน ทุกวันนี้คุณอาจพบเอ็นจิน 3D แบบโอเพนซอร์สบนเน็ต แต่ถ้าคุณต้องการเปลี่ยนรหัสอย่างมากคุณอาจมีปัญหา - โดยทั่วไปจะไม่มีฟอรัมช่วยเหลืออยู่และผู้คนบน SO จะไม่รู้จัก ตอบคำถามของคุณหากเป็นผู้เชี่ยวชาญ เมื่อพูดถึงสิ่งที่พิเศษจริงๆ มีเพียงไม่กี่โหลคนทั่วโลกเท่านั้นที่จะสามารถตอบคำถามของคุณได้โดยไม่ต้องใช้เวลาหลายชั่วโมงเพื่อที่จะคิดให้ดีพอที่จะอยู่ในฐานะที่จะได้คำตอบ หากคุณถามวิธีการนำรายการที่เชื่อมโยงไปใช้ใน C # คุณจะได้รับคำตอบมากกว่า 5 คำตอบในช่วง 10 นาทีแรก แต่ถ้าคุณถามว่าวิธีที่ดีที่สุดในการใช้อัลกอริธึมการแรเงาแบบซับซ้อนใน three.js คืออะไร คำถามของคุณกำลังจะจมลงไปในหน้าแรกเหมือนก้อนหิน

ยิ่งกว่านั้นหนังสือจะถูกเขียนขึ้นโดยเฉพาะอย่างยิ่งจากมุมมองที่ผู้อ่านต้องการเรียนรู้เกี่ยวกับทฤษฎีที่เกี่ยวข้องในขณะที่ Google เพิ่งสร้างตัวอย่างรหัสขยะแบบสุ่มการอภิปรายที่เก็บถาวรเกี่ยวกับเรื่องที่ไม่มีใครรู้ว่าพวกเขากำลังพูดถึงอะไร เป็นต้นแหล่งที่มาบนอินเทอร์เน็ตได้ดีขึ้นมาก: ดังนั้น, เครือข่าย Moz Dev, เว็บไซต์ของ Microsoft, บล็อก, ฯลฯ แต่ในอดีตหนังสือมีความเป็นมาที่ดีกว่ามาก


1
+1 สำหรับการชี้ให้เห็นเวลาที่คุณต้องการที่จะสังคายนาขยะสุ่มกับ "เรียนรู้โดย googling" วิธีการ
เรย์

1
+1 สำหรับ 'การสนทนาที่เก็บถาวรเกี่ยวกับเรื่องที่ไม่มีใครรู้ว่าพวกเขากำลังพูดถึงอะไร ฯลฯ ' - ROFL
5arx

7

คุณภาพการเขียนในหนังสือที่ดีที่สุดนั้นเป็นประเด็นที่ไม่ชัดเจนมากมายก่อนที่คุณจะเริ่มต้น ผู้เขียนที่มีประสบการณ์มากมายจะรู้ที่จะบอกคุณเกี่ยวกับสิ่งต่าง ๆ เช่น: ผลข้างเคียงที่ไม่คาดคิดผลกระทบระยะยาวคุณสมบัติที่ไม่มีเอกสารสถานการณ์การใช้งานทั่วไป ...

โดยทั่วไปคุณจะได้รับประโยชน์จากนักเขียนที่มีประสบการณ์มากมายที่นำคุณสู่ปัญหาและชี้ให้เห็นสิ่งที่น่าสนใจอย่างแท้จริง

บางครั้งคุณสามารถพบสิ่งนี้ได้ในการอ้างอิงออนไลน์เช่นกัน แต่เนื่องจากอุปสรรคในการเข้าสู่ข้อมูลจำนวนมากทางออนไลน์นั้นขั้นพื้นฐานต่ำเกินไปขาดรายละเอียดหรือไม่ถูกต้อง สิ่งนี้สามารถเกิดขึ้นได้กับหนังสือด้วยเช่นกันดังนั้นให้แน่ใจว่าคุณเชื่อในหนังสือเหล่านั้นซึ่งเป็นหนังสือคลาสสิกที่มีบทวิจารณ์ที่ดีอยู่เสมอ หนังสือเล่มอื่น ๆ ก็มีประโยชน์ แต่เป็นเพียงหนึ่งในแหล่งข้อมูลที่คุณจะต้องตรวจสอบข้อมูลโดยการอ้างอิงข้ามหรือลองด้วยตัวเอง


1
+1000 'ผิดผิดไปหมดทันที' มีตัวอย่างโค้ดมากมายออนไลน์เขียนโดย 'โปรแกรมเมอร์ที่ดีที่สุด' ที่ไม่ได้คอมไพเลอร์ผู้ใช้หรือรู้ว่าพวกเขากำลังพูดถึงอะไร นอกจากนี้หนังสือที่ดีจะถูกเขียนด้วยรูปแบบการสอนที่แนะนำแล้วเสริมเนื้อหาในลักษณะที่สอดคล้องและอ่านได้
jqa

6

หนังสือมักจะมาพร้อมกับข้อมูลจำนวนมากในรูปแบบที่มีโครงสร้าง Google มีแนวโน้มที่จะมีข้อมูลจำนวนมากซึ่งไม่ได้มีโครงสร้างเป็นพิเศษเสมอไปและยากต่อการจัดระเบียบในแง่ของสิ่งที่คุณต้องทำ

ฉันไม่ได้อ่านหนังสือกระดาษจริงอีกต่อไป - มีเครื่องอ่านอิเล็กทรอนิกส์อยู่ข้างฉันและฉันมีซอฟต์แวร์ Kindle บนแล็ปท็อปของฉันซึ่งทำให้ฉันสามารถเข้าถึงข้อมูลที่ฉันกำลังมองหาได้

ที่ Google มีประโยชน์คือถ้าคุณไม่ได้มองหาภาพรวมที่มีโครงสร้างของวิธีการโปรแกรม แต่ต้องการรายละเอียดเกี่ยวกับวิธีการโปรแกรมงานเฉพาะ มีคนเขียนโค้ดเกือบทุกครั้งสำหรับงานนั้นมาก่อนหรืออย่างน้อยก็มีบางอย่างที่คล้ายกัน

ฉันคิดว่ามีความแตกต่างระหว่างการเรียนรู้ที่จะเขียนโปรแกรมและการเรียนรู้ที่จะเขียนโปรแกรมงานที่เฉพาะเจาะจง ฉันจะถามถึงคุณภาพของรหัสที่มาจากใครบางคนที่เคยเรียนรู้บิตและชิ้นส่วนจากงานเฉพาะของ googling หากพวกเขาไม่เคยได้รับภาพรวมที่ดีเกี่ยวกับวิธีการเขียนโปรแกรม นี่ไม่ใช่ภาษาเฉพาะมันเป็นแนวคิดมากกว่า


4

หนังสือมีประโยชน์ถ้าคุณต้องการเจาะลึกเรื่อง แน่ใจว่าฉันได้เรียนรู้ C # จากการทำแบบฝึกหัดและเขียนโครงการ (สัตว์เลี้ยง) แต่ความลึกของ C # ยังคงมีประโยชน์ในการดูว่าเกิดอะไรขึ้นข้างใต้และเรียนรู้สิ่งใหม่ ๆ

นอกจากนี้ฉันยังสามารถเขียนโปรแกรมหนังสือและอ่านมันในอ่างอาบน้ำหรือนอกแดด ฉันทำอย่างนั้นกับพีซีตั้งโต๊ะไม่ได้


4

เพราะมันเป็นวิธีที่สะดวกในการเรียนรู้จากโปรแกรมเมอร์คนอื่น ๆ

หนังสือเป็นอาหารเสริม คุณสามารถทำงานได้อย่างรวดเร็วด้วยตัวคุณเอง ใครบ้างที่ไม่อยากอยู่ในโปรเจคที่มีโปรแกรมเมอร์ที่ดีกว่าเต็มใจที่จะสอนคุณมากกว่าการอ่านหนังสือ

ฉันมักจะใช้มันเป็นข้อมูลอ้างอิงมากกว่า "ทุกสิ่งที่คุณจำเป็นต้องรู้เกี่ยวกับการเขียนโปรแกรม"


3

หนังสือช่วยให้คุณสามารถดูดซับชุดข้อมูลในลักษณะ "แฝง" คุณไม่ต้องมองสิ่งที่เป็นไปได้ที่คุณจะได้รับการนำเสนอบางส่วนของความเป็นไปได้ เมื่อฉันเรียนรู้ C # หนังสือเล่มนี้ช่วยชี้ให้เห็นถึงความเป็นไปได้และสงสัยว่าอะไรเทียบเท่า C ++ แน่นอนว่าการเรียนรู้เกิดขึ้นเมื่อใช้ในโครงการ (ขนาดจริง) แต่หนังสือเล่มนี้ช่วยชี้ให้เห็นถึงความแตกต่างและความเป็นไปได้


3

ในระยะสั้นฉันคิดว่าหนังสือมีแนวโน้มที่จะเป็นประโยชน์ในระดับสูง พวกเขาสามารถให้คำแนะนำในการออกแบบและช่วยคุณป้องกันปัญหาแทนที่จะแก้ไขได้


หนังสือมีข้อเสียอย่างแน่นอน สำเนาของการเขียนโปรแกรม Pythonของฉันครอบคลุม Python 2.0 แต่รันไทม์ที่ฉันใช้คือ 2.6

อย่างไรก็ตามฉันคิดว่าสิ่งสำคัญของหนังสือคือคุณสามารถค้นหาสิ่งต่าง ๆ ที่คุณจะไม่สะดุดกับตัวเอง Google ช่วยคุณแก้ปัญหาเฉพาะ แต่หนังสือจะช่วยคุณออกแบบ และไม่ใช่แค่ออกแบบหนังสือ หากคุณอ่านหนังสือที่ดีที่ช่วยให้คุณเข้าใจการออกแบบภาษาคุณจะเข้าใจวิธีการใช้ภาษานั้นดีขึ้น

หนังสือเล่มอื่นดีสำหรับการปรับปรุงความรู้ของคุณ ฉันคิดว่าหนังสือ C ++ ที่มีประสิทธิภาพของ Scott Murphy เป็นตัวอย่างที่ดี ในขณะที่หนังสือเล่มนี้ไม่ดีมากสำหรับการเรียนรู้ C ++ มันช่วยให้คุณเห็นปัญหาในการออกแบบอัลกอริทึม / อินเทอร์เฟซ / การสืบทอดที่คุณยังไม่ได้เจอ (หรือ) อาจเป็นเรื่องง่ายที่จะหาวิธีแก้ปัญหาอย่างง่าย (ซึ่งทำให้เกิดปัญหาอื่น ๆ ในภายหลัง) แต่ด้วยการเข้าใจภาษาดีกว่าคุณสามารถออกแบบซอฟต์แวร์ของคุณเพื่อหลีกเลี่ยงปัญหาเหล่านี้ได้ตั้งแต่แรก

แน่นอนว่าไม่ใช่หนังสือที่พิมพ์บนกระดาษที่คุ้มค่า การดูแลและความพยายามที่จะสร้างพวกเขาและความปรารถนาที่จะให้การศึกษาที่เข้มงวดเป็นสิ่งที่ให้คุณค่ากับหนังสือ มักจะเป็นผลข้างเคียงที่คุณได้รับแหล่งข้อมูลออนไลน์ที่มีประโยชน์เช่นC ++ คำถามที่พบบ่อย Liteหรือ ebooks เช่นดำน้ำในหลาม นอกจากนี้ยังมีบทช่วยสอนออนไลน์เท่านั้นที่เป็นเครื่องมือการเรียนรู้อย่างละเอียดและมีประโยชน์ (เช่นเอกสารประกอบสำหรับบางแพลตฟอร์ม / ภาษา / ห้องสมุด)

ตัวอย่างบนเว็บเป็นวิธีที่ดีในการตอบคำถามของคุณ แต่พวกเขามักไม่ค่อยบอกคุณว่าคุณควรถามอะไร


3

ฉันต้องการเป็นโปรแกรมเมอร์ดังนั้นฉันจึงใช้หนังสือโปรแกรม หนังสือจะช่วยให้ฉันมีทักษะในการเขียนโปรแกรมอย่างมืออาชีพ


3

ฉันไม่ได้อ่านหนังสือเขียนโปรแกรมมานานแล้ว ฉันใช้เพื่อใช้เป็นคู่มืออ้างอิง แต่ตอนนี้ฉันคิดว่าอินเทอร์เน็ตง่ายขึ้นสำหรับภาษาและกรอบงานส่วนใหญ่

อย่างไรก็ตามฉันคิดว่าสิ่งที่ดีที่สุดในการเรียนรู้จากการเขียนโปรแกรมหนังสือเป็นภาษาหลัก เช่นภาษาแรกของฉันคือ C. ฉันเรียนรู้มันโดยการเขียนระบบปฏิบัติการ (ฉันไม่แนะนำสิ่งนี้) เป็นผลให้ความรู้ของฉันของ C เป็นง่อยแม้หลังจากสองหรือสามปีของการเขียนโปรแกรมในนั้น ฉันไม่เคยมีความรู้พื้นฐานที่ดีเกี่ยวกับภาษา ฉันไม่รู้ว่าฉันสามารถเปลี่ยนรหัสยุ่ง 15 บรรทัดเป็นรหัสสองสายที่สะอาดได้ ดังนั้นฉันจึงสามารถแก้ปัญหาได้ แต่ฉันไม่ได้ใช้ C อย่างเต็มที่

เมื่อถึงจุดหนึ่งฉันตัดสินใจที่จะเรียนรู้ C ++ ... (ประมาณ 2 ปีหลังจากเริ่มเรียนรู้ C) ดังนั้นฉันจึงอ่านหนังสือ C ++ เพียงเล่มเดียวที่ฉันมีอยู่หนังสือ C ++ สำหรับหนังสือหุ่น ฉันอ่านเกี่ยวกับ 3 / 4th ของมันตรงทำน้อยมาก "ทำ" ในช่วงเวลานั้น .. และเป็นผลเมื่อฉันได้กระโดดลงในโครงการแรกของฉันแทนที่จะเป็นความสะดวกสบายกับรหัสยุ่ง 15 บรรทัดฉันรู้ว่ามี วิธีที่ง่ายกว่าในการทำ (แม้ว่าฉันอาจต้องค้นหามัน)

ฉันทำสิ่งเดียวกันเมื่อฉันเรียนรู้ C # / ASP.NET ฉันแทบจะไม่ทำอะไรเลยนอกจากอ่านจนเสร็จประมาณ 3 ใน 4 ของหนังสือ และสำหรับสิ่งที่ฉันไม่ได้เรียนรู้ฉันเรียกดู Stack Overflow สำหรับคำถาม C # ที่น่าสนใจ เมื่อฉันก้าวเข้าไปในโครงการแรกของฉันฉันจะบอกว่าส่วนใหญ่ของรหัสของฉันค่อนข้างสะอาดและมีเพียงต้องได้รับ "refactored" มหาศาล "ตั้งแต่นั้นมา

ดังนั้นฉันจะบอกว่าหนังสือมีประโยชน์มากสำหรับการเรียนรู้ความสามารถของกรอบหรือภาษา นอกเหนือจากนั้นพวกเขาส่วนใหญ่ไม่ได้ใช้ประโยชน์จากอินเทอร์เน็ตยกเว้นหลักสูตรหนังสือเชิงทฤษฎีที่แข็งแกร่งและได้รับการออกแบบมาเพื่ออ้างอิงโดยเฉพาะ


2

มันเกี่ยวกับสิ่งที่คุณอ่านน้อยลง แต่จะมากน้อยเพียงใด ฉันชอบที่จะมีหนังสือโปรแกรมสองเล่มในระหว่างการเดินทางในขณะที่ฉันกำลังทำงานในโครงการ ทุกครั้งแล้วครั้งเล่า (บ่อยกว่าที่คุณคิด) คุณจะอ่านเกี่ยวกับเทคนิคที่สามารถนำไปใช้กับโครงการปัจจุบันของคุณ

เมื่อคุณนำไปใช้ในการแก้ปัญหาในโลกแห่งความเป็นจริงข้อมูลจะติด


2
ฉันจริงพบว่ากรณีเมื่อตอบคำถามในเว็บไซต์เช่น SE ฉันมักจะพบว่าความคิดเห็นที่นำฉันไปสู่ข้อมูลที่เกี่ยวข้องกับการแก้ปัญหาที่ฉันกำลังทำงานอยู่หรือรู้ว่าจะทำงานเร็ว ๆ นี้
Lea Hayes

2

ฉันชอบใช้หนังสือมากกว่าเพราะฉันรู้สึกว่าพวกเขาให้ภาพรวมของเทคโนโลยีที่คุณกำลังทำอยู่ ผู้เขียนจะระบุว่าด้วยภาษา Y / ไลบรารี XX เวอร์ชันนี่คือวิธีที่คุณแก้ปัญหา Z. บทเรียนเว็บไซต์อาจล้มเหลวในการแสดงรายการรุ่นที่พวกเขาใช้หรือให้รหัสตัวอย่างที่พวกเขาใช้ในขณะที่หนังสือมักจะทำ

หนังสือมักครอบคลุมถึง "สาเหตุ" วิธีแก้ปัญหานี้แก้ปัญหาได้ในขณะที่เอกสารออนไลน์มักจะคัดลอกวาง

คุณมักจะสูญเสียลิงก์ไปยังข้อมูลอ้างอิงทั้งหมดของพวกเขาพวกเขาสามารถย้ายหรือลงไป ฉันปกป้องและดูแลหนังสือของฉันเหมือนการลงทุน (ซึ่งพวกเขาเป็น)


2

คุณสามารถแก้ปัญหาได้โดยไม่ต้องอ่านหนังสือ แต่คุณจะรู้ได้อย่างไรว่าเกิดอะไรขึ้นหลังโปรแกรมของคุณเพื่อแก้ปัญหานั้น

คุณจำเป็นต้องรู้สิ่งที่เกิดขึ้นและสิ่งที่อาจเป็นทางเลือกที่ดีกว่า เพื่อที่คุณต้องการหนังสือการเขียนโปรแกรมที่ดี เพียงแค่อ่านหนังสือแน่นอนว่าไม่เพียงพอคุณต้องเข้าใจเนื้อหาอ่านหนังสืออื่น ๆ คิดถึงวิธีการต่าง ๆ ในการแก้ปัญหาและอื่น ๆ การเรียนรู้ดำเนินต่อไปโดยมีและไม่มีหนังสือ


1

เมื่อฉันเรียนรู้ C ++ ฉันพบว่าวรรณคดีส่วนใหญ่ค่อนข้างไร้ประโยชน์จนกระทั่งมีบางสิ่งในหัวของฉันคลิก ถึงวันนี้ฉันไม่แน่ใจว่ามันคืออะไร แต่ทุกอย่างเริ่มมีเหตุผล จากนั้นหนังสือและเว็บไซต์ก็มีความหมายมากกว่า ฉันใช้หนังสือ 2 เล่มเพื่อเรียนรู้วิธีการเขียนโปรแกรมใน C ++ และไม่ใช่หนังสือ C ++ ที่แท้จริง (เป็นหนังสือ Visual C ++ ซึ่งเน้นที่ MFC เป็นหลัก)

หากคุณได้รับหนังสือที่ถูกต้องมันจะมีประโยชน์มาก เพื่อนของฉันคนหนึ่งกำลังอ่านหนังสือของดีเอเทลที่ฉันพบว่าหนังสือเหล่านั้นเขียนได้ดีมาก ฉันไม่เคยพบหนังสือ "... for Dummies" ที่มีประโยชน์เพราะพวกเขาไม่ได้อธิบายสิ่งต่าง ๆ อย่างถูกต้องสำหรับฉัน คำแนะนำที่ดีที่สุดคือไปที่ร้านหนังสือและลองชิมหนังสือเล่มนี้เพื่อที่คุณจะได้ไม่ต้องเสียเงินมากมายกับหนังสือที่มีราคาแพงมาก

สำหรับหัวข้อการเขียนโปรแกรมบางอย่างฉันพบว่ามีประโยชน์ในการอ่านหนังสือหลายเล่มทำการวิจัยผ่าน Google และการทดลอง ฉันพบว่าตัวเองทำสิ่งนี้มากมายเมื่อฉันทำงานเกี่ยวกับอัลกอริธึม AI เมื่อฉันทำงานเกมหมากรุกกับ J2ME ฉันก็พบว่าตัวเองกำลังทำสิ่งนี้เมื่อฉันเรียนรู้วิธีสร้างคอมไพเลอร์คอมไพเลอร์สำหรับไวยากรณ์ที่กำหนดเอง มีรูปแบบและมุมมองที่แตกต่างกันมากมาย

บางครั้งการมีความเข้าใจในหลาย ๆ มุมมองช่วยให้คุณทำการเชื่อมต่อที่ไม่ชัดเจนมากขึ้น


1

ฉันมักจะเรียนรู้ (การเขียนโปรแกรม) จากทั้งหนังสือและแหล่ง "ทันเวลา" เช่นเว็บ ทั้งคู่สามารถทำได้ดี แต่โดยรวมแล้วฉันชอบที่จะเรียนรู้จากหนังสือมากขึ้นด้วยเหตุนี้:

เมื่อคุณเรียนรู้เฉพาะสิ่งที่คุณต้องรู้ทันทีเพื่อทำส่วนหนึ่งของโครงการให้เสร็จในบางครั้งคุณอาจพลาดภาพใหญ่ หนังสือที่ดีที่สุดไม่ได้เป็นเพียงแค่การอ้างอิง แต่ในแง่หนึ่งคุณสามารถบรรลุสิ่งที่ใกล้เคียงกับการฝึกงานโดยให้ภาพรวมที่รอบด้านของเทคโนโลยีและคำแนะนำที่มีประสบการณ์มากมายเกี่ยวกับการแก้ปัญหาที่ดีที่สุดสำหรับปัญหาทั่วไป

การเรียนรู้แบบทันเวลาสามารถประสบปัญหาจากความพึงพอใจได้อย่างง่ายดายเมื่อคุณระบุปัญหาที่คุณต้องการแก้ปัญหาให้คุณข้ามไปยังวิธีแก้ปัญหาแรกที่ดูเหมือนว่าใช้งานได้แล้วจากนั้นคุณก็วิ่งไปที่ interwebs . อย่างไรก็ตามบ่อยครั้งที่สิ่งนี้จะทำให้คุณเดือดร้อนหากคุณสามารถสนทนากับโปรแกรมเมอร์ที่มีประสบการณ์เกี่ยวกับปัญหาของคุณพวกเขาจะไม่บอกคุณว่า "นี่คือวิธีการทำ X" พวกเขาจะบอกคุณแทน "ไม่ต้องทำ X, ทำ Y แทน " และนี่คือความรู้ที่คุณมักจะได้รับจากหนังสือที่ดีที่สุด อันที่จริงหนังสือบางเล่มมีทั้งที่เกี่ยวกับการจัดเรียงของสิ่งนี้เช่นJavascript: ส่วนดี

ปัญหาอื่น ๆ ที่การเรียนรู้ของ JIT นั้นอาจเป็นช่วงการเรียนรู้ที่ช้ากว่ามาก ด้วย JIT learning คุณมักจะเรียนรู้เฉพาะสิ่งที่คุณจำเป็นต้องรู้ แต่บ่อยครั้งที่การมีแกนกลางของความรู้สามารถเร่งการเรียนรู้ภาษาหรือกรอบงานใหม่ แทนที่จะสะดุดกับพื้นฐานที่คุณเริ่มต้นด้วยรากฐานที่มั่นคงแล้วสร้างจากที่นั่น เนื้อหาที่ดีที่คุณอาจครอบคลุมในขณะที่อ่านหนังสืออาจไม่เป็นประโยชน์สำหรับคุณทันที แต่การมีความรู้พื้นฐานนั้นอาจเป็นประโยชน์ในการชี้นำการตัดสินใจของคุณและโดยเฉพาะอย่างยิ่งในการทำความเข้าใจรหัสใหม่ที่คุณได้รับ มีการแลกเปลี่ยนแน่นอนและมีหนังสือที่ไม่ดีที่เพียงแค่กองบนข้อเท็จจริงไร้ประโยชน์ที่คุณจะจำไม่ได้หลังจากที่คุณอ่านพวกเขา แต่ยังมีหนังสือที่ดีที่ให้พื้นฐานที่ดีในพื้นฐานและสิ่งที่ '

นอกจากนี้ยังมีหนังสือในระดับที่สูงกว่าวิชาเทคโนโลยีเดียวซึ่งฉันคิดว่ามีความสำคัญต่อการเติบโตในฐานะนักพัฒนา หนังสือเช่นCode Complete , Refactoring , การทำงานอย่างมีประสิทธิภาพด้วย Legacy Codeฯลฯ คุณจะไม่ได้รับความรู้จากหนังสือเหล่านี้เพียงแค่ผ่านการเรียนรู้ของ JIT


1

ฉันคิดว่าฉันไปอ่านหนังสือโดยเฉพาะการดาวน์โหลด ebook. อ่านแต่ละส่วนของบทคัดลอกรหัสของพวกเขา! วางลงในโปรแกรมแก้ไขการเขียนโปรแกรมของคุณแล้วดูผลลัพธ์ที่ออกมาจากนั้นลองเปลี่ยนตรรกะของมันฉันพูดถึง ebooks ที่สามารถดาวน์โหลดได้เพราะทำงานได้เร็วขึ้นหนังสือยอดเยี่ยมจริง ๆ ฉันไม่ได้โกหก แต่ตั้งแต่เดือนพฤศจิกายนจนถึงวันนี้ หนังสือประมาณ 20 เล่มทุกคนต้องรักที่จะอ่านสิ่งที่มือใหม่ทำคือพวกเขาแก้ปัญหาเฉพาะเจาะจงโดยใช้แบบฟอร์มความช่วยเหลือทางอินเทอร์เน็ต แต่เมื่องานที่ซับซ้อนจริง ๆ มอบให้พวกเขาพวกเขายอมแพ้เหตุผลไม่มีความรู้เกี่ยวกับงานและ วิธีแก้ปัญหาของมันตัวอย่างเช่นฉันได้ล้อมตัวควบคุมด้วย datatable และไม่ทราบว่าชุดข้อมูลทำอะไรและฉันได้รับการจัดเตรียมให้กับงานเพื่อสร้างความสัมพันธ์ระหว่างสำเนาหน่วยความจำถิ่นที่อยู่ของตารางฐานข้อมูลที่ฉันไม่สามารถทำได้


0

มันยากมากสำหรับโปรแกรมเมอร์ใหม่ที่จะเข้าใจว่าการเขียนโปรแกรมคืออะไรมันลึกแค่ไหน

ทุกคนสามารถเขียนโปรแกรมเพื่อบอกให้คอมพิวเตอร์ทำ - ดีทุกอย่างเกี่ยวกับการเรียนรู้น้อยมากนี่ไม่ยากเลย! สิ่งที่ยากคือการสร้างโปรแกรมที่สนับสนุนและสามารถเข้าใจได้อย่างรวดเร็วและเข้าใจอย่างลึกซึ้งโดยสมาชิกคนอื่น ๆ ในทีมส่วนนี้ใช้เวลาหลายปีหลายสิบปี

นอกจากนี้การเรียนรู้ที่จะทำงานเป็นส่วนที่มีประสิทธิภาพของทีมเป็นบิตของเส้นโค้ง

ดังนั้นหนังสือจะช่วยแก้ปัญหาการเขียนโปรแกรม "ของจริง" เหล่านี้ในรูปแบบที่ค้นหาการอ้างอิงบนเว็บได้อย่างไร

หนังสือเล่มโปรดสองเล่มของฉันคือ "ลวดลายการออกแบบ" และ "การสร้างใหม่"

การปรับโครงสร้างใหม่เป็นหนังสือที่ยอดเยี่ยมที่จะบอกคุณถึงวิธีการจดจำรหัสที่ไม่ดี หากคุณได้เรียนรู้โดยดูการอ้างอิงการเข้ารหัสหนังสือเล่มนี้ (หนึ่งในหนังสือ Refactoring หนังสือเล่มใดเล่มหนึ่ง) เป็นสิ่งสำคัญ

รูปแบบการออกแบบไม่ได้มีอะไรมากมายที่โปรแกรมเมอร์ที่ดีไม่สามารถเข้าใจได้ แต่มันให้ชื่อกับรูปแบบที่หลากหลายที่ทุกคนเคยใช้ในโค้ด โปรแกรมเมอร์ที่เปิดใช้งานนี้สามารถสื่อสารได้อย่างมีประสิทธิภาพมากขึ้นและช่วยโปรแกรมเมอร์บางคนค้นหาวิธีการใหม่ในการโจมตีปัญหา แม้ว่าคุณจะสามารถหารูปแบบการออกแบบบนเว็บได้ แต่ Google จะง่ายกว่าชื่อของรูปแบบการออกแบบมากกว่า - google สิ่งที่คุณพยายามทำ

ฉันถูกถามในการสัมภาษณ์เพื่ออธิบายหนังสือสองเล่มนี้และสิ่งที่พวกเขาพยายามทำให้สำเร็จฉันคิดว่านี่เป็นคำถามสัมภาษณ์ที่ถูกต้องมาก ... ฉันต้องการให้ความสนใจกับโปรแกรมเมอร์ที่ไม่รู้เกี่ยวกับสองคนนี้ หนังสือนอกเสียจากว่าเขาสมัครเข้ารับตำแหน่งผู้น้อยมาก


0

ฉันเรียนโปรแกรมจากหนังสือโดยตรง ประมาณ 20 ปีที่แล้วก่อน google และเน็ตเคยเป็นที่นิยม ฉันคิดว่าพวกเขาเป็นทรัพยากรที่ดี อย่างไรก็ตามหนังสือวันที่ทันสมัยที่สุดเพียงแค่อ้างบทความทางเทคนิคโดยผู้ผลิต ดังนั้นตอนนี้ฉันเห็นด้วยที่ดีกว่าที่จะเรียนรู้ออนไลน์ ด้วยคำเตือนดังต่อไปนี้:

แม้ว่าฉันจะอ่านหนังสือหลายเล่มและมีการเข้าถึงอินเทอร์เน็ตเกือบจะเป็นเพราะมันเป็นไปได้ทางการเงิน ฉันไม่เคยสามารถทำโปรเจ็กต์ขนาดใหญ่ให้เสร็จสมบูรณ์ได้ แน่นอนว่าฉันสามารถทำโครงการที่มีขนาดใหญ่จำนวนมากในหนังสือขั้นสูงขนาดใหญ่ที่พวกเขาใช้เวลา 20 บทในการแนะนำคุณ แต่เมื่อมันมาถึงโครงการในโลกแห่งความเป็นจริงของฉันเอง ฉันต้องบอกคุณฉันอ่านหนังสือหนัก ๆ

ฉันมีปัญหาตลอดชีวิตในการเข้าวิทยาลัย แต่ตอนนี้ฉันกำลังเข้าเรียนปีที่สาม ในปีแรกของฉันฉันได้พบกับผู้คนในปีที่ 4 และปริญญาโทและสามารถพูดคุยเกี่ยวกับทฤษฎี AI, HCI, ผู้ประกอบและการพัฒนาคอมไพเลอร์ได้ แต่ด้วยความรู้ทั้งหมดนี้ฉันไม่สามารถสร้างโปรแกรมที่สมเหตุสมผลได้ สิ่งที่ฉันหายไป ... สิ่งหนึ่งที่คุณไม่สามารถได้รับจากหนังสือเล่มใด ๆ หรือออนไลน์

โครงสร้าง. ในปีแรกฉันไม่ได้เรียนรู้เกี่ยวกับลักษณะทางเทคนิค (Allready รู้เรื่องทั้งหมดมากมายและผ่านขั้นตอนการเรียนรู้โดยไม่ต้องเรียนรู้ทักษะคณิตศาสตร์และการออกแบบเนื่องจากเป็นสิ่งใหม่สำหรับฉัน) แต่ฉันได้เรียนรู้โครงสร้างและการทำงานเป็นทีม ในวันหยุดฤดูร้อนครั้งแรกของฉันฉันเข้ามาใกล้กว่าที่เคยทำงานจริงเป็นครั้งแรก

ในปีที่สองของฉันฉันได้เรียนรู้เกี่ยวกับเทคโนโลยีใหม่ ๆ (ยังคงเป็นพื้นฐานในการเปรียบเทียบกับสิ่งที่ฉันรู้ แต่ฉันวางทฤษฎีที่ฉันรู้เพื่อฝึกฝนจริง) สิ่งนี้เน้นความสำคัญของโครงสร้างทั้งหมดอีกครั้ง ฉันยังไม่ได้ทำโปรเจ็กต์แรกของฉัน ตอนนี้ฉันคิดว่าตัวเองเป็นโปรแกรมเมอร์

ฉันไม่เชื่อว่าจำเป็นต้องอ่านหนังสือเพื่อเรียนรู้การเขียนโปรแกรม แต่มันช่วยได้ อย่างไรก็ตามฉันเชื่ออย่างมั่นใจว่าไม่มีหนังสือหรือเว็บไซต์สอนหรือสามารถสอนสิ่งที่คุณได้รับจากวิทยาลัย 2 ปี หากคุณมีการจัดการให้เสร็จสมบูรณ์โครงการโดยไม่ต้องไปวิทยาลัยเล่นอย่างยุติธรรม แต่มันเป็นประสบการณ์ที่ฉันขอแนะนำไม่ว่าอายุเท่าไหร่

หนังสือดีอินเทอร์เน็ตดี google และหลอดคุณยอดเยี่ยม แต่ไม่มีอะไรจะดีไปกว่าผมที่วิทยาลัย fashoned และฉันสงสัยว่าจะมี googling และ youtubing เป็นจำนวนเท่าใดและฉันรู้ดีว่าไม่มีหนังสือเล่มใดที่จะทำได้


ที่กล่าวไว้ข้างต้น "ฉันยังไม่เสร็จโครงการแรกของฉันตอนนี้ฉันคิดว่าตัวเองเป็นโปรแกรมเมอร์" มันควรอ่านได้ว่า "ตอนนี้ฉันได้ทำโปรเจ็กต์แรกของฉันเสร็จแล้ว ขออภัยเกี่ยวกับการสะกดคำผิด
Jack Spratt

0

ฉันไม่มีเงื่อนงำ ฉันต่อต้านการเขียนโปรแกรมหนังสือ ในกรณีส่วนใหญ่คุณยังต้องค้นคว้าบนอินเทอร์เน็ตเพื่อค้นหาข้อมูลเพิ่มเติม

คุณต้องการเรียนรู้ภาษาการเขียนโปรแกรมหรือไม่? Google เพื่อมัน ฉันเกลียด jQuery เพราะมันดูลำบาก จากนั้นฉันก็มาที่ Stack Overflow และฉันรู้อะไรมากมาย โดยปราศจากความช่วยเหลือจากหนังสือใด ๆ

  • Google เพื่อมัน
  • มองหาแอปพลิเคชั่นโอเพนซอร์สที่สมบูรณ์
  • เรียกดูในรหัสนั้นและลองรับสิ่งที่เกิดขึ้น
  • ลองเขียนแอปพลิเคชั่นที่รวดเร็ว / ง่าย ๆ จากตัวอย่างโค้ดที่มีอยู่
  • ลองเขียนใหม่ด้วยตัวคุณเอง
  • ค้นหาบทช่วยสอนเพิ่มเติมบนอินเทอร์เน็ต
  • ใช้ประสบการณ์
  • ใช้ประสบการณ์มากขึ้น
  • คุณเพิ่งเรียนภาษาใหม่! (ฉันไม่ได้บอกว่าคุณจะเป็นผู้เชี่ยวชาญ แต่เรียนรู้พื้นฐานในไม่กี่ชั่วโมงหรือวัน)

การมีหนังสืออ้างอิงเป็นประโยชน์อย่างมาก - คุณได้รับจากประสบการณ์ของผู้อื่น ว่า "หนังสือ" แม้อาจจะเป็นเอกสารออนไลน์ที่กว้างขวาง tutorials / เหมือนDjangoหรือjQuery แต่แหล่งการทดลองและข้อผิดพลาด + การอ่านเพียงอย่างเดียวจะทำให้คุณมีช่องว่างที่สำคัญในความรู้ของคุณ ตอนนี้ถ้าคุณต้องการ jQuery เพียงไม่กี่บรรทัดเมธอดของคุณใช้งานได้ แต่คุณไม่ได้เรียนรู้ภาษา แต่ถ้าคุณต้องการเรียนรู้ C ฉันขอแนะนำให้มี K&R เป็นข้อมูลอ้างอิง แน่นอนว่าข้อมูลส่วนใหญ่ออนไลน์อยู่ที่ไหนสักแห่ง แต่กระจัดกระจายไปทั่วโพสต์บล็อกจำนวนมาก
dr jimbob

0

ฉันคิดว่ามันถูกต้องที่การเขียนโปรแกรมไม่สามารถเรียนรู้ได้จากหนังสือเท่านั้น (ตามที่คนส่วนใหญ่พูดถึง) คุณต้องฝึกฝนมากและมีทรัพยากรมากมายบนอินเทอร์เน็ต (บทความวิดีโอตัวอย่างและอื่น ๆ )

แต่หนังสือที่ดีเติมช่องว่างในความรู้ของคุณ หลังจากอ่านปกหนังสือเพื่อให้คุณมั่นใจว่าคุณไม่มีรูโหว่ในความรู้เรื่อง แม้ว่าความท้าทายคือการหาหนังสือที่ดีในเรื่อง

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.