Basic Algorithms and Data Structures
- Big O notations
- Recursion and backtracking
- Linear data structures (linked list , dynamic list ,stack , queue , priority queue )
- Sorting
- Searching (linear , binary , interpolation )
- Hashing (Hash function , collision resolution - chaining , open addressing , double hashing/universal hashing )
- String Algorithms (KMP, Rabin Karp , Boyce Moore)
- Trees (Binary Tree , Binary Search Tree, Binary Heaps )
- Tree Balancing algorithms (B-trees , AVL , 2-3 , red-black trees)
- Graphs (Minimum Spanning Tree , Shortest Paths , Cycle detection , dynamic connectivity )
Advanced Algorithms and Data Structures
- Greedy Algorithms
- Dynamic Programming
- Linear Programming
- Probabilistic Data Structures
- Complexity classes (P,NP etc .)
Distributed Algorithm Concepts
- 2 phase commit
- Paxos - solving consensus
- Leader election
- Consistent Hashing /Routing
- Synchronous/Asynchronous communication
- Fault tolerance
- Eventual Consistency
- Replication
- pub-sub using distributed queues
- Bloom Filters
Distributed/Cloud Computing technologies
- Basics of AWS or OpenStack or Azure or IBM bluemix
- No-SQL
- Key value store - Redis , Memcached
- Column Family - Cassandra
- Document - MongoDB , Elastic Search
- Graph Databases - Neo4j
- Distributed Queues (SQS , RabbitMQ , Kafka)
- Distributed Locking /co-ordination - Apache ZooKeeper
- Map-Reduce frameworks
- Hadoop eco-systems
- Apache Spark
- REST web services (Jersey , apache CXF , Swagger )
REST/SOAP web services
Basic References :
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
RESTful Web Services
http://www.amazon.in/dp/9352130693
http://www.amazon.in/dp/059680168
- Micro-service architecture
- what is micro-service
- How to design micro-service which persists data.
- SOAP web services in general
- Differences between SOAP and REST , why REST ?
- REST Design principles
- Idempotent (GET , HEAD , PUT) , (POST,PATCH)
- HATEOS
- Security (stateless , Authentication and Authorization m Security frameworks (OAuth , Basic on SSL , HTTPS , Digest , error messages ) )
- Caching (cache-control , etag , validation , expiration )
- HTTP headers used for rest (Media-Type , Cache Control , Auth , Accept , Content-Type, If-Non- Match )
- Commonly used HTTP codes (1XX, 2XX, 3XX, 4XX, 5XX)
- Searching , sorting , filtering and paging (Link headers , rel , href , query parameters )
- Documentation - Swagger
- HTTP 1.1 vs HTTP 2.0
- Handling Asynchronous request (Notification URL , Push /Pull models )
- URL designing conventions
- Versioning of APIs
- Error Messaging (user message , developer message , http error codes 4XX, 5XX)
- JSON (snake_case , vs camelCase , DATE format)
- REST frameworks - Jersey , Apache CXF , Spring Framework , Play framework , REST Easy
Basic References :
http://www.vinaysahni.com/best-practices-for-a-pragmatic-restful-api
RESTful Web Services
http://www.amazon.in/dp/9352130693
http://www.amazon.in/dp/059680168
Search Technologies
- Elastic Search
- Apache Solr
Object Oriented Design
- Design Patterns (at least design patterns from GOF)
- SOLID design principles
- UML
Java Technology Stack
Java Language :
- Java Language basics (grammar , collections , exception handling )
- Concurrency
- Java Memory Model
- Pessimistic Concurrency control ( exclusive locks , read/write locks )
- Optimistic Concurrency control (CAS based operations )
- Java Concurrent Package (Locks , Concurrent collections , Semaphore , Latch , Cyclic Barriers , ThreadPools , Executors etc.)
- Thread dump analysis
- Lambda Expressions
- Custom Annotations
- Java Serialization Specifications
- JVM architecture
- Class loaders
- Garbage Collection algorithms
- Java Security
- Regex
Source Code Management
- GIT
- PerForce
- SVN
Testing Frameworks
- TDD
- Junit
- TestNG
- BDD
- Concumber
Cryptography
Cryptographic hash functions
No comments:
Post a Comment