Roadmap to Excel in Computer Science and Get a Package of 20+ LPA

Almost all the students are concerned about their future. In this post we are going to discuss, how a normal student can excel in his college life.

If you follow this post for 1-2 years, I can bet, you will get something your friends can not think of. This post is mainly for the students studying in computer science and engineering.

1st Year:

If you are a first year student, just focus on your CGPA. Because in the upcoming years you will not get much time to work on your grades/CGPA. In first year, we generally have basic programming courses such as C, C++, Python, Java, etc. I will suggest, you learn two programming languages. One of them must be either C/C++ and the another one should be anyone of your choice.

Think about your Neha and the ways to get your Neha. One of the way is to get 20+ LPA job and propose Neha.

In the first year summer, we will start the advance topics of these languages such as OOPs concepts, Collection, Hash Map, etc. If you are good with these concepts at the end of your first year you are good to go for the second year.

2nd Year:

Now you have come to 2nd year, so you will start learning your core subjects. Whatever core subjects you are having in your current semester, try to complete at-least one project related to that particular subject in that semester itself. If you are in a tier1 college, you will have to complete the project by default, because projects will be the part of your syllabus.

Always remember you Neha, your package/success is the only thing that can help you in getting Neha in your arms.

At the same time, you also have to dig deep into competitive programming. For this, you can choose any of the platform i.e. codechef, hackerank, hackerearth, codeforces, etc. At any platform try to solve 300+ problems at the end of your second year.

At the end of 2nd Year, What you will have in your resume:

As you have completed 3-4 projects related to your core subjects (operating system, DBMS, Data Structure and Algorithms, Computer Systems, etc), you can put them in your resume along with github repository link. At the same time you can also mention that you have solve 300+ problems on some particular platform.

3rd Year

In the 3rd year, you have to continue the journey of your competitive coding. At the end of the 3rd year, the total number of problems solved should be 600-700+(if you can do this, you are ready to crack any company). At the same time, now you can work on some of the real world projects (take some of the softwares in the market and try to implement some of their functionalities). You can also work with some of the faculties in your college on some research projects.

In your 3rd year itself, I will highly suggest you to explore the open source projects and try to crack the Google Summer of Code. You can learn some of the framework such as Django, Flask, etc. In this entire learning process, don’t forgot about your core subjects.

If till this point you are following the post, you are gona rock in life man. You are going to get your Neha.

How will your resume look like at the end of your 3rd year:

You will have some of the cool projects in your resume along with a good grab on the competitive programming skills. If you work hard, you might have a publication or GSOC or both in your resume.

4th Year

Now this is the time to rock with all the skills you have. If you are in tier one engineering colleges, don’t worry you are going to get a really good placements. But if your college is not that good, try LinkedIn, and participate in off-campus placements, I can bet you will do wonders.

How to use LinkedIn to get Machine Learning or Data Science jobs?

What you can learn in 4th year:

Now you can learn some of the research topics in computer science and work on some cool projects around these topics. I will suggest you to learn machine learning, natural language processing, computer vision, and read as many recent research papers as possible. After reading some paper try to implement it on your own, it will provide you a really good exposer to research.

In most of the colleges, core subjects are over by 3rd year itself. So you need not to worry about core subjects. As you are good with core computer science, competitive coding, and open source, you can start writing blogs or you can start creating you tube videos or even you can work on some of the start up idea, if you have one. Try to read as many articles as possible related to your favourite field whether it is machine learning or software engineering or anything else. You can also explore some competitive exam such as gate or cat as well, if your are interested.

My suggestions:

If you are someone, studying in tier3 engineering college, go and crack gate. Try to enter into one of the IITs, it will help you in getting a pay package of 20+ LPA. Believe me, IITs are haven for computer science students, it will provide you a good recognition along with a really handsome package.

Don’t forgot about your Neha, she will come only when you will get 20+ LPA, Best wishes.

Benefits of using Numpy

Why is Numpy Better than Lists?

 

As a python programmer, one must be aware of why Numpy is better than Lists and how can we prove it. 

See, as a beginner, you can avoid this question, but if you have to work with big data sets; 

you should be aware of the benefits Numpy arrays have over lists.

