You will be preparing for the interviews but you need to have some basic knowledge of computer science before beginning the preparation phase. In the last previous article, we discussed what is the ideal time to apply for internships and in this article, we are going to discuss what basic skills needed prior to applying for internships and starting the interview preparation.
Most of the students ask me, I am looking for an internship in the second year only, please suggest me what I should learn before applying. So, here is the list of things you should be knowing before you begin the application process.
You should be good in one programming language. The interviewer will ask you to write code on a whiteboard or on a shared screen for a given problem. Generally, the interview looks for
Whether the code is readable or not
How well you choose functions available in that programming languages
How you name variables
Whether you are commenting your code or not
Your coding style
After the programming language, this is the most important part of any interview. Even though you will be preparing and revising algorithms and data structures in the preparation phase, you need some basic knowledge.
Know what is complexity and Big O notations
Clear your basics of Array, LinkedList, Stack, and Queue
Understand and implement different sorting algorithms
Understand and implement searching, graph, and tree algorithms etc.
The interviewer will give you a problem and ask you to code. Just coming up with an appropriate answer is not sufficient, the interviewer will ask you to optimize your code, think of different corner cases and give a solid approach to the problem. This is where Data structures and algorithms are important. You need to know different possible scenarios where an algorithm can be applied or an appropriate data structure can be used. Most common data structures and algorithms will be available on Eulercoder very soon.
Apart from programming knowledge and Algorithms, companies also ask questions on basic CS fundamentals. These are generally theoretical questions but very useful in your internship.
Know basics of Networking
Basics of Linux Commands
Database (MySQL or MongoDB) etc
This is also very important. You will be working in a team, you will have to communicate with team members and explain work, projects and your solution. Previously I used to struggle while explaining my solutions, this happens with most of us. So, you need to practice, explains things to your friends, work on creating a good flow of your solution, use examples, speak closely and, in the interview keep your interviewer involved, being quite and coding doesn't work.
You need to have projects in your resume before you start the application process. The resume should contain projects related to CS, if you are not from CS background, you can still work and find projects on Github. Do independent projects or work on open source projects. If you can't think of any project ideas, I have created 1000 Projects repository, which contains over 500+ projects right now. Don't create projects just to show and fill your resume, create something useful. School Management system, Library management system, all such projects are already available on the web. Unless, something you have built something unique, it won't contribute in your resume.
So, this was all about the basic skills you need prior to applying for internships.
If you found this article useful, do share with your friends. Let's help everyone in getting a better internship and job. Subscribe to our newsletter and get weekly curated content directly in your mail box. Also, we have our own group on FB, we take Q&A, post materials in the group. I'll highly recommend you to join our FB Group.