Welcome, Guest: Register On Nairaland / LOGIN! / Trending / Recent / New
Stats: 3,150,180 members, 7,807,573 topics. Date: Wednesday, 24 April 2024 at 03:28 PM

I Need To Learn Algorithms - Programming - Nairaland

Nairaland Forum / Science/Technology / Programming / I Need To Learn Algorithms (6309 Views)

Sorting Algorithms / Learning Java Algorithms:merge Equal And Unequal Arrays. / Genetic Algorithms And Neural Networks (2) (3) (4)

(1) (2) (3) (Reply) (Go Down)

I Need To Learn Algorithms by IbroSaunks(m): 8:43pm On Nov 08, 2011
hi folks
i need a book, or something to teach me data structures and algos. i know a little, u know, stuff like the binary search or bubble sort, but thats not enough, cos ill probably come across it at msc level. can someone help?
Re: I Need To Learn Algorithms by IbroSaunks(m): 8:45pm On Nov 08, 2011
a book that explains well and isn't too hard to flow with would be very appreciated. i don't care if it'll cost me, as long as its good ill need the books name. fanks folks!
Re: I Need To Learn Algorithms by naijaswag1: 10:37pm On Nov 08, 2011
i have algorithm books in java
Re: I Need To Learn Algorithms by IbroSaunks(m): 10:57pm On Nov 08, 2011
naija_swag:

i have algorithm books in java
if they r in soft copy, i wouldn't mind at all
Re: I Need To Learn Algorithms by Fayimora(m): 12:13am On Nov 09, 2011
Yaaay so finally someone wants to learn this on this forum. Ok I can help you with 2 books you might end up never finishing but I gotta test you first(just helping you). How good is your maths? How good is your programming ?
Re: I Need To Learn Algorithms by IbroSaunks(m): 12:20am On Nov 09, 2011
Fayimora:

