views:

443

answers:

12

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.

+2  A: 

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.

Robert Harvey
+22  A: 

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.

John Nolan
+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
++. I wish the junior developers at my last job went dark way...WAY less often.
Jason Punyon
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
+1  A: 

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! :)

klabranche
+1  A: 
  • 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.

fbrereto
+8  A: 

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.

Bill Karwin
+2  A: 

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.

MatthewMartin
A: 

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.

Tuzo
+1  A: 
  • 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.
Chris Ballance
+3  A: 

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.

Steve
+3  A: 

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.

Larry Watanabe
A: 

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.

DSO
+2  A: 

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.

TrueWill
Good points ... don't stop showering :)
Larry Watanabe