views:

294

answers:

6

Finances are making me take an extended period off of my college education. In my current state, I don't feel fully qualified to be employed by an iPhone software company. While I work on getting things back together, I'd like to try an work for a software company for free in my local area (I'm going to college out of state and have to move back as well). The economy has forced employers to be very picky about who they hire, if any at all. Since I'd like to continue refining my abilities, I was wondering on what the consensus is on working for free. It can't be considered an internship, as I would no longer be in school..., I guess an apprenticeship is more appropriate.

Like I said, I don't think I'm qualified to be paid for my services, and I don't want to be. I just don't know how to ask, or if it's even appropriate to ask them to show me how to develop software in the real world. My thinking is that they would be willing to get some work done for free and if I prove myself, they could hire me. If not, there was no major loss. They get some free development, and lose a bit of time helping show me the ropes. I get either a job, or valuable experience that I need. The other alternative is that I try to work out things by myself on the iPhone platform, but that sounds terrifying.

I appreciate any input the community has to offer.

+10  A: 

You would be surprised at the number of programmers already in the workforce who are less qualified than you.

I say take the plunge!

Although I have an official degree now, I am totally self-taught in all the programming languages that I use. I was already a professional programmer in high school.

If you must work for free, seriously consider either an open source project that totally captivates you or an employer who can teach you a lot in an area that interests you.

Tom Leys
Like copy/paste coders?
truncate
@truncate: Uh, what?
brianreavis
I believe he is referring to the type of 'programmers' you have described in your first sentence.
Furutsuzeru
+1 - I did a C++/Java degree, never programmed in them commercially, like you self-taught the daily languages I work in. Take the plunge and enjoy the challenge.
Michael Shimmins
+2  A: 

In my experiences, jumping into an extremely daunting project by yourself is very rewarding. I honestly don't think there's a better way to learn. Even though it can be quite stressful at times, what you can reap from the experience makes it entirely worth it.

Troubleshooting/debugging is a gigantic component of programming... there's no better way than jumping in the deep end.

That's my two cents at least.

brianreavis
A: 

There's nothing wrong with internships. You'll learn so much better!

Eugene Bulkin
+4  A: 

Like I said, I don't think I'm qualified to be paid for my services

Anyway you probably are already overqualified, skill-wise.

College institutions tend to understate the skills they teach and amplify the difficulty (and quantity) of jobs awaiting graduates.

Why?

  • Teachers want to keep the kids in class. Most people wouldn't finish their full degree if they really knew they could be working right away. Many people I knew didn't, and it was almost the end of the dot-com era.

  • Teachers have no clue. Professors where former assistants and former students, most of them never really left academic institutions to bang their head into reality. Some fear industry, where no one respects them unless otherwise proven.

Most programmers out there never had a well planned-out programming education. Many cannot tell a procedural from a functional language, either. Even if they do, their boss probably cannot.

The very same act of begging to intern will qualify you as inconpetent, even if you are not. Prepare to be treated as such, hence. Figure if you really want to.

At the very least, intern for some position you reallly have no clue about, dunno, something very peculiar like "real time analysis of geological sound-refraction data" that sounds good, makes you look really taller at the next job you land; even if in the end you realize it wasn't that hard.

If you don't feel prepared for the tasks, think about this:

Anything you need as a programmer comes from the programming, algorithms (and graphics if you're into that) classes you passed. (...did you pass those? Or at least take?) What you learned there is pure gold, even if it didn't feel so, while at it.

Most of the rest is really free floating material around the internet.

Another word of warning: most work out there gravitates about building some form of website according to some customer needs or desires.

I talked with people working on the most obscure of the components in the biggest companies almost not realizing the big picture: they were only refactoring an intranet website.

So if you're into mobile, there are chances of effectively end up working on mobile gizmoes for bigger websites.

Anyway, sorry if it seems so obvious, but if money is the problem, working for free is not really going to solve it.

ZJR
Assuming he wi be living at home, working for free can provide him with experience he needs to get a REAL paid job elsewhere when the economy improves, and companines start hiring again. From experience, academic programming requires a different mindset than business applications. Personally, I haven't even worked with GUIs in classesqnd programs are more, demonstrations of algorithms or problem solving (ie find all numbers divisable by only one and itself).
nullArray
+2  A: 

There are a few possible sore spots if you do work for free for a while:

  • Loose ends - What happens to your work when the time is up? Do you work that through to completion that may be years away? Just something to consider.

  • Expectations of the position - What is there to make you come to work and not just bail when something bad happens? In a traditional environment, that paycheck can be a form of leverage that if you work for free isn't there.

  • IP / NDA / Non-compete - What kinds of terms would you want around intellectual property, non-disclosure agreements and non-compete clauses? These are something to think carefully about as some companies could take these things very seriously.

  • Length of free work - Would you work 3, 6, or 9 months? This is another point to consider as well as what kind of investment in you would you expect the company to make, e.g. what hardware, time from other developers to bring you up to speed, mentor you in whatever practices are in place, etc.?

If you could figure out how you'd address those concerns, then you would probably have a pitch that you could make at the company, but you would also have to find a manager or someone in the company with some power in order to get a green light on this as I'm thinking most HR departments may not want to do this.

JB King
+1 very good things to consider. Lots of good reasons to try to find a paying job instead. Because of the paycheck leverage aspect, many companies would rather pay you than have you work for free.
Tom Leys
A: 

People, in general, apply value to something based on its price. If you don't value your ability enough to expect fair pay based on your experience, you can't be surprised if potential employers don't take you seriously.

Just be honest about yourself. Several of some of the best engineers I worked with in Silicon Valley either did not attend college or dropped out. Some of the engineers with masters and doctorates were the most ill-equipped to do their jobs.

You obviously care enough about the profession to want to learn it. Don't pass yourself off as more than you are, but don't undersell yourself either. You're trying to learn iPhone development. In my experience, only a minority of working engineers do anything related to computers unless it is required by their job. So, that's something.

Steve Madsen