It's a challenge. These are a few things you should look out for:
* Feedback: when you have a boss/leader close by, they may be able to give you more immediate feedback in case there's something you're not doing right or if there's a better way to do it. You can partially overcome that via regular check-ins.
* Mentoring: as mentioned by smt88, you learn a lot by observing how other people approach their tasks, and talking to them e.g. over lunch. You can do that partially in a remote setting (e.g. observing their commits, chatting, etc.) but it won't be as effective.
* Bouncing ideas: it often helps a lot to be able to quickly chat with someone (particularly if more experienced and/or more knowledgeable of the existing system and domain) -- sometimes a few minutes of conversation can help you get a better idea of how to solve a problem.
In short, I think this is not impossible to overcome, it's just harder, particularly when you're getting started.
You may want to find out if there are meetups in your local area that you can join to be able to talk with other developers. That might help a bit.