How to pass a coding interview | Coding interview preparation|Interview tips for software developer


In this video, I will share 5 tips for succeeding at programming or a technical interview. These tips are useful when you appear for an interview for a position of software engineer or a software developer (fresher and experinced both).

5 tips for cracking coding interview,

00:00 Overview
00:42 Making initial conversation on resume effective
05:14 Master competitive coding
12:34 Master questions on computer architecture, design, data structures and algorithms
14:51 Communication, confidence and body language
18:06 Asking smart questions on the role and the company

Data structure tutorial playlist: https://www.youtube.com/playlist?list=PLeo1K3hjS3uu_n_a__MI_KktGTLYopZ12
Tips for writing clean code: https://github.com/codebasics/py/blob/master/TechTopics/CodingBestPractices/coding_best_practices.md
Software architecture blog: https://martinfowler.com/
Competitive coding websites: leetcode, hackerrank, geeksforgeeks, careercup

1. Making initial conversation on resume effective
 1.1) Mention only those things on resume that you feel comfortable talking about, for projects that you mentioned on resume you should be able to draw tech arch diagram and talk through various business as well as technical aspects. Like why did you choose given architecture, No SQL vs SQL etc
  - Fresher: college projects
  - Experienced: Projects in past companies
 1.2) Why did you apply in our company? Say you applied in blackhawknetwork, they will ask you "why blackhawknetwork?". To respond to this question you need to know about company's products, clients and culture. You can use following resources to gain this knowledge,
  - Company's website, Google
  - Glassdoor
  - Linkedin: Connect with people working in that company
 1.3) Tell something about yourself
  - Mention your passions any achievements (like opensource contributions, any achievements in projects)

2. Master competitive coding
 2.1) You can use these websites for practice: leetcode, careercup, geeksforgeek, glassdoor
 2.2) Don't make assumptions, ask smart counter questions. They want to check given a vague requirement how can you dig the details and transition from vague to concrete
 2.3) Data structure: Same problem can be solved using two different data structure but one DS might be more efficient than others
 2.4) Clean and effective coding
  - proper variable, class names
  - modularize code using functions,classes
  - compact coding (use code review guidelines github page)
 
3. Mastering questions related to data structures, algorithms, computer architecture, design
 3.1) Again refer to glassdoor, careercup, leetcode for questions
 3.2) Experienced programmer: design questions
  - Design messenger
  - Design facebook
  - This will cover things such as overall system design, databases, caching, scalability, class design, distributed computing
 
4. Communication, confidence and body language
 4.1) Be confident, don't have a guilt if you answer something wrong
 4.2) If you don't know about some topic be honest and say I've not worked on Redis but I know about cache little bit and I am ready to learn

5. Asking smart questions on the role and the company
 - What tech stack do you use in your team and in the company in general?
 - What type of problems your company or your team solves?
 - What are growth and learning opportunities?
 - Will I get a chance to contribute to open source?
 - Which team you are working on and do you enjoy working here and why?
 - What are some of the good aspects of working here?