Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I don't think anybody doing your project should discourage you. It's usually in the process of trying to do something that has been done before that you get an insight or think about a better way of doing it. Plus, doing things that have been done before is a very good way to learn. Thats how in the old days apprentices became masters.

As for the alg/ds. In my opinion, there are some fundamental things that you need to know about DS/alg that make you a better developer. What people usually get wrong is assuming that it is the applicability of the algorithms or datastructure that matters ( who cares if you know about a Red/Black Tree ! ) . I think its more about the patterns and the way they allow you to think.

Understanding how tree traversal is done may not be directly useful in your work but helps you understand recursive thinking which is super important. Knowing how QuickSort/MergeSort work doesn't have any application in real life but makes you think about problems with a divide/conquer approach in mind which is again super practical. You will never write a Hash/Dictionary but knowing what is the difference between one and an array has immense applicability on your work.

My advice to you: stay away from memorizing DS/Alg. Throw out your "cracking the coding interview" book if you have one and pick a algorithm and datastructure book and try to understand it. Then you can move on to solving problems yourself and you will realize that you are a better developer for it. Here is what I would suggest:

http://ocw.mit.edu/courses/electrical-engineering-and-comput... http://interactivepython.org/runestone/static/pythonds/index...

Of course, you don't need to know all of the stuff here :)



Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: