Coding Interview Resources
50.3K subscribers
692 photos
7 files
399 links
This channel contains the free resources and solution of coding problems which are usually asked in the interviews.

Managed by: @love_data
Download Telegram
This is an amazing opportunity to test your coding skills
Try to be in Top 1000 to claim amazing Rewards πŸ‘πŸ‘
Problem: Given n points on a 2D plane, find the maximum number of points that lie on the same straight line.

Solution: Every pair of points on a plane define a line that passes through them. One approach is to iterate over each pair of points, find a line that passes through them and check how many of the other points lie on this line. This solution will be O(n^3). We can do better if we reformulate our approach a little bit. Let's say we found lines that pass through every pair of points. Some of them might be the same. E.g. if there is a line that passes through 3 points a,b,c, than lines that pass through a-b, b-c and a-c will coincide. So, we can count how many lines coincide and calculate the number of points that this line pass through. To find lines, that coincide, we can put them in hash map. The only problem is numeric instability, i.e. when dealing with floating point numbers it's likely we won't get lines, whose coefficients match exactly. One way to solve it is to use buckets of size \epsilon. Then we need to iterate over lines that are inside a bucket and check how many of them are actually the same.
πŸš€Top technology trends that you can learn ...

1. Web 3.0 and Blockchain
2. AI and ML
3. IOT
4. Automation
5. Cybersecurity
6. Voice technology
7. 5G
8. Edge computing
9. Virtual Reality
10. Analytics
Software Engineer: C++ C# Java, Python, JavaScript

Web Dev: HTML, CSS, JavaScript, NodeJS

Game Dev: Unity, Unreal, Java

App Dev: Flutter, Objective C, Java, Swift, Kotlin, React

Cyber Security: Python, Linux, Networking

AI & Data Science - Julia, Haskell
πŸ‘4
PREPARING FOR AN ONLINE INTERVIEW?

10 basic tips to consider when invited/preparing for an online interview:

1. Get to know the online technology that the interviewer(s) will use. Is it a phone call, WhatsApp, Skype or Zoom interview? If not clear, ask.

2. Familiarize yourself with the online tools that you’ll be using. Understand how Zoom/Skype works and test it well in advance. Test the sound and video quality.

3. Ensure that your internet connection is stable. If using mobile data, make sure it’s adequate to sustain the call to the end.

4. Ensure the lighting and the background is good. Remove background clutter. Isolate yourself in a place where you’ll not have any noise distractions.

5. For Zoom/Skype calls, use your desktop or laptop instead of your phone. They’re more stable especially for video calls.

6. Mute all notifications on your computer/phone to avoid unnecessary distractions.

7. Ensure that your posture is right. Just because it’s a remote interview does not mean you slouch on your couch. Maintain an upright posture.

8. Prepare on the other job specifics just like you would for a face-to-face interview

9. Dress up like you would for a face-to-face interview.

10. Be all set at least 10 minutes to the start of interview.
πŸ‘2
How long are coding interviews?
The phone screen portion of the coding interview typically lasts up to one hour. The second, more technical part of the interview can take multiple hours.

Where can I practice coding?
There are many ways to practice coding and prepare for your coding interview. LeetCode provides practice opportunities in more than 14 languages and more than 1,500 sample problems. Applicants can also practice their coding skills and interview prep with HackerRank.

How do I know if my coding interview went well?
There are a variety of indicators that your coding interview went well. These may include going over the allotted time, being introduced to additional team members, and receiving a quick response to your thank you email.
πŸ‘5
8 Best Note-Taking Apps for Programmers

πŸ“œ Notion
πŸ“œ CoderNotes
πŸ“œ Quiver
πŸ“œ MedleyText
πŸ“œ Boostnote
πŸ“œ Stackedit
πŸ“œ Evernote
πŸ“œ Microsoft onenote
Typical java interview questions sorted by experience


