JavaRush /Blog Java /Random-VI /10 cuốn sách lập trình hàng đầu cho người mới bắt đầu
Max Stern
Mức độ
Нижний Новгород

10 cuốn sách lập trình hàng đầu cho người mới bắt đầu

Xuất bản trong nhóm
Tôi có một đồng nghiệp đã thực hiện nhiều cuộc phỏng vấn kỹ thuật cho những người Javaist tương lai. Có lần tôi hỏi anh ấy điều gì ảnh hưởng đến quyết định tuyển dụng một ứng viên không có kinh nghiệm thực tế khi lựa chọn giữa những người có kỹ năng ngôn ngữ gần như ngang nhau. Với tình hình thị trường, tôi nghĩ câu hỏi này có liên quan đến nhiều bạn. 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 1“Niềm đam mê công nghệ, khả năng lựa chọn phương án tốt nhất để giải quyết vấn đề, kiến ​​thức uyên bác về CNTT nói chung, hiểu biết về những gì đang chờ đợi mình tại nơi làm việc” - đây là câu trả lời của anh ấy. Tôi đã từng mô tả trong một bài viết những cuốn sách lập trình dành cho người mới bắt đầu đã giúp tôi học Java. Trong bài viết này, tôi sẽ tập trung vào các ấn phẩm giúp một lập trình viên mới vào nghề có được kiến ​​thức uyên bác về CNTT, hiểu biết về công việc trong tương lai, đồng thời đơn giản hóa nhiệm vụ lựa chọn giải pháp tốt nhất. Nghĩa là, hãy kiếm một công việc và thể hiện tốt nhất có thể ngay từ đầu. Tôi biên soạn danh sách này theo sở thích của riêng mình nên có thể hơi chủ quan. Có cả sách giáo khoa lập trình cổ điển dành cho sinh viên và sách tham khảo dành cho lập trình viên ở mọi thế hệ.

Cải thiện mã và năng suất

Chỉ viết mã là không đủ. Điều quan trọng là phải viết nó tốt, có thể cải thiện nó và cũng hiểu nó được phát triển nói chung như thế nào. Những cuốn sách sau đây dành cho những người mới lập trình và những người khác đã giúp nhiều thế hệ chuyên gia đương đầu với quy trình công nghệ khó khăn trong phát triển phần mềm.

Lập trình viên thực dụng. Người hành trình trở thành bậc thầy (Andrew Hunt, David Thomas)

Tựa gốc: Lập trình viên lập trình từ From Journeyman to Master của Andrew Hunt và David Thomas 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 2Nếu bạn chưa đọc cuốn sách này, rất có thể bạn đã nhiều lần bắt gặp những trích dẫn từ nó trên các diễn đàn và các tài nguyên chuyên ngành. Hình ảnh một lập trình viên thực dụng trong cuốn sách này rõ ràng và lý tưởng đến mức… người ta có thể gọi anh ta là một người lãng mạn, cho dù điều đó nghe có vẻ nghịch lý đến đâu. Tuy nhiên, lời khuyên từ cuốn sách này rất thực tế và phù hợp, bất chấp thời đại đã cao. Tôi không biết nên so sánh “Lập trình viên thực dụng” với thế giới sách lập trình như thế nào. Những tác phẩm tương tự gần nhất trên thế giới này là “Cựu Ước” hoặc một số sách dạy nấu ăn cực hay. Trong “Thực dụng” mọi thứ đều rất cụ thể và có thể áp dụng tối đa vào thực tế. Đôi khi nó trở nên tầm thường (ví dụ: phần về giao tiếp hiệu quả chứa các quy tắc cơ bản về nghi thức kinh doanh), nhưng đôi khi lời khuyên từ cuốn sách là không thể thay thế, đặc biệt nếu một nhà phát triển mới vào nghề không có người cố vấn kiên nhẫn và chu đáo. Đây là những mẹo về khả năng lặp lại mã, tạo nguyên mẫu, ước tính. Hoặc một lời nhắc nhở về việc không thể tạo ra một chương trình hoàn hảo. Ngoài ra còn có các điểm kỹ thuật hữu ích liên quan, chẳng hạn như gỡ lỗi mã, kiểm tra đơn vị hoặc tốc độ của thuật toán... tóm lại là những gì bạn cần chuẩn bị cho sự nghiệp lập trình viên.

Tái cấu trúc Cải thiện mã hiện có (Martin Fowler)

Tiêu đề gốc: Tái cấu trúc: Cải thiện thiết kế mã hiện có của Martin Fowler, với Kent Beck 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 3Nếu bạn yêu cầu ai đó liệt kê những cuốn sách lập trình xây dựng sự nghiệp hay nhất mọi thời đại, chắc chắn ai đó sẽ đề cập đến “Tái cấu trúc”. Ai đó có thể nói rằng cuốn sách này đã lỗi thời, và ở một khía cạnh nào đó họ sẽ đúng. Nó được viết vào thời điểm mà việc tái cấu trúc vẫn chưa phải là một quy tắc phổ biến và một số sự thật trong đó là hiển nhiên đối với các lập trình viên đầy tham vọng ngày nay. Tuy nhiên, các kỹ thuật tái cấu trúc được mô tả trong đó rất hay và chi tiết (ở một số chỗ, tôi thậm chí có thể nói một cách chi tiết) đến mức mọi người mới bắt đầu sẽ tìm thấy điều gì đó hữu ích trong đó. Một vài năm trước, một ấn bản cập nhật của cuốn sách đã xuất hiện và các kỹ thuật mới đã được bổ sung, điều này thật tuyệt vời. Ngoài ra, các ví dụ trong cuốn sách này được viết bằng Java. Nhược điểm duy nhất tôi có thể đề cập là tính dài dòng. Tuy nhiên, tôi giới thiệu cuốn sách.

Mã sạch (Robert Martin)

Tựa gốc Clean Code: A Handbook of Agile Software Craftsmanship của Robert C. Martin 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 4Cuốn sách này, mặc dù mới hơn cuốn trước, nhưng cũng đã trở thành một cuốn sách kinh điển về lập trình. “Chú Bob,” như Robert Martin đôi khi được gọi trong cộng đồng lập trình toàn cầu, là một trong những tác giả của tuyên ngôn Agile, cũng như một số nguyên tắc của lập trình “thuần túy” hiện đại, chẳng hạn như SOLID. Một trong những nội dung chính của cuốn sách có thể được coi là... sự đồng cảm hoặc đơn giản là thái độ tốt đối với tất cả những người sẽ phải làm việc với mã của bạn (bao gồm cả chính bạn trong tương lai). Hầu hết các quy tắc “Mã sạch” đều dựa trên nguyên tắc đơn giản và lẽ thường này. Hầu hết các quy tắc và lời khuyên đều có vẻ rất đúng, kiểu như xoáy vào đầu bạn một cách trực giác, nhưng không dễ để hình thành chúng một cách rõ ràng. Tuy nhiên, người ta có thể tranh luận với một số suy nghĩ của tác giả: đôi khi ông cực kỳ phân loại. Ví dụ, anh ấy viết rằng code tốt thì không cần bình luận. Tuy nhiên, đây là cuốn sách phải đọc.

Làm việc hiệu quả với mã kế thừa (Michael Feathers)

Tiêu đề gốc Làm việc hiệu quả với mã kế thừa của Michael Feathers 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 5Cuộc sống không chuẩn bị cho bạn điều này... Không, thực sự là: nếu bạn chỉ mới học, bạn không thể tưởng tượng được việc làm việc với các cơ sở mã kế thừa sẽ khó khăn như thế nào, điều đó có lẽ được viết bởi ông nội của Bill Gates. Mã này thường được viết hoàn toàn khác với những gì bạn quen thuộc và được ghi chép kém đến mức đôi khi bạn muốn tìm tác giả của nó và... Than ôi: cuộc đời của một lập trình viên Java trong các dự án lớn thường gắn liền với sự hỗ trợ kế thừa. Cuốn sách này có thể giúp ích về các khía cạnh kỹ thuật khi làm việc với mật mã cổ xưa, nhưng nó cũng có thể giúp bạn chấp nhận số phận của mình. Và vâng, tôi nghiêm túc đấy. Cuốn sách này sẽ hữu ích cho bạn nếu bạn đặt mục tiêu chắc chắn vào một công ty gia công hoặc sản phẩm với các dự án lớn.

Đầu tiên. Mẫu thiết kế (Eric Freeman, Bert Bates, Kathy Sierra, Elizabeth Robson)

