I received an offer for a summer internship that's on the other side of the country from my university. I have the option of working remotely, and since I'm having trouble finding someone to sublet my apartment, I'm heavily considering it. It makes more sense fiscally to stay here, as I'd have to deeply discount my rent for someone to sublet.

I've never had the experience of working in a professional environment as a programmer--I've only done personal development work, worked in a research group, and done a little contracted development that was self-directed. I understand there are lots of advantages to a physical presence, especially in an internship environment.

I'm not looking for a subjective suggestion of what to do, especially since I'm the only one who knows every detail of my specific situation (and since that's not a SE-friendly question).

What specific experience or knowledge can I gain from being present that I would likely miss out on by working remotely, specifically in a programming internship?


7 Answers 7


It's harder to make a good impression on people when they only know you from remote work. In an internship, part of what you want is a recommendation or a job offer. Interns who are present may make a stronger impression on the hiring managers than someone who is only a disembodied line of text. I'm not saying you can't make a good impression working remotely, only that you will have to work much harder to do so.

Further, you, as a person early in his or her career, need to get a feeling for office politics and how that affects work decisions and, most importantly, how to play the game effectively yourself. It is far easier to learn this stuff when not working remote. Most people coming out of school don't have any feel for this at all and it is critical to your workplace success.

From a programming perspective, you are less likely to be in on a lot of the discussions of what to do and how to do it that are made in the architecture of a new project. Even if you are on the phone, it is harder to get a chance to speak and easier for people to forget you are there or were there and had something to contribute. So even if you do contribute, you are less likely to get credited in people's minds. You won't be there for the informal discussions either where people throw ideas around and you won't be sought out informally as a source of ideas. Part of that is because people tend to seek ideas from other people that they know and as an intern working remotely, no one will know you. So you are more likely to be given routine tasks that no one else wants to do because you aren't in on the conversations where this stuff gets divvied up and because people will forget you are there because they don't physically see you.

You need to use the internship to learn to work professionally with a team. You need to see how your work affects others and how others' affects you. As an intern, it is easier to dismiss you from consideration and just let you work your time out remotely than to try to mentor you if you have difficulties in this area. People in the office are likely to get more guidance on working together as their presence can be disruptive if they don't play well with others. The remote person can just be ignored. They don't necessarily plan to keep you as an employee, so there is less incentive to try to help you when they don't know you personally or have to deal with you in the office (where you might be affecting others).

Now some of this is mitigated if the office has a lot of good remote workers as the management is more used to dealing with people remotely. However, as an intern you are lowest on the totem pole and won't automatically have the respect that new co-worker with 10 years of experience who starts out working remotely has.

An additional consideration is that as an intern you will be learning how to program professionally and how the real world of paid programming works. If you are remote, you also have to learn how to effectively work remotely. That means you have twice as much to learn as someone who is working in the office. That might work for you if you have the right personality type, but it is more likely that you will end up learning less by being remote in both arenas and thus not gain what you want to gain from the internship.


You'll miss out on some of the bonding that tends to happen with the chatter of being in an office. This includes the simple things like going to lunch together or asking various personal questions that isn't likely to have equivalent answers given via IM or e-mail. Forming the network of connections and really getting what makes someone tick can require watching facial expressions and mannerisms that if you are working remotely you probably won't get to see. Mentoring would be another way to see some of this as it isn't likely that a code review or a few other big technical things can be done easily if people are miles apart.


In a first internship I think that most of what you learn is to work in real work environment, in real programming teams, with real-world demands. All this can't be really experienced remotely.

The communication with your team-mates, meetings, presentations, pair programming, code reviews, brainstorming, the sense of a team is mostly lost... A lot of times you will want to ask or explain things that through any informatic tool you can't or is a lot harder.

Technically you will get better too, but this can also be done reading books and/or contributing to big open-source projects...the work environment will only exist AT work...

IMHO I think that a lot more can be learned if you are present.

  • I agree that the experience you can only get at the office. You might gain the knowledge from a book but how to apply it is best learned in a team. Commented Apr 18, 2012 at 1:57

You will not get any sort of feel for the office.

This is important, especially if you will be working there after your internship. Most interns have some sort of "in-the-office" experience. Not having this prevents you from:

  • communicate with teammates
  • being present for meetings and such
  • having a good feel for the team
  • etc.

Really, being in the office is always better. And if you eventually get a job, do not work remotely.


It's worth asking what the rest of the office does. If you are the only telecommuter - I'd say no - for many of the reasons listed elsewhere - networking, out of the loop, missing the culture.

However - if a substantial portion of the staff are 100% telecommuters - let's say 40% or more - then it may be alright, becuase the culture has evolved from a face to face thing, to something that can be experienced online.


There is much more to be learned from being in office beyond simply how to fit in well with the team, etc, etc.

The primary thing that I would be looking for from any internship, in any field, is the opportunity to observe people who are skilled and successful at their job at work. With specific reference to programming, in most cases this goes beyond a simple ability to write code or design frameworks - these things can be learned from books. They are typically much "softer" skills, like communication or teamwork. It includes things like the manner in which they interact with people around them, the way the choose to lead or follow, the way they give feedback to people, etc.

These are the things that are most valuable to an intern, and none of them can be learned remotely.


To HLGEM's excellent answer I would add:

  1. In addition to being side-lined in conference calls, you will miss out on any design activities that involve a whiteboard, which in my experience is most of them. You can ask people to use online tools, but people will naturally gravitate toward the tools they're used to and that are most effective for them. They will find it easier to leave you out than to accommodate you.

  2. Have you ever tried pair programming via "share desktop"? It's pretty grim (I've done it). But in my experience one of the most valuable parts of a programming internship is being able to sit down with a mentor or other experienced developer and work on a problem together. It's more than just the code; being able to observe and participate in that workflow that involves casual motion among the IDE, the API doc, the command line, the bug database, the wiki, etc is critical. It's how you go beyond the mechanics of programming to learning the craft.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .