views:

181

answers:

4

I graduated from college about 2 years ago in India, have been working in an outsourcing company developing Siebel CRM applications. I have grown really tired of developing enterprise applications that require solving the same problems over and over again. The work in these kind of companies is not really challenging, its just solving nasty little problems which the client isnt bothered enough to solve himself. To discard all euphenisms, its body shopping and doesnt require a 'Software engineer' to do the job. In my company i've seen people from non-engineering background perform better than demotivated software engineers!!

Sorry for the mini rant, but my question is what do is need to do to get out of this job, and into a company that does real development work? (say Thoughtworks, Google, MS) I dont have any commercial experience other than Siebel CRM(which wont be relevant for my next job, i hope)

I have gone through SICP, am proficent in Java and Scheme and familiar with Python. I have recently started an open source project which is a scheme interpreter written in Java. Is a lack of commercial work experience in the particular technology which i will be using, a big hindrance in bagging the next job? Is the open source project enough to prove that i can pick up the technology that i require on the job? What else do i need to do?

+1  A: 

I d say you should start committing code to a well know open source project. If you are on the .net side of things NHibernate, and any of the castle projects would be a good name and they have a really nice code base. Otherwise you could start your own project, the downside to this is that you ll less likely to learn things.

My 2 cents :D

Miau
Why are you less likely to learn things in a project of your own?
Dominic Rodger
I guess that would be because you wont get the opportunity of reading code by other people
Pranav
Really? I read lots of other people's code when I'm working on a project of my own, to learn how to do things I can't figure out using my own puny brain.
Dominic Rodger
yes, but when you are writing code for an existing project is not an option, you have to do it. Also you might be forced to use some practices or development techniques that you wouldn't have used otherwise because you were not convinced by them at the time, etc.
Miau
+1  A: 

Interesting and challenging projects can likely be seen only in startups. Try to get into one.

Or better, start your own project.

I am in quite a similar situation. At day I do enterprise development for money. In my free time I work on my private project for satisfaction.

As for Google and others, just try to apply there. If they find you promising, they can get you even without experience. On the other hand, there are stories of people coming to big companies and leaving a few weeks later because of the bureaucracy (I definitely heard such a story about Microsoft).

Just keep looking and look at what they are doing, the size or the name of the company does not really matter.

User
A: 

I would advice you to pick a particular language/technology first. then focus on improving in the technology by-

open source projects

reading good books, blogs

Will take some time, but eventually you will be ready for applying to the kind of jobs that you want.

Pranav
A: 

I totally understand how you feel. I did around 18 months of work in Siebel when I left school, and realized that it's the same thing everytime too. Admittedly, some things did change (my group did some pretty cool stuff with custom business components, we were interfacing to IBM MQSeries, and we were doing some pretty crazy stuff to get the UI to work more efficiently for our users), but for the most it was the same old thing everytime. I also felt like we had to subvert the very Siebelness of Siebel to get it to do what we wanted to do, which to me indicated that Siebel was broken in some way, or we needed to upgrade, or use something else. Mind you, it was a great job, I met wonderful people, and I learned many things, but I had more aspirations in a different direction.

I had an interest in computer engineering before I left school; I had some experience in an undergraduate research project where I wrote code that controlled some hardware. I wound up applying at a computer engineering company that my friend worked at, and got a job there. I'm now able to go back to school and take some electronics courses to fill in the gaps in my knowledge.

You're still young, you can adapt, and companies see that. If you have the interest, you can move to a different sector of the computer programming market.

Here are my suggestions:

  • Identify exactly why our old job doesn't fulfill your needs. I think you've pretty much figured this out already.
  • Find a new direction you want to go. Do you want to do application development? Do you want to develop embedded systems? Do you want to do research in AI/compilers? My guess is app development.
  • Make steps in that direction. Mind you, you may still have to keep your "day job" for a while until you can do the new thing you want to do. I have lots of friends who work that way (clothing store salesperson in the day, recording engineer/musician at night). But you could:

  • Try to find another job in a different part of the company where you make applications that will be sold to external parties.

  • Take classes at university/school if possible.
  • Work on projects in your spare time at home; read papers/articles/books/blogs.
  • Talk with lots of people that are in the direction you want to go. They can give you tips/help on how to do what they are now doing. Your'e doing this by posting on SO already.

Eventually, by doing the above, you'll get to do the thing you want to do, that is, find a different job in a different programming sector.

sheepsimulator