Tiêu đề gốc Các mẫu thiết kế đầu tiên: Hướng dẫn thân thiện với não của Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 6Các mẫu thiết kế là những quy tắc logic có hình thức tốt mà nếu bạn không nghiên cứu chúng theo thời gian, bạn sẽ nhớ đến chúng ( hay không...) và theo đúng nghĩa đen, nó sẽ trở thành siêu năng lực của một lập trình viên mới vào nghề nếu bạn bắt đầu xem xét chúng càng sớm càng tốt. Có, lúc đầu, sẽ rất hữu ích nếu bạn thử thực hiện một dự án cá nhân tương đối phức tạp và cố gắng tự mình chia nó thành các nhiệm vụ phụ... và cuối cùng tìm ra khuôn mẫu tương tự. Tuy nhiên, khi đi làm không phải lúc nào cũng có đủ thời gian để thử nghiệm. Khi bắt đầu thực tập, tôi biết rất ít về các mẫu: khi học tại JavaRush, tôi chỉ đơn giản bỏ qua tất cả các nhà máy, đơn vị, phần tiêm, phần phụ thuộc này, nghĩ rằng tôi sẽ tìm ra nó khi cần. Tuy nhiên, cần phải tìm hiểu thật nhanh và đó chính là cuốn sách “Head First. Design Patterns” đã giúp tôi điều này. Nó được viết dễ dàng, đầy hình ảnh minh họa và hài hước... Tôi nghĩ rằng cách trình bày chủ đề “mẫu thiết kế” rất quan trọng: nó có thể được trình bày một cách rất nhàm chán, hoặc có thể được trình bày như trong Head First. Một sự bổ sung tuyệt vời cho “Mã sạch” và/hoặc “Tái cấu trúc”!

Kiến trúc máy tính và khoa học máy tính tổng quát

Đối với một lập trình viên tương lai, việc hiểu kiến ​​trúc máy tính, biết hệ điều hành được cấu trúc như thế nào và cơ sở dữ liệu được cấu trúc như thế nào quan trọng như thế nào? Thực tế không phải vậy là những kiến ​​thức này sẽ hữu ích cho bạn trong công việc. Nhưng chắc chắn chúng sẽ giúp bạn thể hiện niềm đam mê với lĩnh vực CNTT và kiến ​​thức CNTT. Và quan trọng nhất: nếu bạn biết mọi thứ hoạt động như thế nào thì nó sẽ giúp bạn giải quyết vấn đề tốt hơn. Thông tin 100%. Vì vậy, đây là hai cuốn sách nữa để giúp bạn.

Mã (Charles Petzold)

Tiêu đề gốc Code: Ngôn ngữ ẩn của phần cứng và phần mềm máy tính của Charles Petzold 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 7Ấn bản đầu tiên của “Code” đã đưa thế giới quay trở lại đầu những năm 2000, nhưng trên thực tế, nó có thể xuất hiện sớm hơn hoặc muộn hơn - và vẫn có liên quan. Thực tế là trong cuốn sách này, hoạt động của máy tính được giải thích ở mức độ rất thấp, bắt đầu từ cách hoạt động của các số 0 và 1 đó, và ví dụ kỹ thuật đầu tiên là mạch đèn pin, có thể coi là mạch đơn giản nhất. -bit máy tính... Không, bạn Đừng nghĩ rằng mọi thứ trong cuốn sách đều rất thô sơ. Trên thực tế, hoàn toàn ngược lại... Nó mô tả bản chất của các mạch máy tính, với các lệnh, hoạt động của bộ nhớ và hệ điều hành. Có lẽ sau khi đọc xong tôi đã hiểu máy tính hoạt động như thế nào. Mặc dù kiến ​​trúc và tập lệnh của bộ xử lý thay đổi và băng thông bộ nhớ tăng lên nhưng về bản chất, máy tính vẫn hoạt động giống hệt nhau. Lập trình viên Java có cần kiến ​​thức này không? Rất ít người sẽ cần chúng trực tiếp trong công việc của họ. Nhưng một cách gián tiếp, tôi thường được giúp đỡ trong công việc vì tôi hiểu mọi việc thực sự diễn ra như thế nào.

Giới thiệu về Khoa học Máy tính (Glenn Brookshire, Dennis Brilov)

