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


58

กรุณาตอบหนึ่งข้อ ฉันจะเพิ่มคำตอบที่ฉันโปรดปราน


13
Kindle นั้นนับเป็นหนังสือเล่มเดียวหรือไม่?
Wizard79

5
ไม่เล่นเลยตอนนี้!
Paddyslacker

1
แล้ว iPad ล่ะ
Moshe

3
ศิลปะการเขียนโปรแกรมคอมพิวเตอร์นับเป็นหนังสือเล่มเดียวหรือหลายเล่มหรือไม่?
David Thornley

2
@ David ฉันคิดว่านั่นเป็นเทคนิคหนึ่งเล่มในหลายเล่ม
Paddyslacker

คำตอบ:


69

รหัสเสร็จสมบูรณ์ 2nd เอ็ด

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


+1 สำหรับการเลือกรุ่นที่สองด้วย - การปรับปรุงมากมายในช่วงแรกซึ่งเป็นหนังสือที่แตกต่าง
Paddyslacker

+1 - ฉันมีคำแปลภาษาอิตาลี หลังจากนั้นฉันไม่เคยซื้อโปรแกรมแปลหรือหนังสือทางเทคนิคแปลเป็นภาษาอื่นเพราะการแปลนั้นแย่มาก ฉันต้องซื้อฉบับภาษาอังกฤษเพื่อเข้าใจประโยคจริง ๆ !
Wizard79

สำหรับผู้ที่อาศัยอยู่ในควิเบกประเทศแคนาดา BANQ มีรุ่นที่สมบูรณ์ของหนังสือเล่มนี้ได้ทางออนไลน์ที่สถานที่แห่งนี้: library.books24x7.com.res.banq.qc.ca/toc.asp?bookid=10482
HoLyVieR

4
ฉันไม่เห็นด้วย เป็นที่น่าสนใจว่าคำที่ไม่เปลี่ยนรูปไม่ได้มีอยู่ในหนังสือเล่มนี้
Jonas

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

56

ง่าย.

ในทางปฏิบัติโปรแกรมเมอร์


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

คำตอบนี้ซ้ำแล้วซ้ำอีก
clrod

+1 - หนังสือเล่มที่สองที่ฉันโปรดปรานซึ่งมีชื่อว่า Code Complete (และบางครั้งก็เป็นเล่มแรก)
Alan

36

โครงสร้างและการตีความโปรแกรมคอมพิวเตอร์หรือที่เรียกว่า SICP

เมื่อฉันเห็นว่า SICP ไม่ได้อยู่ในรายการฉันก็รู้สึกเจ็บปวด :)

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

alt text http://ecx.images-amazon.com/images/I/41CPGEDXMDL._SL500_AA300_.jpg

คลิกที่ภาพเพื่อไปที่ข้อความออนไลน์ฟรี นอกจากนี้คุณยังสามารถค้นหาวิดีโอการบรรยายของผู้แต่งพร้อมสีสไตล์ 80s และเสื้อผ้าไม่น้อย


2
ทุกคนยกย่อง SICP IMO ควรเป็นตำราเรียนสำหรับหลักสูตรการเขียนโปรแกรมเบื้องต้นที่บังคับใช้ในทุกโรงเรียน CS แน่นอนว่ามันจะกำจัดคนที่ไม่สามารถตัดมันด้วยการเขียนโปรแกรม (CS ที่น้อยกว่ามาก) ในขณะที่การเสริมความแข็งแกร่งของ CS และทักษะการเขียนโปรแกรมให้กับผู้ที่มีศักยภาพ
luis.espinal

1
@ luis.espinal SICP ดูเหมือน overkill สำหรับการเขียนโปรแกรมเบื้องต้น (เว้นแต่ว่าเรากำลังพูดถึงบัณฑิตวิทยาลัย) มีเหตุผลที่ MIT ทำให้หลักสูตร SICP ลดลงเนื่องจากเป็นคำนำของ .... ฉันยังเห็นด้วยว่ามันมีค่ามากที่จะอ่านหนังสือเล่มนี้ (และทำแบบฝึกหัด ... ) แต่การทำเช่นนั้นในภาคการศึกษามาตรฐานของวิทยาลัยจะยากสำหรับ นักเรียนโดยเฉลี่ยข้างต้น นอกจากนี้อินโทรกับ Java / Python / Ruby / C นั้นมีความเกี่ยวข้องกับกำลังงานมากขึ้นยิ่งคุณได้รับคนที่เคยชินกับภาษาที่จำเป็นต้องใช้ก็จะยิ่งดีขึ้น ... SICP ยอดเยี่ยมหลังจากนั้นเพื่อขยายขอบเขตของคุณ แต่อาจจะท้อใจเป็นหลักสูตรบทนำ ...
Cervo

