Reddit Reddit reviews Algorithms in a Nutshell (In a Nutshell (O'Reilly))

We found 13 Reddit comments about Algorithms in a Nutshell (In a Nutshell (O'Reilly)). Here are the top ones, ranked by their Reddit score.

Computers & Technology
Books
Computer Programming
Programming Algorithms
Algorithms in a Nutshell (In a Nutshell (O'Reilly))
Check price on Amazon

13 Reddit comments about Algorithms in a Nutshell (In a Nutshell (O'Reilly)):

u/AlSweigart · 5 pointsr/learnprogramming

Introduction to Algorithms is a behemoth text book. I prefer O'Reilly's Algorithms in a Nutshell and also Programming Collective Intelligence" for basic ML stuff.

u/arry666 · 3 pointsr/programming

O'Reilly's Algorithms in a Nutshell is a good practical book. It describes the algorithms for the regular programmers, with focus on implementing and without heavy mathematics used in classic books on algorithms. All algorithms are presented in pattern form, with a motivation to use them, pictures with pseudocode giving a high-level overview, and working code (in C, C++, Java, and Ruby). They also have benchmarks to provide empirical proofs of the theoretical performance of the algorithms.

u/crimsonmia · 3 pointsr/cscareerquestions

It sounds to me like you do know what you don't know, plus you have the motivation to learn on your own. Check out some of the free online courses here (scroll down and check out the CS categories). Get a book like Algorithms in a Nutshell and code some of them up (ignoring and/or learning from the book's website's implementations). Work in a new language (I'd suggest Java, as I think C++ is harder to learn on your own w/o a mentor). Ask (and answer) questions on stack overflow

Resume-wise, don't call yourself a "programmer". "Software developer" instead.

TBH it sounds like you have enough skill already to get an internship or entry-level job... could be helpful to direct the course of your studies. Without that direction, how do you know whether to focus on Java or C++? Perl, Python, or Ruby? etc. since you don't know what that next/first job is going to require.

u/Ars-Nocendi · 2 pointsr/compsci

Algorithms in a Nutshell

Use it as a practical rendition of the math-rigorous material presented in CLRS, even though it does not cover everything CLRS has to offer. Nevertheless, it should make your journey a lot easier.

As for Math reference, try getting through [Concrete Mathematics] (http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025). Legend says that if you can get through that book, you are prepared in math rigor for most of algorithmic materials. XD

u/ob3sus · 2 pointsr/learnprogramming

I've been reading Algorithms in a nutshell to get a basic grasp on common algorithms and how they are useful. I plan on going back and reading a more in depth "theory" type book but for now I just want to get knowledge I can apply http://www.amazon.com/Algorithms-Nutshell-In-OReilly/dp/059651624X

u/Mr_Bennigans · 2 pointsr/gamedev

> I think if I learn how to program with an aim to work as a software developer and make games on the side, is this viable after just turning 20?


There's nothing wrong with the age of 20. I started school at 20, graduated in four years, and found work as a software engineer right out school.


What you have to figure out is how to make the best of your time left in school: should you take a class or two on programming and graduate on time, or (more dramatically) change your field of study to computer science and spend a few more years in school? That's something only you can decide. If you want to finish your architecture program and graduate in a reasonable amount of time, I can assure you that your math and physics background will be enough to get you work as a software engineer, but only if you can actually program.


Part of working as a software engineer means being able to program in multiple languages. That's because it's not really about the language, it's about the logic. All languages follow certain patterns and while syntax or wording may change, they all share ways to implement the same logic.


It also means knowing what data structures to use for what scenarios. The phrase "There's no such thing as a free lunch" comes to mind. All data structures have advantages and weaknesses and no data structure is perfect for every occasion. Know the differences, know the performance impact, and be able to speak to them. This won't just help you write better code, it will help you land a job. Interviewers love to ask questions about data structures.


As a corollary to data structures, you also need to know your algorithms. You need to know the performance impact of different ways to search and sort, traverse graphs, and find the shortest path (particularly relevant for game programming).


You said you're learning Python and that's great. Python is a great way to learn how to program. It's dynamic, it's friendly, and it has a rich library. Learn Python inside and out, then pick another language and figure out how to do the same things. C++, Java, and C# are all pretty popular in the industry, pick one of those. Once you know how to program in a few languages, you focus less on minute implementation details specific to one language and more on high level abstraction shared across multiple languages. By that point, you'll no longer be speaking in code, you'll be speaking in plain English, and that's the goal.


I don't know many good free online resources for learning languages, I learned mostly out of textbooks and lecture slides (along with lots of practice). There are some links in the sidebar to some tutorials that are worth checking out. Beyond that, I can recommend some books you may want to read.


  • Algorithms in a Nutshell - one of the best quick references on algorithms you can read
  • C# 5.0 in a Nutshell - excellent language reference, aimed more at advanced programmers, though it's comprehensive in scope, covering everything from language syntax and structure of a program to more complex tasks like threading, multiprocessing, and networking
  • Learning XNA 4.0 - a great game programming book, teaches 2D and 3D game development using Microsoft's C# and XNA framework
  • Java in a Nutshell - another great language reference
  • Starting Out with Java - introductory programming text, has end-of-chapter problems for reinforcement, a little pricey so see if you can find a used older edition
  • Starting Out with C++ - another good introductory programming text from Tony Gaddis
  • Python in a Nutshell - I can't speak to this one as I haven't read it, but I have been extremely happy with O'Reilly's "... in a Nutshell" series so I suspect it's as good as the others
  • Learn Python the Hard Way - free online book about learning Python, begins with simple examples then teaches you how to break it so you know both sides of the story, wasn't as comprehensive as I'd hoped but it taught me the basics of Python
  • Programming Interviews Exposed - sort an all-in-one book covering lots of different topics and giving an insight into what to expect for that first interview

    EDIT: I added Programming Interviews Exposed because it's a good reference for data structures, algorithms, and interview questions
u/JordanTheBrobot · 1 pointr/compsci

Link Syntax Error

It looks like you got your link syntax backward. I tried to fix it for you!

u/Chr0nomaton · 1 pointr/dataengineering

I attended UCI for CS, and am going through the process of masters right now. I'm a data engineer / data platform engineer at a startup, and have been doing it for ~2 years or so. I find that the traditional CS knowledge is a tool belt that you don't necessarily *need* to get through industry.

​

There are a lot of really good algorithm books out there, O'Reilly has Algorithms In A Nutshell which does talk about O notation, and then a walk through of some basic data structures and algorithms (Linked list, trees, sorting). DS and Algos are really like the *core* CS things that one would need. Some community colleges offer these courses, which might be better depending on your circumstance.

​

The upper division classes are useful I think. I took a few classes on distributed systems and computer architecture which have been insurmountable. I took a class on databases (useful I suppose but meh), some classes on machine learning and artificial intelligence and operating systems. Those have become more useful now that I'm doing data platform work.

​

All that being said, I think the only disadvantages you have are the terminology ("This will give o(nlogn) lookup while retaining referential integrity") and the boxes to tick. Terminology though you can learn. The boxes to tick though might be tougher. I think some companies will be really stingy about that stuff. You did say that you have an undergraduate education though so I don't think that will matter.

u/michael0x2a · 1 pointr/learnprogramming

> I can't think of anything that I can do that can be done with my knowledge in C++/Algorithms

See FAQ - Where can I find practice exercises and projects?.

> And how/where can I start learning about algorithms?

You may want to complete some non-trivial projects in C++ first to make sure you actually understand the language. Then, try one of:

u/miyakohouou · 1 pointr/learnprogramming

As others have said, K&R is great for learning the C language. In addition to that, Algorithms in a Nutshell is a nice reference because it has sample code in C for a lot of major data structures and algorithms, so you can see how the language is used to implement CS concepts you might already be familiar with.

I would also highly recommend one or both of Advanced Programming in the Unix Environment or The Linux Programming Interface, which will get you up to speed on POSIX.

u/SamHennessy · 1 pointr/PHP

When I said "I can see how maybe they could be useless to you.", that's because I instantly know what kind of programmer you were. You're a low level guy.

I have a copy of "Algorithms in a Nutshell" (http://www.amazon.com/Algorithms-Nutshell-In-OReilly/dp/059651624X) but I never finished it. My favorit programming book may be "Patterns of Enterprise Application Architecture" (http://www.amazon.com/Patterns-Enterprise-Application-Architecture-Martin/dp/0321127420). Neither of these books are language specific, but I don't think they could be further apart in every way. Both are very valuable and I appreciate that they both exist.

There is a good number of reasons that you should maximize your use of the built-in PHP functions (http://webandphp.com/5reasonstomaximizeyouruseofPHP%E2%80%99sbuiltinfeatures). My book is an attempt to come up with a system that will help you learn all of the built-in PHP functions by giving a realistic use case that could be applied in your everyday work.

Being a PHP programmer, it is much more useful to know what functions PHP has for array sorting, than it is to know how to implement array sorting in PHP code.

u/LWRellim · -1 pointsr/programming

>Point me to one page explanations of them and I'll be amazed by them too.

http://en.wikipedia.org/wiki/List_of_algorithms

Take your pick, each of the links on that page is to a brief summary explanation, and many of them will probably be "amazing" to relatively new/less widely-experienced programmers.

EDIT: Also, there are a host of standard reference books with a plethora of such things in them: Sedgewick's is a classic, then there is Wirth's Algorithms and Data Structures which used to be considered a "must read" for anyone in the profession, and then there are more recent things, like O'Reilly's nice little handbook/guidebook