I on the other hand, have studied computers and the science behind it since i was 12.I am good at development, and yes i have also read TAOCP thrice and i am well versed with algorithms and low level hardware and architecture, In short, i am not a code monkey. So now i am in a dilemma as to what i should go deep into? I love infrastructure stuff like Networking/Sysadmin/Build and release stuff. And since most programming jobs in India are mostly boring java/.net jobs, i want to avoid them.
Can you guys guide me as to what specialization i should go after. And since it is India, I will need certifications to prove my worth. I was thinking of Doing Red hat certifications and cisco and juniper certifications(just to get my foot in the door). If you guys have any suggestions, I would really be helpful if you guys could help me out.
My current skills: Programming: Python(love it) , Java (safe backup for job), C/c++ (mostly QT), mostly all types of shell scripting. Frameworks: app engine (both python and java), django, sql alchemy. and all other java frameworks starting with 'J' :)
What i am intrested in: Networking Hardware/ Planning/ Design. System Planning/ Design / Maintainence. (any platform) mostly data center jobs.
1) Write GRE, apply to some good American CS grad schools, finish the Masters degree and start working for your dream startup in Silicon Valley or any of the top software shops. This will also help you with getting a work visa (having American Masters is an advantage).
2) Alternatively if you would like to stay and work in India for a while, there are some great places to work within India. You can work for top-tier global companies like Intel, HP Labs, Google, Yahoo, Adobe, NetApp. I'm not too much into the Indian startup scene but there are some interesting early-stage internet startups like Flipkart. I used to work with the Hadoop team in Yahoo Bangalore (90% of the map-reduce team is in Bangalore). Usually these MNCs have the same kind of work culture (for the most part at least) in India as their American campuses. You don't have to engage in Visual Studio/Eclipse masturbation if you work in one of these places.
Re: certifications - if you want to work for the likes of Google, they don't care at all about certs. Since you're a first year student, I would instead recommend you try to get an internship at one of these places. Getting a job offer with the same company after an internship is pretty easy.
1) Start working on interesting opensource projects. Get your code up on GitHub.
2) Try Google Summer of Code (GSoC) - prepare well in advance for this, become friends with the project leads on IRC, ask them for interesting projects to propose, and show initiative.
Where are you based?
I hear there is a good startup scene in Bangalore. I know at least one friend who's recently moved there to set up his startup. I can put you in touch with him.
I've even seen some incubator programs (being touted as "India's YCombinator"):
http://www.paisa.com, based in Pune, is an interesting company and I think they are working with some interesting technologies too. I exchanged email with one of their founders recently and they sound like fun people.
This old thread might be useful - http://news.ycombinator.com/item?id=54085
Feel free to drop me an email.
Most jobs may be bad, but you are good enough to avoid most jobs and go for the few good ones. Just hop on the bus to Pune, meet some people and get started. Maybe, you can start working remotely? Or commute once a week?
Don't decide between dev and admin purely based on opinion and speculation. It's probably best to try both out and see which you like more.
Edit: Don't just rely on asking HN. Rely more on asking local people around you. Beware the danger of using HN as an excuse for not taking real action.
Keep telling yourself that, but if you are a developer, you will be a "code monkey" in one way or another until you've worked your way up a bit, no matter how good your background is.
I've worked with PhD's and Master's CS students from around the world that have written bad code. We all do, but the less supervision and review, and the less people care, the worse the code. At the same time, it took me several years to realize that what people build up to be the ideal can be just as much of a waste. (Your team spends all that time working with the perfect process, but you've added overhead that never needed to be there, because the customer doesn't care. Think about the early success of Windows. That was a product of the lower end of "good enough" coding/design.)
But despite aiming for "good enough", you need to go through the rest first. Good practices and techniques are learned from working with good people. You should be so blessed as to have a great mentor as a junior. And as a mid-senior-principal/architect, you should be so blessed as to have great people working alongside you at least at some point (not big names, but just people you respect quite a bit at least) and in good environments (places were you respect the process as one of the best in the industry as far as you are concerned doing something you love).
Anyway, again based on what you said, if you have the opportunity to go into firmware, device drivers, OS development, etc. you might look into that. You might need to go out of the country, though (take a chance!). http://www.indeed.com/
You could also (assuming you have the money, which I'm pretty sure you do) continue education and go the engineering route if interested. Chip design, etc. can make a good amount of money, and your skills probably wouldn't go to waste necessarily.
If you are going the firmware, driver, OS etc. route, make your resume, etc. the best in the world as far as you are concerned, after having looked at the online ones of those you respect. Add what they are looking for to your resume (don't just list things, but a sentence about what you did), so the manager and HR see them. Don't fill it with every possible thing you know, or you will get overlooked. Don't try to be something that you aren't either. Don't try to prove everything you know by reciting every detail, unless they are interested in it, but provide enough detail to show you know it.
Find all opportunities that you are excited about (and don't let country boundaries affect your decision, if you are young, but don't just move somewhere unless you are fairly sure you can get and keep a job there). Contact those people. Know that you are getting on the ground level and don't worry about salary, etc. yet. Focus on the best environment and finding who you believe will be a great mentor. Understand whether they are excited and serious about their work, and whether the rest of the tech world respects or would respect what they do. Get some interviews.
Once you are there, focus on what you can do to help the business without making your manager look bad, but learn everything inside and out. You will succeed.
Red Hat does have an office in Pune, you know that -- right?
Is there any google group or irc for people working in product dev and good service companies?
“It’s a pleasure to meet you, Professor Knuth,” Steve said. “I’ve read all of your books.” *“You’re full of shit,” Knuth responded.
http://barcamp.org/DevCampPune
I'll be out of college soon. My tip would be to attend local developer events. I was surprised about how a lot of guys on HN and #startups are closely knit. Then figured out that they meet frequently at local developer events. So I started attending local events at Bangalore, and made a lot of friends here. Also I'm going to give my first talk at an event tomorrow (not actually a full talk, but I'll be pitching in for one topic in another guy's talk). Meeting guys face-to-face pays off. Trust me, it's cooler than meeting some guy with the x9dzc nick on IRC and saying Hi.
And for god's sake, you just got into college, so don't start choosing your tech stack right away. Try out as many things as possible. Lua, ChucK, Orc, whatever. You won't find these awesome 4yrs that easy anytime later in life.
There's nothing called "monkey jobs". You find out why when you go broke and need money :)
I was just wondering do we have only a CS hacker scene? I mean I am more into hardware, embedded systems and such, do we have communities for that? Also are there any such communities in or near Ahmedabad (or Gandhinagar).
i am also intrested in embedded stuff, but just as a hobby. you must look into the arduino project if intrested .
Two good things came out of my working at a big company were money and a better understanding of what I wanted to do. Also, the thing about service companies offering only boring coding jobs is not entirely true. Most of the work they do is boring, yes. But, they also work on some cool stuff. You might also get an opportunity to work on huge applications which can be a great experience.
Personally, I would be reluctant to spend more money on formal education in India. The top-tier universities are good, but the rest of them are not even close. As you are interested in hardware/networking design/maintenance, you should probably look for a job at indian managed hosting providers like netmagic.
Regarding you question. If you are really passionate about working on product and not consulting, Learn more than what is taught in class, contribute to some open source projects. Apply some universities in US. I don't think startups really care which university you come from as far as you are a real hacker.
And if you want to stay in India (which is not at all a bad idea), you can join some product based company there too. Or may be start something of your own. Since you are still in school, it's worth trying out.
And just FYI education in India is not as bad as you think. (I did my Bachelors in India and Masters from one of the top ten universities in US).
For hackers, there isn't a better job in India than to work on AWS cloud computing platform.