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.

Being a data scientist, how to Establish Your Self as a Brand?

You visit some of the normal pizza stores in your area, and you see that there are not many people. But suddenly you go to dominos and see that Pizza rates are higher at Dominos still there is more number of people as compared to that normal Pizza store in our area.
We can take another example. You would have heard that some particular influencer takes 10k per hour to deliver the lecture. Why he charges that much, and why organizers pay that much to that person? Think about it. There might be some other people of a similar caliber, but we will not pay that much amount to some average person of the same ability.



So what we learn from the above stories? One thing is sure, people care about the service you are providing, but even more than the service you are offering, people care about your brand name. In this post, we will talk about how you can establish your self as a brand.


Using LinkedIn: 

If you are a data science or machine learning enthusiast, you will already be familiar with LinkedIn. While using LinkedIn, try to send as many connection requests as possible to the people working in the same domain as yours. Now you will see that people are writing various posts, try to criticize those posts by commenting on them. If you are providing correct feedback or suggestions on the posts, people are going to see it. If you do this continuously for one month, you will start getting a connection request from various other people working in your field. Now, you can begin sharing various insightful posts. Try to post something that is having some useful content/insights such as you completed some project or scratch implementation of some machine learning algorithm, or rank in some competition, etc. If you do this continuously, there are very high chances that some of the recruiters will contact you even if you are a fresher.


Writing on Quora

Quora is a wonderful platform to answer the question asked by others. You can answer various questions related to your interest. Now people are going to follow you, given that your answers are adding some value to their life. If you are having a good number of followers, you can ask them to connect over LinkedIn as well. Let suppose you write in the area of data science. Some of the online course providers may contact you to promote their content or put their website link in your answer to get traffic on the website. Although I don’t support all these fake promotions at all. But it is one of the benefits of having a large number of followers. 


By Writing Blogs:

Blogging is going to add massive value to your profile as a data scientist. Whatever project/case study you are doing, try to write a blog over it. It will make your concepts crystal clear, and at the same time, you can write it in your resume. You can share your blogs on LinkedIn or Facebook. It is going to make a massive impact on your overall brand. If you are trying to enter into data science, I will highly suggest this practice.

GitHub:

For any data scientist, it is one of the biggest weapons to show his skills. Whatever you are doing, try to put the code of it on GitHub. In your LinkedIn profile, try to keep the GitHub link of your projects. It adds credibility to your projects. You can create some open-source python library of your own. Although it is not trivial, it is going to be a big plus for your data science profile.


Participate in Kaggle:

Kaggle can provide a considerable boost to your data science profile. If you are not able to win some competition, don’t worry, or even if you are not among the top 100, then also don’t worry. Try to participate in as many competitions as possible. It will increase your data science/machine learning knowledge exponentially. Let say you get a good rank in some competition, write a proper blog explaining your approach, and share over LinkedIn. I can bet it is going to establish you as a brand, and now people will start following you over LinkedIn and recruiters will message you for the interview.
There might be tons of other ways that might help you. We have tried to explain the most basic approach to make a strong data science portfolio. But all these things are going to help you only if you are a genuine person and not trying to make people fool. 
NOTE: Try to do all these things just for the learning purpose; you will become a brand automatically.

How All These Things are Going to Help You :

  • You can mention all these things in your resume, and it will add huge value to your resume. Let suppose you are most viewed write on Quora in machine learning or data science. It shows that you are interested in data science.
  • People may ask you to promote their content. They might pay you a good amount depending on your reach among the people. (Although I don’t support the paid promotion, if you are doing so, please avoid promoting the bad content)
  • You can conduct some online/offline seminars, and people are going to pay you a good amount.
  • You can provide some other services to the people, such as help in resume building, conducting the mock interview, etc. People may pay you for this as well.
  • You can start the youtube channel of your own. As you are already an established influencer, you are going to have good traffic on your channel.

Introduction to Machine Learning (Supervised, Unsupervised, Reinforcement Learning)

