PDA

View Full Version : What do I do to become a software developer?



ankursethi
June 10th, 2007, 02:35 PM
I'll be 17 this December and will complete school in April next year. That means searching for colleges that offer the courses I want, which is turning out to be quite a pain in the behind.

Here's the situation : I'm an Indian who wants to go abroad to study (preferably the United States), but I have only a vague idea of the courses available etc. I will soon be visiting an educational counsellor at the USEFI, but before that I want some opinions from this community. I want to be a software developer and want to work on open source or commercial application software. I have dabbled a lot in programming and I will probably have a few small personal projects under my belt by the end of this year.

So, my questions in brief :
1. What courses must I look into so that I can be on the development team of, for example, an office suite or a version control system?
2. Which universities will be the best for foreign students such as me? Is there a free resource online to help me find some?

I have exactly 15 days before my school starts, and in India being a student is like a full time job. It's highly unlikely that I will get time for research after these 15 days, so please help out guys.

Thanks.

PS : I have already given the SAT (the results will be out on 21st this month). I'll be giving the Subject Test later this year. Any other tests that would be helpful besides the CBSE (Indian equivalent to the College Board) exams?

luca_linux
June 10th, 2007, 02:57 PM
First of all, I think you should look into Computer Science or maybe Software Engineering (though, as far as I know, few univesities offer this degree course...I'd do CS between them anyway, since it'd offer a broader perspective of the field and the possibility to do research as well)
If you like to work with low-level languages, embedded systems or to study interaction between software and hardware, I'd suggest Computer Engineering.
As for the university in particular, I believe it first depends on your SAT score (I don't live in the US), anyway Berkeley, Stanford, MIT, Carnegie Mellon are the best places (obviously) in these fields (and not only).

cunawarit
June 10th, 2007, 03:03 PM
I can't give you any specifics about studying in the USA as I studied in England.

The one place that I have always admired is MIT, specifically the media lab ( http://www.media.mit.edu/research/ ) ... Having said that it isn't easy to get into the MIT.

Whatever you do I am sure you'll enjoy the United States, I love it there!

FWIW, I am a software developer, and I studied Mathematics with Computer Science, and the did a PhD in Computer Science.

smoker
June 10th, 2007, 03:05 PM
this is a uk link, not us, but may be helpful, or not!
http://www.britishhighereducation.com/

mips
June 10th, 2007, 03:06 PM
The one place that I have always admired is MIT

I always wanted to study at Caltech (http://www.caltech.edu/) for some odd reason.

luca_linux
June 10th, 2007, 03:10 PM
I always wanted to study at Caltech (http://www.caltech.edu/) for some odd reason.
LOL, I forgot CalTech in my list... :)
Yeah, it's one of the best places too.

ankursethi
June 10th, 2007, 03:33 PM
Just read up about the computer science degree on Wikipedia and some forums etc. and it looks like the one I'd want to pursue. Embedded systems are not exactly what I'd want.

CalTech was the first university I added to my list of universities to apply to. One thing that will play a huge role in my choice of university is the fee and the financial aid it provides. MIT, Carnegie etc. are quite expensive by Indian standards, so I'd be grateful of somebody could tell me something about paying for these places. I suspect that even after getting financial aid, I'll have to work quite hard and earn something myself. Any ideas about financial aid?

Anybody here from MIT, Carnegie, Stanford or one of those biggies? I'd like to get acquainted with their selection process, the average SAT marks, high school grades etc. by which they judge prospective students.

Tomosaur
June 10th, 2007, 03:36 PM
I myself am taking a software development course at university (in the UK). I would say forget about picking a specific course. There's very little your university can teach you academically (for computer-related subjects of course) that you can't find out for free by scouring the inernet. Yes, the stuff your university professors will teach you is generally concise, well-researched, and (mostly) up-to-date, which is quite difficult to match given the nature of the web, but the point is that you CAN do it on your own. Added to this, software development is not something you can learn by listening to someone drone on about the history of C for an hour, you have to work at it, practice writing programs etc. In university you will be assigned practical projects so that you can actually develop software, but you could really just join an open-source team and develop something you care about, without having to pay university fees.

That's not to say university is worthless, of course not. A degree can really make you stand out with employers (although it doesn't always guarantee you a job), and, provided you can keep up-to-date with your own reading, and keep on top of new technology etc, you're pretty much set for life. University itself is generally a great experience anyway, regardless of the course you choose.

So anyway - in answer to your question. You do not NEED to go to university to learn how to develop software. If you have the resources available to you (and really, all you need is a decent computer and an internet connection), then there's very little a software development course can teach you (in academic terms) that you can't find out for yourself.

I often repeat the following to people in your position, though, just to highlight what I'm trying to say:

"You don't go to university to think about learning, you go to university to learn how to think."

The best part of university is that you will open your mind. If you're going to go to uni, you may aswell choose a subject which you really enjoy, rather than something you're interested in primarily to make money. For some subjects, like Medical Science, Surgery etc, then perhaps yes, a degree is 'required', but for something like Software Development, the only thing that really matters is experience. University will force you to attend lectures about stuff you probably don't care about - time which you could use to actually write programs. I have received probably 10 formal, written warnings about poor attendance for lectures (in my university we're required to attend 60% of lectures each term or else a formal warning is given out. 3 warnings is supposed to be the 'cut off', where they kick you out). I use the freed up time to teach myself rather than listen to another history lecture. Over the last year or so I've become less interested in software development in general, but I can still 'do it', and I have a sneaking suspicion that the only reason I haven't been booted out of university yet is that I get good grades (without wanting to sound big-headed, of course!). I enjoy programming, but have no real interest in a software development career. If anything, I'm becoming more and more opposed to the idea. The area interests me from a technological point of view, and, in some cases, a philosophical and creative one, but I really don't care much for software development as a business oppurtunity, which is probably why I'm attracted to open-source.

Anyway - what I'm trying to say (and sorry for rambling) is that university is great in the sense that it's a good personal experience, but I'm not convinced that it is the gateway to an ideal career. If anything, I'd say university has turned me off the idea of a career completely. While I was in college, I thought 'Software Development is good, so it'd be a good career', but now that I've gone through the motions, and know a lot more about it, I'd say that I was naive. I'm glad I went to university, and I still do enjoy software development, but not in the same way that I used to. I have no interest in making money from it really, but I suppose I could if I wanted, or needed to.

My advice to you is to spend your energy on getting experience in development - don't rely on university to teach you what you want to know. If you want to go to university, pick a course which you enjoy, not something you want to make money from. If you do that, you'll get more joy out of learning, you'll think more clearly, you'll be more imaginative, and you'll have a great time. I was lucky in that my university actually offered a 'Software Development' course, but I know other universities don't. My modules have covered the following topics, so if you can't find a university with an SD course, you can find something that matches the following:

Java programming.
Computer Systems.
Distributed Systems.
Software Engineering.
Artifical Intelligience.
Web Technology.
Database Technology.
Logic (this has about a million different names, so you'll probably have to find the closest match).
Data Types.
Business and Management.
Economics.

The last two were add-on modules, not really related to my course but they had to be done anyway to build up credits.

ankursethi
June 10th, 2007, 04:09 PM
I'm so interested in software development that I have a difficult time thinking about anything else besides that. Call that freaky, call that retarded but what else can you expect from somebody who has spent his entire childhood pressing buttons just to see what they did? I'm interested in literature, but that's something I'd rather explore on my own than listen to people go on about it. Another interest would probably be animation but that, again, I can pursue side by side as a hobby, producing independant shorts for sharing on the Internet.

I recently took a look at the stuff they teach in Indian universities and found, to my surprise, that I knew at least 50% of it. But sadly, in India, experience doesn't guarantee a job. No matter how experienced you are, you will be turned down by most big tech. companies if you don't have experience. If I lived in the US then I could probably follow the independ study approach, but back here it's a near impossible task. Moreover, education here is like a pill you take to cure a disease - you don't want to take it, it has undesirable side effects, what it cures can easily be cured by other, less painful methods but it makes you well enough to earn money.

So the reason for pursuing a degree is this : I want to prove to people that I can indeed write software programs, which is difficult back here even if you have a moderately large software company and make several thousand dollars a month. Once into a univ. I'll focus most of my energy on my personal, open source projects.

But all this will only be possible if I can afford the education. As I said, it's too expensive by Indian standards and I'll only be able to get in if I get a decent scholarship or a huge amount of financial help from the university itself.

luca_linux
June 10th, 2007, 04:29 PM
So the reason for pursuing a degree is this : I want to prove to people that I can indeed write software programs, which is difficult back here even if you have a moderately large software company and make several thousand dollars a month.
If that's the reason, why don't you study to get some certifications (for example from Microsoft, SUN, etc.) instead of a degree?

ankursethi
June 10th, 2007, 06:14 PM
Frankly it's not the same. I can't quite explain it. You'll have to live here in India to know. With the mindset people have back here, I couldn't ever convince my parents to let me just go without a degree, even though they are probably more forward looking than most American parents. People regard those who have engineering degrees with respect, and nobody really cares about the guys who have just done certification courses. Although there is a shortage of engineers, most IT companies would prefer those who have a formal degree. I will have a bit of difficulty getting a job back here without one.

luca_linux
June 10th, 2007, 08:12 PM
Ok, I get that.
That given, I definitely I think you should do Computer Science. If you don't like low-level stuff as well as sw/hw interaction or embedded systems, don't choose computer engineering.

lsalminen
June 10th, 2007, 08:20 PM
http://www.collegeboard.com

They'll tell you all the averages of SAT scores, costs, % admitted, everything you need to know.

SoulinEther
June 10th, 2007, 08:22 PM
Some of the higher-end universities have amazing financial aid programs that cover 100% need, like Northwestern, Yale, Princeton, I think Harvard... etc.

But that depends on your SAT scores and your grades... and I dont think those schools I listed have the best computer science tracks.

I live in California... I got a whole bunch of these schools nearby lol. Caltech, Cal Poly ...

ankursethi
June 11th, 2007, 04:57 AM
I'm expecting a good SAT score, but I'm afraid my high school performance has not been that good in eleventh grade. It isn't because I was dumb or anything (I can run Gentoo, yay!) but because I wasn't focused on the stuff taught at school and was more interested in doing my own thing (programming, Linux etc.). I just hope they don't really care about my high school record :-p

I suppose I'll have to work twice as hard this year. Oh well ...

SoulinEther
June 11th, 2007, 05:05 AM
As a junior myself (though in an American school) who hopes to go to a good 4 year college... I can tell you that as long as you do stuff occassionally in class and get the A's and B's and maybe do some extra-curricular stuff (does contributing to open source software count? it should) and you get in. sort of.

sloggerkhan
June 11th, 2007, 05:12 AM
I went to MIT once and the guest speaker was a chick who told us about how her father's connections as a doctor allowed her to do research as a kid, which then got her into MIT where she made connections by winning a beauty pageant which allowed her to start a nonprofit. It was rather disgusting. MIT has some real genius people, but they depend on a backbone of Eastern Quid Pro Quo and cronyism just like Ivy Leagues.

If you want to go to a school in America, pretty much all the big State schools like UCs in california or U of A in arizona and such are pretty decent, though some have better programs in different things. As out of country student, it'd probably only save you $10,000 over a private school, but I am only guessing.

If you go to good name public schools that aren't top, or even good name private schools that aren't top ranked, those are where you will get your best bet for scholarships and support as the schools tend to be trying to reach out to improve their ranks.

I like the UA, but mostly it's cause I like being in Tucson. I don't know. Different people like different schools. Can't speak to schools out of USA, but I think there are a couple in Canada with decent scholarship programs.

And if you apply to an American school, talk about your software apps in the application if you have a chance. Having coded before will put you above some applicants.