Junior
* Name some of the characteristics of OO programming languages
* What are the access modifiers you know? What does each one do?
* What is the difference between overriding and overloading a method in Java?
* What’s the difference between an Interface and an abstract class?
* Can an Interface extend another Interface?
* What does the static word mean in Java?
* Can a static method be overridden in Java?
* What is Polymorphism? What about Inheritance?
* Can a constructor be inherited?
* Do objects get passed by reference or value in Java? Elaborate on that.
* What’s the difference between using == and .equals on a string?
* What is the hashCode() and equals() used for?
* What does the interface Serializable do? What about Parcelable in Android?
* Why are Array and ArrayList different? When would you use each?
* What’s the difference between an Integer and int?
* What is a ThreadPool? Is it better than using several β€œsimple” threads?
* What the difference between local, instance and class variables?

Mid
* What is reflection?
* What is dependency injection? Can you name a few libraries? (Have you used any?)
* What are strong, soft and weak references in Java?
* What does the keyword synchronized mean?
* Can you have β€œmemory leaks” on Java?
* Do you need to set references to null on Java/Android?
* What does it means to say that a String is immutable?
* What are transient and volatile modifiers?
* What is the finalize() method?
* How does the try{} finally{} works?
* What is the difference between instantiation and initialisation of an object?
* When is a static block run?
* Why are Generics are used in Java?
* Can you mention the design patterns you know? Which of those do you normally use?
* Can you mention some types of testing you know?

Senior
* How does Integer.parseInt() works?
* Do you know what is the β€œdouble check locking” problem?
* Do you know the difference between StringBuffer and StringBuilder?
* How is a StringBuilder implemented to avoid the immutable string allocation problem?
* What does Class.forName method do?
* What is Autoboxing and Unboxing?
* What’s the difference between an Enumeration and an Iterator?
* What is the difference between fail-fast and fail safe in Java?
* What is PermGen in Java?
* What is a Java priority queue?
* *s performance influenced by using the same number in different types: Int, Double and Float?
* What is the Java Heap?
* What is daemon thread?
* Can a dead thread be restarted?

Source: medium.
πŸ‘5❀1
πŸ•― Sites to practice programming and solve challenges to improve programming skills πŸ•―

1️⃣ https://edabit.com
2️⃣ https://codeforces.com
3️⃣ https://www.codechef.com
4️⃣ https://leetcode.com
5️⃣ https://www.codewars.com
6️⃣ http://www.pythonchallenge.com
7️⃣ https://coderbyte.com
8️⃣ https://www.codingame.com/start
9️⃣ https://www.freecodecamp.org/learn

ENJOY LEARNING πŸ‘πŸ‘
❀2
Introduction to Machine Learning (Fall 2020)
By Massachusetts Institute of Technology, MIT

Length: 13 weeks

πŸ”— Course Link

#ml #machinelearning #datascience #MIT
βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–βž–
πŸ‘2
A bit obvious, but really useful advice

Avoid posting your cell phone number on social networks and other open sources, if you don't want to receive spam calls and SMS. Such numbers are collected by parser programs, and then used to form databases for calls and mailings.
Business Analyst Interview Questions and Answers
πŸ‘‡πŸ‘‡

1. What is analysis in tableau?

Ans: Tableau comes with inbuilt features to analyze the data plotted on a chart. We have various tools such as adding an average line to the chart which tableau calculates itself after we drop the tool on the chart. Some other features include clustering, percentages, forming bands of a particular range and various other tools to explore and inspect data. All these tools are available in analyze tab on each sheet used to create any chart. The features become visible only when they are applicable to the worksheet.


2.How to create sets in tableau?

Ans: Sets are custom fields used to compare and ask questions about a subset of data. For creating a set on dimension, right-click on a dimension in data pane and select create -> set. In general tab select the fields that will be considered for computing the set. Specify the conditions to create set in conditions tab and you also have the option to select top N members in dataset based on any field in the top tab. When a set is created it divides the measure into two parts namely in and out of the set based on the conditions applied by the user.


3.Why and how would you use a custom visual file?

A custom visual file is used when none of the pre existing visuals fit the business needs. Custom visual files are generally created by Developers which can be used in the same way as prepackaged files.