Tựa gốc Khoa học Máy tính: Tổng quan của Glen Brookshear và Dennis Brylow 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 8Cuốn sách này đến với tôi khi còn học đại học, khi tôi đang nghiên cứu những kiến ​​​​thức cơ bản về khoa học máy tính. Chỉ có tôi mới nhận được bản dịch của ấn bản thứ sáu, và hiện tại đang có ấn bản thứ 13. Cuốn sách là giáo trình cơ bản về khoa học máy tính đã được giảng dạy tại các trường đại học ở Hoa Kỳ và các nước khác trong nhiều năm. Phạm vi tài liệu trong đó rất rộng: kiến ​​trúc máy, hệ thống số, xử lý dữ liệu, hệ điều hành, nguyên tắc xây dựng cơ sở dữ liệu, cấu trúc dữ liệu, cấu trúc tệp, v.v. Không phải tất cả các phần của cuốn sách đều được viết tốt như nhau. Ví dụ, tôi đã từng rất bối rối trước các phần về phương pháp thiết kế và cơ sở dữ liệu, nhưng các phần về hệ thống số, tính toán theo bit, kiến ​​trúc PC và cấu trúc dữ liệu thực sự gây ấn tượng với tôi. Điều thú vị nhất của cuốn sách là số lượng lớn các bài tập có phím. Ngoài sinh viên, một cuốn sách như vậy có lẽ chủ yếu cần thiết bởi những người tự học không có trình độ học vấn kỹ thuật để lấp đầy những khoảng trống và có được ý tưởng về khoa học máy tính nói chung.

Thuật toán và cấu trúc dữ liệu. Và một cuộc tấn công khác!

Với việc lập trình hiện đại cấp cao đã phát triển như thế nào, kiến ​​thức về các thuật toán đã trở nên ít quan trọng hơn. Bây giờ, chỉ cần sử dụng thư viện cần thiết là đủ và không cần phải đau đầu tìm cách sắp xếp mảng tốt nhất. Tuy nhiên, bạn vẫn sẽ phải vắt óc làm việc và hơn một lần. Bạn có nhớ điểm “khả năng chọn giải pháp tốt nhất có thể” trong số các yêu cầu đối với một lập trình viên mới làm quen không? Vì vậy, bất kể ai nói gì, tôi coi việc đào tạo thuật toán tốt là một bản nâng cấp tuyệt vời để tìm ra giải pháp tối ưu. Vì vậy, hai cuốn sách tiếp theo sẽ nói về họ. Về thuật toán.

Chúng tôi đang làm rung chuyển các thuật toán. Hướng dẫn minh họa dành cho lập trình viên và Aditya Bhargava tò mò

Tựa gốc: Thuật toán Grokking: Hướng dẫn minh họa dành cho lập trình viên và những người tò mò khác của Aditya Y. Bhargava 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 9Chính tác giả đã viết ở đầu cuốn sách rằng thuật toán không đến với ông ngay lập tức, và ông đã cố gắng viết “Thuật toán Grokking” để rằng nó sẽ dễ đọc. Nó được thiết kế dành cho những người mới lập trình, tức là những người có thể viết “hello, world” và biết int, string, loop, Branch và array là gì. Vâng, nó có thể hiển thị mảng trên màn hình. Kiến thức toán học yêu cầu xấp xỉ ở cấp lớp 6-7 trung học cơ sở, không rườm rà. Và đây là điểm cộng nghiêm túc đầu tiên của cuốn sách. Nó không cố gắng tưởng tượng người đọc là một sinh viên toán học như nhiều ấn phẩm về chủ đề này vẫn làm. Nghĩa là, nếu bạn sợ toán học, thuật toán, đã cố gắng học những thứ sau và không hiểu gì, thì cuốn sách này là sự lựa chọn hoàn hảo cho quá trình phục hồi chức năng của bạn trong mắt bạn. Điểm tích cực thứ hai là cuốn sách thảo luận về những điều có thể hữu ích trong thực tế (hiểu được điều này chắc chắn là đúng). Nó bắt đầu bằng lời giải thích về bản chất của tìm kiếm nhị phân và hiệu quả - theo nghĩa đen trên các ngón tay và với nhiều hình ảnh. Thứ ba, cuốn sách chứa rất nhiều câu hỏi và bài tập (mã ví dụ bằng Python, nhưng điều này không quá quan trọng). Một điểm có thể tích cực đối với một số người nhưng lại tiêu cực đối với những người khác: cuốn sách không có vẻ là một cuốn sách tham khảo toàn diện. Giả sử rằng trong số các thuật toán được chấp nhận rộng rãi để nghiên cứu, ở đây chỉ có hai thuật toán - thuật toán chèn kém hiệu quả và thuật toán sắp xếp nhanh hiệu quả. Tôi không biết tại sao tác giả không nên xem xét các thuật toán khác, chẳng hạn như bong bóng hoặc hợp nhất. Trên thực tế, thuật toán hợp nhất được đề cập trong cuốn sách, nhưng ngắn gọn, không có phân tích và chỉ so sánh với sắp xếp nhanh. Với các chủ đề khác, mọi thứ đều giống hệt nhau. Có những điều cơ bản được trình bày rất kỹ, nhưng đôi khi bạn thực sự muốn có phần tiếp theo sâu hơn, nhưng đơn giản là không có. Nói một cách dễ hiểu, đây là một cuốn sách rất cơ bản, sau đó, rất có thể, bạn sẽ muốn tìm một cuốn sách trong đó mọi thứ được mô tả nghiêm túc hơn. Ví dụ như sau đây.