In this article, we will discuss in what ways Numpy arrays are better and more suitable than lists.
Numpy Data Structure performs better in:

 

1) FUNCTIONALITY  :

 

Numpy array have inbuilt functions like linear algebra operations built-in; 

which makes them better than lists.  

 

2) SIZE :

 

Numpy array takes up less space or size.

Let us understand with the help of an example;

  • First, we will import the numpy library, time and getsizeof from the system library.

  • Then, we will create an empty list and get its size.

  • We will fill the list with the n range of elements; i.e. 3000000  and will again get the size. 

 >> we see that the size has considerably increased.

  • Now, let’s convert the list to NumPy and take its size:

  • To prove our point we print out the difference between both the sizes:

Hence, our point is being proved by the above example;

that NumPy takes up less space as compared to the list data structure.

 

 

3) PERFORMANCE :

They have a need for speed and are faster than lists.

Let’s understand with the help of an example:

  • First of all, create a list of n elements and then print first and last 5 items:

  • Modifying lists and multiplying each item by 10 and printing some of them:   

                                           

>> we see here that all elements are now multiplied by 10.

  • Now, let’s calculate the processing time taken for this procedure: 

   

  • Now, we will convert the list into numpy : 

  • Modifying the array and then printing the elements: 

   

  • And, then calculate the time for the process:    

  • To prove our point we will find the difference between the two times:

                 

>> Numpy is faster than a list by 0.53125s;

this is a small amount of time, but when you work with a large dataset, there will be a huge difference.

                                           


Numpy is designed to be efficient with matrix operations, more specifically; more processing in
NumPy is vectorized.
Vectorization involves, expressing mathematical operations; such as multiplication, that we are
using as occurring on the entire element, rather than a single statement.
With Vectorization, the underline code is parallelized, such that the operations we are performing
on NumPy array can run on multiple array elements at once, rather than looping through them
one at a time.
As long as the operations you are applying does not rely on any other array element,
as in the case of matrix multiplication; then vectorization will give you awesome speedups.
Looping over Python arrays, lists and dictionaries can be slow.
As, Vectorized operations in NumPy are mapped to highly optimized C code, making them much faster than their standard python counterparts. 

Hence, I will recommend you to use Numpy rather than lists in python.

Thank you for reading!            

This is the link to the code being used in the blog-  https://github.com/HARITIKAPANDIT/NOTEBOOK/blob/master/Numpy%20over%20list.ipynb

 

Data Structure and Algorithm to Crack Product Based Companies

Best Online Courses: Maths, Algorithms & Data Structures |

In this practice of data structure and algorithm, every day, we will be giving one question. You have to solve that question on one of the coding platform and send us the link of successful submission. Whoever is going to submit all the seven questions in a week, that particular person will be given a token of appreciation such as some t-shirt, or sticker, or mention on LinkedIn, etc. We are a group of IITian, working in providing free guidance to improve the data structure and algorithmic skills, those are essential to crack any product based company.

You May Like:  How to use Linkedin to get Machine Learning or Data Science Jobs?

Rules to Participate:

  1. Whatever solution you are going to submit, it should be of your own. 
  2. At the end of the week, if you win. We may ask for a small explanation of some particular questions and your approach.
  3. You have to submit the screenshot of successful submission using a google form, given below.
  4. One question will be live for only 24 hours after that submission will not be accepted.

You May Like:  How to Prepare Data Structure and Algorithms for Machine Learning and Data Science Interview.

To get the notification of the question, please join the telegram group: Data Structure and Algorithm Telegram Group

Question of the Day:     Length of Longest SubArray

Old Questions:

  1. Remove duplicate element from sorted Linked List  
  2. Detect Loop in a Linked List

How to submit the solution: Goto Problem Link —> My Submissions –> Views –> copy the link and share in the form 

You May Like:

Feedback on Your Preparation for Data Science or Machine Learning Jobs (Mock Interview)

In the first place, it is challenging to get an interview call for a Machine Learning profile. But if you get a call, it is essential to convert that call into an offer. Sometimes we feel that our preparation is good enough to crack a machine learning interview, but actually, that is not the case. So in this process of interview feedback, we will conduct a telephonic/hangout/skype interview and provide you the feedback on your preparation for the machine learning jobs. We are a group of IITians, working in various top-notch product based companies as a machine learning engineer and has worked extensively on real-life machine learning use cases. This process is free, fill out the form given below, and we will get back to you as soon as possible. 