Depending upon the business use cases, there are different kinds of machine learning algorithms. In this post we are going to learn about three basic machine learning approaches:

  1. Supervised Learning
  2. Unsupervised Learning
  3. Reinforcement Learning

In any machine learning project, we generally follow a fixed pattern. We have tried to define those points below, it will help us in understanding this different kind of machine learning algorithms.

Gathering Data — The Quality, and quantity of data that you gather will directly determine how good your predictive model can be. Some models require continuous live fed data. In any machine learning project, it is the most important step.

Data Visualization (Exploratory Data Analysis): With the help of exploratory data analysis, we try to get various insights about the data. It helps us in feature engineering/data preparation, appropriate model selection, evaluation metric, etc. 

Data Preparation — In real life almost all the time data is noisy and messy. We need to prepare the data to make any machine learning model on top of that. This process of data preparation is called data preprocessing. In the end, to train and test our model, we split the data into training and test data sets.

Choice of the ML algorithm — Depending on factors such as the nature of data (labeled or unlabelled), type of data (numerical, Audio-visual, categorical), the measures of accuracy, cost of human intervention/correction. We choose the appropriate algorithm although its kind of a hyperparameter but a good knowledge of maths behind some particular algorithm helps in choosing the appropriate algorithm.

Continuous Learning of the model — Incrementally improve the model’s performance, by adjusting output parameters or rewards in each iteration. Evaluate model accuracy.

Prediction/Result Analysis:  Predict the expected results by running the model. Present the output in meaningful human-readable forms (Tables, graphs, images, etc).

Why is it important?

  • It is a fact that data scientists spend 80% of their time cleaning and manipulation of data, and only 20% of their time actually analyzing or building the model on top of it !!
  • Administratively, incorrect/inconsistent data can lead to false conclusions and misdirected investments.
  • In the real world businesses, incorrect data can be costly. Many companies use customer databases that record data like contact information, addresses, and preferences.

Types of Machine Learning:

Supervised Learning:

Supervised Learning is a process of inferring a function from labeled training data. A supervised machine learning algorithm analyses the training data and produces an inferred function, which can be used for mapping new examples.

Supervised learning problems can be further grouped into Two Parts:

Regression: A regression problem is when the output variable is a real value, such as “dollars” or “weight” or “price of some home”.

Classification: A classification problem is when the output variable is categorical, such as “red” or “blue” or “disease” and “no disease”. Example of Supervised Machine Learning Algorithms: Naive Bayes, KNN, SVM, Logistic Regression, Decision Tree, Linear Regression, Random Forest, etc.

NOTE: A vast majority of practical machine learning uses supervised learning.  

Steps in Supervised Learning:
  • We will be having training data, in which corresponding to each data point we will be having a continuous value or a label.
  • We will train and validate the model by showing the example available in the training data.
  • Once we validate the model’s performance, we will test it on the unseen data or test dataset.

If the model was able to identify the output (almost matching the actual output, you hide from the model), you are ready to deploy your model. This process is also called the validation stage.

Real-World Application of Supervised Learning:
  1. Predict the flight ticket prices on Diwali to obtain the maximum profit to the airline company.
  2. Given an image, identify if it has been modified by some software such as Adobe Photoshop or not.
  3. Identify whether a website has obscene images or not.
  4. Predict an unusual behavior in an internet banking transaction.
Supervised Algorithms Working Cycle

Unsupervised Learning:

Unsupervised Learning is an ML technique to find patterns in data, in an exploratory manner. The data is not labeled, which means only the input variables(X) are given with no corresponding output variables. Algorithms are left to themselves to discover interesting patterns in the given data set.   Since data is unlabelled, there is no easy way to evaluate the accuracy of the algorithm — one feature that distinguishes unsupervised learning from supervised learning and reinforcement learning. Grouping of similar data into groups or clusters.

Unsupervised Learning problems can be further grouped into two parts:

Clustering: Grouping of similar data into groups or clusters.

Example: K-Means, K-Means++, K-Medoid, etc.

Dimensionality Reduction: Compression of the data to reduce the its complexity without altering its structure.

Example: Principal Component Analysis, Singular Value Decomposition, etc

Steps in Supervised Learning
  1. We will be having training data, in which corresponding to each data point we will be not having a label.
  2. Train the model on the training data, during training, we will be exploring the data, we will not be having any idea which variables are the output target in the data.
  3. Simplify and group the data so that it can be categorized into distinct sets.

If the model helps to identify useful real-world patterns, your model is successful. Measuring the accuracy of prediction is domain-specific and highly subjective.

Real-World Application of Unsupervised Learning:

  1. Recommendation systems in e-commerce sites such as Flipkart or Amazon work on the principle of unsupervised learning.
  2. Grouping the customers of a supermarket based on their purchasing behavior.
Workflow of Unsupervised Learning Algorithms

Reinforcement Learning:

The reinforcement learning algorithm (called the agent) continuously learns from the environment in an iterative fashion. Aims at using observations gathered from the interaction with the environment to take actions that would maximize the reward or minimize the risk.   In the process, the agent learns from its experiences of the environment until it explores the full range of possible states. The decision-making function is used to make the agent perform an action. After the action is performed, the agent receives a reward or reinforcement from the environment. The state-action pair of information about the reward is stored.

Steps in Reinforcement Learning:
  1. We will be having an initial state, corresponding to each initial state we will be having more than one next state. The input state is fed into the model and observed by the agent.
  2. Based on the input, the model returns a STATE. The decision-making function is used to make the agent perform an action. After the action is performed, based on its output, the agent receives a reward or reinforcement from the environment/user. The state-action pair of information about the reward is stored. This process continues in iterations and the model continuously keeps on learning from live data. At every step, it presents actions from states. The agent choosing the right step at each iteration is based on the Markov Decision Process.

EXAMPLE — “I don’t know how to act in this environment. Can you find a good policy/behavior and meanwhile I’ll give you feedback.”

Real-World Applications:

  1. Self-Driving cars work on the principle of Reinforcement learning.
  2. Games such as alpha go, chess, etc are a really nice example of Reinforcement Learning.
  3. Robots are another good example of Reinforcement Learning.

You May Also Like:

  1. All You Need to Know about Activation Functions (Sigmoid, Tanh Relu, Leaky Relu, Softmax)
  2. All You Need to Know About Sampling Distribution in Statistics
  3. Scratch Implementation of Stochastic Gradient Descent using Python
  4. Evaluation Metrics for Classification (Accuracy Score, Precision, Recall, Confusion Metric, F1-Score)
  5. Top Skills You Must Not Avoid to Become a Great Data Scientist
  6. Feedback on Your Preparation for Data Science or Machine Learning Jobs (Mock Interview)

Top Skills You Must Not Avoid to Become a Great Data Scientist

These days data scientist job is the most sought jobs among the youth. Everybody is trying to grab the data science skills. But some skills do not look crucial to become a good data scientist but are equally important. In this article, we will talk about all such skills that will make you stand out from the crowd. 

Data Structure and Algorithms:

If we talk about software engineering, data structure and algorithms are the most critical part of your life. Being a data scientist, if you are good with DSA, it will make you like a superhero. Most of the time, data scientists will be working with software engineering professionals, so this part of computer science is vital. Sometime it may happen that instead of using library implementation of some ML algorithm, you need to write the code from scratch. In such cases, DSA plays a crucial role.

Maths and Statistics

As we know, machine learning is nothing but a beautiful application of mathematics and probability. If you are good at maths, it will help you in understanding an algorithm intuitively. Further, it will also help you in choosing which algorithm to use on some particular dataset. At the same time,  with the help of statistics, we can get different insights from the dataset, it will be beneficial during the pre-processing stage of any machine learning project.

Core Computer Science Skills:

