Tuesday, October 18, 2011

Excuse me....did I say that ???

Sleeping only a couple of hours for the last few days,  I was in no mood to write a new blog post anytime soon. But this post here - http://nsitonline.in/component/content/article/143-studentexperiences/395-vijit-singh.html acted as caffeine to me, I am got ready with my laptop to write a post. This post has made me thought that may be I should work on my telephonic-conversation skills, since there seems to be a large gap in b/w what I said and what the person at the other end understood. So, I thought of clarifying what I actually meant and answer the questions myself. More than making clarifications, I certainly want my juniors to remember me as a bastard senior who roamed around giving stupid and preposterous ( I am so sleepy, I had to consult a dictionary to spell the word correctly) suggestions to the juniors. Ok, so without harassing my sleepless soul more, let’s get straight to the point and start dissecting the questions one-by-one.

Q.What initiated the passion for coding in you?
This is the closest among all the answers to what  I actually meant. Well, yes AI challenge certainly was the time when I started to love developing softwares. I would NOT say that I love coding, I hardly code much, and I kinda suck at it. There is a subtle boundary b/w coding and developing softwares. Coding is just a part of it, but let’s not get into that.

The 2nd point mentioned here is also correct. I certainly owe a lot to my seniors. Manusheel, Deepank and Mohit, thanks for always being there to answer all my crazy doubts. For records, they do help me out every now and then even now.

Q. What preparations do you advice for various stages of placements?
Yes, initially to understand C and data-structures I did read Kanetkar books. But somehow this post (with kanetkar mentioned thrice) makes me look as if I am Kanetkar book seller or his cousin or something. Anyways, Kanetkar books are good only for the novice guys who are learning to code or understanding the basics. Even for them it makes no sense just reading the text, its important that you solve all the important questions mentioned at the back of each chapter ( I solved each and every question).

Let’s discuss some significant points regarding placements and interviews at this points. Most of them are mentioned in the post, but I just wanted them to be compiled.

1) Our syllabus sucks, that’s nothing new. But the important part is to realize that though most of the subjects are blood-suckers, there are some which are you should not neglect. You should always try to understand these subjects thoroughly while they are a part of your syllabus, so that while preparing for  preparations, you need NOT start from the scratch. Some of these subjects which I can recall now are -

- Data structures: Firstly do it from some basic book. There are many good ones in the market. Tenanbaum is good for getting deep understanding. Again the important part is that you solve the exercises mentioned after each chapter in the book.

- Algorithms: The course-makers have done the craziest thing by coupling Algorithms with Discrete mathematics. This is the greatest disregard possible to any subject. Algorithms is important. Cormen is BIBLE. Love it, and do it to whatever extent it is possible. Frankly, I really struggled understanding this book. I can NOT understand many of the sections written in the book, but reading the book certainly makes you good enough to crack any coding interview.

-OS: This has always been one of my favourite subjects, mainly because you could related it so closely to the real-time systems we deal with. Galvin is really good, you should try and finish the book atleast till chapters. If you aim to crack some biggie, knowing the basics of OS is inevitable (some junior who has cracked some biggie firm, without turning a single page of Galvin, would be showing his middle finger to me right now). Also, you should discuss the concepts you read in the book with your peer-groups, Galvin is a bit ambiguous at times. Discussion would help you clarify the concepts.

-Networking: Its important that you have some idea about how internet works et al before you go for placements. Believe me, it helps. Read Forouzan (or whatever is the exact name of the book).             

- Database : though these concepts are not asked extensively, but you are expected to be good at the basics, like normalization et al.

- Learn OOPS: Being in COE, they never thought OOPS would be of any help to us, so they never had a course on it. People do assume that knowing just C would do. But, knowledge of OOPS always helps in the way you approach the problem and the way you write the code. Its certainly an added-advantage, some firms would reject if you have no understanding of OOPS at all.

- Basics of Linux: You should use it atleast once in your entire span of college, and have some idea about how the basic commands work. No one asks it directly, but indirectly it helps.

2) It’s important to realize here that in my previous point, I do NOT mean that you should cram all these books. The significant point is to realize that you understand the concepts well, the means by which you do that does NOT matter. Try to discuss the concepts you have read with friends, search more on Internet, try to solve new problems, better create new problems.

3) Though I have not been a part of the formal placement process, so I am not the best guy to comment on this. But to the extent I understand the placement searson, it’s not just about testing your knowledge, but it’s equally about testing your patience. Jayesh has correctly mentioned in his post here - http://nsitonline.in/component/content/article/143-studentexperiences/405-jayesh-chaudhary.html that you should not get disappointed. You would see your people whom you thought were not as deserving, cracking the best of the jobs. But the important aspect would be not to loose hope, luck do matters at times in placements. But eventually you would be able to crack a company which matches your skill-sets. And it’s not just the placement season, lots and lots of people switch companies after college. there are plethora of off-campus opportunities out there. So, campus-placement is not the final fate.

4a) Code, code and code. Its very important that you are able to write the code glibly at the interview. The best way to ensure that is that you always practise to code. Participating in online competitions is a really good way to do that. Read mahesh’s post here - http://nsitonline.in/component/content/article/143-studentexperiences/406-mahesh-sharma.html

4b) Many peopel are not comfortable writing the codes on paper. Contrary to this, most companies ask you to write code on paper. Always start practising this one week before the company arrives.

4c) Always analyze what you write. No matter what code you write, you should always analyze its time and space complexities. Make it a habit. Also, always look for edge and corner cases. Companies always judge candidates based on these two aspects.

5) When in an interview, always try to involve your interviewer with you. Always speak your approach loudly, many a times they tend to help if you are moving in the right direction. Always remember if you bored your interviewer, chances are high you would be rejected. Be enthusiastic.

6) Maintain your grades. No matter whatever people say, they help, they always do. Try to score as much as possible along with being good at other fronts.

7) Always try to figure out what you want to ultimately do. this is the most difficult decision to make, but narrowing down the options you want to pursue always helps. As Akash has mentioned in his post - http://nsitonline.in/component/content/article/143-studentexperiences/399-akash-gangil.html , experiment as much in your initial years in college as possible. strike out the options which you did NOT enjoyed.

8a) The last year of college is one of the most important year, which you would always remember in life. The first half because of the placement season, and the second half because you would get a chance to relish a level of freedom which you have never done before.

8b) Do choose your BTP seriously, do NOT just do it for the sake of it. This is the best opportunity in which you could work on a field which you always wanted to explore, but never got a chance to do that.


Some other places where the post misses out:

1) You forgot to mention my internship at Microsoft :P Taking an industrial internship always, helps, try to do that.

2) somehow in the last section, it appears I was the most disappointed person when they banned ragging. But what I meant was that no ragging has led to less interaction between the seniors and the juniors. That implies that you need to make more efforts at your end, to get in contact with your seniors. Participate in fests, socities, that helps. Overwhelm your seniors with your doubts. Somehow NSIT lacks a formal mentorship program. if possible, such a program should be established, where one mentor should be some senior from college and one should be some alumni.

3) and for God's sake, I do NOT use this vijitthetopcoder@ everywhere now. My mail-id is vijitsingh89@gmail.com.

PS- Ignore the grammar and spelling mistakes. As they say "Bhaawnaaon ko samjho" !!

1 comment:

  1. thanks for the great writing . I am sure this must have done a ton of good to a lot of students .

    ReplyDelete