How to Prepare Data Structure and Algorithms for Machine Learning and Data Science Interview.

If you are a machine learning engineer or working in the data science domain, Data Structure, and Algorithm is a must-have skill. I have talked to many people, and they are always confused about how to learn data structure and algorithms to crack machine learning interview. Here in this post, we will discuss what you should do and what not to get a good grasp over data structure and algorithms, and how you can acquire DSA skills within just 25-30 days.

Key Points:
  1. How to start.
  1. What resources to follow.
  1. How to practice.

If you are a beginner, learn any programming language and get a good grasp over it. During this phase, you can practice using fundamental programming problems. If you are already pro in any programming language, you can skip this step. In this phase try to solve the following set of problems

  1. Write a program to add, subtract, multiply, divide two numbers.
  2. Write a program to check if two numbers are even or odd.
  3. Write a program to check whether a number is prime or not.
  4. Write a program to calculate the nth Fibonacci number.
  5. Write a program to calculate the number of words in the sentence.
  6. Write a program to reverse a string.
  7. Write a program to remove all the duplicate values from a list/array.
  8. Write a program to add two 2-D metrics without using the inbuilt function.
  9. Write a program to multiply two 2-D metrics without using the inbuilt function.
  10. Write a program to convert decimal numbers to binary and vice-versa.
As you have completed all the above questions, now you will be comfortable with the syntax of that programming language (Try to solve more fundamental problems, it will boost your confidence). Now you can start learning data structure. Here in this article, We will talk about mainly five data structures:

  1. Linked List
  2. Queue
  3. Stack
  4. Tree
  5. Hash Map

Pick each topic one by one and see some videos over youtube (make a youtube search and see first 2-3 videos on each section). It will help you in developing an intuitive understanding of that particular data structure and how it works. 

Till this point, you will be clear about how a particular data structure works, and what is the syntax to implement that data structure.
Now you have to open https://www.geeksforgeeks.org and search for each data structure. In each of the sections (Linkedin List, Queue, Stack, Tree, Hash Map), you have to solve only ten questions. I am assuming that you can solve ten problems within one day. So to complete 50 questions, it should take five days at max. One thing to remember, you have to code all the problems from scratch. You can take help from the solution given on GeeksforGeeks, but don’t just copy-paste the code. 

  1. Linked List 
  2. Queue
  3. Stack
  4. Tree
  5. Hash Map
Now again, repeat this cycle, but this time solve only five questions per day from each topic and do this until you solve 30 problems from each section. When you solve these 150 questions from all the topics, you will come to know that at least half of the problems are duplicate. You can also put solutions to these problems on your GitHub. 
After doing this, you need not code every problem. Now, you have to read some problems and try to code that using pen & paper.

Algorithm: 


In the algorithm section, we are going to learn four kinds of problems only. 
  1. General Array problems
  2. Greedy problems
  3. Graph related problems
  4. Dynamic programming problems

Before solving algorithm problems, first, we will learn about the complexity analysis of any problem. You will get a clear understanding of the complexity analysis of any algorithm just by looking at these two videos:


Now you are ready to work upon your algorithm part. Unlike data structure, here, we will follow a different path. As dynamic programming problems are the most difficult ones to solve, so we will address them in the later part of our learning process. 

We will start by solving the first 30 problems from the array section. All these will mostly be standard problems, and you have to code them from scratch. Now you have to solve 20 problems from the Greedy section and ten from the graph section. At this point, you can get relax, but you don’t have to break your rhythm, take one or two days, and solve ten standard dynamic programming problems.  

Once you are done with all the above steps, I will highly recommend you to buy a book named Coding Interview Questions. It is a must-read book for any computer science student. It contains a beautiful set of problems. Once you are done with this book, go for cracking the coding interview book. It contains questions from different areas of computer science, such as databases, operating systems, data structure, computer networking, etc. 

Now you can go to any interview very confidently. I can bet, in any interview, you will be asked only the problems that you have already solved, or very similar to that. 

You can join our telegram group for data structure and algorithm preparation: Data Structure and Algorithm Telegram