As a data scientist, if you know about the basics of computer science such as operating systems, computer networks, DBMS, etc. These skills will not only be highly helpful during the interview but make you stand out of the crowd at your workplace. If you have time, I will highly encourage you to know at-least how all these things work.

Good Communication Skills:

If you aspire to become a data scientist and you are not good with communication. It’s a big red flag for you. As a data scientist almost all the time, you will be working with the people having expertise in some other domain. They will not do not understand technical terms. So, in that case, your communication skills are going to help you a lot. If you think your communication skills are not very good, try to improve it as soon as possible.

A Good Story Teller:

As a data scientist, if you are good at storytelling, it will be like an icing on the cake for your career. Whatever you are doing, you should be able to explain interestingly.

There are tons of data science or machine learning courses available over the internet. Most of the courses focus on the machine learning algorithm part and their library implementation. If you have the skills mentioned above, it will provide an excellent boost for your career. If I have missed anything in this article, do let me know in the comment section.

You may like:
1. Free feedback on your data scientist job preparation (Mock Interview)
2. Get Feedback on You Resume for Software Engineering/ Machine Learning/ Data Science Jobs
3. How to use Linkedin to get Machine Learning or Data Science Jobs?

Everything You Need to Know about Machine Learning Syllabus to Become a Data Scientist?

Data science or machine learning is a field where everyone wants to make his/her career. But many people do not know what to study to become a great machine learning engineer. There are tons of machine learning algorithms you can learn, but in today’s world, you need not learn all of them. In this article, we are going to discuss machine learning algorithms that we need to know to become a good machine learning engineer. Here we will discuss every algorithm in very brief.



Before further deep dive into the topic first, we will learn about some basic terminologies, that will help us in understanding the syllabus in a better fashion:

Classification: 

It is a technique where we will be given some fixed number of classes. Given a data point, we have to predict in which category this particular data point belongs to. Ex: let suppose we train a model to predict whether the given image is of cat or dog. It is called classification.

Regression: 

It is a technique where given a data point, we have to predict some real value corresponding to that data point, e.g., given the location and area of the house, predict the prices of the house(a continuous variable).

Supervised Algorithms:

In these sets of algorithms, corresponding to each data point, we will have a label, e.g., corresponding to each image we will be having, whether the image belongs to a cat or dog.

Unsupervised Algorithms:

In this set of algorithms, corresponding to each data point we will not be having a label eg. Given an image we will not have a label, whether the image belongs to a cat or dog.

Semi-Supervised Algorithms:

These are special sets of algorithms, where a small amount of the data will be labeled, and the rest of the data will be unlabelled. As we have understood some terminology, so now we will try to explore the machine learning algorithms according to their nature.

Classical Machine Learning Algorithms:

In this section of the post, we will talk about conventional machine learning algorithms. For this class of algorithms, first we need to extract the features from the raw data and then feed them to the algorithms. These algorithms are ancient algorithms and have been there since the 80s-90s.

Naive Bayes: 

It is one of the straightforward classical machine learning algorithms; it works on the principle of the core Bayes theorem. It can be used for Regression as well as Classification.

K-Nearest Neighbors: 

The K-NN is easy to implement a machine learning algorithm. It can be used for both Classification and Regression.

Logistic Regression: 

It is among the most used classical machine learning algorithms. It is the special version of linear Regression. Although it’s name contains Regression, it can only be used for classification. It has a beautiful probabilistic interpretation.

Linear Regression: 

It is a classical machine learning algorithm that is only used for Regression.

Decision Tree: 

Decision Tree is the classical machine learning algorithm that is based on the core principles of simple if-else statements. It is highly interpretable.

Random Forest: 

Random Forest is nothing but a combination of various decision trees. These are less interpretable as compared to simple decision trees as we are taking the decision based on the prediction of a bunch of decision trees. It can be used for both Classification as well as Regression.

Support Vector Machine:

Currently, it’s among the most used classical machine learning algorithms. SVM can also be used for classification as well as Regression, the thing that makes it different from other algorithms is kernel trick (you will learn about it when you will learn the math behind support vector machine).

Boosting/XGboost:

In the series of classical machine learning algorithms, it is state of the art. In most of the competitions, it is highly useful. One of the drawbacks with it is that it has lots of hyperparameters. It can be trained using backpropagation, so we can use GPUs to train the model, unlike other classical machine learning algorithms. It can be used for both Regression as well as Classification.

Unsupervised Algorithms

These algorithms are mainly used in data extraction. Corresponding to each data point, we don’t have any label. We must know the following algorithms to know this part of machine learning, also called Data Mining: 
  1. K-Means++

  2. Hierarchical Clustering

  3. K-Mediods

  4. DBSCN clustering

Time Series Algorithms: 

These are the set of algorithms; those are used for the prediction on the data that varies with time such as stock Prices etc. We can learn the following algorithms to know this part of machine learning, but these are ancient approaches that are generally not used in production.

  1. Auto-Regressive algorithm
  2. Moving Average Algorithm
  3. Auto-Regressive Moving Average Algorithm
  4. Auto-Regressive Integrated Moving Average Algorithm

Optimization Techniques:

In every machine learning algorithm, there is a loss function that we need to optimize to reach the optimal point. The optimal point is the point at which our algorithm has as little error as possible on the test dataset. Below are the set of algorithms that are used for optimization: 

  1. Gradient Descent
  2. Stochastic Gradient Descent
  3. Mini Batch Stochastic Gradient Descent
  4. Adagrad (mainly used for neural networks)
  5. Adadelta
  6. RMSPROP
  7. Adam

Dimensionality Reduction Algorithms:

In real life, most of the time, we have a dataset that has very high dimensions. It has various drawbacks such as the problem of curse of dimensionality, high training and testing time, heavy memory requirement to fit the data into the memory. So using these sets of algorithms will help us in reducing the dimension of each data point in the dataset without losing much information. Below are some of the algorithms of this category:

  1. Principal Component Analysis
  2. T-SNE(A Nice Data Visualization can also be done using T-SNE)
  3. Truncated SVD

Deep Learning Approaches:

In the current time, most of the large organizations are having access to huge historical data, and at the same time, they also have the huge computational power to process that data. Because of these two reasons, in most real-life scenarios, deep learning approaches work way better than classical machine learning algorithms discussed in section 1. Although deep learning is a hot area of research, if you can learn below topics, it will help you in most of the tasks:

Convolution Neural Network:

These are state of the art for various computer vision tasks such as image classification, etc. Under this category, you can study various algorithms and pre-trained architecture mentioned below:

  1. VGG 16, VGG 19, ResNet 152, etc 
  2. RCNN, FRCNN, YOLO, etc

Recurrent Neural Network:

In real life, we see a huge amount of sequential data, where the current point in the data depends on some previous point. We can take an example of any English sentence; almost all the time, the current word depends on the previous words. RNN works well in case of sequential data.

Long Short Term Memory: 

In real life, we see a huge amount of sequential data, where the current point in the data depends on some previous point. We can take an example of any English sentence; almost all the time, the current word depends on the previous words. RNN works well in case of sequential data.

Gated Recurrent Unit:

It is also like LSTM only with slight differences. If you know the working of GRU it will help you a lot in developing the understanding of various other algorithms as well.

Encoder-Decoder: 

In some real-world applications, the length of input and output in the dataset is not fixed. We can take an example of language translation. Let’s suppose we want to convert an English sentence to its corresponding Hindi sentence. For different English sentences, Hindi conversion will have a different size (length). So to handle all these dependencies, encoder decoders are used. There are tons of other applications of encoder-decoder as well. Below are some other concepts that you need to know to consider yourself as a deep learning expert.

  1. Dropout
  2. Batch Normalization
  3. Weight Initialization Techniques (Usage and drawbacks)
  4. Activation Functions (What are the drawbacks of some particular activation function and why to use some of the particular activation function)

There is no fixed syllabus for deep learning. It’s a massive area of research. Every day new topics are getting included in deep learning. So try to update yourself with all the latest advancements that are taking place every day. The best way to learn about all these latest tools and techniques is by reading the latest research papers in that particular field. 

In this article, we have discussed machine learning and deep learning syllabus. If you are comfortable with all the techniques described above, along with the maths behind them, you can consider yourself as a good data scientist. 

If you think you are comfortable with all these things, you can fill this Google form, and we will take your interview, and based on your performance in the discussion, we will provide you the feedback about your machine learning or deep learning skills. 

If we made any mistake in assigning the wrong group to any algorithm, please do let me know in the comment section.

You May Like:
1. How to use Linkedin for data science or machine learning jobs?
2. How to prepare data structure and algorithms for machine learning and data science profile?

Why You Should Appear in the GATE CSE

Gate computer science is one of the most sought exams if we talk about Computer Science and Engineering. Because of its usefulness, competition in GATE CSE is increasing every year. Every year at least 1 lakh student appears for Gate Computer Science. In this blog, we will talk about why we should plan to appear in the GATE and start preparing for the GATE as soon as possible. What may be the long term and short term benefits of appearing in GATE?

Enhancement in Core Computer Science Knowledge:

If you are appearing for GATE and preparing for the exam very rigorously, I can bet, your technical knowledge of various computer science areas such as Operating System, Computer Networks, DBMS, Computer Architecture is going to be really good. Although you will be learning ancient things, you can still relate to every subject with today’s computers. If one appears for the interview of some product-based companies such as Amazon, Flipkart, Paytm, etc., There will be at least one round where you will be asked in-depth questions from these subjects. So in that scenario, knowledge of these subjects is going to be highly helpful for you.


Desire to Get into IITs/IISc:

There are some students who have a burning desire to enter into IITs/IISc, and During JEE could not fulfill their dream, for such people GATE provides a golden opportunity to fulfill their dream to study in such premier institutes.

Public Sector Unit Jobs (PSU):

Although PSUs are famous among the students of core engineering branches such as Mechanical, Civil, Electrical, etc. But a computer science student can also go for PSUs, we just need to get a good rank mostly under 100. Initial salary and perks in PSUs are really good. But most of the students with that much rank generally prefer to go for IITs or IISc for Masters. So PSUs are a really good option for a computer science student.


Awesome Career Post M.Tech/ME:

If we talk about normal private colleges, most of the students get placed in service-based companies. These companies do not pay good enough to live a lavish life in a metro city. But once you enter into the IIT system and that too with the computer science branch. Your life is going to be changed completely. Its a fact that almost all the IITs except a few new ones, most of them have an average placement of 15+ lakh per annum. Now think about a scenario, you are a 23-24 years old unmarried guy and earning 15+ LPA. You yourself can not imagine how you and your parent’s life is going to change. For 90% of the student, it is the biggest motivation, and it should be.

You Brand Value in the Society/Market:

All the people who did not take you seriously, now they will take you seriously. The answer you are going to write over quora, LinkedIn post, etc are going to get a lot many numbers of likes/upvotes (don’t know about Facebook). Some of the companies or coaching institutes may approach you for the paid promotion over these platforms.

The Happiness of Your Parents:

In this world, there are only two people who love you more than anything else in the world, and those two people are your parents. Once you clear the GATE, the happiness that you are going to see on there face is just a unique experience. Now they are going to tell people proudly that their son/daughter is studying/working in such an Institute/Organization. It happens with me whenever I go to my home, and if there is any family gathering, my parents proudly say that our son is the student of an IIT. You can see the happiness and satisfaction on their faces.
So if you are pursuing computer science, I will highly recommend you prepare for GATE CSE. It has the potential to change your life completely.

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

Which Laptop to Buy for Machine Learning and Deep Learning


Good hardware is always essential for a hassle-free data science journey. I bought my laptop back in 2014, during the 1st year of my B.Tech. It had 4GB RAM. But in early 2018, whenever I used to train any machine learning model, It used to take a very long time, even with a minimal dataset, and most of the time, I used to face the memory error due to the less size of RAM. Machine Learning and Deep Learning require high-performance computing resources. But due to financial constraints, a student can’t buy a costly system. So in this post, we are going to talk about, what are the necessary configuration that a system must have to train a machine learning and deep learning model in a reasonable time and with a fair amount of dataset.
Here I will not provide any specific laptop/brand, but I will try to provide the details about what configuration’s laptop will be sufficient for machine learning and deep learning tasks.


RAM Size: 

At least 8GB RAM with expandable memory up to at least 16GB is a must-have. With a larger RAM size, you can train and test your model with a large number of data points. There are some classical machine learning algorithms, such as K-Nearest Neighbors, where we need to have larger RAM to train & test the model. If you are having an option of expending the RAM size, it might be beneficial in case when you do not want to change your system; instead, you can increase the RAM size of your system by adding the external RAM.

Hard Disk: 

Sometime your dataset size may be as large as 200 GB(in college life, datasets are not that big, but when you will work in some organization. This size will be huge.), so you should have at least 500GB hard disk. As hard disk are cheaper, you should go for 1 TB; it will be beneficial if you go for SSD, as it will reduce the booting time of the system drastically and will increase the speed of your system like hell. With the help of larger hard disk, you can store Games, Datasets, Movies in your system without worrying about memory.

Processor:

 At least Intel i5 8th Generation, if possible, go for higher but it is also sufficient as of now. During the machine learning journey, you will often see that; you require many numbers of CPUs in your system. Because we can train our machine learning model using all the processor, by changing a few keyword/lines in the code. It will drastically reduce the training time of your model. I will suggest you only go with intel. Higher the processor lesser the training and testing time of your machine learning or deep learning model is going to be.

Graphics Card

If you are interested in gaming/deep learning, Graphics Card is a must-have part of your system. As the deep Learning models take a very long time in training, GPUs will help in reducing the training time of your model. GPUs only work on the algorithms that can be trained using backpropagation. It does not work with classical machine learning algorithms. You should go with at least NVIDIA GeForce GTX 1050 with a RAM size 4GB. You can go with an advanced graphics card as well, but the cost of the system will increase drastically. Only go with the Nvidia Graphics card.

Screen Size: 

Most of the laptops with these configurations will be having at least 15.6 inches screen size. I think it is sufficient for a good user experience.

Battery Life: 

Most of the laptops with these configurations will not be having a very long battery life, as there will be a high cooling system installed in the system, and it will drain the battery very fast. I will suggest to go with the one having the most extended battery life; it will be helpful.

Almost all the companies are trying to provide better service to their customers. You can go with any brand having the above configurations (according to your budget). Dell, HP, with the same arrangements, will be slightly expensive as compare to ASUS, ACER, MSI, etc. If you want my opinion, I will suggest you go with either MSI, ASUS, or ACER. It will cost you around 65k.

My Recommendation: 

Here I will recommend some of the laptops, most of these laptops are being used some of my friends for various machine learning and deep learning kind of work. 

Price Range (50-70k): 

  1. ASUS TUF Gaming FX505DT
  2. MSI Gaming GL63 9RCX-222IN (My current laptop)
  3. (Renewed) MSI Gaming GL63 9RCX
  4. Acer Nitro 7 Intel Core i5-9300H
  5. Acer Predator Helios 300 PH315-51
  6. Acer Nitro Core i5 8th Gen 15.6-inch Laptop
  7. Lenovo Legion Y540 9th Gen Intel Core i5 15.6 inch FHD Gaming Laptop

You can do your market research before buying any of the laptops. But one thing I will highly recommend if you are a student, don’t go beyond the 70k price range. In the comment section, do let me know which laptop you are currently using.