1
@ Cervo - มันเป็นข้อกังวลที่ถูกต้องและดูเหมือน overkill แต่ (และนี่เป็นตำแหน่งที่ฉันยอมรับอย่างสมบูรณ์) และฉันเชื่อว่ามันให้รากฐานที่ลึกกว่าที่พบโดยทั่วไปด้วยวิธีการหลักอื่น ๆ คณะลูกขุนยังคงอยู่กับ MIT ในตอนนี้พวกเขาได้เปลี่ยนไปใช้ Python (ด้วยเหตุผลบางอย่างที่ว่ามันยังมีความสามารถของ FP และมันก็เป็นที่ยอมรับอย่างมากสำหรับการคำนวณทางวิทยาศาสตร์และหุ่นยนต์ซึ่ง Scheme ไม่ได้) รักภาษา) แต่คณะลูกขุนจะออกจนกว่ารุ่น SICP ของ Python'esque จะออกมา
luis.espinal

2
@ con't - นั่นคือฉันขอแนะนำ SICP ไม่ใช่เพราะ Scheme แต่เป็นเพราะเนื้อหาการสอนของมัน จริง ๆ แล้วฉันขอแนะนำให้เริ่มต้นด้วยการชุมนุม (คนทำค่อนข้างประสบความสำเร็จ) แต่ไม่มีหนังสือประกอบ (และอาจไม่มีเลย) เหมือน SICP สิ่งที่ใกล้เคียงที่สุดคือสารานุกรมของ Knuth (และนั่นจะเกินความจริง) สำหรับJavaฉันทำงานกับมันมา 12 ปีแล้วและฉันจะไม่แนะนำให้สอน .. ทำหน้าที่ให้สำเร็จ แต่มันช่างน่ากลัว PL C, Python หรือ Ruby เป็นภาษาที่ออกแบบได้ดีกว่ามาก
luis.espinal

1
@ con't - เช่นกันฉันจะเตือนไม่ให้ใช้ภาษาเป็นเครื่องมือการสอนเพราะเป็นภาษาหลัก การเปลี่ยนแปลงที่สำคัญทุก ๆ 2-3 ปีและด้วย Java ภาษานั้นเรียบง่าย แต่ภารกิจคือการเรียนรู้ JVM ห้องสมุดและสถาปัตยกรรม ฉันจะพูดเพื่อเรียนรู้การพัฒนาองค์กร Java และ. NET ที่วิทยาลัยปีที่ 4 และผมเชื่อว่า (ฉันรู้ว่าอัตนัย ) ที่มีความสำคัญที่จะให้ความรุนแรงในช่วงต้น เรามีโปรแกรมเมอร์ point-n-click มากเกินไปที่ต้องการความแม่นยำตั้งแต่ต้น ฉันได้ทำเงินมากมายในการทำความสะอาดอึที่พวกเขาทิ้งไว้ แต่ยัง;)
luis.espinal

32

มูลค่าการกล่าวขวัญ:

The Mythical Man-Month

ข้อความแสดงแทน


1
ถ้าฉันสามารถอ่านหนังสือเกี่ยวกับการเขียนโปรแกรมได้เพียงเล่มเดียวและหลังจากฉันอ่านมันเสร็จมันจะหายไปและฉันจะไม่เห็นหนังสือเล่มอื่นในช่วงเวลาที่เหลือนี่จะเป็นเช่นนั้น ถ้าฉันต้องเก็บหนังสือไว้บนหิ้งของฉันเพื่อดูในภายหลัง ... มันอาจจะเป็นอีกเล่ม +1 ต่อไป!
SingleNegationElimination

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

30

เรามีรุ่นที่สี่ แต่นี่เป็นหนังสือที่ยอดเยี่ยมเกี่ยวกับอัลกอริทึม!
คริส

