Choosing a programming language:
First of all, you need to choose a programming language for your algorithmic coding interviews. The only exception I know of is Google. They allow their candidates to choose between Java, C ++, Python, Go, or JavaScript only. In general, I recommend using a language that you are very familiar with, rather than a language that is new to you but is widely used by the company.


Then there are a few you want to avoid completely. From my own experience as an how to read cracking the coding interview  interviewer, most candidates choose Python or Java. Other commonly chosen languages ​​include JavaScript, Ruby, and C ++. I would completely avoid lower-level languages ​​like C or Go, simply because they don't have standard library functions and data structures.

Personally, Python is my de facto choice for coding algorithms during an interview. It is concise and has a huge library of functions and data structures. One of the main reasons I recommend Python is that it uses consistent APIs that work on multiple data structures, such as len (), to insert notation and split sequences (strings, lists, and tuples). Arr [-1] is the last element in a sequence, and only arr.

Java is a decent option too. But because you will always have to declare types in your code, it means entering additional keystrokes. This will slow down the speed at which you encode and write. This question will become clearer when you have to write on a whiteboard during an on-site interview.
The reasons for choosing C ++ or not are similar to Java. Ultimately, Python, Java, and C ++ are good choices. If you've been using Java for a while and don't have time to get used to another language, I recommend sticking with Java instead of learning Python from scratch. This helps you avoid using one language for work and another for the interview. Most of the time, the bottleneck is thinking and not writing.

One exception to the convention of allowing the candidate to "choose whatever programming language you want" is when the interview is for domain-specific jobs, such as front-end, iOS, or Android engineer roles.
If you need to use a data structure that is not supported by the language, such as a queue or stack in JavaScript, ask the interviewer if they can assume that you have a data structure that implements certain methods with specific time complexities. If the implementation of that data structure is not critical to solving the problem, it is generally approved by the interviewer. In fact, it is more important to know the existing data structures and select the right ones to tackle the problem at hand than to know the complex implementation data.
Check your CS101:

If you've been out of college for some time, we recommend that you review computer basics. I'd rather go over it while I practice. I scan my college notes and review the various algorithms as I work through the LeetCode and Filtering the Coded Interview algorithm problems.
This collection of interviews with Kevin Naughton Jr was a quick update for me.
Vaidehi Joshi's medium-sized posts are also a very joyful resource for reviewing the various data structures and algorithms.
If you're interested in how data structures are implemented, check out Lago, a library of Data Structures and Algorithms for JavaScript. It is still much more WIP but I intend to turn it into a library that can be used in production and also as a reference resource for learning data structures and algorithms.
Mastery through practice:


Then gain knowledge and mastery of algorithms and data structures in your programming language of choice.
Practice and solve algorithm questions in your language of choice. While Cracking the Coding Interview is a good resource, I prefer to solve problems by writing code, running it, and getting immediate feedback. From my experience, LeetCode questions are very similar to questions asked in interviews. HackerRank and CodeForces queries are more like

How to read cracking the coding interview