Doubt Regarding Basics vs Algorithms.

I am currently doing my masters (MCA).

At the end of the curriculum the company Media.Net (you might be familiar) visits our campus for placement. Being placed at media net is my goal.

The process consists of 2 rounds

  • Coding round (2 questions, 90 minutes, platform codechef)
  • Algorithm round (3 Algo Questions, 45 mins each, clear any two)

I know C++ and have selected it as my main language of coding. Will definitely learn more languages like Java, Python, Lisp, Erlang, Haskell.

So my questions is where do i start from?

What do I now?

Start by making my basics strong? (Basics as in topics and concepts eg. overloading,inheritance,file handling etc)

OR

Start by learning Algorithms and Data Structures(No idea about this and I am New to this)

Will also do the CCDSAP certification

I just want to know where to start from as many of you experienced people must’ve started from somewhere.

Thanks in Advance

@saiff_ansari I’ll make it simple for you.

  • Make the language part strong. Don’t run for multiple languages. Choose any one and try to understand how everything works in that language. You should not face any problems in implementation in that language.
  • Then comes the part of DS and Algo. I was same confused as you are when I started. Even now I feel same sometimes. But the thing is there is nothing like a sequential process here. You can learn any DS and Algo just randomly by solving problems on various online judges.
  • For starters, I will say try and learn basic Data structures like Stack, queue, linked list, tree, Graph, hash tables, etc. You should be able to implement their basic operations without any problem. Try implementing by using Standard Template Library(STL) also (if you are choosing C++). Because in STL almost every operation is predefined in <algorithm.h> {But you should implement without STL too to clear your basics.}
  • After that comes the part of Algo. Start with Searching and Sorting (they are used in like every question).
  • Then start problem solving on online judges → SPOJ, CodeChef, CodeForces, Hackerrank, Hackerearth, etc.
    I will personally suggest codechef because it has the most awesome editorials. So, if you face any problems you will be able to read and understand the solution. Hackerrank and Hackerearth don’t have good editorials.
  • Try participating in contests. Codechef long is a must. Because you have 10 days for 10 questions. So, you can learn new concepts and apply them.
  • Read Editorials after contests and try to solve the problems you weren’t able to solve in the contest after going through editorials. (This is an important thing. If you don’t do this, you’ll not be able to learn anything new. Although, it may seem a bit boring to you at first but just imagine you tried a question for 4-5 days and not able to solve. So, after getting editorials you will have the great understanding of the concept. PLEASE DON’T MISS IT. I DID THE SAME MISTAKE TOO)
  • Just last few tips. Don’t get de-motivated if you are not able to solve. Even the greatest people in the world failed at first. Do programming consistently and regularly. Ask questions on CodeChef Discuss if you face any problems.
  • Although, I don’t know much but if you face any issue and feel like contacting someone Do drop me a mail-> vaibhavkhandelwal20[at]gmail.com . I will be happy to help.

Good luck :slight_smile:

2 Likes

I will say stick to one language, learn it thoroughly and then go for data structure and algorithms.

It’s good that you are chosen C++. It is good to focus on any one language an become an expert in it.

Apart from grooming your concepts, logic and basics, you must start practicing your coding online. There are websites available that specialize in it. You can specifically choose the interview practice section and start your practice. This will not only boost your confidence but will make you more comfortable in the coding interview, as the questions are picked from the real interview sessions so as to let software engineers prepare for best tech jobs. If my suggestion seems fine to you, then you can have a look at the CodeFights website. I Assure you that it will surely help you out.

Do let me know here in comments if it helps.

Thank you so much @vaibzz

Your answer cleared all my doubts. And very considerate of you dropping your mail ID. I will be learning C++ in depth.

Thank you so much once again bhai.

:slight_smile:

Thanks, Doing the same by sticking to C++

You are most welcome @saiff_ansari. Keep the good work up!

I just checked your website and i must say it is impressive