@Chris: ฉันไม่คิดว่าจะมีฉบับที่สี่ รุ่นที่สามมาจากกันยายน 2009 ดังนั้นจึงเป็นเรื่องใหม่
Jonas

ผิดพลาดรุ่นที่สองพร้อมฝาครอบสีเขียว
Chris

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

28

รูปแบบการออกแบบ: องค์ประกอบของซอฟต์แวร์เชิงวัตถุที่ใช้ซ้ำได้

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

ข้อความแสดงแทน


OOP ไม่ได้เป็นตัวแทนของข้อ จำกัด ของการเขียนโปรแกรม
Inaimathi

เนื่องจากแคตตาล็อกรูปแบบมีอยู่มากมาย (หนังสือเล่มนี้) ค่าของหนังสือเล่มนี้จึงลดลงอย่างมีนัยสำคัญเมื่อเวลาผ่านไป
Steven Evers

1
มีคนมากมายที่อ่านปกหน้านี้ไหม? ฉันพบว่ามันเป็นหนังสืออ้างอิงมากกว่าหนังสือ (และการอ้างอิงที่คุณไม่สามารถค้นหาได้)
idbrii

28

รหัสสะอาดของ Robert C. Martin

"Clean Code" ของ Robert C. Martin

ภาษา, กรอบ, ระเบียบวิธีมาและไป แต่ความคิดมากมายในหนังสือเล่มนี้ฉันสงสัยว่าตลอดไป


4
ไม่มีความผิดในหนังสือ แต่คุณสามารถมีคำตอบที่ยอมรับได้ในหัวข้อนี้หรือไม่?
Martin Beckett


25

ฉันเพิ่งนับหนังสือของฉันในวันนี้ 23 จาก 'em มันขึ้นอยู่กับสิ่งที่ฉันกำลังทำอยู่ ผมคิดว่าคำตอบที่เป็นอมตะคือ"ภาษา C" โดย Kernighan และ Ritchie

ป้อนคำอธิบายรูปภาพที่นี่


3
หนึ่งในหนังสือสอนภาษาที่ดีที่สุดในประวัติศาสตร์ของการคำนวณ ตัวอย่างที่ดีของวิธีการเขียนหนังสือการเขียนโปรแกรม
Wizard79

1
และมีความคุ้มค่าบนหิ้งก็เร็วเพื่อหาสิ่งที่โค้ดรูปแบบ printf ในหนังสือกว่าใน MSDN ความช่วยเหลือของเอกสาร
มาร์ติน Beckett

19

ทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดกโดย Michael Feathers

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

ทำงานอย่างมีประสิทธิภาพด้วยรหัสมรดก


สิ่งที่ครอบคลุมที่ดี
Pops

สิ่งนี้เนื่องจากเป็นจุดสนใจของฉันในปัจจุบัน: รับโค้ดที่ฉันเขียนก่อนที่จะ "ทำการทดสอบ" เข้าสู่สถานะที่สามารถทดสอบได้

+1 หลายครั้งใช่ หนังสือเล่มนี้ช่วยฉันอัปเดตโค้ดเก่าได้บ้าง
Grant Palin

18

1
ฉันไม่แน่ใจว่าสิ่งนี้มีคุณสมบัติเป็น "หนังสือ 1 เล่ม" (เว้นแต่คุณจะหมายถึง "แค่เล่ม 1")
Inaimathi

ฉันมีซีรี่ส์ทั้งหมดของเขา แต่ฉันได้เรียนเล่มที่ 1 (วิชาวิทยาการคอมพิวเตอร์ครั้งแรกของฉันได้รับการสอนจากสิ่งนี้ในปี 1967 มันมีค่ามาก) "รู้จักโครงสร้างข้อมูลของเจ้า"
Ira Baxter

15

หนังสือ Java ที่ต้องมี:

Java ที่มีประสิทธิภาพโดย Josh Bloch

ข้อความแสดงแทน

Java เห็นพ้องด้วยในทางปฏิบัติโดย Brian Goetz, et. อัล

ข้อความแสดงแทน

Java Puzzlersโดย Josh Bloch, Neal Gafter

ข้อความแสดงแทน


3
+1 สำหรับ Java ที่มีประสิทธิภาพ พัฒนาทักษะ Java ของฉันอย่างมาก
Ryan Hayes

+1 สำหรับที่มีประสิทธิภาพ Java , -1 ไม่ใส่ใจต่อหนึ่งคำตอบโปรด
Mark Booth

หนังสือ Java ชุดหนึ่งที่คุณควรมี
Crowie


9

Gödel, Escher, Bach

ข้อความแสดงแทน!


1
ฮา! นี่เป็นตัวเลือกของฉันในรายการหนังสือที่ไม่เกี่ยวข้องกับการเขียนโปรแกรม! ฉันเดาว่ามันทำให้ไม่สามารถจำแนกได้หรือไม่
Paddyslacker

ฉันชอบหนังสือเล่มนี้จริง ๆ มันแนะนำโดย Theory of Computing Prof ที่ UW Madison - ช่วยได้มากเมื่อพยายามที่จะเข้าใจว่าห่าเขากำลังพูดถึงอะไร
Peter Turner

@ Paddyslacker, GEB ใช้เวลาพูดคุยเกี่ยวกับความสามารถในการคำนวณและแนวคิดทางวิทยาศาสตร์คอมพิวเตอร์ที่หลากหลาย


4

ทำสิ่งต่าง ๆ ให้สำเร็จ (เดวิดอัลเลน) สอนวิธีจัดการกับงานเล็ก ๆ หลายพันชิ้นที่คุณต้องทำให้สำเร็จในงานประจำวันในฐานะนักพัฒนาซอฟต์แวร์ แม้ว่ามันจะไม่ได้มุ่งเน้นไปที่นักพัฒนาโดยเฉพาะ แต่มันก็เป็นตัวช่วยที่ทรงคุณค่าอย่างแน่นอนเนื่องจากการพัฒนาซอฟต์แวร์มักจะเกี่ยวข้องกับงานเล็ก ๆ จำนวนมากที่ต้องทำในลำดับความสำคัญ ตัวอย่างเช่น: ฟีเจอร์ใหม่ที่จะนำไปใช้ซึ่งข้อบกพร่องในการแก้ไขซึ่งส่วนใดของรหัสที่จะ refactor ซึ่งส่วนของรหัสที่จะพักหรือทดสอบซ้ำ ฯลฯ ...


3

ภาษาโปรแกรม C ++โดย Bjarne Stroustrup

ข้อความแสดงแทน


+1: เนื่องจากความแห้งและรายละเอียดเท่านั้น ฉันไม่เคยรู้สึกเช่นนั้นมาก่อนเกี่ยวกับภาษาหลังจากอ่านหนังสือเกี่ยวกับเรื่องนี้มาแล้วมากมาย
มัมมี่


2

The Zen of Code Optimizationโดย Michael Abrash

The Zen of Code Optimization

สิ่งที่ต้องอ่านสำหรับโปรแกรมเมอร์แบบเรียลไทม์ - แม้ว่าข้อมูลเฉพาะของโปรเซสเซอร์จะลงวันที่แล้ว แต่ความคิดนั้นมีค่ายิ่ง


2

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


2
ไม่มันไม่ ดูความคิดเห็นเกี่ยวกับ Kindle ด้านบน ที่กล่าวว่าฉันรัก iPad ต่อไป มันอาจเป็นทรัพยากรที่มีค่า แต่ก็ยังไม่ใช่หนังสือจริง +1, ฉันอยู่ในอารมณ์แฟนบอย :)
Moshe


2

"การผิดพลาดของการพัฒนาเชิงวัตถุ" ของ Bruce F. Webster

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

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


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


1

ข้อความแสดงแทน

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


1

Jon skeet's "c # in Depth"

ข้อความแสดงแทน


1
จริงๆแล้วฉันไม่ชอบหนังสือของจอน ข้อมูลนั้นดี แต่มีมาก "โอ้นี่เป็นบทที่สำคัญ 10 บทนับจากนี้" ในหนังสือเล่มนี้ซึ่งทำให้รู้สึกว่าวางไม่ดีมาก
Steven Evers

2
โปรดระวังว่ามีรุ่นที่สองซึ่งเป็นการอัปเดตจากรุ่นแรกและยังครอบคลุม C # 4
Grant Palin

1

การออกแบบวัตถุ: บทบาทความรับผิดชอบและความร่วมมือ

ข้อความแสดงแทน

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


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