15

I'm a summer intern in software development and heading into my sophomore year of college. I feel vaguely unsatisfied with my performance in this internship:

  • I feel like relatively straightforward tasks take me far too long due to hours spent baffled by random bugs related to the large open-source library I'm working with/on
  • I don't get the sense I'm learning as much as I could be
  • I haven't gotten the chance to interact with/learn about my full-time co-workers as I'd hoped
  • I'd like to impress, but thus far my efforts on the general task I'm assigned (e.g. "Improve the performance of this algorithm") haven't done much and I'm not sure how to do better (or whether it's even possible to do better with the given algorithm).

My real problem is with management. I suspect most of these problems could be best solved by talking with my manager, and I appreciate based on other answers in this forum that the onus is on me to "step up" and make the most out of this internship. However, I also read questions like this (how to manage interns) and think, "Gee! I wish my manager did some of that!". And frankly, I'm also a tad shy to begin with.

As it is, my manager is located in another state, we have no weekly meetings, and our only communication is briefly through instant messaging once every day or two. I'm always hesitant to interrupt and ask for help from him or any of the full-time employees in my office for fear of being the useless intern that also goes around wasting the time of people who are busy getting stuff done. And I don't want to appear whiny if my issues aren't legitimate (which is why I'm trying out being whiny on the internet first). I really just have no idea how much of my manager and the full-time employees' time I should expect to receive.

My question is, essentially, how can I communicate to my manager that I may need more help/feedback/time in general from him to be most effective?

  • Is everyone of your colleague at a remote location away from you? Or just your manager? Do your colleagues have regularly scheduled code reviews among each other? If nothing else, ask for a regular in-person short code review of your own code at the very least. – Stephan Branczyk Aug 2 '16 at 18:37
  • There's at least one full-time employee on the same project in my location, though not on any closely related task. I really don't know whether code reviews are common; my code is up on git, but I haven't gotten any feedback or been given any expectation that I should be getting feedback. – Steve Hunt Aug 2 '16 at 18:49
  • Ask for it, but ask for regular in-person feedback. If you can put it on their schedule, at least you won't be interrupting them. Also, don't be afraid to ask why you should "Improve the performance of this algorithm". Are they giving you just busy work? Or does the performance of this algorithm actually matter to them? – Stephan Branczyk Aug 2 '16 at 18:55
  • "I feel like relatively straightforward tasks take me far too long due to hours spent baffled by random bugs related to the large open-source library I'm working with/on" I hate to break it to you, but this is exceedingly common. I'm more worried about your last bullet point - which seems meaningless and directionless. – Zibbobz Aug 2 '16 at 19:35
13

It can be difficult for anyone in a new environment to try and strike that balance. It is especially difficult when you're an intern, young, naturally shy, and your manager is out of state.

Unfortunately, you're going to have to do things that are uncomfortable. Try and gauge which of your co-workers are most friendly and willing to help. Ask for as much help as you need. People are generally pretty willing to help. Some folks like teaching and helping. Others like to show just how smart they are. Take advantage of those impulses.

I am an experienced developer with strong interpersonal skills. When I started my new job in March, it was incredibly daunting. I spun my wheels for most of a week because I didn't want to ask for help.

I broke down that barrier and people were really open to helping. I was concerned, as you seem to be, that people would think I wasn't good at my job because I had to ask lots of questions. The opposite was true. I was able to get my questions answered, and gain a better understanding of my job, team, project, product, etc. As a result, I was able to impress folks by knowing as much as I did. No one cares that Eric spent 45 minutes explaining this to me. They're impressed that I have at least some understanding of the concept. A couple weeks later and Eric probably doesn't even remember explaining it to me, he just takes for granted that I know it now.

Listen to what's happening around you. I'm sure there are conversations happening regularly. Folks discussing a solution, whiteboarding an algorithm, or jointly debugging. Listen for how those conversations start and emulate.

"Can you help me with this foo?"

"Can you look at this foo with me?"

"I'm not quite sure how to optimize the foo..."

"I'm thinking about using a foo to solve the bar, do you think that would work? Is there maybe a better way?"

"I'm trying to optimize foo and the bar library isn't behaving like I expect. Do you know what's up with that?"

  • 2
    An unfortunate number of people are pretending to know, without knowing. Sometimes when you ask, you're not looked down on...you're looked at nervously, in case you expose that the other guy doesn't know either! ;) (Doesn't apply to everyone, of course.) Being actually in the know (after asking) is much better than no communication. – Wildcard Aug 3 '16 at 0:28
  • I like a lot your sentences. The last one is the best, because it proves you have done your homework before asking the questions - and because you have indeed done your homework. That kind of questions is a door-opener. Opposite of a "please do my job" question. – gazzz0x2z Aug 3 '16 at 10:31
