Computer science foundation/ Interview preparation/ Junior to Senior Developer
Contains almost all topics for Interview Preparation for a full stack developer or frontend engineer or backend developer or to become a junior to senior developer Consolidated place to prepare for tech interviews(Currently adding all topic's name and then will add the contents).
Table of contents
- General Topics
- DS Algo
- OOPS
- Principles
- Clean Code
- Design Patterns
- Object Oriented Design
- System Design
- Frontend
- General ui questions
- Js
- HTML
- CSS
- Backend
- Java
- Spring
- Spring Core
- Spring Web MVC
- Spring Boot
- Spring Aspect-Oriented Programming (AOP)
- Spring 5
- Database Connectivity - JDBC, Spring JDBC & JPA, Hibernate
- Unit Testing
- Web Services
- SOAP Web Services
- RESTful Web Services
- Databases
- MongodDB
- MySQL
- Microservices
- Apache Kafka
- Docker
- Kubernetes
- Redis
- Akka
- Netflix Stack
- Discovery Server - Eureka
- Client Side Load Balancer - Ribbon
- API Gateway - Zuul
- Circuit Breakers/Resilience/Fault tolerance - Hystrix
- Others
- OAuth2
- SSL
- JWT
- Questions to Ask after interview
- Open source contributions
Table of contents generated with markdown-toc
General Topics
DS Algo
Codechef DS certification and preparation path with required links
- Asymptotic analysis (Big-O notation)
Basic Data Structures:
- Arrays,
- Strings,
- Stacks,
- Queues,
- Trees,
- Graphs
- Basic math operations (addition, subtraction, multiplication, division, exponentiation)
- Sqrt(n) primality testing
- Euclid's GCD Algorithm
- Basic Recursion
- Greedy Algorithms
- Basic Dynamic Programming
- Naive string searching
- O(n logn) Sorting
- Binary Searching
- Divide and Conquer
Standford Algorithms Playlist 1
Standford Algorithms Playlist 2
Sample DS Interview questions
Geeks for Geeks for almost all types of algorithms example in the world
OOPS
- Object
- Class
- Inheritance
- Polymorphism
- Abstraction
- Encapsulation
- Object-Oriented design:
- Coupling
- Cohesion
- Association
- Aggregation
- Composition
OOPs concept theory
Characteristics of good OOD
Principles
- SOLID
- Single Responsibility
- Open/Closed
- Liskov Substitution
- Interface Segregation
- Dependency Inversion
- YAGNI "You Aren't Gonna Need It"
- KISS "Keep It Simple, Stupid"
- DRY "Dont Repeat Yourself"
Clean Code
-- Gist link -- https://gist.github.com/bansalankit92/6119c4f7fabe11b7a174a99f5a7bb376
- General rules
- Names rules
- Functions rules
- Comment rules
- Formatting / Source code structure
- Classes and Objects
- Objects/Data structures/POJO
- Exceptions/ Error Handling
- Tests rules
- Design rules
- Understandability tips
- Refactor
- Code smells
Design Patterns
-- Design patterns are typical solutions to common problems in software design. Each pattern is like a blueprint that you can customize to solve a particular design problem in your code.
-
Creational patterns provide object creation mechanisms that increase flexibility and reuse of existing code.
-
Structural patterns explain how to assemble objects and classes into larger structures, while keeping the structures flexible and efficient.
-
Behavioral patterns take care of effective communication and the assignment of responsibilities between objects.
Object Oriented Design
Object-Oriented Design and UML
- Object-Oriented Basics
- OO Analysis and Design
- What is UML?
- Use Case Diagrams
- Class Diagram
- Sequence diagram
- Activity Diagrams
Object Oriented Design Case Studies
- Design a Library Management System
- Design a Parking Lot
- Design Amazon - Online Shopping System
- Design Stack Overflow
- Design a Movie Ticket Booking System
- Design an ATM
- Design an Airline Management System
- Design Blackjack and a Deck of Cards
- Design a Hotel Management System
- Design a Restaurant Management system
- Design Chess
- Design an Online Stock Brokerage System
- Design a Car Rental System
- Design LinkedIn
- Design Cricinfo
- Design Facebook - a social network
System Design
Design Baics
- Concurrency
- CAP Theorem
- Load Balancing
- Consistent Hashing
- Caching
- Indexes
- Proxies
- SQL vs. NoSQL
- Data Partitioning
- Data Replication
- Horizontal vs Vertical Scaling
- Map Reduce
- Long-Polling vs WebSockets vs Server-Sent Events
Design Problems
- Design Full Text Search
- Design Lift/Elevator
- Design Coffee Vending machine
- Design Parking System
- Design a URL Shortening service like TinyURL
- Design Quartz Scheduler
- Design a Web Crawler
- Design Pastebin
- Design Push notification.
- Design Instagram
- Design Dropbox/Google drive
- Design Facebook Messenger
- Design Twitter
- Design Youtube or Netflix
- Design Movie ticket system(BookMyShow)
- Design Typeahead Suggestion
- Design an API Rate Limiter
- Design Event Management System
- Design Twitter Search
- Design Facebook's Newsfeed
- Design Yelp or Nearby Friends
- Design Uber backend
- Other famous platforms like Quora, UberEats, Reddit, Hackerrank
Read:
https://gist.github.com/vasanthk/485d1c25737e8e72759f
http://highscalability.com/
Video:
https://www.youtube.com/watch?v=ZgdS0EUmn70
Frontend
General
- What did you learn yesterday/this week?
- What excites or interests you about coding?
- What is a recent technical challenge you experienced and how did you solve it?
- When building a new web site or maintaining one, can you explain some techniques you have used to increase performance?
- Can you describe some SEO best practices or techniques you have used lately?
- Can you explain any common techniques or recent issues solved in regards to front-end security?
- What actions have you personally taken on recent projects to increase maintainability of your code?
- Which version control systems are you familiar with?
- Can you describe your workflow when you create a web page?
- If you have 5 different stylesheets, how would you best integrate them into the site?
- Can you describe the difference between progressive enhancement and graceful degradation?
- How would you optimize a website's assets/resources?
- What does CORS stand for and what issue does it address?
- Do you have any pet projects? What kind?
- Explain your current project with data flow architecture, file structure,...?
Js
Basics
- JavaScript Fundamentals
- Code quality
- Objects: (this, GC, new)
- Data types and DS
- Advanced working with functions (Closures, NFE, call/apply)
- Object properties configuration
- Prototypes, inheritance
- Classes
- Error handling
- Promises, async/await, callbacks
- Generators, advanced iteration
- Modules
Advanced
- Browser: Document, Events, Interfaces
- Frames and windows
- Binary data, files
- Network requests - websockets/http
- Storage and IndexDB
- Animation
- Web components
- Regular expressions
- Web workers
- Caching API
- Accessibility
New features
- ES2015
- ES6
- ES7
JavaScript Concepts JavaScript Professionals Must Know Well
HTML
- What were some of the key goals and motivations for the HTML5 specification?
- What are some of the key new features in HTML5?
- What are "web workers"?
- How do you indicate the character set being used by an HTML5 document? How does this differ from older HTML standards?
- Discuss the differences between an HTML specification and a browser's implementation thereof.
- Briefly describe the correct usage of the following HTML5 semantic elements:
., , , - Can a
containelements? Can ancontainelements? Provide usage examples. - Can a web page contain multiple
elements? What aboutelements? - Describe the relationship between the
andtags in HTML5. - Give a simple implementation of the
tag to embed a video stored at http://www.example.com/amazing_video.mp4. Give the video a width of 640 pixels by 360 pixels. Provide the user with controls. - Write the code necessary to create a 300 pixel by 300 pixel
. Within it, paint a blue 100 pixel by 100 pixel square with the top-left corner of the square located 50 pixels from both the top and left edges of the canvas. - What is HTML5 Web Storage? Explain localStorage, sessionStorage, cookies.
- What is the difference between span and div?
- What is the Geolocation API in HTML5?
- What's one main result if you do not specify a doctype in an HTML page?
- What's the difference between the
elements? - Describe the difference between