What would I suggest my first year self to do in the summer break?

KSHITIJ ANAND
9 min readJul 4, 2021

Hi, my name is Kshitij Anand, and I am a third year undergraduate at the department of Aerospace Engineering at the Indian Institute of Technology, Kharagpur. I am currently working as an Undergraduate Research Intern at the University of Calgary, Calgary, Alberta, Canada (remotely) under the MITACS program. As the topic suggests, in this article I am going to discuss what I would suggest myself back in first year [if I could time travel :) ] to do after my first year was over. The motivation to write this article comes from the numerous discussions I have been having over messenger, WhatsApp and email, entertaining doubts from various first year juniors, over the cliched topic — “What should I do after endsems?”. Well, although this is a very cliched question, I was disappointed to see that not many resources exist to guide us after our first year. Hence, I decided to compile a set of suggestions from my perspective.

Important Disclaimer: The suggestions in this article are from ‘my perspectiveand my perspective mostly stems from a career in research. I started my research career path in quantum computation (a very short stint), then moved to robotics and image processing (love this field) and have recently dived into aircraft designing and structural analysis. Making an airplane fly is much more harder than getting a rocket into space, TRUST ME ON THIS!

So, lets start -

Suggestion 1: LEARN TO CODE IN PYTHON!

Virtual Studio Code is a great IDE for building python projects

Irrespective of the career path you choose in the future, be it core engineering in any discipline, data analytics, AI, economics or finance — python is going to come handy if you want to do something ‘useful and new’. Just to clarify what do I mean by ‘useful and new’ — ‘useful’ because it will have practical applications and you can deploy it to help the common man i.e. Python is the starting point if you are thinking of developing a product and ‘new’ because the new way of doing things is — gather the data, run the algorithm to get a linear fit if possible and take the next step based on the prediction.

On a more basic level, Python is great for scientific computing, and hence it will help you understand your course material if you decide to play around with your assignments in Python. One of the biggest changes that has taken place in the curriculums of undergraduate courses around the world is — visualizing the math with code — and unfortunately, the curriculum at IIT Kharagpur is showing no signs of adapting to this change. E.g. I will talk about the governing equations in fluid mechanics from my courses in aerodynamics. Even after having a firm grip on the physical concepts governing fluid flow, the mathematical equations haunt me. I have memorized the mathematical governing equations by imagining myself in the fluid sitting in a small room and following through with the physics, and I guess this description must be enough to wreck your brains. Don’t get me started about when we generalize these equations and start using vector calculus, this is the face I make when I see the governing equations in vector calculus form -

Michael Scott after he announces that the Scranton Branch is being downsized — from the Office web series

So, what was the solution to all this? VISUALIZE. I accidently ran into a set of open source assignments shared by Professor Loren A Barba on this GitHub repo. I went through Unit 0 and 1 and I just fell in love with the subject. I was starting to see flow visualizations with just a few lines of code. The only downside I personally believe was I discovered these pretty late in my student life, but then the upside — I FOUND IT! and learnt a lot of fun stuff, so I guess something is always better than nothing.

Now from a non-curriculum point of view, if you are thinking of starting an industrial or corporate or academic project with which you aim to make real impact, you are going to have to deal with data and lots of numerical computations, and then will have to milk golden values from multidimensional matrices. Python enjoys a popular mandate among beginners in this field due to the various libraries it provides which come with inbuilt functions, which help you solve big problems in just maybe 5 lines of code.

After making my case for Python I would suggest the following learning track after having taken and completed like 6 different courses for Python beginners:

Basic Pack (Useful for all career paths):

  1. Course 1: MIT OCW 6.001 — Introduction to Computer Science and Programming in Python | Electrical Engineering and Computer Science | MIT OpenCourseWare : This course will take a maximum of 7 days to complete if you give 3 hours per day. Watch two lectures and then go for the problem set. Try reading the book recommended for reading if you have time and if you like reading. However, from my experience I believe that even if you skip the recommended reading for 6.001 you will be good.
  2. Course 2: MIT OCW 6.002 — Introduction to Computational Thinking and Data Science | Electrical Engineering and Computer Science | MIT OpenCourseWare : This is a follow up course to 6.002 and it covers the remaining half of the recommended book. This course is a bit tough than 6.001. If Computer science was your fifth subject in the higher secondary standards then you will take a maximum of 7 days to complete this course with 3 hours of devotion each day. Other students will take a maximum of 14 days. For this course, I suggest you do everything seriously, watch a couple of lectures, then solve the next problem set and also read the book. I strongly suggest reading the book because this course has some foundational ideas about how the computer actually works under the hood e.g. data structures, traversing the memory etc; which need reading to be understood well.

Notes for the future: Given that this time the first years will have vacations for about a month only, I would not suggest anything more. However, if you are still curious what next you should head on to, complete these two courses for foundation in algorithms and data structures:

  1. Course 1: MIT OCW 6.006— Introduction to Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare
  2. Course 2: MIT OCW 6.046 — Design and Analysis of Algorithms | Electrical Engineering and Computer Science | MIT OpenCourseWare