Yaaay so finally someone wants to learn this on this forum. Ok I can help you with 2 books you might end up never finishing but I gotta test you first(just helping you). How good is your maths? How good is your programming ?
math, average, programming, well im still a learner, ill say above average but im not a guru, yet (if i don't become a guru thats failure!!), i really am not good at accessing myself, some people think im ok, my lecturers think so, personally i think im a dullard ,
another thing, i Tend to answer questions in a lengthy manner, kinda like now,
Re: I Need To Learn Algorithms by Fayimora(m): 12:25am On Nov 09, 2011
OK cool, How about you spend a little bit of time learning/revising Sequences, Summations and Sets. You would start learning by analysing A BUNCH of already available algorithms. Also, you need to improve your skills. How about you take from NOW till DECEMBER to do those 2 things before you start working fully on algorithms. I am saying this because the materials I am going to give you would have no atom of code in them, they are focused mainly on algorithms. You would have to implement those algorithms yourself as they just explain it using some mathematical notation and a bit of english.
Re: I Need To Learn Algorithms by IbroSaunks(m): 12:30am On Nov 09, 2011
ummm , though i have a tough calendar, if i don't know algos too well i dont think i can call myself a complete coder , so, ok!, d only problem is, i don't have any sequences material, i mean i remember some of it, i liked sets back then, but i don't have any revision material, once again, do u know(or have) any i can use?
Re: I Need To Learn Algorithms by ektbear: 2:25am On Nov 09, 2011
I highly recommend this book: http://www.amazon.com/Data-Structures-Algorithms-Java-2nd/dp/0672324539

Clear, easy explanations of most of the algorithms.

Is this for job-hunting purposes or academic? If for job-hunting, then you should buy an algorithms puzzle book too.
Re: I Need To Learn Algorithms by IbroSaunks(m): 6:19am On Nov 09, 2011
ekt_bear:

I highly recommend this book: http://www.amazon.com/Data-Structures-Algorithms-Java-2nd/dp/0672324539

Clear, easy explanations of most of the algorithms.

Is this for job-hunting purposes or academic? If for job-hunting, then you should buy an algorithms puzzle book too.
yeah i may have seen it before. a friend of mine said i shouldn't use it back then, can't remember why, but if u say its cool then, ill try getting it,
Nah for educational purposes. so people study algos for jobs?? wow , didn't know that,
Re: I Need To Learn Algorithms by ektbear: 9:00am On Nov 09, 2011
^-- Yeah, basically the highest-paying companies in the software industry all make you go through tons of algorithms puzzles. So really important to get good at it.
Re: I Need To Learn Algorithms by IbroSaunks(m): 9:24am On Nov 09, 2011
ekt_bear:

^-- Yeah, basically the highest-paying companies in the software industry all make you go through tons of algorithms puzzles. So really important to get good at it.
wow! in that case, where can i get puzzles please?
Re: I Need To Learn Algorithms by ektbear: 9:27am On Nov 09, 2011
http://www.careercup.com/ is a good resource I've heard, with lots of free puzzles.

I haven't really been using that to prepare though. I bought a couple books ("Cracking the coding interview" , "Algorithms for Interviews"wink and am reading through them a bit.
Re: I Need To Learn Algorithms by IbroSaunks(m): 9:40am On Nov 09, 2011
ohh, ok, so where do u get these books, and do u get em inhard or soft copy?
Re: I Need To Learn Algorithms by ektbear: 2:48pm On Nov 09, 2011
I downloaded the first one from a torrent site, but ended up buying physical copies too.
Re: I Need To Learn Algorithms by IbroSaunks(m): 7:07pm On Nov 09, 2011
ekt_bear:

I downloaded the first one from a torrent site, but ended up buying physical copies too.
fanks! i guess ill have to get all of em via torrents, i couldn't find d java algo book at a shop i went to, all saw was schaums outline:data structures in java ,
Re: I Need To Learn Algorithms by ektbear: 7:31pm On Nov 09, 2011
The Schaum's outline for data structures in java has really bad reviews lol. Perhaps best to avoid it. You can find the book I linked to above on bittorrent or one of the download sites.
Re: I Need To Learn Algorithms by IbroSaunks(m): 7:43am On Nov 11, 2011
ekt_bear:

The Schaum's outline for data structures in java has really bad reviews lol. Perhaps best to avoid it. You can find the book I linked to above on bittorrent or one of the download sites.
thank u, i generally avoid schaums books, they r more like study guides IMO
Re: I Need To Learn Algorithms by Fayimora(m): 2:25pm On Nov 11, 2011
Hmm you only need a language to test an Algorithm. A book like what @ekt mentioned above is what I would call "flawed" if you want to learn Algorithms and not just how to write some nice code in a language. Want to learn algorithms that would change your life? Go and get TAOCP(you might not finish it before u die, #FACT) and Introduction to Algorithms(AKA CLRS).

So again, if you really want to improve your analytical and algorithmic skills, fetch those books I mentioned above. Career cup is more like a forum where people share different questions, tasks and whatever they had to undergo during recruitment. Its not really wise going there without a good knowledge of programming and at least a basic knowledge of algorithms.

Understanding how an algorithm works is the main key. To do that, you first need to understand how algorithms are analysed. From there on you learn methods which you can use to write your own algorithms. Finally you implement algorithms, study available algorithms and make use of them.

However if you are on the "just get a job" part of the fence then you can ignore all I just said.
Re: I Need To Learn Algorithms by IbroSaunks(m): 2:37pm On Nov 11, 2011
do u mean the mit press introduction to algorithms?
Re: I Need To Learn Algorithms by ektbear: 4:01pm On Nov 11, 2011
"The Art of Computer Programming" and "Introduction to Algorithms" are supposed to both be good books.

But the one I suggested is far more basic and introductory. It focuses more on describing the algorithms and the reasoning behind them and less on actual algorithm analysis. So for you to start with AOCP and CLRS and really get value from it, your math skills should be good and ideally you already have had some experience with algorithms (so in other words, you've already used and mastered the material in a book like the one I mentioned.)

I guess it depends on what your goals are. For me, I wanted to really master the basics (I.e., on the level of, "I want to do fast sorting with a constraint on memory. Which sorting algorithm should i use?"wink, and really understand at an intuitive level what each algorithm is doing. Like, to the point where all these techniques are not just buzzwords or names, but i really understand what is going on.

Now in my opinion, this is the type of knowledge you'd get out of the book I mentioned.

Another thing too. . . the book i mentioned is superb for self-study. From what I know of CLRS, it is not a particularly good book for this purpose. Good if you are using it in conjunction with lecture note materials that an instructor is providing and great as a reference once you already know the material, but not a good choice for teaching the material to yourself.
It depends on what you are trying to achieve, I guess. But I don't think you can go wrong starting with an easy book, fully mastering it and then finding a harder one later.
Re: I Need To Learn Algorithms by IbroSaunks(m): 6:32pm On Nov 11, 2011
@ekt_bear, if its the mit press intro to algos, iv got an older softcopy edition, and i guess ur right. i think ill prefer to have all of 'em and den ascertain which would be best to go through first,
Re: I Need To Learn Algorithms by IbroSaunks(m): 6:33pm On Nov 11, 2011
@ekt, r u a student or a pro?
Re: I Need To Learn Algorithms by Fayimora(m): 7:45pm On Nov 11, 2011
ekt_bear:

"The Art of Computer Programming" and "Introduction to Algorithms" are supposed to both be good books.

But the one I suggested is far more basic and introductory. It focuses more on describing the algorithms and the reasoning behind them and less on actual algorithm analysis. So for you to start with AOCP and CLRS and really get value from it, your math skills should be good and ideally you already have had some experience with algorithms (so in other words, you've already used and mastered the material in a book like the one I mentioned.)

I guess it depends on what your goals are. For me, I wanted to really master the basics (I.e., on the level of, "I want to do fast sorting with a constraint on memory. Which sorting algorithm should i use?"wink, and really understand at an intuitive level what each algorithm is doing. Like, to the point where all these techniques are not just buzzwords or names, but i really understand what is going on.

Now in my opinion, this is the type of knowledge you'd get out of the book I mentioned.

Another thing too. . . the book i mentioned is superb for self-study. From what I know of CLRS, it is not a particularly good book for this purpose. Good if you are using it in conjunction with lecture note materials that an instructor is providing and great as a reference once you already know the material, but not a good choice for teaching the material to yourself.
It depends on what you are trying to achieve, I guess. But I don't think you can go wrong starting with an easy book, fully mastering it and then finding a harder one later.

Errr you kinda slipped. Yes I know you need maths skills and thats why I told @OP earlier to work on them for now. If you cannot learn without code then you aren't actually learning algorithms. The only way you can understand the ACTUAL CONCEPTS is with such books. They dont say anything about language or some bloody code. They go STRAIGHT to the point, its up to you to implement it in whatsoever language.

What I have learnt is, never learn any concept by looking at code. Read about it, work on it with pencil and paper until you understand it and can compute results for any input you are given. If you have noticed, most of those 'humans' that invent these algorithms are mathematicians! Ever asked yourself why?

Dont forget that an algorithm is not about writing code to do something. An algorithm is a sequence of computational steps. There is a difference between a programmer and someone who knows how to write code. A programmer MUST have strong computational and analytical skills. That you can only possibly get from maths.

Anyways, its all up to you. What you(@ekt) are saying is not wrong at all. Its just not the right advice for someone who would love to learn ALGORITHMS. Again if anyone is on the "just get a job" side of the fence then what I have just said should be totally ignored.
Re: I Need To Learn Algorithms by IbroSaunks(m): 7:56pm On Nov 11, 2011
@fayimora do u know books that i can use to learn the math skills required?
Re: I Need To Learn Algorithms by ektbear: 7:57pm On Nov 11, 2011
IbroSaunks:

@ekt, r u a student or a pro?

I'm a student who'll be going on the job market in a few months, considering some software positions. Not a computer scientist though.
Re: I Need To Learn Algorithms by ektbear: 8:02pm On Nov 11, 2011
Fayimora:

Errr you kinda slipped. Yes I know you need maths skills and thats why I told @OP earlier to work on them for now. If you cannot learn without code then you aren't actually learning algorithms. The only way you can understand the ACTUAL CONCEPTS is with such books. They dont say anything about language or some bloody code. They go STRAIGHT to the point, its up to you to implement it in whatsoever language.
That is certainly one way to do it. Just describe the algorithms and not provide any code. But in most cases, people also prefer looking at code too. FWIW, despite buying and using the book I linked to above, I actually implemented my linked lists, sorting algorithms, etc in Ruby. I didn't recommend the book because it has code, but because it has clear explanations.


What I have learnt is, never learn any concept by looking at code. Read about it, work on it with pencil and paper until you understand it and can compute results for any input you are given. If you have noticed, most of those 'humans' that invent these algorithms are mathematicians! Ever asked yourself why?

Dont forget that an algorithm is not about writing code to do something. An algorithm is a sequence of computational steps. There is a difference between a programmer and someone who knows how to write code. A programmer MUST have strong computational and analytical skills. That you can only possibly get from maths.

Anyways, its all up to you. What you(@ekt) are saying is not wrong at all. Its just not the right advice for someone who would love to learn ALGORITHMS. Again if anyone is on the "just get a job" side of the fence then what I have just said should be totally ignored.
Much of this is true. However, not really relevant for the purposes of this thread. He wants a book that explains clearly these algorithms. CLRS in my opinion is not a good choice for a beginner self-studying. The book I mentioned is.
Re: I Need To Learn Algorithms by Fayimora(m): 8:11pm On Nov 11, 2011
OK IF YOU SAY SO! wink
Re: I Need To Learn Algorithms by IbroSaunks(m): 8:23pm On Nov 11, 2011
@fayimora, no suggestions ? @ekt, what r u studying and where?
Re: I Need To Learn Algorithms by Nobody: 8:41pm On Nov 11, 2011
@ Fayimora

I fully support ekt_bear: you have to start small. I cannot believe that you would even mention TAOCP to someone who wants to learn algorithm. Even us---the folks at Caltech---we fear that book! If you are not a theoretical CS major, TAOCP is not even remotely for you. That book is not hard, it is almost impossible. Bill Gates famously offered a job to anyone who has read a whole volume and solved a significant portion of the exercises.

Most folks mention TAOCP just to show off. They do not actually read it. One of my friends just told me that he has bought the latest version (Volume 4A) so that he can put it in his shelf and marvel at its content. After reading the book that ekt_bear suggested or another book of similar difficulty, the OP can then move to CLRS which is what we use at Caltech. That book itself is also hard. Most developers don't use these books since they are not researchers and since most of the algorithms in these books are already available as modules or packages in most languages.

TAOCP? Really? Knuth even defined the term algorithm using precise mathematical notation. I would expect nothing less of a man who studied Math at Caltech.
Re: I Need To Learn Algorithms by Fayimora(m): 8:46pm On Nov 11, 2011
Errr I personally use CLRS but read TAOCP. Been reading one chapter(from TAOCP) for like 6 months now. Its an interesting book but yeah, its impossible.lol However, CLRS isin't that difficult man. Ok maybe i went to high but CLRS ain't a pain in the Bottom. Its awesome. TAOCP is like MAGIC! lmao. OK so what book would you refer a beginner to? I mean not a book that focuses on a language.

(1) (2) (3) (Reply)

I Want To Become A Good Systems Programmer Before I Graduate / Who's Interested In Learning Python For Data Science (from Scratch) / How Do Whatsapp And 2go Make Their Money?

(Go Up)

Sections: politics (1) business autos (1) jobs (1) career education (1) romance computers phones travel sports fashion health
religion celebs tv-movies music-radio literature webmasters programming techmarket

Links: (1) (2) (3) (4) (5) (6) (7) (8) (9) (10)

Nairaland - Copyright © 2005 - 2024 Oluwaseun Osewa. All rights reserved. See How To Advertise. 62
Disclaimer: Every Nairaland member is solely responsible for anything that he/she posts or uploads on Nairaland.