มันจะมีประโยชน์ในการอ่านหนังสือ Java programming เก่าหรือไม่? [ปิด]


10

หนังสือ Java ของฉันหลายเล่มมีอายุ 5 - 10 ปี มันยังช่วยอ่านหรือไม่ฉันควรใช้บางอย่างภายใน 2 ปี


2
ขึ้นอยู่กับว่ามันยังล้าสมัยเวลาส่งคืนที่ลงทุนในการอ่านควรเปรียบเทียบกับเวลาที่ใช้ในการอ่านหนังสือที่ทันสมัย
ราวุฒิ Positwinyu

คำตอบ:


26

หากหนังสือเป็นเรื่องเกี่ยวกับภาษาของตัวเองให้ทำมันหายและได้หนังสือใหม่

หากหนังสือเกี่ยวกับการเขียนโปรแกรมเป็นหัวเรื่อง (ศิลปะ, หัวเรื่อง, วินัย, เทคนิค, อะไรก็ตาม) มันก็คุ้มค่าที่จะอ่าน หนังสือเขียนโปรแกรมที่ดีที่สุดที่ฉันเขียนเมื่อ 10 ปีก่อน


12
เราสามารถยืนยันได้ว่า K&R เกี่ยวข้องกับ C และเป็นหนังสือ C ที่ดีที่สุดที่คุณจะหา
Vitor Py

7
ฉันเห็นด้วยกับ @Victor Braga มันไม่เกี่ยวกับตอนที่เขียนหนังสือ แต่มันเกี่ยวกับว่าภาษาเปลี่ยนไปมากแค่ไหน Java มีการเปลี่ยนแปลงอย่างมากในช่วง 5-10 ปีที่ผ่านมา อย่างไรก็ตาม C ไม่ได้ หนังสือ Java อายุ 5 ปีของคุณไร้ค่าทีเดียว อย่างไรก็ตามหนังสือ K&R C รุ่นแรกของคุณตั้งแต่ปี 1978 นั้นเป็นรุ่นที่ทันสมัยกว่ามาก (แม้ว่ามันจะไม่ถูกต้อง 100% และไม่ใช่รุ่นที่สองจาก 1988) ปัจจัยหลักคือจำนวนภาษาและเครื่องมือสนับสนุนที่เปลี่ยนแปลงไประหว่างการตีพิมพ์หนังสือกับเวลาที่คุณต้องการใช้หนังสือ
Thomas Owens

1
+1 smalltalk books มีอายุ 30 ปีและยังทรงคุณค่า
Kamil Tomšík

8

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

มีเหตุผลสินค้าที่จะอ่านหนังสือเก่า:

  • หากพวกเขาสอนแนวคิดที่ดีกว่าสิ่งใหม่ที่เทียบเท่า
  • หากพวกเขาสอนหลักการทั่วไปมากกว่าเทคโนโลยีเฉพาะ
  • หากเทคโนโลยีที่พวกเขาสอนไม่เปลี่ยนแปลงมากนัก

ส่วนตัวฉันเก็บหนังสือการเขียนโปรแกรมเก่าของฉันไว้บางส่วน:

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

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

ทั้งหมดที่กล่าวว่าฉันอ่านหนังสือใหม่ด้วย แน่นอนว่าฉันไม่ต้องการติดอยู่ในยุคมืด


4

หากพวกเขาเก่งและคุณสมบัติของภาษาที่สอนไม่เปลี่ยนแปลง - แล้วทำไมล่ะ!

ฉันไม่คิดว่าฟังก์ชั่นการใช้งานของ Java เปลี่ยนแปลงไปมากนักตั้งแต่ 1.2 (หรือ Java 2)


6
ขึ้นอยู่กับว่าคุณนิยามความรู้พื้นฐานอย่างไร 5-10 ปีที่ผ่านมาสิ่งต่าง ๆ เช่นยาชื่อสามัญออโต้บ็อกซ์การแจกแจงค่า varargs และสำหรับแต่ละลูปนั้นใหม่หรือยังไม่มีอยู่ ฉันเชื่อว่าฟีเจอร์เหล่านั้นเปลี่ยนวิธีการเขียนซอฟต์แวร์ที่ดีมีคุณภาพสูงอ่านได้และบำรุงรักษาได้ใน Java ไม่ต้องพูดถึงฟังก์ชั่นมาตรฐานจำนวนมากจะไม่ถูกกล่าวถึงเพราะคนจะต้องหมุนตัวเอง ทำไมต้องเรียนรู้การฝึกฝนและนิสัยที่มีอายุ 5-10 ปีซึ่งคุณจะต้องทำลายและเรียนรู้เทคนิคใหม่ ๆ ?
Thomas Owens

5
@ วิศวกรโลก - น่ากลัวมาก 12 ปีที่ผ่านมาคือปี 1999 ซึ่งหมายถึง Java 1.2 ออกมา หลังจากนั้นมีการเปลี่ยนแปลง RMI, JNDI กลายเป็นแกนหลัก, คำหลัก assert ถูกเพิ่ม, ทำการเปลี่ยนแปลง regex และ NIO และ API การบันทึก, generics, คลาสสแกนเนอร์, autoboxing, enums, varargs และสำหรับแต่ละลูป ที่เพิ่ม ไม่ต้องพูดถึงการเปลี่ยนแปลงของ AWT, Swing, JDBC และคอมไพเลอร์และ JIT มหาวิทยาลัยนั้นสอนนิสัยที่ไม่ดีให้กับทุกคนที่อ่านหนังสือเล่มนั้น ฉันจะต้องถามคุณค่าของใครก็ตามที่สำเร็จการศึกษาจากโปรแกรมนั้นหากพวกเขาไม่สามารถใช้ทรัพยากรที่เพียงพอสำหรับหลักสูตรแรก
Thomas Owens

3
@Thomas เขาพูดว่า "เปิดหลักสูตร" ไม่มีสิ่งใดที่คุณอยู่ในรายการจะสอนในหลักสูตรเบื้องต้นใด ๆ ยกเว้นบางที foreach
Pete

2
@Pete เราใช้หรือพูดคุยเรื่อง generics, Scanner, enums, autoboxing และ Swing ในสองไตรมาสแรก (ประมาณครึ่งภาคเรียนและครึ่งปี) ของ CS CS ในปีแรกของฉัน
Thomas Owens

1
ข้อความมีการอ้างอิงมากขึ้น Swing and Scanners ปรากฏตัวในสัปดาห์แรก
วิศวกรโลก

2

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

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

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

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


1
ส่วนแรกเป็นจริง แต่ฉันไม่เห็นด้วยกับส่วนที่สอง โดยปกติแล้วหนังสือบน Java จะสอนวิธีสร้างด้วย Java ไม่ใช่การออกแบบระบบที่จะนำไปใช้ใน Java ในที่สุด และการเปรียบเทียบภาษาที่ไม่มีการเปลี่ยนแปลง (เช่น C) กับภาษาที่เปลี่ยนแปลงอย่างรวดเร็ว (เช่น Java) นั้นมีข้อบกพร่อง
โธมัสโอเวนส์

2

การอ้างอิงหนังสือเก่า ๆ อาจเป็นประโยชน์หากคุณทำงานกับระบบเดิมโดยใช้เทคโนโลยีที่ล้าสมัยโดยเฉพาะอย่างยิ่งระบบ J2EE เก่า ฉันเคยเก็บหนังสือ J2EE เล่มเก่าไว้เพราะบางครั้งฉันจะเจอรหัสเก่าที่ใช้ EJB 2.1 หรือ Swing code เก่า

Java เวอร์ชันสุดท้ายที่จะแนะนำการเปลี่ยนแปลงครั้งใหญ่กับภาษาคือ Java 5 ในปี 2004 หนังสือใด ๆ ที่เขียนหลังจากนั้นควรรวมการเปลี่ยนแปลงภาษาเหล่านั้นและควรจะสามารถอ่านได้โดยทั่วไป โปรดทราบว่ามีการเปลี่ยนแปลงมากมายในระบบนิเวศ Java ตั้งแต่เวลานั้น ยกตัวอย่างเช่น Spring Framework และ Maven เป็นเทคโนโลยีที่ใช้กันอย่างแพร่หลายซึ่งไม่แพร่หลายมากนัก


0

ไปที่ amazon.com และค้นหาหนังสือ java โดยปกติแล้วหนังสือจะเหมือนกัน แต่คุณสามารถหาได้ว่าหนังสือเล่มไหนดีกว่าโดยการอ่านบทวิจารณ์ ฉันเลือกหนังสือแบบนั้นเสมอ - อ่านบทวิจารณ์แล้วตัดสินใจว่าฉันจะอ่านหนังสือเล่มไหน


-1

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

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