What are the top five books every computer programmer should study at least once?
-
1. Books prescribed as part of CS courseware in major schools. 2. Books related to popular programming languages. 3. Books related to general computer science understanding like operating systems, OO programming etc
-
Answer:
http://mitpress.mit.edu/sicp/ (SICP) is a wonderful introduction to programming, computer science andâmost importantlyâabstraction. It does an incredible job of quickly covering basic CS, including the major different programming paradigms. Most importantly, it helps impart a true CS mindset and shows the inherent beauty and elegance of the subject. You can read it for free online. http://www.amazon.com/Introduction-Theory-Computation-Michael-Sipser/dp/0534950973 is one of the most readable texts I've come accross in any discipline. It gives a wonderful introduction to formal languages (not programming languages), computability and complexity. Apart from being a very accessible introduction to theoretical computer science, it also has an innovative structure for teaching proofs which I've found very valuable for learning to reason abstractly and formally without sacrificing clarity. It's well worth reading just for an example of how clear proofs can be. http://aima.cs.berkeley.edu/ (AIMA) is a strong introduction to AI. It covers the high level ideas necessary to approach the field as well as a nice covering set of basic AI algorithms. It's an incredibly popular text used in over 1200 universities. http://www.cis.upenn.edu/~bcpierce/tapl/ (TAPL) is a good overview of modern programming language design and theory. It's a good place to get a handle on the field as well as catch up with the last few decades of programming language research, much of which is only entering the mainstream now if at all. It's good as both a starting point for learning more advanced languages (like Haskell) and for understanding the design and trade-offs in more popular languages like Java. http://mitpress.mit.edu/books/introduction-algorithms is the standard reference on algorithms. It's good for both learning to design algorithms and just learning the standard set most programs rely on. I actually learned algorithms with the prosaically named http://beust.com/algorithms.pdf which was not too bad and is available free online.
Tikhon Jelvis at Quora Visit the source
Other answers
For me, with now 40 years of programming under my belt, having worked with some of the best (and worst), the one that left indelible traces in my thinking was.:The Elements of Programming Style, by Brian W. Kernighan and P. J. Plauger, is a study of programming style, advocating the notion that computer programs should be written not only to satisfy the compiler or personal programming "style", but also for "readability" by humans, specifically software maintenance engineers, programmers and technical writers.Its old for sure but gets at truths which modern systems have only served to obscure.
Marc Meyer
6 A2As has got to be a new personal record, so Iâll answer this even though I donât think Iâm the best person for the job.Although I guess Iâve read a lot of books on coding. Maybe 20â40? I dunno. I donât really think of it as reading though, because most arenât the sort of thing you go through from cover to cover.I read everything I could get my hands on as a kid and then a ton of textbooks and generally a couple a year since I started working as a dev. Anyways⦠onto the recommendationsâ¦Obvious ones: CLRS and the Art of Computer Programming by Knuth. Algorithmic Puzzles by Levitin is quite fun to screw around with, mostly because it has a fantastic introductory section that teaches you how to solve certain problems. But if I could pick just one, Iâd pick one that isnât even really a programming book.Iâd probably go with How to Solve It by Polya.Itâs very good, and it teaches you how to approach, think about, and obviously solve problems. I think itâs technically made for math problems, but the concepts are abstract enough that they fit coding perfectly.I reckon the essence of problem solving (for humans at any rate) is capture in there. If you want to solve algorithm problems, or figure out whatâs going wrong in your process or come up with new ideas given a corpus of knowledge, whatâs in that book will help and likely encompasses what youâre trying to do at least in an abstract sense.There are a lot of reference pages (printed vertically so theyâre a full page, hard to explain) with useful questions etc. that you can begin using almost immediately.Highly recommended.
Carlos Matias La Borde
Here is my pick of absolute essential for a programmer: Introduction to Algorithms By CLRS, It will teach you to write computationally sound code. Also it will enable you to analyze efficiency of code. The C++ Programming Language by Bjarne Stroustrup. This classic will help you to structure your code so that you it increases cohesion among the modules. Mathematics For Computer Science by Thomson Leighton, It will help you write correct code Computer Organization and Design by J. Hennessy , It will give you an overview of architecture your code will run on which is essential for writing super efficient code Modern Operating System By A.Tanenbaum, yes your code runs on hardware, but it needs low level program to get its job done in minimal time, this book is about that program, yes your operating system Happy Learning (:
Tanay Gahlot
Arrows, Structures, and Functors: The Categorical Imperative, Arbib and Mannes Computer System Organization, Elliott Organick The Multics System, Elliott Organick Theory of Parsing, Translating, and Compiling Vol. 1, Aho and Ullman Theory of Parsing, Translating, and Compiling Vol. 2, Aho and Ullman The Algol68 Report, Lots of folks
Mike O'Dell
The Most Influential Books Every Software Engineer Needs to ReadWell Iâve learned a lot from my mentors and realized that I still had a lot to learn with the many different books that were suggested to me. I decided to develop a routine to read one book a month in my profession field (software engineering). Over the years Iâve aggregated a list that, I believe, to be MUST READS for anyone that wants to be a top tier developer.https://www.amazon.com/gp/product/1934356050/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1934356050&linkId=2a237319ec51b3c3abae0d8ab6444b33 at amazon : https://www.amazon.com/gp/product/1934356050/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=1934356050&linkId=2a237319ec51b3c3abae0d8ab6444b33Software development happens in your head. Not in an editor, IDE, or designtool. You're well educated on how to work with software and hardware, but what about wetware--our own brains? Learning new skills and new technology is critical to your career, and it's all in your head.In this book by Andy Hunt, you'll learn how our brains are wired, and how to take advantage of your brain's architecture. You'll learn new tricks and tipsto learn more, faster, and retain more of what you learn.You need a pragmatic approach to thinking and learning. You need to Refactor Your Wetware.https://www.amazon.com/gp/product/020161622X/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=020161622X&linkId=8cdc1da686d6dcd5167b3c3ef9f2c2aa at amazon : https://www.amazon.com/gp/product/020161622X/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=020161622X&linkId=8cdc1da686d6dcd5167b3c3ef9f2c2aa-- Ward Cunningham Straight from the programming trenches, The Pragmatic Programmer cuts through the increasing specialization and technicalities of modern software development to examine the core process--taking a requirement and producing working, maintainable code that delights its users. It covers topics ranging from personal responsibility and career development to architectural techniques for keeping your code flexible and easy to adapt and reuse. Read this book, and youll learn how to *Fight software rot; *Avoid the trap of duplicating knowledge; *Write flexible, dynamic, and adaptable code; *Avoid programming by coincidence; *Bullet-proof your code with contracts, assertions, and exceptions; *Capture real requirements; *Test ruthlessly and effectively; *Delight your users; *Build teams of pragmatic programmers; and *Make your developments more precise with automation. Written as a series of self-contained sections and filled with entertaining anecdotes, thoughtful examples, and interesting analogies, The Pragmatic Programmer illustrates the best practices and major pitfalls of many different aspects of software development.https://www.amazon.com/gp/product/032163537X/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=032163537X&linkId=da3e099cf3f5c18d7aa4cb1964fd3579 at amazon: https://www.amazon.com/gp/product/032163537X/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=032163537X&linkId=da3e099cf3f5c18d7aa4cb1964fd3579âAsk a mechanical, structural, or electrical engineer how far they would get without a heavy reliance on a firm mathematical foundation, and they will tell you, ânot far.â Yet so-called software engineers often practice their art with little or no idea of the mathematical underpinnings of what they are doing. And then we wonder why software is notorious for being delivered late and full of bugs, while other engineers routinely deliver finished bridges, automobiles, electrical appliances, etc., on time and with only minor defects. This book sets out to redress this imbalance. Members of my advanced development team at Adobe who took the course based on the same material all benefited greatly from the time invested. It may appear as a highly technical text intended only for computer scientists, but it should be required reading for all practicing software engineers.â âMartin Newell, Adobe FellowâThe book contains some of the most beautiful code I have ever seen.â âBjarne Stroustrup, Designer of C++âI am happy to see the content of Alexâs course, the development and teaching of which I strongly supported as the CTO of Silicon Graphics, now available to all programmers in this elegant little book.â âForest Baskett, General Partner, New Enterprise Associateshttps://www.amazon.com/gp/product/0596008678/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0596008678&linkId=96a65ae6afdf77ae3a21a1d4aae23142 at amazon : https://www.amazon.com/gp/product/0596008678/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0596008678&linkId=96a65ae6afdf77ae3a21a1d4aae23142"Head First Object Oriented Analysis and Design is a refreshing look at subject of OOAD. What sets this book apart is its focus on learning. The authors have made the content of OOAD accessible and usable for the practitioner." --Ivar Jacobson, Ivar Jacobson Consulting"I just finished reading HF OOA&D and I loved it! The thing I liked most about this book was its focus on why we do OOA&D-to write great software!" --Kyle Brown, Distinguished Engineer, IBM"Hidden behind the funny pictures and crazy fonts is a serious, intelligent, extremely well-crafted presentation of OO Analysis and Design. As I read the book, I felt like I was looking over the shoulder of an expert designer who was explaining to me what issues were important at each step, and why." --Edward Sciore, Associate Professor, Computer Science Department, Boston CollegeTired of reading Object Oriented Analysis and Design books that only makes sense after you're an expert? You've heard OOA&D can help you write great software every time-software that makes your boss happy, your customers satisfied and gives you more time to do what makes you happy. But how? Head First Object-Oriented Analysis & Design shows you how to analyze, design, and write serious object-oriented software: software that's easy to reuse, maintain, and extend; software that doesn't hurt your head; software that lets you add new features without breaking the old ones. Inside you will learn how to: Use OO principles like encapsulation and delegation to build applications that are flexible Apply the Open-Closed Principle (OCP) and the Single Responsibility Principle (SRP) to promote reuse of your code Leverage the power of design patterns to solve your problems more efficiently Use UML, use cases, and diagrams to ensure that all stakeholders are communicating clearly to help you deliver the right software that meets everyone's needs. https://www.amazon.com/gp/product/0201657880/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0201657880&linkId=d12415c6b95de3d059e4ad335f8fd679 at amazon : https://www.amazon.com/gp/product/0201657880/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0201657880&linkId=d12415c6b95de3d059e4ad335f8fd679The first edition of Programming Pearls was one of the most influential books I read early in my career, and many of the insights I first encountered in that book stayed with me long after I read it. Jon has done a wonderful job of updating the material. I am very impressed at how fresh the new examples seem. - Steve McConnell When programmers list their favorite books, Jon Bentley's collection of programming pearls is commonly included among the classics. Just as natural pearls grow from grains of sand that irritate oysters, programming pearls have grown from real problems that have irritated real programmers. With origins beyond solid engineering, in the realm of insight and creativity, Bentley's pearls offer unique and clever solutions to those nagging problems. Illustrated by programs designed as much for fun as for instruction, the book is filled with lucid and witty descriptions of practical programming techniques and fundamental design principles. It is not at all surprising that Programming Pearls has been so highly valued by programmers at every level of experience.https://www.amazon.com/gp/product/0321751043/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0321751043&linkId=26b52ea5ae133508053ec43e96c59d6f at amazon : https://www.amazon.com/gp/product/0321751043/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=0321751043&linkId=26b52ea5ae133508053ec43e96c59d6fCountless readers have spoken about the profound personal influence of Knuthâs work. Scientists have marveled at the beauty and elegance of his analysis, while ordinary programmers have successfully applied his âcookbookâ solutions to their day-to-day problems. All have admired Knuth for the breadth, clarity, accuracy, and good humor found in his books.I canât begin to tell you how many pleasurable hours of study and recreation they have afforded me! I have pored over them in cars, restaurants, at work, at home⦠and even at a Little League game when my son wasnât in the line-up.âCharles LongPrimarily written as a reference, some people have nevertheless found it possible and interesting to read each volume from beginning to end. A programmer in China even compared the experience to reading a poem.If you think youâre a really good programmer⦠read [Knuthâs] Art of Computer Programming⦠You should definitely send me a résumé if you can read the whole thing.âBill Gateshttps://www.amazon.com/gp/product/B00666M59G/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B00666M59G&linkId=b2398df66ccae777b06bf526e5822ab4 at amazon : https://www.amazon.com/gp/product/B00666M59G/ref=as_li_qf_sp_asin_il_tl?ie=UTF8&tag=b0f5e-20&camp=1789&creative=9325&linkCode=as2&creativeASIN=B00666M59G&linkId=b2398df66ccae777b06bf526e5822ab4The Robert C. Martin Clean Code Collection consists of two bestselling eBooks: Clean Code: A Handbook of Agile Software Craftmanship The Clean Coder: A Code of Conduct for Professional Programmers In Clean Code, legendary software expert Robert C. Martin has teamed up with his colleagues from Object Mentor to distill their best agile practice of cleaning code âon the flyâ into a book that will instill within you the values of a software craftsman and make you a better programmer--but only if you work at it. You will be challenged to think about whatâs right about that code and whatâs wrong with it. More important, you will be challenged to reassess your professional values and your commitment to your craft.
Islam Rabie Mahmoud
The way I see it, programming is a far too widespread field to be picking the top 5 books. But you could break this down by either picking technical books on a specific language or by picking a set of general programming principal books which open your mind to general programming practices that you can apply to any specific language. In my opinion it is better to learn to think like a programmer first.Here are a few books that may help: Code Complete by Steve McConnell. Elements of Programming by Alexander Stepanov and Paul McJones. The Design of Everyday Things by Don Norman.
Gensichen Ramkisson
I won't suggest a book rather, if you have been programming in a âclose to the machineâ language like C or C++ or even any other language then you must read What every programmer should know about memory (Google it). It deals with all the stuff that is usually abstracted for most developers like how CPU caches work, what are different types of memory, how RAM works, different architectures of processors, etc. It discusses all this in mere 110 pages and at a very high level. I gained a lot of knowledge upon reading it.
Ayush Gupta
I would read all 3 books of the Foundation Trilogy by Isaac Asimov. To my mind, they are the greatest books on science fiction ever written: https://en.wikipedia.org/wiki/Foundation_seriesI have found endless ideas in them.As a fourth, I would read Evolutionary Psychology by Buss: https://www.amazon.co.uk/Evolutionary-Psychology-New-Science-Mind/dp/0205992129/ref=sr_1_1?ie=UTF8&qid=1464593625&sr=8-1&keywords=Evolutionary+Psychology. It is one of the most important textbooks ever written. It remains flawed, but for a person unschooled in this space, it will hurl you years forward in your thinking about all things related to how systems evolve, change and goal seek.As a fifth, I would read Davies, Krebs and Westâs Behavioral Ecology: https://www.amazon.co.uk/Introduction-Behavioural-Ecology-4th/dp/1405114169/ref=sr_1_12?ie=UTF8&qid=1464593793&sr=8-12&keywords=EcologyThese books arenât for everyone. For a run-of-the-mill programmer, any algorithm book will doâincluding the classic Introduction toâ¦These books are for a person aiming to change humanityâto go for the gold. If you can read the two text books above and then read Asimov and not be a completely different thinker about computers, I would be terribly impressed (and saddened.)
Ryan Lanham
The C programming language- Dennis Ritchie Computer system Architecture- Morris mano Operating systems- Silberschatz,Galvin Introduction to algorithms- Leiserson,Cormen Data communications and network- Forouzan According to me , a computer programmer must read these books for good knowledge in CS.
Rotte Sai Teja
Related Q & A:
- What education is required to become a computer programmer?Best solution by Yahoo! Answers
- What is the difference between a computer programmer and a software developer?Best solution by Yahoo! Answers
- What is the difference between a computer engineer and a computer programmer?Best solution by Quora
- What are some good books for computer information systems?Best solution by bookboon.com
- How much does a computer programmer/Engineer get paid?Best solution by Yahoo! Answers
Just Added Q & A:
- How many active mobile subscribers are there in China?Best solution by Quora
- How to find the right vacation?Best solution by bookit.com
- How To Make Your Own Primer?Best solution by thekrazycouponlady.com
- How do you get the domain & range?Best solution by ChaCha
- How do you open pop up blockers?Best solution by Yahoo! Answers
For every problem there is a solution! Proved by Solucija.
-
Got an issue and looking for advice?
-
Ask Solucija to search every corner of the Web for help.
-
Get workable solutions and helpful tips in a moment.
Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.