Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I just recently got my first development job, and consider myself lucky to be working from home. However, I need advice... What should I be doing in order to make sure I get the most out of my new job, how can I make sure that I succeed, and what are some particular pitfalls I might run across? I have already set aside a distraction free home office, where should I go from here? Note: I have been reading up on some of the more general work from home stuff here but I am interested in what to watch out for as a junior developer.

share|improve this question
add comment

migrated from stackoverflow.com Jul 5 '11 at 1:05

This question came from our site for professional and enthusiast programmers.

12 Answers

up vote 29 down vote accepted

Whatever you do, communicate well and often. The biggest pitfall of being a junior developer is going dark. You'll make mistakes and the best way to manage that is to sanity check with your peers.

share|improve this answer
4  
+1 I was in the middle of writing a very similar answer! Even though this advice isn't specific to being a junior developer, it's the most important. –  Bill Karwin Sep 14 '09 at 21:08
    
++. I wish the junior developers at my last job went dark way...WAY less often. –  Jason Punyon Sep 14 '09 at 21:14
1  
ditto: Keep some type of IM going. If you run into a problem, ask questions. Even if you don't run into a problem, stay in touch with your manager and teammates. –  Chris Lively Sep 14 '09 at 21:38
add comment

I've been working from a home office since 2002, and I give +1 to @John Nolan's answer that communication is the most important tip for telecommuting success.

I'll add that a junior developer should learn to use technology to make communication more effective.

  • Skype.
  • Remote desktop and VNC.
  • Collaborative whiteboards.
  • Online code review.

But make sure you can shut off all those communication channels when you need to concentrate. Having IM and email and chatroom and everything else chirping and beeping at you is a proven way to kill productivity. Keep in touch with your manager and teammates, but make sure you also preserve some quiet hours to get things done.

The time management skill you need to learn is to be able to sense when you need to switch from high-communication mode to concentration mode and back again.

share|improve this answer
add comment

Having been a junior developer you want to be around the senior devs. I became such a better dev being around them talking shop. Find a mentor. I have to say that you should be in the office as I learned a ton from "hallway" conversations about all sorts of topics from scaling power infrastructure, to MD5 calculation speeds and how different branch predictors work. There is really no replacement for this kind of interaction.

share|improve this answer
add comment

Dress and groom as if you were going to the office. It's tempting to work in your bathrobe (I've done it), but it really does make a mental difference to have your "armor" on.

Avoid taking breaks that you wouldn't take if you were in the office. Again, it's tempting to run down to the store for a minute. Do that over lunch or after work instead if you can.

I spent over a year working from home. While it's nice to be able to work from home on occasion, in general I prefer coming into the office. The "hallway" conversations that Steve mentioned are one benefit.

share|improve this answer
4  
Good points ... don't stop showering :) –  Larry Watanabe Sep 15 '09 at 13:36
add comment

i worked from home for a while, and I found sending a daily status report giving a detailed list of all I had accomplished during the day was beneficial for 2 reasons:

  1. It let my manager know what I was doing each day - sometimes something may take days and weeks to accomplish, so this way he knows that I am working and accomplishing things.

  2. It provides me with feedback on my productivity - this helps in tuning your working habits.

share|improve this answer
add comment
  • Don't go dark
  • Don't be "The guy in the room"
  • Don't be afraid to ask questions
  • Keep your work area clean or distractions will abound
  • Communicate, Communicate, Communicate!
  • Set goals and measure your progress.
share|improve this answer
1  
What does it means by "The guy in the room" ? –  Sarawut Positwinyu Jul 5 '11 at 4:07
    
"Don’t be the guy coding in the dark office emerging only to buy cola. The guy in the room is out of touch, out of sight, and out of control and has no place in an open, collaborative environment." - stefanhendriks.wordpress.com/2011/06/21/… –  Chris Ballance Jul 7 '11 at 13:50
    
Thanks for answering, sorry about my grammar.It should be "What does it mean" –  Sarawut Positwinyu Jul 7 '11 at 14:46
    
Anyway, after reading the explanation. I still not understand.Does it mean "don't isolate yourself in workplace and communicate a good bit with colleague? –  Sarawut Positwinyu Jul 7 '11 at 14:51
    
Yes, stay in touch with your colleagues, interact with them as much as you reasonably can. –  Chris Ballance Jul 7 '11 at 15:29
add comment

The largest pitfall I can think of is staying focused and making sure you have goals for each day, week and month, so that you can stay productive.

If you have truly set up a distraction-free workplace, you are way farther along than most of us who work in an office. Take advantage of that, and figure out how you can get into the zone on a regular basis. If you can do that, you will be miles more productive than those of us who work in an office.

If you only think you have set up a distraction-free workplace, then that is what you need to focus on first. There needs to be a clear division between your work life and your home life (even if that is just a closed door). Your family needs to respect your working time, and you need to respect family time when you are not working.

In my experience, you need one day per week (or perhaps half a day, or even an hour) to meet with your principals face to face and discuss goals, strategy and progress, in order for this to be successful.

share|improve this answer
add comment

Use instant messenger. It generally won't distract (because it doesn't require full attention), but it helps keep you from being isolated from the rest of the office. Or use twitter or whatever your office uses other than face-to-face for communication.

Solicit work to do. We once had a off site worker that we kept forgetting about. Its easier for managers to remember to assign you work if you in visible range.

share|improve this answer
add comment

I think one of your biggest challenges besides staying on task (sounds like you have already attacked that nicely) is to be in a position to learn from your peers especially since this is your first programming gig and you are at home.

I would do all you can to stay connected to your peers especially if you need their expertise to learn. If they use IM, then get on it. Download a remote sharing tool like Microsoft Shared View so you can invite them unto your PC to help you interactively.

Stay connected... (AKA - communicate as John just mentioned).

Don't pester the team, but use them to learn. AKA - do your homework whenever possible. Google it, read manuals, etc.... Don't bother them every 15 minutes. :)

Beyond that, take time on your own to learn new topics. Schedule time for yourself to do that.

Good Luck! :)

share|improve this answer
add comment
  • As best you can, keep in contact with your manager. One of the benefits of working from home is that you don't have watercooler conversations to get you distracted. That being said, you also won't have them to keep you informed with what's going on at your company.

  • When I first started working from home, I would have a morning routine that was as if I were leaving the house to go to work. It helped get my brain into "work mode" for the day and helped me to think less that I was at home and more that I was at work.

  • Keep any and all lines of communication open. Answer your phone, your email, your work IM system as responsibly as you can. You want to make your electronic face as responsive as possible, because that's most anyone will ever "see" of you.

  • Reach out to more senior developers that you are working with so you can learn from them, the design principles they use to direct their coding, and the code they write. Don't shy away from newer technologies just because you don't understand them, but ask yourself how they could be better understood and adapted into your code.

share|improve this answer
add comment

In software projects, usually the biggest issue is communication. And that is when everyone is working together. So, I would say keep communicating.

Another thing I would do is document my time just in case anyone wants to know how you spent your time. That is a cover your butt move (don't know about your company).

Thinking back to my first years as a full time programmer, I would say that one of the biggest benefits that I got was actually working and talking with smart people (by definition everyone since I didn't know much :) ).

Being able to sit over someone's shoulder while they were debugging a hex dump or watching them work on some other issue and learning about what they were doing. It's amazing what you can pick up by osmosis if you are willing (e.g. systems administration). I'm not just talking about things that are directly related to your job but keeping your eyes and ears open and trying to learn as much as possible. If I was working at home, I don't know if I would have learned as much. I mention this because as a junior developer there was so much to learn that was not taught in school.

I'm not saying that working at home is bad for a junior developer, just that my experience was that it was great to be working closely with senior developers day in and day out. Maybe I'm "old school" and with various communication options not available back in the day things are great now. But I'm a bit leery since I do think that if you are willing to learn then just being in a great environment (and taking advantage of it) can make you a better developer.

share|improve this answer
add comment

Use a web-based bug tracking database (such as bugzilla) where you and your employer can manage the tasks that are on your plate and track your progress.

PS. if your employer doesn't already have a web-based bug tracking system in place, I suggest you try JumpBox Bugzilla VM which a VM based appliance that will get you up and running pretty quickly.

share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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