I recently joined a new company. The problem is that they have a release coming up this month end and don't have the time to loop me into the work-flow.

I have asked for work to get to know the code base better and have done it and have a fair idea of what I will be doing.

Now, in my idle time (till 31st I'm guessing), I am free of any tasks. So, I tend to surf the web on my mobile. While I don't thing anyone minds, and yes it might not give the best impression; what I wonder is if it is considered unethical?

@gnat: The question is not a duplicate. Unlike the aforementioned question / topic, I have tried to talk to my colleagues about it. They indicated that I should wait till the release. I already have a project assigned, the code for which I have gone through. I can't comment on the get to know your colleagues part simply because social interaction doesn't come exactly naturally to me. In my defense I have tried to befriend people who sit around me, but its a steep slope.....

  • Personally, as long as they do their job, I wouldn't care if a coworker surf unrelated stuff on their time. However, as a new joiner, you would have a lot of things to do, you can familiarise yourself with the code, you can try to refactor code that looks nasty. Don't wait until people loop you in, try to onboard yourself; don't wait until you're assigned tasks, rather find a task for yourself. Improve the onboarding documentations if things are missing there that you spent hours trying to figure out. Play around with the product, make notes of where things could be improved.
    – Lie Ryan
    Dec 22, 2018 at 2:54
  • Improve your tools, maybe research that text editor/IDE shortcuts or configuration that you've never managed to figure out in crunch. Research a bit about the company's environment (regulations that apply, competitors, industry standards, future directions, etc). In a typical software project size, I'd be very surprised if you managed to figure out what things does what in a code base in less than a six months.
    – Lie Ryan
    Dec 22, 2018 at 2:56
  • I'd usually recommended to give new joiners some space, instead of putting them to task immediately, for the reason that there are so many things for a new joiners to need to figure out rather than doing work tasks immediately. It's counter productive in the long run to try to cram new joiners with tasks immediately after joining in most cases.
    – Lie Ryan
    Dec 22, 2018 at 3:04

3 Answers 3


I understand boredom, and I surf a lot, all year round, just to give me a break from coding & clear my head. However, I don't do it surreptitiously on my 'phone.

I surf openly on my desktop PC, where anyone passing can see.

I also make sure that everything I am looking at is, in some way, work related.

If I am looking at Stack Overflow, I could be looking for something to help me solve a problem. Otherwise, I look for tools to improve my productivity (a bonus if they will also help my hobby projects - wink ;-)

You could also brush up on your programming language. That's not much use when I am coding in C, but C++ is always evolving. Still, there are lots of tips & tricks for C, and every other language.

Just try to anticipate the job you will do soon, and read up on as much as you can about it. You can also ask your teammates what they recommend you research.

If you already have access to the code, then give it a thorough review. Running DoxyGen over the codebase is always the first thing that I do. It gives a great amount of information, even when there are no Doxygen comments.

Have a look at the unit tests. Are they complete?

If the code produces debug logs, one of the first things that I do is to code a tool to convert the debug trace to message sequence charts.

Find something job-related to keep you busy, and let everyone see you doing it, rather than having them thing you are sending a week on FaceTweet or even pr0n on your 'phone. Do it publicly, and make a good impression before you even start.

  • 1
    Thanks for that. Never realized I could try those things.
    – Bhoot
    Dec 21, 2018 at 8:25
  • 1
    You might even offer your boss or teammates a list of possible activities and ask which they recommend. As long as you are not disturbing your colleagues by asking questions they will surely be happy if you can contribute even a little to the project Dec 21, 2018 at 9:12

There is always something more useful to do than just killing time on company dime.
It will reflect much better on your WORK ETHIC !

Pick one or more of the following list and ask your supervisor if it is OK to do that while you wait for assignments.

  • familiarize yourself with the company workflow using intranet pages or other documents they may have
  • offer beta testing for the current project or simply play with the software as a user would
  • extend your knowledge regarding the coding environment in use
  • browse through code or documentation (project bible?) of the current project
  • do online tutorials of code snippets directly related to the companys portfolio or future projects you might be assigned to
  • offer to do some sandbox work on an unfinished R&D project or pipeline tool that is on low priority
  • offer general R&D for future projects

...get creative and extend this list to your liking...

ONLY if all of these alternatives are not approved ask if you can or if they flat out tell you to just surf the web should you do that!

  • 1
    +1 for suggesting "beta testing". Since everyone else is busy preparing a release, an extra pair of eyes could be helpful, especially as OP is new and might notice problems their colleagues would overlook due to their familiarity with the project.
    – Llewellyn
    Dec 21, 2018 at 15:45

what I wonder is if it is considered unethical?

To be honest I find other answers a bit unbelievable. In a given 8 hours work day, a typical programmer probably spends 3-4 hours doing useful work. It's the nature of the beast, so to speak. On average, a programmer writes maybe 20-100 lines of code per day and the rest is spent doing non-programming things. The way people make it out here is that in a given work day, they spend the entire day attempting to find or do something for the company. In my own personal experience, this ends up being rather annoying to your coworkers and boss(es). And it becomes rather mentally taxing to you as you're constantly trying to find "something" but not really anything useful for the company. Are you prepared if an emergency is coming in both physically and mentally to perform the work 100%? If not, then you need to step back and take it easy.

In my opinion, if you cannot refactor code, work on bugs, or go to a meeting to get future requirements, then you should spend the day doing what you can to prepare for the next task. It's more benefiting to the company that you are mentally prepared for the next task and not exhausted by tiring yourself out with useless stuff.

  • 1
    Is that your experience as a programmer? Dec 21, 2018 at 20:52

Not the answer you're looking for? Browse other questions tagged .