Các thuật toán trong Java (Robert Sedgwick, Kevin Wayne)

Tựa đề gốc: Thuật toán của Robert Sedgewick và Kevin Wayne 10 Sách Lập Trình Hay Nhất Cho Người Mới Bắt Đầu - 10Trên thực tế, cuốn sách này có thể vừa quyến rũ vừa khiến bạn sợ hãi. Nó sẽ khiến bạn sợ hãi ít nhất với khối lượng... rất nhiều trang và tính chất hàn lâm nhất định. Vì vậy, nếu bạn không có thiên hướng về học thuật hoặc không cảm thấy tự tin vào toán học (trung học, những phần đơn giản nhất của toán cao cấp dành cho kỹ sư), thì tốt hơn hết bạn không nên bắt đầu với cuốn sách này. Không có nhiều thuật ngữ toán học ở đó, nhưng bản thân cách tiếp cận đã giả định trước những suy nghĩ như vậy. Nhưng sau cuốn sách trước - tại sao không. Cô ấy sẽ cho bạn một hướng dẫn. Chương đầu tiên ở một số chỗ tóm tắt kiến ​​thức về Java và định nghĩa một số cấu trúc dữ liệu. Tốt hơn là nên đọc nó một cách có chọn lọc, nhưng sẽ không có hại gì nếu nghiên cứu đầy đủ chi tiết chương thứ hai và chương thứ ba. Phần còn lại cũng chứa đầy thông tin thú vị và kỹ lưỡng về đồ thị và chuỗi. Tôi có thể nói rằng những điều như thế này RẤT hữu ích trong việc hình thành tư duy lập trình. Về cách trình bày, người ta có cảm giác tác giả là một giáo viên nhưng đã quen làm việc với những người hầu hết đều quan tâm và chuẩn bị sẵn sàng. Vì vậy hãy kiên nhẫn và đọc. Và cũng có thể giải quyết các vấn đề, có rất nhiều vấn đề ở đây. Nhân tiện, trên Coursera bạn có thể tìm thấy một khóa học về thuật toán do các tác giả của cuốn sách tạo ra.

Biết khuôn khổ của bạn

Và cuối cùng, một cuốn sách nữa. Và một lần nữa - hữu ích.

Mùa xuân đang hoạt động (Craig Walls)

Tựa gốc: Spring in Action của Craig Walls 10 cuốn sách lập trình hay nhất cho người mới bắt đầu - 11Một cuốn sách rất nổi tiếng với bìa nổi tiếng không kém với hình ảnh “người đàn ông mặc váy” thực ra không mặc váy. Thành thật mà nói, học Spring chỉ từ một cuốn sách là một việc rất khó khăn, ngay cả khi bạn cố gắng thử mọi thứ trong thực tế cùng một lúc. Nhân tiện, có thể cực kỳ khó hiểu cách thực hiện việc này sau khi đọc chương này hoặc chương kia. Tôi đã sử dụng cuốn sách này khi tôi thực tập tại một công ty và khi sử dụng theo cách này, nó giúp ích rất nhiều. Hơn nữa, ngay cả ngày nay, khi đã làm lập trình viên, tôi vẫn liên tục quay lại với nó. Nói tóm lại, bạn có thể có được ý tưởng chung về khung Java chính với sự trợ giúp của nó.
Bình luận
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION