I see a lot of posts above that basically state that internships are more about what you can learn than they are about how much you get paid. I agree with this to a certain extent, but I gotta say that getting paid is an absolute must for me. I realize that companies are under no obligation to take on interns (much less paid interns), especially with the way the economy is, but on the other hand interns can be a cheap source of labor, and if companies are willing to pay your interns a decent amount (that is, below what an actual developer makes but well above minimum wage) then everyone involved can benefit, especially if the internship turns into a full-time position.
That kind of thinking will and has gotten many a manager into hot water. Interns are not production engineers for a reason, i.e. they lack experience and the *MUCH* needed "80/20 rule" judgment to keep them from rat-hole-ing and sinking the project. Likewise, it's a bad thing for the intern because then they get roped into production schedules and don't necessarily get to come up to speed or learn the way things work because they're running in the full break neck pace with the developers. Don't get me wrong, On the Job training is good, but when you're trying to also go to school, one or the other will give way.
That said I find the idea of a non-paying internship to be ridiculous. My time is just as valuable as anyone else's and if a company doesn't respect me enough to pay me for the time I spend working for them then I wouldn't have anything to do with them. It is simply condescending to argue that a company is providing hands-on experience so they don't need to provide monetary compensation as well. It is to the company's (and the industry's) benefit that they hire interns and actually pay them a wage as it provides an incentive and a means for new entrants to earn the experience that companies demand entry-level worker to have.
Woah here buddy. To earn anyone's time to even talk to you, you need humility. YES, I understand that you need money to live. But check the attitude at the door. You're in their house, learning from their engineers on time they are PAYING those said engineers to talk to you. They don't need more monkeys to do monkey work, they can get those any day of the week. Why do they take in interns? Because they're hoping to develop you and have you return the favor when you look for a job, i.e. they've trained and molded you into what they want you to be, at a cheap rate, so that you take a position with them when you graduate. Being an intern sucks ass anywhere, and the sooner you come to terms with it, the better you'll do. I once had the decision put to me about two interns, one was a senior with the experience we were looking for, but had a lackluster attitude about working on our stuff, and the other was a freshman with a "I will learn anything" attitude. Guess who I pushed for? The freshman, mostly because I knew that I can most always overcome the lack of knowledge, but I can never overcome the attitude problem. Money may need to be a consideration, but before you go throwing the baby out with the bathwater, consider that the people you meet are just as important in finding you a better position. In your situation, you could actually meet a few engineers that take pitty on your situation (that of having a new baby, and not being paid much) and they just might be moved enough to let you know of other opportunities. if you take your current attitude, you'd never find those other opportunities.
snip... considering whether or not to pay their interns.
Again, check the attitude at the door. With that attitude, nobody, and again I say NOBODY will care to give you time of day. A little humility goes a LOOOOOONG way in this industry of egomaniacs. I've been in your situation, and it's hard because you have to pay your bills while getting your chops. But you're going to find
Re:Identify your wants and needs
on
Tech on the Cheap?
·
· Score: 2, Informative
In addition to the Parent Post, here's a few comments of my own:
Patience definitely has it's rewards. If you don't absolutely NEED the latest and greatest, wait. Saving today leads to greater consumption tomorrow, or in other words, saving today allows you to purchase the same thing for less money later. Which of course, leaves more liquid cash in your hands to purchase more things. The point is, don't be a bleeder out on the bleeding edge. It's just not worth it. The only exception to this rule is where you will immediately benefit from some new technology, in a way that will either reap you money (as you might be able to do something faster than a competitor) or that you will save money because you're able to accomplish more. But this exception is tied DIRECTLY to a benefit that is measurable. If it's just because you will feel better, or have a warm fuzzy feeling that you're the latest and greatest, then you're deceiving yourself.
I'll second the thoughts the parent post had about buying cheap stuff. Get good stuff where it matters most, like for instance, DO buy good monitors because you'll be staring at them all day, and the eyestrain with a bad monitor/DFP isn't worth the extra $$ that the cheap one saved you. Speaking of monitors/DFPs, spend good money on these. You're not likely going to upgrade them for quite a while. Think about it, how many computers have you been through and kept the same monitors? So if you don't upgrade them frequently, you can afford to spend extra money on them. Trust me, your eyes and head will thank you.
Another point: Get informed! Many times, things such as processor speed aren't relevant, because you've got bottlenecks elsewhere in the system, like in the IO subsystem, memory subsystem, etc. So just because it's a newer processor, doesn't mean it's going to do you any good (if it does, it may only be fractionally better). However, if you spent some good money on getting a faster disk subsystem, you may be able to speed up your system more effectively than with a newer processor.
I will wholeheartedly agree with the parent post on many points.
Coming from someone who was a ConfigMgmt person for my company, I faced a lot of these issues. First and formost, get a plan, even a simple one, and get it written down. Then modify it as needed. Also, Label every time you build. Any decent source control tool will allow you to do this. Be consistent with your labels, and be clear with them. This way, when a need to build version x.y.z arises, you can get back to it. Trackability is key. Make sure your plan is built around it, because ultimately what you're looking at is being able to build at any time the same x.y.z that you released.
I also must second the phrase "There Is No Quick Fix For Quality". Do it right the first time (even if it takes a lot of time) because you won't need to go back and fix it later. This goes for your end product, but also for your process, as ripping up processes to replace them is tough. THis is not to say that you can't use prototype processes, but when you decide on one, stick with it.
Other tips & tricks:
- the wiki idea posted above is wonderful. I've worked with them for quite a few years now, and in a dev environment, they can be awesome. One caveat: make sure you get a wiki that does revisioning of the pages, one example would be TWiki (http://twiki.org./ This can be a godsend, just like figuring out code changes with CVS.
- I've managed 6 different revision control systems in my career, even being certified as a ClearCase admin. I'd have to say, Subversion is a pretty competent version control tool, and not terribly hard to learn. It's worth the time for the features it offers. As for the others? I'd say stick with subversion or CVS because:
the userbase is larger, therefore easier to find help
they're more than adequate for most development houses
they don't cost anything (compared to $3k per seat for ClearCase)
usually, you can get your data out of them in case disaster strikes (and don't think it won't, cuz it's happened to me more times than i care to think of).
Don't forget the problem that sometimes you add a space where you shouldn't, like at the beginning of a path, e.g.:
rm -rf / home/joeblow
^
space
rm gets quite far before you realise what youv'e done, if you realise it at all. Damnit if I haven't done this one a time or two. I'll agree that combining the rm command with a lack of sleep is definitely a Bad Thing(TM)
In WIndows I just point and click. Yes, Unix is behind in some things and not ahead in everything.
First it was the gui, now its media.
I just *had* to respond to this. Unix is only behind in "some things" because of bastard companies that monopolize their media Codecs. It's light years ahead in open standards stuff. Check out Ogg Vorbis sometime. If those companies port their stuff to Linux/Unix then there wouldn't be as many problems. However, we have to suffer for a while, while coders reverse engineer the codecs. Or better yet, do without the stupid video that uses those bastard codecs in the first place.
Ok, here's some of the experience I've had, and the conclusions I've drawn from them:
The degree isn't always required to get a good job. And you can live a good life without ever getting one. However, for good and bad, there are people who are unwilling/unable to hire non-degreed people. It's just a fact. Most./'ers are not taking into account that you don't just need a degree to move into management. You might also need it for the leg up on your competition. Take this economic heap of steaming s___ that we're in. If you're laid off, then you are most likely competing with several other people who have the same qualifications and who were also laid off. Given the pick, who would most managers choose? You got it, the guy with the degree. Why? Chances are, he'll catch less hell from his management.
I personally have fought this battle my entire career. I've spent time on the degree on the side because I will eventually need it some day. For all of you out there who are still having a problem with the idea of getting a degree just to satisfy some suits, look at it using this analogy: neighborhood hockey. Lemme explain:
You might just be the best damn player in the neighborhood. All the other kids know it, and you're THE first to be picked. The only problem is, on Saturday, you can't play with them because you didn't pay the municipal fee to play in a city league. Therefore, when you go to the rink, the Ref is going to have to keep you from playing. Does it mean you are any less qualified? Absolutly not. It just means to some suits in your city government, you haven't paid the fee, and can't play in the official league for whatever reason they've come up with. Possibly an issue of liability for the city, or maybe something else unseen to you. It doesn't matter what reason they use though. You still can't play, because they say so.
You see, you will always be able to get a job without the degree, but it's going to be harder. You will end up fighting more for those positions.The degree is a key to open several doors that you can't open on merit alone.
Now, in respect to the experience you get with a degree, here are a few comments:
a degree does not an engineer make.
experience does not an engineer make.
It's the combo of the degree (theory) with the experience (practical knowledge) that makes the best engineers. The theory tells us how something
is supposed to work, and the practice tells us where the theory is wrong so that the theory can be refined. You can operate exclusively in either domain, but you will get the best results in the area where they overlap.
As for the BullS*** arts classes that they make you take? Well, believe it or not, they're very useful too. History enables you to see patterns
of behavior in human culture. So does poly-sci and psycology. English ensures that you will be able to communicate your ideas clearer. Foriegn language expands your view of "those" other people in other areas of the world, as well as helps you communicate with them in an ever increasingly global market. Business and economics gives you the ability to identify trends your future employers will be following, and will give you a set of tools to judge how well they are doing in whatever market they're in.
Besides, let's remember who our customer's are: the non-techies. Yep, you'll be dealing with them some day. And you'll do much better if you have a way to talk with them. That's where the Liberal Arts classes come in.
I see a lot of posts above that basically state that internships are more about what you can learn than they are about how much you get paid. I agree with this to a certain extent, but I gotta say that getting paid is an absolute must for me. I realize that companies are under no obligation to take on interns (much less paid interns), especially with the way the economy is, but on the other hand interns can be a cheap source of labor, and if companies are willing to pay your interns a decent amount (that is, below what an actual developer makes but well above minimum wage) then everyone involved can benefit, especially if the internship turns into a full-time position.
That kind of thinking will and has gotten many a manager into hot water. Interns are not production engineers for a reason, i.e. they lack experience and the *MUCH* needed "80/20 rule" judgment to keep them from rat-hole-ing and sinking the project. Likewise, it's a bad thing for the intern because then they get roped into production schedules and don't necessarily get to come up to speed or learn the way things work because they're running in the full break neck pace with the developers. Don't get me wrong, On the Job training is good, but when you're trying to also go to school, one or the other will give way.
That said I find the idea of a non-paying internship to be ridiculous. My time is just as valuable as anyone else's and if a company doesn't respect me enough to pay me for the time I spend working for them then I wouldn't have anything to do with them. It is simply condescending to argue that a company is providing hands-on experience so they don't need to provide monetary compensation as well. It is to the company's (and the industry's) benefit that they hire interns and actually pay them a wage as it provides an incentive and a means for new entrants to earn the experience that companies demand entry-level worker to have.
Woah here buddy. To earn anyone's time to even talk to you, you need humility. YES, I understand that you need money to live. But check the attitude at the door. You're in their house, learning from their engineers on time they are PAYING those said engineers to talk to you.
They don't need more monkeys to do monkey work, they can get those any day of the week. Why do they take in interns? Because they're hoping to develop you and have you return the favor when you look for a job, i.e. they've trained and molded you into what they want you to be, at a cheap rate, so that you take a position with them when you graduate. Being an intern sucks ass anywhere, and the sooner you come to terms with it, the better you'll do. I once had the decision put to me about two interns, one was a senior with the experience we were looking for, but had a lackluster attitude about working on our stuff, and the other was a freshman with a "I will learn anything" attitude. Guess who I pushed for? The freshman, mostly because I knew that I can most always overcome the lack of knowledge, but I can never overcome the attitude problem. Money may need to be a consideration, but before you go throwing the baby out with the bathwater, consider that the people you meet are just as important in finding you a better position. In your situation, you could actually meet a few engineers that take pitty on your situation (that of having a new baby, and not being paid much) and they just might be moved enough to let you know of other opportunities. if you take your current attitude, you'd never find those other opportunities.
snip ... considering whether or not to pay their interns.
Again, check the attitude at the door. With that attitude, nobody, and again I say NOBODY will care to give you time of day. A little humility goes a LOOOOOONG way in this industry of egomaniacs. I've been in your situation, and it's hard because you have to pay your bills while getting your chops. But you're going to find
In addition to the Parent Post, here's a few comments of my own:
Patience definitely has it's rewards. If you don't absolutely NEED the latest and greatest, wait. Saving today leads to greater consumption tomorrow, or in other words, saving today allows you to purchase the same thing for less money later. Which of course, leaves more liquid cash in your hands to purchase more things. The point is, don't be a bleeder out on the bleeding edge. It's just not worth it. The only exception to this rule is where you will immediately benefit from some new technology, in a way that will either reap you money (as you might be able to do something faster than a competitor) or that you will save money because you're able to accomplish more. But this exception is tied DIRECTLY to a benefit that is measurable. If it's just because you will feel better, or have a warm fuzzy feeling that you're the latest and greatest, then you're deceiving yourself.
I'll second the thoughts the parent post had about buying cheap stuff. Get good stuff where it matters most, like for instance, DO buy good monitors because you'll be staring at them all day, and the eyestrain with a bad monitor/DFP isn't worth the extra $$ that the cheap one saved you. Speaking of monitors/DFPs, spend good money on these. You're not likely going to upgrade them for quite a while. Think about it, how many computers have you been through and kept the same monitors? So if you don't upgrade them frequently, you can afford to spend extra money on them. Trust me, your eyes and head will thank you.
Another point: Get informed! Many times, things such as processor speed aren't relevant, because you've got bottlenecks elsewhere in the system, like in the IO subsystem, memory subsystem, etc. So just because it's a newer processor, doesn't mean it's going to do you any good (if it does, it may only be fractionally better). However, if you spent some good money on getting a faster disk subsystem, you may be able to speed up your system more effectively than with a newer processor.
Just my quarter-byte's worth.
Coming from someone who was a ConfigMgmt person for my company, I faced a lot of these issues. First and formost, get a plan, even a simple one, and get it written down. Then modify it as needed. Also, Label every time you build. Any decent source control tool will allow you to do this. Be consistent with your labels, and be clear with them. This way, when a need to build version x.y.z arises, you can get back to it. Trackability is key. Make sure your plan is built around it, because ultimately what you're looking at is being able to build at any time the same x.y.z that you released.
I also must second the phrase "There Is No Quick Fix For Quality". Do it right the first time (even if it takes a lot of time) because you won't need to go back and fix it later. This goes for your end product, but also for your process, as ripping up processes to replace them is tough. THis is not to say that you can't use prototype processes, but when you decide on one, stick with it.
Other tips & tricks:
- the wiki idea posted above is wonderful. I've worked with them for quite a few years now, and in a dev environment, they can be awesome. One caveat: make sure you get a wiki that does revisioning of the pages, one example would be TWiki (http://twiki.org./ This can be a godsend, just like figuring out code changes with CVS.
- I've managed 6 different revision control systems in my career, even being certified as a ClearCase admin. I'd have to say, Subversion is a pretty competent version control tool, and not terribly hard to learn. It's worth the time for the features it offers. As for the others? I'd say stick with subversion or CVS because:
In WIndows I just point and click. Yes, Unix is behind in some things and not ahead in everything.
First it was the gui, now its media.
I just *had* to respond to this. Unix is only behind in "some things" because of bastard companies that monopolize their media Codecs. It's light years ahead in open standards stuff. Check out Ogg Vorbis sometime. If those companies port their stuff to Linux/Unix then there wouldn't be as many problems. However, we have to suffer for a while, while coders reverse engineer the codecs. Or better yet, do without the stupid video that uses those bastard codecs in the first place.
There's my quarter-byte's worth.
Ok, here's some of the experience I've had, and the conclusions I've drawn from them:
./'ers are not taking into account that you don't just need a degree to move into management. You might also need it for the leg up on your competition. Take this economic heap of steaming s___ that we're in. If you're laid off, then you are most likely competing with several other people who have the same qualifications and who were also laid off. Given the pick, who would most managers choose? You got it, the guy with the degree. Why? Chances are, he'll catch less hell from his management.
The degree isn't always required to get a good job. And you can live a good life without ever getting one. However, for good and bad, there are people who are unwilling/unable to hire non-degreed people. It's just a fact. Most
I personally have fought this battle my entire career. I've spent time on the degree on the side because I will eventually need it some day. For all of you out there who are still having a problem with the idea of getting a degree just to satisfy some suits, look at it using this analogy: neighborhood hockey. Lemme explain:
You might just be the best damn player in the neighborhood. All the other kids know it, and you're THE first to be picked. The only problem is, on Saturday, you can't play with them because you didn't pay the municipal fee to play in a city league. Therefore, when you go to the rink, the Ref is going to have to keep you from playing. Does it mean you are any less qualified? Absolutly not. It just means to some suits in your city government, you haven't paid the fee, and can't play in the official league for whatever reason they've come up with. Possibly an issue of liability for the city, or maybe something else unseen to you. It doesn't matter what reason they use though. You still can't play, because they say so.
You see, you will always be able to get a job without the degree, but it's going to be harder. You will end up fighting more for those positions.The degree is a key to open several doors that you can't open on merit alone.
Now, in respect to the experience you get with a degree, here are a few comments:
a degree does not an engineer make.
experience does not an engineer make.
It's the combo of the degree (theory) with the experience (practical knowledge) that makes the best engineers. The theory tells us how something
is supposed to work, and the practice tells us where the theory is wrong so that the theory can be refined. You can operate exclusively in either domain, but you will get the best results in the area where they overlap.
As for the BullS*** arts classes that they make you take? Well, believe it or not, they're very useful too. History enables you to see patterns
of behavior in human culture. So does poly-sci and psycology. English ensures that you will be able to communicate your ideas clearer. Foriegn language expands your view of "those" other people in other areas of the world, as well as helps you communicate with them in an ever increasingly global market. Business and economics gives you the ability to identify trends your future employers will be following, and will give you a set of tools to judge how well they are doing in whatever market they're in.
Besides, let's remember who our customer's are: the non-techies. Yep, you'll be dealing with them some day. And you'll do much better if you have a way to talk with them. That's where the Liberal Arts classes come in.
Just some thoughts and conclusions.
PacketKing