Hello! This is Dwarithaa, 4th year undergraduate from the Department of Instrumentation and Control Engineering. I would like to share my experience on my pursuit of learning the essence of coding, which has been my interest right from the start of my college life.
First of all, it’s very important to make yourself clear regarding the choice between higher studies and placements. Value the pros and cons properly, plan your future a little (too much of planning isn’t going to work out) and decide which suits you more. Interest isn’t the only thing that should drive your decision. Look at how you can progress in each stream before you decide. Do not let yourself affected by peer pressure. Decide it as soon as possible and start working towards it.
Trending AI Articles:
1. Deep learning for sensor-based human activity recognition
2. How to build a deep learning server based on Docker
3. Transfer Learning: retraining Inception V3 for custom image classification
4. How ethical is Artificial Intelligence?
One important thing you should bear in mind is that internships are a gateway to placements. Pre-Placement Offers (PPOs) make your placements session easier. There are two ways to approach the placements — get a campus intern and accept the PPO or go for an off-campus intern and give your best shot at placements. Second one involves a lot of risk while the first one is a safe play. It’s upto the individual to choose. I followed the second option as I didn’t get an internship through campus. I got an intern at Ford Motor Private Limited’s IT division through a referral. They selected interns based on their resume. When applying for off-campus, the resume plays a great role in shortlisting. ShareLatex helps in making resumes that look neat and clean. I got an intern in MathWorks, Bangalore too. But I made a conscious decision and chose this. Ford was at my place of residence and I knew it would give me ample time to prepare for my placements.
In Ford, I worked on a team that manages Chinese customers. The Agile driven methodology followed there was fun to work in. I was introduced to pair programming and test driven development. It provided room for constant improvement. I worked on both front-end and back-end. I learnt Java during the course of the intern.I was introduced to a lot of new technologies — Jenkins, Docker etc. which is a major plus point of the intern.
From my personal experience, preparation for placements starts right from your December holidays. The summer holidays require you to compulsorily do an intern for 2 months so you might not find time to prepare effectively. It’s advisable to utilize the winter holidays to make yourself proficient. If you do not know a language that supports Object Oriented Programming (like C++, Java), it is better to start learning them. If you know C already, go ahead with C++ as they have a lot of similarities. Once you are aware of the basics, start learning about pointers, classes and objects, inheritance, polymorphism, virtual functions and other OOPs concepts. Questions on these are a sure shot in almost all the companies. Geeksforgeeks is a good place to learn all of this. If you prefer a book, go for The Complete Reference by Herbert Schildt.
Next, it’s time to learn new data structures and algorithms. Learn time and space complexity as well. MCQs on these are standard in Online Tests. Lectures by Ravindrababu Ravula is one of the best resource available. In depth knowledge on Data Structures and Algorithms is expected by every company looking for software professionals. Arrays are the simplest data structures that are tested the maximum. Coding questions on these with constraints on running time and space are asked (test cases with higher running time and space fail). Stacks, queues and linked lists are basic data structures that one must be thorough with. Learn trees with complete understanding. Binary trees and Binary search trees are a must. Coding questions on these are asked. Learn how to insert and delete in a red black tree and AVL tree along with basic working. Coding questions on these are rare. Apart from these trees, also learn the basics of Tries, B-trees, Heaps and Hashing. Understand the working of min heaps and max heaps. Basics of graph are sufficient. Simple coding questions on graphs are also asked. Mycodeschool is good for data structures. Geeksforgeeks is the best resource online.
With respect to algorithms, learn sorting and searching concepts. Mycodeschool has these lectures as well. Also work out problems in greedy algorithms and divide and conquer. Brush up some important questions on backtracking and bit manipulation. Geeksforgeeks is the best place. The most important algorithmic paradigm would be dynamic programming. Solving a code of this in online test increases your chance of getting into the company. Solve atleast one dynamic problem a day. You will become a pro at the end of a month. Topcoder is good, video lectures by Tushar Roy are the best. Learn about design patterns and flowcharts if you still have time left.
Next, learn scheduling algorithms and Critical section problems, deadlock, semaphores, threads, virtual memory and other basics from Operating Systems. These questions are asked in interview. For Database Management Systems, very few companies question on these. SQL queries are the first topic to be completed in this. After that learn about ER Modelling, Relational Model and CODD Rules. Networks are not a very important topic. But it is better to learn about various topologies and terminologies used along the minimal working of each layer in OSI Model. Geeksforgeeks would do for these.
To practice coding, use Hackerrank as the first level. Generally questions in Online Test are of Week of Code level. Interview Preparation Kit in Hackerrank comes handy for last minute preparation. Also try to practice in Interviewbit as it gives the time taken to finish a code. Leetcode is also good. Go for the one where you feel comfortable to code. If you are using C++, learn to use STL and try to incorporate them in your codes. Vectors, Maps and Pairs come handy in reducing complexity of codes. They make coding a lot easier and also reduce time taken for coding. Cracking the coding interview book offers complete preparation for interview.
Apart from this, do Aptitude every day. Many tend to overlook this part, but companies expect you to be very strong in analytical thinking. Learn all the short cuts and start working out problems. Quantitative Aptitude by Arun Sharma is the best in market. Solve all the three levels of difficulty. This will increase your accuracy. To improve your speed, practice 1 hour or half an hour Aptitude papers online in Pariksha or Indiabix. Pariksha also gives the rough time required to solve a problem along with the accuracy. Also, solve as many puzzles as possible. A lot of companies ask puzzles in interviews. Geeksforgeeks has the common puzzles but look out for puzzles randomly.
Prepare your resume carefully. Mention only those programming languages which you know. You must be able to answer questions asked in these. Not answering a question asked about a language you have mentioned reflects poor on you. It is imperative to have atleast one proper software intern in your resume. When asked, you should be able to elaborate about it for atleast 5 minutes. So choose what interns you mention. Next, mention only projects that are big enough. Remember that the quality of your projects is more important than the number of projects you mention. I mentioned only software projects and interns in my resume. Mentioning only software related projects and interns in your resume increases your chance as it showcases your interest in software. Also prepare a short introduction about yourself and get it verified by someone.
Hardwork alone doesn’t get us to the top, a little bit of smart work (and luck) is required too.
Interact with seniors, get to know them well (CPC is the right place) and know where they are placed. Take your CPCs seriously as they provide the best time to prepare. When a company is set to come, contact the senior who is placed there and get to know what the company expects of you. Get to know the evaluation pattern. Companies don’t follow the same pattern every year but the pattern is similar. Knowing the pattern and the topics from which questions are asked gives you a head start. Prepare on similar lines and get to know the interview questions asked frequently by the company. You need not know everything but you must know what they want you to know. Also remember that you might have to make changes in your resume to suit the requirements of the company. The day before your interview can be very stressful. Calm your mind, de-stress yourself and have a sound sleep. Be confident in the interview. Do not forget to wish the interviewers when you enter and leave the room. Don’t give up on a question. Keep trying until they move to the next question.
Remember that the company treats everyone with sound technical aptitude the same. The major of your study doesn’t matter in any way.
CSE or non CSE, you are the same once you clear the Online Test.
Clearing the online test is easy with vigorous preparation and depends solely on the individual. Do not let any myths about this affect you. If a company doesn’t open for your department, just consider it as extra time to prepare for the next company. Never get dejected when a company rejects you. Sit and analyse where you went wrong, rectify them and make sure you don’t repeat them.
Getting placed in the right company matters more than getting placed. The journey of a thousand miles begins with one step. Take the first step and everything else will fall in place.
The journey is going to test you but it’s all worth the wait.
Never ever give up and lose hope. Do what you can to get what you want. If you want something you never had, you have to do something you have never done.
Remember that learning doesn’t go waste. Keep learning and make it fun! Happy coding!
On a lighter note, ‘The more you learn, the more you earn!’
Feel free to contact R Dwarithaa for further queries!
WhatsApp — 9551796403
Facebook — https://www.facebook.com/profile.php?id=100009170905430
LinkedIn — https://www.linkedin.com/in/dwarithaa-ramachandran-97a256128/
Medium — Dwarithaa Ramachandran