If you love technology and want to become a software engineer after college, then trust me, you wont like what you do there on your daily job which has nothing to do with the technologies you've loved. An average software engineer job in MNC's is booring.
Anyway puns apart, here's what you need to do:
1) If your ultimate aim is to get a job in top tech firms, then your best bet is to drop a year and get good marks to get into the Grade 'A' colleges where these companies hangout and you will get placed in one of them provided you have good academic score and excel in campus interviews/ability tests
2) If you dont want to get into the Grade 'A' colleges by dropping an year, and chose to join a Grade 'B' or lower college instead, then you can still get a job in top companies by applying after your college degree. Its not easy as in first option but definitely doable if you put your mind on it..
I completed my B.E. degree in 2010 and supposed to be a software engineer, but I'm not; but thats another story. One thing I've found out is that the quality of teaching has nothing to do with the colleges we chose. Whether we get into top colleges or not, we dont need to entirely depend on their teaching to excel in our academics, we can do it ourselves since information is only a click away in this technological age. The deciding factor for choosing a Grade 'A' or Grade 'B' college is the availability of placement options. Grade 'A' colleges scores in this regard and you have a good chance of getting into a top MNC after/during the course. With Grade 'B' colleges the companies wont come looking for you so you have to go hunting for them after the degree - not easy but definitely not impossible
Best wishes for your journey ahead for whatever option you choose