I started these courses in the summer break after my second year and it took me about 5 months to religiously complete them. I would suggest skipping 6.046 if you do not plan to work on computer and programming intensive projects e.g. robotics projects.

Later on in your course of academic studies, you should start consulting the seniors of your department or your assigned SWG mentors, regarding what steps of learning should you take next to accomplish a certain goal. The tracks get pretty much diversified after this. Academic research requires knowledge of libraries such as Numpy, Pandas, Matplotlib. ML/AI projects require OpenCV, Tensorflow, Keras, SciKit Learn. I do not have any idea but I am pretty sure some specific libraries would be there for stats and finance as well. It is your task to explore.

Suggestion 2: LEARN MATH!!!

Recommended book for LA course

I know, I know, I just dissed math above and then now I suggest learning math. Well, I do hate vector calculus, but I do enjoy learning linear algebra and probability & statistics. Why? Because they have practical applications every where, literally everywhere. In fact the screen you are reading this article on is an array of 2D pixels, whose RGB or CYMK color values are altered by vector operations. Both the topics are quite big and in-depth subjects and hence you will not be able to cover both of them in one summer. What should you choose? Well, my personal opinion is go with linear algebra. There two primary reasons:

  1. You would have introductory Linear Algebra (referred as LA further on) fresh in your mind from Mathematics II, so it will be easier to pick up on an advanced course.
  2. I haven’t seen a single branch of science where you will not encounter LA concepts in your second and third years.

LA is math but I personally believe it has a great property — you can visualize it. Would you believe me if I told you that matrix multiplications can be looked in 4 ways and one of the ways helps us directly answer whether an equation of the form AX = b has a solution or not, or for which b can we have real solutions? [A pretty common equation we solve in ML algorithms] I have done one proper course in LA in my life and I believe it is the mecca for learning LA:

Course: MIT OCW 18.06 — Linear Algebra | Mathematics | MIT OpenCourseWare

Notes for the future: I am nearing the completion of a course on Probability and Statistics which can be found here: Statistics 110: Probability (harvard.edu). My experience so far has been great. However, I will update the review later in the article. Why prob stats is integral? Because everything is random and humans hate uncertainty. Keeping the philosophy aside, prob & stats is integral in learning and understanding a lot of computer concepts such as ML algorithms and definitely have a lot of importance in finance. I am not a finance person, so you will have to ask someone else for more fruitful insights on this.

Suggestion 3: Learn to deal with the Paradox of Choice

From Google Images

Paradox of Choice is a phenomenon where a person starts feeling uncomfortable on choosing one thing out of a lot of options due to the fear of missing out on the other options (FOMO), when actually, a lot of options were presented in the first place with an aim to ease the life of the person and to give them greater freedom of choice. Why am I talking about the Paradox of Choice you ask? Well, we all know that 99% of the students entering in an IIT via JEE (even a lot of computer science students) do not have a clear vision of what career path they are going to take. They land in an unknown land with an unknown department and now are all alone to choose a career from a multitude of choices, which is going to decide a lot about their life. In such situations, you would start doing something and suddenly on some nth day you will loose interest and find yourself in an abyss. A wide big abyss where you have the repeated thought : “Ugh I will have to start again.” Don’t worry, we all have experienced this, even the guys who had full blown confidence in the career paths they had decided on earlier.

So what is the remedy? READ. READ ABOUT PEOPLE’S EXPERIENCES AND THEN EXPERIMENT!!!

You will find a never ending sea of resources where students who chose various career paths have shared about their journey. You should visit the pages of Scholars’ Avenue, Awaaz and Communique (student societies of IIT Kharagpur) and read the interviews of people who were placed or obtained an internship, and try to cover all domains. You will find fewer blogs and articles related to students going for higher studies, but again you always have the option of reaching out to unknown people for a good cause. Social media has some few good utilities, there is no harm in using them.

On a concluding note, if you have seen the movie “Margin Call”, the guy — Peter Sullivan — who identifies the huge disparity in the financial valuation (or whatever, I told you I am not a fin guy) had a PhD in rocket propulsion. What I mean to convey is that feeling confused, let down, to have failed, disappointed and what not, is a very common phenomenon in college life. I mean you would have missed out on a lot of adrenaline rush if you didn’t experience this. So stay calm, keep doing, don’t slack off and some day you will be as successful as Peter at the least. :)

And as the end semester exams of the first year students start tomorrow, best of luck to them!

Footnotes:

  1. Learn to use Libgen for downloading books if you cannot afford a hard copy of the book. I believe every person who can afford a textbook should buy it to honor the author’s work, but then we need education to be accessible to all too.
  2. Use Scihub for downloading articles you cannot obtain via the Institute library.

--

--