4. What are the various type of users who can use Power BI?

Ans: PowerBI can be used by anyone for their requirements but there is a particular group of users who are more likely to use it:

Report Consumers: They consume the reports based on a specific information they need

Report Analyst: Report Analysts need detailed data for their analysis from the reports

Self Service Data Analyst: They are more experienced business data users. They have an in-depth understanding of the data to work with.

Basic Data Analyst: They can build their own datasets and are experienced in PowerBI Service

Advanced Data Analyst: They know how to write SQL Queries and have hands-on experience on PowerBI. They have experience in Advanced PowerBI with DAX training and data modelling.
πŸ‘1
Data Analyst INTERVIEW QUESTIONS AND ANSWERS
πŸ‘‡πŸ‘‡

1.Can you name the wildcards in Excel?

Ans: There are 3 wildcards in Excel that can ve used in formulas.

Asterisk (*) – 0 or more characters. For example, Ex* could mean Excel, Extra, Expertise, etc.

Question mark (?) – Represents any 1 character. For example, R?ain may mean Rain or Ruin.

Tilde (~) – Used to identify a wildcard character (~, *, ?). For example, If you need to find the exact phrase India* in a list. If you use India* as the search string, you may get any word with India at the beginning followed by different characters (such as Indian, Indiana). If you have to look for India” exclusively, use ~.

Hence, the search string will be india~*. ~ is used to ensure that the spreadsheet reads the following character as is, and not as a wildcard.


2.What is cascading filter in tableau?

Ans: Cascading filters can also be understood as giving preference to a particular filter and then applying other filters on previously filtered data source. Right-click on the filter you want to use as a main filter and make sure it is set as all values in dashboard then select the subsequent filter and select only relevant values to cascade the filters. This will improve the performance of the dashboard as you have decreased the time wasted in running all the filters over complete data source.


3.What is the difference between .twb and .twbx extension?

Ans:
A .twb file contains information on all the sheets, dashboards and stories, but it won’t contain any information regarding data source. Whereas .twbx file contains all the sheets, dashboards, stories and also compressed data sources. For saving a .twbx extract needs to be performed on the data source. If we forward .twb file to someone else than they will be able to see the worksheets and dashboards but won’t be able to look into the dataset.


4.What are the various Power BI versions?

Power BI Premium capacity-based license, for example, allows users with a free license to act on content in workspaces with Premium capacity. A user with a free license can only use the Power BI service to connect to data and produce reports and dashboards in My Workspace outside of Premium capacity. They are unable to exchange material or publish it in other workspaces. To process material, a Power BI license with a free or Pro per-user license only uses a shared and restricted capacity. Users with a Power BI Pro license can only work with other Power BI Pro users if the material is stored in that shared capacity. They may consume user-generated information, post material to app workspaces, share dashboards, and subscribe to dashboards and reports. Pro users can share material with users who don’t have a Power BI Pro subscription while workspaces are at Premium capacity.

ENJOY LEARNING πŸ‘πŸ‘
Tips for Google Interview Preparation
Now that we know all about the hiring process of Google, here are a few tips which you can use to crack Google’s interview and get a job.

Understand the work culture at Google well - It is always good to understand how the company works and what are the things that are expected out of an employee at Google. This shows that you are really interested in working at Google and leaves a good impression on the interviewer as well.
Be Thorough with Data Structures and Algorithms - At Google, there is always an appreciation for good problem solvers. If you want to have a good impression on the interviewers, the best way is to prove that you have worked a lot on developing your logic structures and solving algorithmic problems. A good understanding of Data Structures and Algorithms and having one or two good projects always earn you brownie points with Amazon.
Use the STAR method to format your Response - STAR is an acronym for Situation, Task, Action, and Result. The STAR method is a structured way to respond to behavioral based interview questions. To answer a provided question using the STAR method, you start by describing the situation that was at hand, the Task which needed to be done, the action taken by you as a response to the Task, and finally the Result of the experience. It is important to think about all the details and recall everyone and everything that was involved in the situation. Let the interviewer know how much of an impact that experience had on your life and in the lives of all others who were involved. It is always a good practice to be prepared with a real-life story that you can describe using the STAR method.
Know and Describe your Strengths - Many people who interview at various companies, stay shy during the interviews and feel uncomfortable when they are asked to describe their strengths. Remember that if you do not show how good you are at the skills you know, no one will ever be able to know about the same and this might just cost you a lot. So it is okay to think about yourself and highlight your strengths properly and honestly as and when required.
Discuss with your interviewer and keep the conversation going - Remember that an interview is not a written exam and therefore even if you come up with the best of solutions for the given problems, it is not worth anything until and unless the interviewer understands what you are trying to say. Therefore, it is important to make the interviewer that he or she is also a part of the interview. Also, asking questions might always prove to be helpful during the interview.
❀2πŸ‘1
Tips for solving leetcode codings interview problems

If input array is sorted then
- Binary search
- Two pointers

If asked for all permutations/subsets then
- Backtracking

If given a tree then
- DFS
- BFS

If given a graph then
- DFS
- BFS

If given a linked list then
- Two pointers

If recursion is banned then
- Stack

If must solve in-place then
- Swap corresponding values
- Store one or more different values in the same pointer

If asked for maximum/minimum subarray/subset/options then
- Dynamic programming

If asked for top/least K items then
- Heap

If asked for common strings then
- Map
- Trie

Else
- Map/Set for O(1) time & O(n) space
- Sort input for O(nlogn) time and O(1) space
πŸ‘7
How long are coding interviews?
The phone screen portion of the coding interview typically lasts up to one hour. The second, more technical part of the interview can take multiple hours.

Where can I practice coding?
There are many ways to practice coding and prepare for your coding interview. LeetCode provides practice opportunities in more than 14 languages and more than 1,500 sample problems. Applicants can also practice their coding skills and interview prep with HackerRank.

How do I know if my coding interview went well?
There are a variety of indicators that your coding interview went well. These may include going over the allotted time, being introduced to additional team members, and receiving a quick response to your thank you email.
General tips

Always validate input first. Check for inputs that are invalid, empty, negative, or different. Never assume you are given the valid parameters. Alternatively, clarify with the interviewer whether you can assume valid input (usually yes), which can save you time from writing code that does input validation.

Are there any time and space complexities requirements or constraints?

Check for off-by-one errors.

In languages where there are no automatic type coercion, check that concatenation of values are of the same type: int,str, and list.

After you finish your code, use a few example inputs to test your solution.

Is the algorithm supposed to run multiple times, perhaps on a web server? If yes, the input can likely be pre-processed to improve the efficiency in each API call.

Use a mix of functional and imperative programming paradigms:

πŸ”Ή Write pure functions as often as possible.
πŸ”Ή Use pure functions because they are easier to reason with and can help reduce bugs in your implementation.
πŸ”Ή Avoid mutating the parameters passed into your function, especially if they are passed by reference, unless you are sure of what you are doing.
πŸ”Ή Achieve a balance between accuracy and efficiency. Use the right amount of functional and imperative code where appropriate. Functional programming is usually expensive in terms of space complexity because of non-mutation and the repeated allocation of new objects. On the other hand, imperative code is faster because you operate on existing objects.
πŸ”Ή Avoid relying on mutating global variables. Global variables introduce state.
πŸ”Ή Make sure that you do not accidentally mutate global variables, especially if you have to rely on them.
πŸ‘1
Important Sorting Algorithms-

Bubble Sort: Bubble Sort is the most basic sorting algorithm, and it works by repeatedly swapping adjacent elements if they are out of order.

Merge Sort: Merge sort is a sorting technique that uses the divide and conquer strategy.

Quicksort: Quicksort is a popular sorting algorithm that performs n log n comparisons on average when sorting an array of n elements. It is a more efficient and faster sorting algorithm.

Heap Sort: Heap sort works by visualizing the array elements as a special type of complete binary tree known as a heap.