You need to follow a very organized and disciplined approach to prepare for the Software Engineering Job at Facebook/Google/Amazon/Microsoft etc.
Actually all these companies e.g. MS,Google,Amazon,Facebook,Apple follow an approach on which that measure the thought process of a candidate.
And they use different means to evaluate that, but yes most of them uses Algorithms/Data Structures/Open-ended questions(If you have applied for a software engineering job) as one of the approach to evaluate the talent.( As those are the base to develop the technologies)
To be accustomed with algos/data structure/coding , you must have understood/practiced the minimum e.g. :
(Step-1): You should have practical understanding of the Algorithms (e.g. When to use BackTracking, When to Use Divide and Conquer, Why double hashing required ?,Where brute force concept can be applied ?) (100 Hours)
(Step-2): You should have practical understanding of Data Structures e.g. (Practical use cases related to :when to use circular buffer , or when to use adjacently list or the combination of both or something else to solve the problem )
(Step-3) : You must practice several coding problems to implement the things which learn from Step-1 , and Step-2 (you may do the following choose any coding language for the choice of yours (C,C++ or Java or Python or PHP or any one else )
(Step-4): Solving the problem doesn't mean just to solve it, but to understand the best way to solve it e.g. The given technical problem can use various ways to come to solution, and you might want to use the optimal one. (How you connect the given solution with the computing/memory resources e.g. Memory/Processing Power)
Most Important One
However other than programming you might need to understand the main concept for the interview is to keep the interview active and this requires some action from your side, such as the following:
You need to talk
You need to explain
You need to discuss
You need to express your views
You need to understand clearly the questions given to you
You need to understand the interviewer’s expression and mindset to un- derstand those questions
You might need to ask appropriate questions to understand the question or any other discussion item. (100 Hours)
And also :
Prepare : "Please tell me about your self" , "Your skills related positive/negative further interest" , Basics for the most needed computer science concepts or anything as you presented on your "CV/Resume"
Above is just a sample plan, you may customize the way you want(e.g. 100 hours to 10 hours or something else) - Click to Amazon, to find the best books you might need.
(Here Google doesn't mean the Google, it means any company which is very creative to introduce the computer science related products )