Bài viết được sự cho phép của tác giả Phạm Văn Nguyên
Vậy bạn đã quyết định học Lập trình?
Tôi biết điều đầu tiên bạn có thể làm là vào Google và tìm kiếm những cuốn sách lập trình tốt nhất .
Tôi sẽ làm như vậy.
Nhưng có một vấn đề.
Có rất nhiều sách lập trình ngoài kia, bao gồm các chủ đề khác nhau và các ngôn ngữ lập trình khác nhau.
Với tất cả các tùy chọn, thật dễ bị nhầm lẫn và không bao giờ bắt đầu.
Trong bài viết này, tôi sẽ chia sẻ với bạn những cuốn sách yêu thích của tôi trong nỗ lực giúp bạn đưa ra quyết định phù hợp nhất với bạn.
Triết lý của tôi rất đơn giản
Đầu tiên, tất cả những cuốn sách tôi giới thiệu ở đây là những cuốn sách mà tôi đã tự đọc và chúng được cộng đồng đánh giá cao .
Thứ hai, tôi sẽ giữ danh sách này nhỏ nhất có thể mà không ảnh hưởng đến tính tổng quát.
Nhưng trước khi chúng tôi bắt đầu, tôi muốn đề cập rằng những cuốn sách này chỉ liên quan đến chủ đề Lập trình .
Lập trình chỉ là một chủ đề trong số nhiều lĩnh vực của Khoa học Máy tính..
Bắt đầu nào.
Đầu tiên: Ngôn ngữ lập trình
Trong phần này, tôi sẽ đề cập đến những cuốn sách có liên quan đến các khái niệm lập trình cơ bản và ngôn ngữ lập trình cụ thể.
1. Khái niệm lập trình
Cấu trúc và giải thích các chương trình máy tính (còn được gọi là SICP ) là một cuốn sách cổ điển dạy cho bạn những nguyên tắc cơ bản của lập trình.
Sách giáo khoa này đã được dạy như một khóa học giới thiệu về Lập trình tại MIT.
Và mặc dù cuốn sách này sử dụng Scheme làm ngôn ngữ lập trình được lựa chọn để minh họa các khái niệm lập trình, nó không phải là một cuốn sách về ngôn ngữ lập trình Scheme.
Bạn nên nghĩ về cuốn sách này như một cuốn sách lập trình chung tình cờ sử dụng Scheme để minh họa một số khái niệm lập trình.
Có suy nghĩ này là rất quan trọng nếu bạn muốn tận dụng tốt nhất cuốn sách này.
Như đã nói, bạn có nên bắt đầu hành trình học lập trình với cuốn sách này không?
Cá nhân tôi thích bạn không bắt đầu với SICP , tôi khuyên bạn nên học một hoặc hai ngôn ngữ lập trình cụ thể trước khi bạn nhảy vào cuốn sách này.
Nhưng đừng hiểu sai ý tôi, cuốn sách này là một cuốn sách phải đọc.
Một điều nữa trước khi tôi quên, tất cả các bài giảng video của MIT (từ năm 1986) đều có sẵn trực tuyến , miễn phí, bởi chính các tác giả của cuốn sách!
Tôi đã trải qua hầu hết trong số họ khi tôi đang học SICP và họ hoàn toàn tuyệt vời.
2. Python
Python là ngôn ngữ lập trình được sử dụng rộng rãi và tôi không thấy nó chậm lại bất cứ lúc nào.
Nếu bất cứ điều gì, nó sẽ phát triển lớn hơn nữa.
Python cũng là một trong những ngôn ngữ dễ bắt đầu nhất.
Dựa trên cấp độ của bạn, đây là danh sách các sách Python mà tôi đề xuất.
Khóa học Python Crash
Nếu bạn là người mới bắt đầu tuyệt đối, tôi khuyên bạn nên thử Python Crash Course .
Lý do tại sao tôi giới thiệu cuốn sách này là vì nó dựa trên dự án.
Nói cách khác, nó không nhàm chán :). Đối với người mới bắt đầu tuyệt đối, điều cuối cùng bạn muốn bắt đầu là một cuốn sách khô khan không đủ thú vị để bạn tiếp tục.
Nhược điểm của cuốn sách này là nó không toàn diện. Bạn sẽ thức dậy và chạy nhanh, nhưng nó sẽ không dạy cho bạn mọi thứ về Python mà bạn cần học.
Học Python
Không giống như Python Crash Course , Learning Python là một cuốn sách rất toàn diện, đi sâu vào chi tiết hơn nhiều về ngôn ngữ lập trình Python.
Nó không áp dụng cách tiếp cận dựa trên dự án mà Python Crash Course thực hiện khi áp dụng cách dạy ngôn ngữ truyền thống hơn.
Nếu bạn là người mới bắt đầu, bạn sẽ không sai khi lấy cả hai cuốn sách và trải qua cả hai cuốn sách.
Fluent Python
Fluent Python : cái này chắc chắn không dành cho những người yếu tim.
Sau khi bạn trở nên rất thoải mái trong các kỹ năng lập trình Python của mình và bạn muốn đẩy mạnh trò chơi của mình và đưa các kỹ năng của bạn lên một tầm cao mới, cuốn sách này là cuốn sách cuối cùng dành cho các lập trình viên Python nâng cao .
Tham khảo thêm các vị trí tuyển dụng python lương cao cho bạn.
3. Java
Java là một ngôn ngữ khác được sử dụng nhiều trong ngành công nghiệp.
Trường hợp điển hình: Hadoop , Spark , Kafka và ElasticSearch đều là các hệ thống phân tán được sử dụng rộng rãi được viết hoàn toàn bằng Java.
Cá nhân tôi đã học Java từ loạt Core nổi tiếng.
Core Java
Core Java là một cuốn sách tuyệt vời về các nguyên tắc cơ bản của Java.
Nó dạy cho bạn những điều cơ bản của Ngôn ngữ lập trình Java với rất nhiều ví dụ minh họa và mẫu mã.
Core Java nâng cao
Core Java Advanced là một cuốn sách miễn phí cho cuốn trước.
Nó bao gồm một số chủ đề nâng cao không được đề cập trong Core Java .
Effective Java
Effective Java là một cuốn sách bắt buộc phải có cho mọi lập trình viên Java.
Cuốn sách này không phải là về nội dung của ngôn ngữ mà là về các thực tiễn tốt nhất để viết mã chất lượng cao chuyên nghiệp.
Cuốn sách cung cấp khoảng 80 thực tiễn tốt nhất để làm theo để làm cho mã của bạn sạch hơn, dễ đọc hơn và thành ngữ hơn.
4. C ++
Tôi yêu C ++
Chủ yếu là vì đây là ngôn ngữ lập trình đầu tiên tôi học được ở trường đại học
Tuy nhiên, ngày nay rất hiếm khi sinh viên đại học bắt đầu lập trình với C ++.
Lý do cho điều đó là C ++ là một ngôn ngữ lập trình tương đối khó học hơn so với Python hoặc Java.
Và trên thực tế, tôi đồng ý rằng đó là một chiến lược tốt hơn nhiều để bắt đầu với Python hoặc Java.
Tuy nhiên, C ++ vẫn được sử dụng rộng rãi và rất quan trọng, đặc biệt nếu bạn quan tâm đến lập trình kernel cấp thấp hoặc lập trình các hệ thống nhúng.
Trường hợp điển hình: Windows, Mac OS, Linux đều được viết bằng C ++ (và C)
Đối với cuốn sách yêu thích của tôi, tôi thực sự thích C ++ Primer . Nó được viết tốt và khá toàn diện.
Tham khảo thêm các vị trí tuyển dụng lập trình C++ lương cao tại Topdev.
5. Go
Ngôn ngữ được Google thiết kế hoàn toàn và đang phát triển với tốc độ rất nhanh.
Nó đã được sử dụng trong các dự án nguồn mở phổ biến.
Trường hợp điển hình: Kubernetes, Docker và Consul đều được viết bằng Go.
Không có nhiều sách về việc này, nhưng cuốn sách tôi sở hữu và giới thiệu là The Go Programming Language của Donavan và Kernighan.
Thứ hai: Craft Engineering Craft
Những cuốn sách được liệt kê trong phần này là hơi khác nhau.
Họ không phải là về việc học một ngôn ngữ lập trình cụ thể .
Họ thực sự hướng nhiều hơn đến việc dạy thủ công và nghệ thuật công nghệ phần mềm.
Nói cách khác, những cuốn sách này bao gồm các chủ đề mà bạn sẽ chỉ bắt gặp thông qua kinh nghiệm chuyên môn và công nghiệp của bạn.
Vì vậy, các chủ đề được đề cập ở đây thường không được dạy ở trường và có thể giúp bạn tiết kiệm được nhiều năm học thông qua thử và sai.
Chúng ta hãy lần lượt xem danh sách những cuốn sách yêu thích của tôi và xem những chủ đề chúng bao gồm và lý do tại sao chúng quan trọng.
1. Code Complete
Code Complete không phải là thứ bạn đọc trong một lần.
Cuốn sách này là một hướng dẫn toàn diện mà bạn sẽ tiếp tục quay trở lại.
Theo tôi, thời gian tốt nhất để đọc cuốn sách này là trước khi bạn bắt đầu thực tập hoặc công việc đầu tiên.
Ví dụ, cuốn sách bao gồm mọi thứ, từ việc đặt nền tảng cho phát triển phần mềm, tạo và cải thiện phần mềm chất lượng cao, đến các vấn đề tiềm ẩn có thể phát sinh trong quá trình phát triển phần mềm và cách tránh chúng.
2. The Pragmatic Programmer
The Pragmatic Programmer là một trong những cuốn sách thiêng liêng cho các lập trình viên.
Mặc dù cuốn sách tập trung vào rất nhiều khái niệm, nó đào sâu vào các thực tiễn phát triển phần mềm vượt thời gian mà hầu hết các lập trình viên (nên) sử dụng.
Một tác phẩm không vô nghĩa thu hút ý thức chung của mọi người, nó ấn tượng ở những giải pháp và lời khuyên có thể cảm thấy tội lỗi tinh tế.
Trước khi bạn biết điều đó, bạn sẽ là một tín đồ được chuyển đổi và là một lập trình viên thực dụng.
3. Clean Code
Clean Code cung cấp một cái nhìn sâu sắc dễ hiểu về phát triển phần mềm và làm sạch mã.
Cuốn sách này cung cấp thông tin có giá trị và giải thích từng bước về cách viết, làm sạch và tái cấu trúc mã.
Nó không chỉ giải thích tại sao viết mã sạch là quan trọng, mà còn đưa ra rất nhiều ví dụ thực tế.
Lẩn tránh lý thuyết, làm sạch mã chỉ cho bạn cách giải quyết các vấn đề thực sự mà nhiều lập trình viên đã vấp phải trước bạn.
Vì vậy, hãy tiết kiệm cho mình nhiều năm thử và sai, và học hỏi từ những sai lầm của các lập trình viên khác.
Thứ ba: Cấu trúc dữ liệu và thuật toán
Một người đàn ông khôn ngoan đã từng nói:
Để trở thành một lập trình viên giỏi, bạn cần phải:
- Mã chuyên nghiệp trong 10 năm
- Mã chuyên nghiệp trong 2 năm và học thuật toán
Thành thật tôi rất khó nhớ ai đã nói chính xác câu nói này vì vậy nếu bạn biết, xin vui lòng để lại một bình luận bên dưới với tên của người đó để tôi có thể ghi nhận anh ấy
Những lời này là rất đúng mặc dù. Hiểu các cấu trúc dữ liệu và thuật toán ở mức sâu hơn là những gì phân biệt các lập trình viên rắn với các lập trình viên joe trung bình.
1. Introduction to Algorithms (CLRS)
Khi nói đến các thuật toán và cấu trúc dữ liệu, thực sự không có nhiều tranh luận về cuốn sách hay nhất bao gồm chủ đề này.
Đó là giới thiệu một cách dứt khoát về các thuật toán .
Nếu bạn muốn âm thanh tuyệt vời và sử dụng biệt ngữ của nghề thủ công, bạn có thể gọi nó là CLRS .
Chữ viết tắt này thường được sử dụng và nó đề cập đến các tác giả của cuốn sách (Cormen, Leiserson, Rivest và Stein).
2.Data structure and Algorithms in Java
CLRS được viết theo cách trung lập ngôn ngữ. Hầu hết các mã trong cuốn sách chủ yếu là mã giả.
Nếu bạn muốn tìm hiểu các cấu trúc dữ liệu và thuật toán trong Java, thì tôi khuyên bạn cũng nên lấy Data structure and Algorithms in Java .
Mặc dù ngày nay tôi không thực sự làm được nhiều Java, tôi có cuốn sách này và thật vui khi đọc và hiểu.
Tôi vẫn nói cuốn sách này là một người bạn đồng hành tốt với CLRS nhưng nó không có nghĩa là một sự thay thế.
Tham khảo từ nguồn: https://www.afternerd.com
Bài viết gốc được đăng tải tại nguyenpv.com
Có thể bạn quan tâm: