SDE Internship Plan
6 to 8 months before the internship season
- Choose a programming language, preferably C++, Java, or Python.
- Learn the basics of the language. E.g. in C++, be thorough with STL.
- Start solving the problems from Codeforces (low rated, 800-1000) and Hackerrank.
- Strengthen implementation skills by practising a lot of problems, and then go for topic-wise problems.
- Learn concepts of Data Structures and Algorithms from POTW, GFG, cp-algo and youtube videos.
- Give contests and upsolve unsolved problems after a contest. DO NOT GET DEMORALIZED BY RATING. Contests are a great way to improve your coding skills and stimulate a real test-like environment.
- Major platforms are-
- Choose the area(s) for your projects (you can refer to TeamCUC).
- Be sure to build at least two projects. You can choose software related work for your exploratory project.
- Try to participate in hackathons, programming contests and various department fests to get exposure. You can add Good ranks to your resume.
- Keep an eye on unique opportunities like GSOC, Google Step Intern, Microsoft Engage, Uber Star Intern, etc.
January to June
- Start preparing rigorously for DSA
- For data structures/ algorithms
- Array: leetcode
- Math: leetcode
- String: leetcode
- LinkedList: gfg, leetcode
- Stack: gfg, leetcode
- Queue: gfg, leetcode
- Binary search: leetcode
- Sorting: leetcode, algorithms from gfg( Insertion Sort, Bubble Sort, Selection Sort, Merge Sort, Quick Sort, Heap Sort)
- Sliding Window, two pointers: leetcode
- Greedy: leetcode, gfg
- DP (focus on recursion) (Aditya Verma/ Tushar Roy/ Abdul Bari from youtube) - Leetcode or InterviewBit + GFG 56 ques on algorithm page
- Binary Trees: gfg/leetcode, InterviewBit
- Binary Search Tree: gfg/leetcode, InterviewBit
- Heap: read operations from gfg, but implement using priority_queue
- Priority queue (STL): Heap (Aditya Verma), leetcode
- Hashing: gfg/leetcode, interviewbit
- Backtracking + recursion: gfg, leetcode
- Bit Manipulation: Hackerearth theory, leetcode
- Divide and Conquer: gfg, leetcode (focus on merge sort method)
- Graph
- For theory: CP Algo, Hackerearth, gfg (not good codes)
- For practice: leetcode, InterviewBit, Codeforces, Hackerearth (not good solutions)
- BFS / DFS
- Shortest paths (Dijkstra, Bellman-Ford, Floyd Warshal, BFS)
- DSU (with Path compression)
- Minimum Spanning Tree (Krushal’s Algorithm, Prim’s Algorithm)
- Give contests regularly in Codeforces and Leetcode.
- For significant problems on specific topics, refer to sheets like this.
- If you haven’t completed your projects, definitely complete them now.
- You can start learning about CS Subjects.
OOPS (GFG or learncpp.com or Saurabh Shukla YT videos)(for java : javatpoint.com)
OS (Yellow pages, Gate Smashers)
DBMS (if you are very confident in your coding skills & have sufficient time)
July Onwards:
- Revise and Practice problems from InterviewBit/Leetcode/GFG.
- Revise theoretical topics like OOPS, Operating systems, etc., thoroughly.
- Refer to the Internship Diary for company-specific questions
- After creating your profile in the TPC portal, you can access the Forum and read about company-specific experiences.
- You can solve puzzles from GFG or Interviewbit.
For tests and interviews:
- Read the test instructions very carefully. Some companies have question-specific time limits, and some platforms do not allow resubmission etc.
- For an interview, be thorough with everything mentioned in your resume.
- Solve the problems that came in the tests afterwards because questions keep repeating.
- Prepare your brief introduction, description of the project, and about the company beforehand.
- Give mock interviews.
All the Best!!! 🙂