3

If you need assistance from others, ask your manager who you can pester and how often. Remember that you are expected to learn, so continuing to rely heavily on others to guide you may not reflect well on your skills and desirability as a future employer.

Generally, you will get the time people feel they can spare, and unless your manager directs them otherwise you can't expect more than that.

Part of the trick is asking good questions -- do your homework first, ask the question in a form that is easy to answer, etc. It's rather bluntly phrased, but excellent advice can be found at http://www.catb.org/esr/faqs/smart-questions.html (Which is also good advice for writing SE questions.) People are more willing to assist when they feel their time is being used well.

  • I don't want to pester anyone. I can fix all of the problems I'm having without help, but in some cases that involves staring at a screen for two days before stumbling upon the answer as opposed to 15 minutes with a coworker who has run into a similar issue before. Comparably, I can go without feedback, but that might mean I spend the summer feeling like I'm doing terribly when my manager is actually quite happy or vice versa. – Steve Hunt Aug 2 '16 at 18:38
  • 1
    I think this is the main thing. Asking for help is fine as long as you aren't wasting peoples time. Eg. if I can go to google and easily find the answer with a search that I think was pretty common sense search terms then I think you should have been able to work that out for yourself and it has been a waste of time. The other part is when - Don't just randomly ask throughout the day, try to gather a bunch of questions together and schedule a time to chat about them. If a developer is distracted mid-task it may take them 15-30 minutes to regain their focus, which is a lot of lost time. – rooby Aug 3 '16 at 0:17
2

As a programmer for almost 4 years now, I'll try and address all the issues you're presenting in turn.

I feel like relatively straightforward tasks take me far too long due to hours spent baffled by random bugs related to the large open-source library I'm working with/on

Dealing with imbedded bugs is a huge part of dealing with any application, especially one you're brought on to fix - welcome to programming.

If you're having trouble with a bug, treat it like any other programming problem, and don't be afraid to ask for help if you get stuck - that's what your co-workers are there to help with.

I don't get the sense I'm learning as much as I could be

Internships are often not as engaging a learning experience as we'd hope them to be - some companies use them to hire cheap, disposable programming assistance, others really engage their employee, and it sounds like you're hitting the former end pretty hard.

Don't get discouraged - try to treat this like an actual programming job, and on a job like this, a lot of what you resolve comes from teaching yourself. Look up answers online, consult your co-workers for help, try things until they work (in a DEV environment of course). It might often seem like you aren't making any progress, but the more you try, the more you learn (And it could also be beneficial to look up some tutorials on whatever programming language you're using, for help on the basics).

I haven't gotten the chance to interact with/learn about my full-time co-workers as I'd hoped

It is always to your benefit to ask your co-workers for help when you have a problem. We are all human, we have all been inexperienced, and we all go through the cycle of needing help and giving help. It's not wasting time - your tasks are just as important as theirs are.

I'd like to impress, but thus far my efforts on the general task I'm assigned (e.g. "Improve the performance of this algorithm") haven't done much and I'm not sure how to do better (or whether it's even possible to do better with the given algorithm).

This can be pretty disheartening - and actually does sound like a real issue. A task like 'improve the performance of this algorithm" doesn't sound like it has much direction, so unless there's a clear reason they need that algorithm's performance improved, your management might not be taking you seriously.

Unfortunately, your management being in another state is a huge problem - you can ask for more serious issues to address, but they are at their discretion what they give you, and have a huge buffer to prevent themselves from getting blowback for this decision. And this will run counterproductive to your desire to 'impress'.

You should ask for more substantial problems anyway - or at the very least, clear directions on what you should be doing. This is your internship, you are technically an employee for the duration of your internship, and you should be trying to help as much as possible. The only thing you stand to lose for asking for more work is face value to your manager - and possibly being stuck with working on an algorithm for the duration of your internship.

The bottom line is - you should try to take the first step in communicating with your co-workers, asking them for help, and trying to understand the application and programming language with them and with the online resources you have at your disposal. But as for your management - if they aren't going to give you a serious assignment, there's not much you can do to force the issue.

You could try to offer some help to your co-workers regarding their own problems though, which might prove more fruitful and rewarding. Just be aware if they feel equally squeamish about accepting help from an intern - it'll be on them if your code works or not, so it's a big risk to ask them to take, but without anything else, it could at least help you get a grasp on some raw experience.

1

The help you are asking for is not "selfish", because with more support, you will be able to contribute more that is of value to the company.

So don't be afraid to ask for help, and frame it in terms of getting proper support so that you can contribute more from this position.

Having a closer working relationship with someone who is on site is probably key to this, but it may make sense to ask your manager first. It's a bit of a gray area, so I would probably discuss it with the person I feel most comfortable with, at least initially.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.