If you are just starting out as a Software Engineer, my counsel for you is that one of the best and easiest ways to get a job is through an internship.
This is especially true if you are trying to get a job with a big technology company like Microsoft, Google, Facebook, or Apple.
Many large technology companies only hire experienced software developers or interns.
Internships provide a unique opportunity for a company to evaluate a potential employee before they hire them.
They also provide a unique opportunity for you, as a software developer just starting out, to experience what it is like to work for a real company—even though your job duties might not be all that realistic.
Internships aren’t for everyone, but if you have the opportunity to get one, especially if you are just starting out, I’d highly recommend taking that opportunity—even if the pay is not very good or not much at all.
The sacrifice of working for peanuts for a short period of time at the beginning of your career can have a huge payoff in the long run.
In this chapter, we’ll cover what an internship is, and tackle some of the difficult issues around pay and getting an internship. I’ll also give you some tips on being a good intern and securing a job afterwards.
What Is an Internship?
Even though you may be familiar with the term, I think it’s best if we start out by talking a little bit more about what exactly an internship is, especially as it relates to the software development world.
An internship is usually a temporary position in an organization—paid or unpaid—that is available to students or professionals who are just starting out.
Unlike most jobs, an internship position usually doesn’t require you to have any working experience as a programmer. This is one of the reasons why it can be a really good opportunity for you if you are just starting out.
It’s difficult to get a job without experience, and it’s difficult to get experience without a job. Remember that old catch-22?
Companies hire interns for a wide variety of reasons.
Some companies want to appear to be “doing good” and “giving back,” so internships are really just token positions for positive PR. (I’d try to avoid those types of internships.)
Other companies want to snatch up new talent right out of college because they want to inject new blood into the company, the opportunity to groom a young mind, and to prepare them for a long-term career with their corporation.
Still, other companies are just looking for a cheaper way to get work done. They see internships as a win-win situation where they can give someone an opportunity and get some work done they couldn’t afford to get done otherwise.
And I’m sure there are many more reasons for hiring interns.
But what about an internship itself? What does it entail?
It’s difficult to say, because what an intern does can be just as varied as why companies hire interns in the first place—although the two are often related.
Some internships are like real jobs, where you are expected to become part of a software development team and work just like any other member of the team.
In these kinds of internships, you are often assigned a more experienced developer as a mentor. This person will train you and help you to get the hang of things.
Other internships are literal competitions where there are several interns hired, and they all compete to secure a couple of positions.
Often in those types of internships, all the interns are put on the same team, working on an intern project together, which sort of acts as a double test to see how each intern gets along in that kind of environment.
Similarly, there are often internships where a company picks out a specific project they don’t have the resources to accomplish, and they utilize interns to do it.
These kinds of internships may be a good chance to prove yourself, but you might not get much help. You are likely to be told what the end result should be and cut loose to do it.
Finally, you have internships where you are basically the “errand boy (or girl).”
These types of internships can be a bit frustrating because you might not actually be working on projects that are going to utilize your skills as a budding software developer, but might instead be fetching coffee or doing some other menial task.
It’s probably a good idea to ask about what you’ll be doing as a Software Engineering intern before signing on as one.
Ask directly, and try to contact previous interns to get an idea of what the job will actually be like.
Before we move on, I do want to say one more thing about the “errand boy” type of internship.
It’s not necessarily a bad thing. Often proving that no task is below you and that you are willing to do whatever it takes is an extremely admirable character trait.
Companies who have these kinds of internships are testing for just that—not always, but often.
Should I Get Paid?
Sorry, couldn’t help myself.
This is a great question, though—and so complicated.
It really depends on the opportunity.
I’ll go on the record saying that if a billionaire offers to allow me to intern for him, I’ll gladly accept no pay and camp out on his lawn, just to learn.
I’d suggest you do the same.
With that said, that doesn’t mean you shouldn’t be paid for your efforts if you can.
Most internships are paid. There are even some laws regarding internships and paying wages. I’m not a lawyer, so I’m not going to advise you specifically concerning those things, but you should certainly look into them if you’re serious about pursuing a paid internship.
What I will say is that pay is irrelevant when you are considering an internship because an internship really shouldn’t be about pay at all—that is far too short-sighted.
Believe me. I’m the same guy that will tell you to negotiate the hell out of your pay to get the best deal you can, but when it comes to internships, it’s a different story. Here’s why.
First of all, you have to consider what it is you are after when you are trying to get an internship.
Mostly, it should be to get experience and get an opportunity you wouldn’t be able to get otherwise, so that you can get a good-paying job later.
An internship is not about making money.
It’s sort of like an apprenticeship.
If you are going into an internship position with the goal of making money, you’ve got the wrong idea.
Instead, you should be thinking about how this experience is going to help your career or open up opportunities to you.
When you think about it that way, does it really matter if you are paid $10 an hour, $30 an hour, or even nothing?
It’s supposed to be a short duration gig, so the total amount of monetary difference isn’t going to matter very much.
This is one of those places where you don’t want to be penny-wise and pound foolish.
So, yes, if you can get paid, get paid, but don’t let pay be the determining factor in deciding what internship to take or whether to take one at all.
I’d rather work for a billionaire for free than get paid a large amount of money to waste my time working for an idiot.
How to Get an Internship
Now we are getting to the good part: how to actually get an internship.
It’s not always easy.
Plenty of competition. Few positions. Everyone eager, dressed up in their nice suits and dresses.
How do you stand out? How do you even find an internship to apply for?
Well, if you're going to college, that's the obvious first place to look.
Most colleges and universities have internship programs you can sign up for, and they can help you out. To me, this is a no-brainer.
However, this actually might not be the best way to get a good internship—more on that in a minute.
If you aren’t going to college and you are self-taught, or you came through a boot camp and didn’t get a job, you are going to have to be a little more creative, which isn’t a bad thing.
If you just do a Google search on “Software Development Internship,” you’ll find thousands of internships to apply for. You’ll even find websites entirely devoted to internships.
Again, not a horrible idea. Go ahead and do that and apply for some interesting ones.
This method still isn’t the best, though.
Think about how many people are going to be applying to those internship positions.
Think about how many cheap, abusive companies, who are just trying to get free or extremely cheap labor, are going to be posting internships like those.
Want a better idea?
How about this one: Make your own internship opportunity.
Instead of applying for internships that already exist, here is what I would do.
First, I’d figure out the internship and hiring laws in my state or where I lived.
I’d find out exactly what needs to be done from a legal and paperwork standpoint to hire an intern.
I’d do all the research, so that if I approached a company that didn’t have an internship program, I could actually show them how valuable it could be to them and how easy it would be to set one up. (I’d even offer to do it for them as my first internship job.)
Next, I’d start making a list of companies where I felt like I could gain the most valuable experience and contribute the most to.
I’d try to figure out what companies near me that I would want to work for or that I felt like working as an intern for one of those companies could provide me with some great experience or learning opportunities.
Then, I’d take that list and try to figure out who I knew at those companies or who I knew that knew someone working for one of those companies.
After that, I’d pick my best prospects and research them.
I’d learn about the company history, what they produce, who they hire, what kind of jobs they have, and what work they do.
I’d look up social media profiles of people who work at that company and I’d try to reach out to a few of them explaining, “Hey, I’m new to the profession, and I am really interesting in learning. Could I buy you coffee?”
Finally, I’d start reaching out to the companies directly, preferably through someone I knew or someone I had bought coffee for, and I’d start making my pitch.
I’d pitch them on how I could add immediate value to their project by giving them some real details from what I learned about their company and talking with people who worked there.
I’d talk about how I was eager and hungry and willing to work my butt off to do whatever it takes.
I’d get very specific on what I could do for them and the value they would get for hiring an intern.
I’d even be giving specific examples of projects I could immediately start working on for them.
If they objected, or said they didn’t have an internship program, I’d say, “No problem. I can show you exactly how to set one up,” and I’d reiterate the long-term value of having an internship program for their company.
I don’t like to compete with a bunch of people trying to get the same opportunities. I like to create my own opportunities.
And I can tell you, as a business owner and entrepreneur, if someone approached me in this way, trying to get an internship with Simple Programmer, they’d have a very high chance of success.
Oh, and if you do go into an interview for an internship, here’s what I’d stress more than anything else:
- I’m eager and hungry to learn and contribute as much as I can.
- I’m the hardest worker you’ll ever find in your life.
- I don’t have to be managed. Set me on a project, and you can consider it done.
Don’t try and flaunt your skills or experience or try to impress them with what you know.
Focus on demonstrating a basic level of competency in the job and the traits above, and you’ll have a much better shot than trying to convince them you have the experience of 10 years of programming when you have 0.
What Makes a Good Intern?
Ok, so you got the internship. All systems go.
I know you want to knock their socks off so that you’ll get offered a full-time position, but how exactly do you create enough of a force to expose their unprotected toes?
Well, let’s start with the biggest frustration companies have with interns and internship programs, and why so many companies don’t think it’s worth the investment—even if it means getting free work.
I’ll speak from direct experience here, since I don’t have any interns currently.
Interns are a pain in the ass because you constantly have to supervise them, answer questions, and tell them what to do.
It actually costs me more money to hire an intern who works for free than to not.
Because if I have to spend my valuable time telling someone what to do or correcting their newbie programmer mistakes, I am actually losing time and money.
How do you as an intern correct this problem?
Simple. Turn the equation around.
As an intern, your job is simple: save your boss as much time as possible.
That means you have to be self-directed, to be able to figure out what needs to be done and do a quality job with minimal supervision and feedback.
Yes, that might not be the ideal environment for success in your learning, but it is the way you are going to create the most value and not be annoying as hell.
That doesn’t mean you don’t get any feedback, don’t get to learn anything, or even that you have to come up with all of your own projects.
However, you should realize that you are there to make everyone else’s jobs easier, and not the other way around.
This service-first type of attitude will not only carry you far in your internship, but also it will groom you to become a leader—because that’s exactly what real leaders do. They make other people’s jobs easier and they serve.
Now, obviously you have to get some benefit out of the arrangement, and trust me, if you act in this manner, you will.
You’ll learn far more by observing, anticipating needs, and helping others with their jobs and tasks than you will by doing your own job and having others help you.
Plus, the point of an internship is not really to gain experience or learn—don’t get me wrong, you’ll accomplish both of those things. Isn’t the real point to get a job?
Let’s talk about that next.
How to Transition an Internship into Employment
Ok, you’ve managed to get the internship. You’ve knocked their socks off. You’ve demonstrated that you are a person who can make everyone else’s jobs easier and work without constant direction and supervision. Now it’s time to get the job, but how?
The good news is if you’ve done what I’ve told you above, this part should honestly be easy.
In fact, it should be so easy that you’ll have to do practically nothing.
If you come onto a team and you immediately start adding value, making other people’s jobs easier, and producing quality work without having to be told, when your internship is up, the company you are working for is going to be clamoring to hire you.
I’m not even kidding on this one.
Seriously. Again, as a business owner myself, I absolutely guarantee you I’ll hire you if you can demonstrate your ability to make me more money than I pay you. There is no reason not to.
If you are doing your job as an intern and creating as much value as possible for your employer, you literally will not have to do anything after your internship is up.
They will come after you because they will not want to lose—yes, that’s right, lose—such a valuable asset.
If, for some reason, they aren’t pounding down your door, though, a polite email saying that you really enjoyed working there and the opportunity they provided you and asking for next steps would be a good idea.
But, honestly, if you have to send that email, you probably didn’t do a great job as an intern.