Skip to content

Instantly share code, notes, and snippets.

@tech4GT
Created December 22, 2019 11:54
Show Gist options
  • Save tech4GT/18930b4808c219efb0f301e7cef9c740 to your computer and use it in GitHub Desktop.
Save tech4GT/18930b4808c219efb0f301e7cef9c740 to your computer and use it in GitHub Desktop.

Making the most out of your engineering years

Hi, I am Varun. Currently a final year engineering student at NSIT Delhi, (which I wrote about, here). This post covers the things I did, or wish I did, during the course of my 4 years here. Engineering has sort of earned itself a bad reputation, and rightly so, since most of the people who are engineers don't actually wanna be engineers. So if you are one of those, I doubt this article would change that. Although if you are a nerd like me who has liked computers all his life and there is nothing you would rather do than study about them, I hope this gives you some helpful pointers as to how you can make the most of your time as an engineering student. :D

The "College Life" and common knowledge

Bollywood and television have sold us an idea of what the ideal way of living is, as a college student of course. You drink every night, don't go to class, have a super hot girlfriend and drive a car that costs more than your tution (All four years combined). While it sounds "amazing", like most things that sound "amazing", it's not true (for obvious reasons). The story does not end there though, this deep seated idea influences the choices we make. Ask college students why they drink, some might say it helps them have a good time, some would say they like their drunk selves, but the answer you'll get most often is silence. It's because they don't have a justifiable reason, they drink because they think it makes them "cool". I can probably ramble on about this for 14 pages, but I'm no Rachel. So the gist of it is that don't try to act cool, be cool, and thhis is a theme you'll find consistent throughout this article.

Realistically you already know the stuff you should and should not do (from "the talk" with your parents). To be clear, I am not advocating for that. It's neither pragmatic nor fun. You have obviously worked very hard to get to a top school and you deserve to have fun. I'm all for it, but there's a balance that needs to be maintained between fun and productivity, because believe me when I say that they don't go together well. My idea with this article is to give you a more real overview of how you can avoid some of the most common pitfalls and make your engineering years such that you'll thank yourself for the stuff you did in them.

Classes

Should you go to class? Ideally, yes. Are all classes worth going? Hell no! In my experience you'll find yourself in one of these three types of classes:

  1. The Idiot: This professor would know nothing about the subject. Maybe he has to teach it because of shortage of faculty or he is an Masters student (not bashing anyone, there always are exceptions), I don't know. What I do know is that this guy would teach you nothing valuable. He'll theorize about everything but never teach anything tangible. Doesn't matter if you like this subject, just make sure you have the required attendance and that's it. What you can do is study these subjects using some online resources or better yet, the recommenced read.
  2. The Cheat: This one will watch online tutorials or shady videos on youtube and then reproduce the exact same content. I found that a lot of guest faculty teachers do this, but then again, who am I to judge. This is a mixed bag, you can take their classes but firstly there would be information loss from the video to you as the teacher passes it on, and secondly it would be slow, like insufferably slow. Again, I would recommend skipping these ones as and when you can. For the subject, the book would again be the best way but you can also check out the videos that the teacher reproduced. This way you'll still know what was taught in class and you'll bless youtube for their 2X speed feature.
  3. The Professor: More often than not, you'll run into professors, real ones, who would know everything there is to know about their subject, plus they would know how to teach it to you. Although you can still get by studying from the book, I would recommend you attend their classes, mainly because you can ask questions. These classes would be thoroughly enjoyable and you'll learn a thing or two. I do wish every class was like this, but then again I wish a lot of things.

Finally, if you do end up referring to videos, don't just trust any shady one. NPTEL (from the IIT faculty) and MIT open courseware (from MIT, duh!) are some of the best resources out there. Another thing that's kind of anecdotal, is that doing my lab work myself really helped me with my understanding of the subject and even gave me some really nice project ideas. You can even put your work on github and make it a part of your portfolio. (which is what I did btw)

To study or not to study?

Ah, the age old question. See the thing is that you can totally get by if you don't study a single subject throughout the course of your degree, seriously!. You just mug up the things that showed up in previous year papers and you'll pass. Whether or not you should do that, is subjective. The thing is that if you like your subjects then I don't really see a reason not to increase your knowledge base by studying them. Isn't that why you are there in the first place? Even if the classes aren't good enough, you can always use other resources right? Remember that you paid a lot of money for this and you should absolutely make the most of it. Don't think of your college as a stepping stone to a job. It's much more than that. You'll study up to 50 subjects over the course of your degree and obviously not all of them would be relevant to the work you'll end up doing. None of it might be relevant, but the idea is that you'll at least find out which parts of engineering are the most appealing to you. Computer Science is a field that encompasses a lot of stuff and finding what you love the most in it, is like finding a needle in a haystack. So you might wanna get started as soon as possible. This would give you a nice insight into what companies you should go for later on, and even if you decide to go for higher studies, you'll know what should be your focus. For me, I realized pretty early on that I definitely did not wanna work at a financial company (Goldman, DE Shaw etc.). At the end of the day the thing that matters the most is what you wanna work on, right?

Projects

This section can be summed up in one line don't try to learn everything under the sun. It'll not get you anywhere. You're just gonna end up as a jack of all trades with nothing exceptional to show for it. ML & AI are all the hype right now, but rememball that glitters is not gold. I'm not saying that these fields are not exceptionally thorough but my point is that don't buy into the hype. As a fresher nobody expects you to know anything, so whatever you do end up learning is for your benifit only. Choose something you feel a connection with, you'll see that when you make projects you actually feel passionate about, the end product would be so much better. You'll never mind going the extra mile. I am of the opinion that doesn't matter if what you are making is incredibly simple or a thousand other people have already made it. If your heart's in it, the product would turn out better than you expected. The way I did my projects was by listing out all the things I was interested in, then I picked one and went at it until it was good enough to go on my resume. The key challenge here is to force yourself to only do one thing at a time and staying with it until something comes of it. You don't wanna be the guy with 10 unfinished projects you spent an year on, not one of which is ready to go on your resume. Open source is an exceptional way to do this, you can make some real contributions while at the same time gaining a reputation in that community. Since open source projects are continuously evolving, you won't have to worry about finishing every single part. You can simply mention the parts you contributed to. This would also give you some experience with remote collaboration, which incredibly valuable if you wanna work with any of the big companies with cross team collaboration.

Competitive Coding and Companies

This would probably be the most controvertial piece of advice you'll receive but just hear me out, okay? I neither encourage nor discourage competitive coding. It's good if you're into it and can treat it like a fun activity, but that's just the thing. Don't let peer pressure fool you into believing that this is the only way to land a big job. Companies are constantly looking for different kinds of people who bring a sense of diversity with them. If this was not the case, there would be no interviews, companies would just hire people off of codeforces. Moreover the question is bigger than companies, the question is what would you rather do with your time, expand your knowledge base and learn new things or solve a bunch of math problems that give you an extra edge with a few companies. I would pick the prior any day of the week. Please don't get me wrong, cp (that's what they call it) would definitely help you with interviews, but that's about the scope of it. No field of work in computer science requires you to do cp in any shape or form (unless you end up becoming a kickstart problem setter, in which case I can't help but feel sad for you). Plus there would inevitably be interviews that would be based on core subjects and projects, so it's not like cp alone would get you that job. This being said I feel like it's my responsibility to also mention that you absolutely should do data structures and algorithms based practice questions from platforms like leetcode and geeksforgeeks. Technical interviews obviously need you to have technical skills, which in this case would come from solving these questions. The platforms I mentioned above focus more on concepts, rather than standard techniques (like in cp). Up to a certain level this would most certainly help you with your fundamental concepts, problem solving skills and would even keep your brain sharp. ;)

Personal Development

I can probably write a whole other article on this section alone but in the interest of keeping my readers, I'll try to keep this short. ;D I am of the view that personal development should not stop in any phase of life, and I don't see why college should be any different. Although this might just be me, but I regularly find things I don't like about myself. What I do is that I sit down once or twice a month and think about what I would want my ideal self to be like. I then list some of the things that I find are inconsistent with my current self so that I can start to fix them. This method has changed my personality quite a bit over the last few years, going from an arrogant child who can't handle conflicting opinions to a person who'll calmly listen to your side of the story. The best part about this exercise is that the changes are gonna come from within you, and as any book on organizational or personal development would tell you, that's the main thing. Any change that is forced upon you can only do so much. The changes that come from within, those are the ones to last.

The social aspect

Networking is the basis of many professions in the world and it is gonna be very important overall. You'll find people who would go on to work for different companies and these would be valuable referrals later. Among other things friends are a very important part of life and college is one of the best and easiest ways of meeting new people. That being said, some people would help you grow and some won't. Try to differentiate between them and allocate time accordingly. Since the social aspect is only one piece of the puzzle. The truth is that you won't see 99% of the people you meet in college even once, after college is done. So just make sure you keep that in mind when you invest your time in people. If you have a long lost dream to smoke uh..uh.. and pass out in the middle of the day then god help you, why are you even reading this? But assuming that's not the case, try to moderate these things. Remember don't abuse things meant for recreation. Having fun is important and the occasianal drink never did anyone any harm. Just tread with caution.

Conclusion

I've tried to cover all the things that I felt are relevant to anyone who is just starting out with engineering, these have worked for me quite well over the years, I feel like I am much better at writing reports and assignments now (and medium articles hopefully), I fell in love with computers as a kid but the last few years have given me a nice peek behind the curtain. I feel like I really know what goes on behind everything. What you end up doing exactly, would vary greatly with what your personal goals & aspirations are, but I've tried to put forth my take on some of the most common things. In conclusion, these 4 years are gonna have a drastic effect on what's coming later. So use your time wisely, coz if you don't, it'll go by in an instant.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment