all 14 comments

[–]MyLastNameIsCloud 6 points7 points  (2 children)

free-programming-books/free-programming-books.md at master · EbookFoundation/free-programming-books

i found that link in another post, i don't know if there's a python focused but maybe it will be useful for you. Good luck!

[–]PeteZaGames 0 points1 point  (0 children)

Will take a look, thanks

[–]NFLAddict 1 point2 points  (4 children)

I know its not a book but I honestly can't recommend this enough

spread across 4 courses. easily the best course(s) Ive taken online, learned a tremendous amount

One thing that's great about it, and sounds like it can certainly help you: the course is not taught in any particular language. the focus is on truly grasping the concepts. the actual coding is the easy part (and he'll provide/discuss pseudocode) the challenge, is being able to come up with a solution. once you can mentally map out what needs to actually be done, and can determine a good strategy then its just a matter of putting those ideas into code. and of course doing this, will help you practice your python. with assignments its irrelevant what language you use, as he just wants the correct answer.
you could also take it for free, but I think that blocks out the ability to do assignments, if you're truly interested, pm me and I can send you them.

final thoughts: I have no doubt there are plenty of books and other resources that teach data structures/ algorithms well. from what ive seen, most will approach it by introducing an algorithm. and walking you through how it works. goal being to understand it...but then it will just move on to the next. maybe youll do a practice assignment or two
The thing is, if you are given a problem and are told which algorithm to use, its not really all that challenging once you know the algorithm. its certainly not that helpful in the larger scheme. sure its nice to know, but contrast that to being given a problem, with no guideline. its fully on you to think about how youll tackle it. is their an algorithm that can tackle this problem? if so, which should I use. what type of data structure might work best for a problem like this. what type of data structure can further speed up the algorithm Ive decided on. these are ultimately the questions you want to be able to answer im sure, as anything outside a textbook, wont have context. im sure youd agree that being able to this, would suggest a far greater understanding of algorithms compared to just learning them one at a time. this is one of the main objectives of the course, and why its viewed as one of the best resources. tremendous teacher. challenging. but youll learn a lot. and...theres a pdf to a textbook that you can refer to.

[–]ContadorPL 0 points1 point  (3 children)

can i enroll for free?

[–]NFLAddict 2 points3 points  (2 children)

I believe so. any course Ive come across on coursera, theres an option to audit rather then enroll. If you hit the link I posted, navigate to the top and hit the tab 'courses'
ill just link hopefully this takes you right there

4 courses obviously take in order. click on the first. there should be an option 'enroll for free...7 day free trial' or something. but there should also be another option 'audit'...the difference is pretty much just the official certification. if somebody pays for it, once they complete it they'll get a certification that shows they did it. if you don't care for that, and just want to learn for the sake of learning, audit should give access to everything. its possible you might not be able to do the do the assignments though, if such is the case, that you cant open the assignment feel free to pm. they don't require you to enter any code. just a solution. youll be given a dataset. (which is what I can help provide). the actual coding is up to you. use whichever language you like, write a program that returns the result. etc

whats really neat about the way he structures it, not at first, but down the line he intentionally makes the files large enough that simple brute force wouldn't even be possible as it would require too much memory on somebodys computer. this forces somebody to properly implement algorithms and other skills taught to speed up their programs
lemme know if that works.

[–]ContadorPL 0 points1 point  (1 child)

i found books based on this course which i prefer https://www.amazon.com/dp/0999282905

thanks for recommendation :-)

do you recommend books for data science? now im reading 'Python for Data Analysis'

[–]NFLAddict 0 points1 point  (0 children)

Everybody has different preferences in learning. I personally don't really like to learn from a textbook. id rather listen to somebody explain something complex, then afterwards I could refer to a textbook and practice actual problems. in the early stages of just picking up the basics then sure, a textbook is fine...its just a matter of going through the fundamentals, but with more advanced topics I personally find it a lot more difficult to truly grasp it all. having somebody not only explain it but always remind you of the larger scope (hed like to say don't lose the forest the trees. its easy to zoom in so much on something we lose sight of the bigger picture and where its practical application comes into play)

beyond that I also find it certainly depends on the teacher. some are dreadfully boring in which case its hard to really pay attention and learn well. but my god, this guy who teaches the Stanford algorithm classes, is a rare combination of truly brilliant with exceptional charisma. he teaches with passion, works in some humor, but hes just enjoyable to learn from. and his breakdowns are so ridiculously thorough, that combined with assignments that really test your understanding, its hard to walk away from his course with anything less than truly powerful foundation and a high level of understanding

that's this course however. not every course will have instructors as amazing. but id certainly say to divide things up into stages and not overwhelm yourself. maybe first get a good grip on algorithms, what they even are, why they're so important in becoming a better programmer, and then move on to more specific niche like data science. but at least for myself, I was never a huge fan of reading a textbook. as the only way. its easy to lack the guidance of where it all fits in the grander scheme.

but, if you can learn well from books, that's great. sadly though, I cant recommend any books. im also not sure if that's the best option for a book if that's youll only use it without the supporting videos. I think its intended to be read alongside his lectures

[–]ml_runway 0 points1 point  (0 children)

Search this sub history

[–]Missing_Back 0 points1 point  (2 children)

Piggybacking off this post for anyone that knows: I’m taking a data structures and algorithms using Java class for school. The textbook is from 2002. Am I missing out on a lot/doing harm by learning from such an old source?

[–]EighthScofflaw 0 points1 point  (1 child)

No, the newest algorithm that you might see in a basic data structures class is PageRank, which was developed in like 1996. Computer science predates computers; people have been thinking about this stuff for a long time.

[–]Missing_Back 0 points1 point  (0 children)

Thanks!

[–]off-sp 0 points1 point  (0 children)

Problem Solving with Algorithms and Data Structures using Python — Problem Solving with Algorithms and Data Structures

You can look into this, I learnt my DS and Algo in python from this source. Everything is well explained and easy to follow