Ask HN: Working remotely on first programming job?
Hi HN,
I'm a beginning programmer and I need to work remotely because I can't work where I live. I studied information science (not CS) and worked for startups and programmed in a volunteer setting, but never had a programming job. I'm diving more into JavaScript and trying to learn all I can now. Is it possible to work entirely remotely even in the first job in the industry?
And if so, what should I make sure to master before I start?
16 comments
[ 1.9 ms ] story [ 71.7 ms ] threadThe good thing was that I was able to follow, the bad thing is that it was impossible to grasp everything at once. Having worked with different people in many jobs, my lead engineer yesterday made me feel way more comfortable than people I've known since childhood.
So, today there are tools (share-screens, tmux sessions, you-name-it) to educate someone remotely as long as we're talking about IT-related jobs. The most important thing is for the lead engineer to be communicative and open to Q & A sessions no matter how stupid the question might seem and the new entrance to put up the hours and get up to speed ASAP.
I shall also try to find a mentor anyway, local or not, colleague or not, that's a good idea!
* 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.
It's important that you are always updated as a developer because tech is really fast-paced, I was not fortunate enough to know this when I started programming 4 years ago in college because we had poor/no internet connection.
But with regular internet connection, I have learnt a lot and in a very short time.
I cannot not over-emphasize the importance of having steady source of programming info, especially if you do not have a mentor around you as was my case too starting out.
Also familiarize yourself with Git, create a github account because many companies use it a lot for collaboration.
PS: I live in West-Africa and I currently work remotely as a software developer for companies in New York and San-Fransisco and write a lot JavaScript daily.
Which ones do you recommend for starters?
Absolutely, and you'll learn quite a lot from it. The biggest (somewhat hidden) risk is that of communication disconnects that happen from the lack of F2F. Amplified by the fact that companies (especially startups) love to do weird things, like put inexperienced people into management; not communicate generally, and misunderstand things as if on general principle; fire people at the drop of a hat, etc.
So (aside from particular collaboration tools), mastering the art of what we might call "defensive communication" might be particularly helpful. By that I don't mean being continuously neurotic and fearful about people what people are thinking about you when they're not right in front of you. Rather, much more mundane stuff: (1) getting all important agreements (as to compensation, promotion) in writing (or at least in email); (2) not assuming that people are always reading / understanding (or even seeing) your emails, or other electronic leavings -- quite often they aren't; (3) being very efficient in your own communications (so as to triggering or further amplifying any such misunderstandings as they do occur); and (4) maximizing F2F, and other opportunities for bonding (softly, naturally) with others, as they do occur (without putting so much time or effort into it that it seems like you're putting too much effort or time into it).
That kind of stuff.
I have experienced such problems before working remotely in non-tech jobs and this advice will help a lot avoiding that in the future.
There's alot of "ambient communication" that you get in an office building or cube farm that you won't get as a remote dev... So be prepared.
Other than that, do it. It's been an amazing experience (besides the communication issue) and I certainly will be doing (or atleast trying to do) remote work from here on out. :)