As an intermediate level web developer, if I want to learn algorithms to the extent enough to confidently answer interview questions related to the same, where do I get started and how much should I cover for starters?
-
I know this is a language independent question but in case it would help better to answer the question if the programming language is specified and if that's the language I'm trying to make a career out of at least for the next few years atleast, it would be Ruby and the web framework is Rails. To be more specific, I have 3.5 years of experience in Rails and 4 years overall work ex. The basic idea behind this question is nobody wants to reinvent the wheel but how should one go about better preparing for such kinda things(at least having basic algorithmic knowledge) such that they serve as a basis that could be used(it's understandable that can't always be the case) in a job because some client requirements ask for one to go deeper to solve a problem. I understand that the learning here is an ongoing experience where only after attending different kind of such interviews one could infer some patterns(probably :) ), but to get started I guess somewhere a line can be drawn right as to what to study and how much should be studied? Hence the question, thanks.
-
Answer:
When I am curious about an algorithm, I implement it. My goal is understanding, not production quality, so I don't mind making simplifying assumptions as long as the essential complexity of the algorithm remains. When I really want to understand it, I then teach the algorithm to someone else. I don't worry about "reinventing the wheel". As long as the investment is relatively small, the value of increasing my own confidence is worth it. Plus it's just fun.
Kent Beck at Quora Visit the source
Other answers
If I understood your question it goes on something like this: "how do I know all the answers when I'm asked?" And the answer is: either you know it, or you don't. And the only way to know it is because you tried it before and it worked within the same circumstances. Programming is a craft. It's a profession of practice. And the only way to know is practice. Repeat many things many times and keep experimenting new things even if you know a way that works right now. Relentlessly, continuously, all the time, forever. There is absolutely no "line" to be drawn. Stop the process and you're obsolete as of right now. And that's exactly how this profession is supposed to be. No amount of certifications, diplomas, or whatever can replace continuous improvement.
Fabio Akita
IMHO, we should never be in a rat race. Do something only because you love to do it and it excites you, pleasures you. Appreciate the beauty in algorithms. There is no need to reinvent the wheel, I agree, but there is more important reasons why they focus on your algorithm knowledge. To understand that, there could not a better article than this http://www.joelonsoftware.com/articles/LeakyAbstractions.html Basically the law states and boils down to one point that, though you don't have to reinvent the wheel, you have to understand how it is made and how it works dot
Deepak Krishna
Related Q & A:
- How To Answer Interview Questions?Best solution by Yahoo! Answers
- How can I get started with WSO2?Best solution by Stack Overflow
- Where can I get Valve Cover Bolts for My 94 Civic Vtech?Best solution by Yahoo! Answers
- I want to learn how to animate in flash?Best solution by Yahoo! Answers
- No I want to learn how to sing, but I'm shy?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.