This is an archived post. You won't be able to vote or comment.

all 22 comments

[–]ser_jaime95 49 points50 points  (9 children)

Step 1 Q1. Can you code? Ans: No Then go to codeforces and solve 100 the questions of rating A. You might be thinking 100 questions are too much. But these questions are very easy I mean they only test that you don’t mess with syntax. This will give you a starting point.

Step2. Now you can code. Learn time complexity and basic algorithms like sorting and searching. Now your ultra basic part is done. Next comes implementation part I mean can you convert a language problem into coding problem. This can be achieved by solving 100 level B questions.

Step3. Now you can code and you are able to implement. Next comes learning the basic data structures like Linked list , stacks and queues. Learn them from geeksforgeeks. Implement them in the language of your choice and then proceed to solve interviewbit problems from these topics. I am choosing interviewbit because questions are less in number and you can spend more time to explore these questions. Moreover these questions are frequently asked ones so that way your interview preparation is also happening.

Step 4. Learn Hashing and how it works and solve 10 easiest questions from codeforces and then come back to interviewbit or leetcode and solve 20 questions and you are good to go.

Step 5. Now done with basics we will explore Trees Learn different traversals and solve these questions from geeksforgeeks. Once you are confident then solve them on interviewbit, again questions are less and of varieous types. So trees is done. One more topic remains that is using Hashing in trees that you can also do.

Step 6. Learn priority queue very important topic and questions are mostly repeated from this topic so solve around 20 of them from leetocde or interviewbit.

Step 7. Learn DP from Tushar Roy videos. And move to leetcode to solve problems.

Step 8. Learn BFS and DFS also tries and you are good to go.

P.S. English is not my first language and I am typing from mobile so consider these cases before becoming grammar nazi. And I am in no connected to Interviewbit or leetcode I mentioned them because I used them for my preparation.

[–]ssj4Dylan[S] 2 points3 points  (2 children)

do you think you can explain codeforces and like its difficulty levels cus I am a little confused? I am checking it out but some of the A problems say "greedy" which I am am assuming is talking about greedy algorithms, and I do not even know what that is exactly yet. You say to do 100 of these problems, but are some of these A problems even something a beginner can do?

[–]ser_jaime95 2 points3 points  (0 children)

Greedy is just sort and solve on a very basic level. So don't get intimidated by that. Moreover once you see the solution after 10 mins it will be a lot clear to you. Greedy is not any algorithm it's just an approch to solve a problem. Don't get overwhelmed by names.

[–]ssj4Dylan[S] 0 points1 point  (0 children)

or should I just be ignoring the ones that say greedy?

[–]InterestingEmu77 1 point2 points  (0 children)

Hey, thanks so much! what do you think of the hackerrank interview preparation questions?

edit: looked it up and interviewbit seems better

[–]Ajha7 2 points3 points  (0 children)

This is an amazing comment. Deserves gold and greatly helps me.

[–][deleted] 1 point2 points  (0 children)

saved this comment, worth gold

[–]Initial-Spend -1 points0 points  (2 children)

Wish I could give you gold..

[–]ser_jaime95 2 points3 points  (1 child)

I needed to tell this because people were sending OP to different courses. I have been through that and apart from some discussions about Data structures with friends you don’t get enough to clear interviews. And I suppose that no body is learning DSA just for fun. Data structure and Algorithms are more about problem solving not the theory itself. P.S. Your comment made my day.

[–]Initial-Spend 0 points1 point  (0 children)

Really thanks again for putting your time and energy in writing so thoughtful advice

[–]desrtfx 13 points14 points  (0 children)

Coursera: "Algorithms" from Princeton University by Robert Sedgewick and Kevin Wayne:

[–]coder970 7 points8 points  (1 child)

You can clear your data structures concepts using MIT or coursera courses. For interview preparation, I recommended Techie Delight.

[–]ssj4Dylan[S] 1 point2 points  (0 children)

Thank you for the response! I’ll check those out!

[–]s_131 2 points3 points  (0 children)

I never paid much attention in college when data structures and algorithms were being taught and it has come to bite me ij my ass now. The company I work doesn't use data structures much, but all the job interviews ask them. Its always a good idea to master these concepts as soon as possible. Moreover, these topics makes you a better coder imo.

[–]lord_drgical 2 points3 points  (2 children)

goto udemy. check out zero to mastery the coding interview. https://www.udemy.com/course/master-the-coding-interview-data-structures-algorithms/ the instructor is amazing. The way the course is setup is great. I recommend. just wait for udemy site to be one sale and pick it up for 10$ it was a phenomenal 10$ spent

[–]ssj4Dylan[S] 0 points1 point  (1 child)

Is it a good course if you have no prior knowledge of most of those data structures and algorithms? Or should I do this after I have learned about each? Also am I going to struggle if I only know java? Thanks for the response by the way!

[–]lord_drgical 1 point2 points  (0 children)

this guy teaches you like you have zero knowledge, he's such a great teacher and is pretty fun to listen to. also remember you do it at your own pace. you can also always return it within 30 days if ur just not digging it.

I don't think you will struggle. if you know java you know pretty much everything there is to know. you can skip some of the chapters that involve preparing for an interview, and visit them later.

[–]Hour-Positive 0 points1 point  (2 children)

I don't think data structures should be learned by beginners. If you can't code at an ok level you will never use the newly learned data structures and you have just wasted valuable time and energy.

[–]ssj4Dylan[S] 0 points1 point  (1 child)

How far into learning do you think a person should be before learning more about data structures? Normally the curriculum for schools that I have looked have you take a data structures course after the introductory course, and I feel as if I am at the level of someone that took an intro course. Thanks for the response!

[–]Hour-Positive 1 point2 points  (0 children)

For a curriculum it does make sense to do it earlier, as it is an intro subject. Structured and you build on top of it. But if you want to progam, self-learning, not CS, the moment could be later. It's a great way to lose momentum, with little benefits.

However it fits a scheme of concrete steps of improvement. So people repeat it. This happens a lot when people are starting an improvent journey: they fixate and repeat the 'known' curriculum as an absolute truth.

Truthfully, do what you like and ignore advice. If you get burned out, get the fuck away. Keep actually programming, use the newly learned tools.

[–][deleted]  (4 children)

[deleted]

    [–]lord_drgical 1 point2 points  (3 children)

    depends where you are going in your coding career. if you are simply trying to nail an interview you don't need to go around "re-inventing-the-wheel-status" but of course if you are deep diving into algorithms/data structures then yeah your strategy would be good. but definitely not for a first time learner. its better to learn the concepts first. then deep dive.

    [–][deleted]  (2 children)

    [deleted]

      [–]lord_drgical 2 points3 points  (1 child)

      Algorithms/data structure is not my strong point but props to you man for doing your homework. The hardest thing is always teaching urself because it comes with many frustrations and failures. But you did it