14

I started working at a company as a Junior Java Developer 5 months ago. I work on a big project, but still there are development tasks (the senior devs are doing them). I expected to get at least some developer tasks like :

  • implement new feature
  • improve something
  • more complex task maybe using pair programming

Instead the only tasks I get are:

  • minor bug fixing (wrong message, other small changes)
  • I had 2-3 "tasks" of implementing something (a total of 20-30 lines)
  • some obscure bugs that are related to performance or some unknown reason and I usually look into them days on end without any new ideas and don't know where to begin solving
  • and finally most of the time (80%) doing nothing. I asked the project lead for tasks several and every time I get - "we don't have any tasks for you" answer , so stopped asking about 2 months ago.

I know I'm lacking as a programmer and I saw in the few tasks that were given that I not always manage to see all the scenarios the first time around and I work quite slow. I tried to improve my skills by solving programming challenges of programming sites, but I can't keep at it for very long, mostly because I get depressed from getting no tasks for the actual project.

In conclusion I feel demotivated and have absolutely no initiative to improve and can't get interested in anything since my thoughts keep reverting to why they don't give me tasks.

Is this a normal experience, if so how do you deal with this? This happened at my previous company as well so I keep thinking that the problem is with me, maybe I should be more proactive somehow ,, but I don't know how.

  • 25
    A better challenge might be to take one of those "some unknown reason" bugs and spend your time experimenting, constructing theories, and trying to understand what is going on. – Patricia Shanahan Nov 8 '16 at 23:42
  • One problem might be, that you so far only have been solving the small tasks, so you will get more small tasks. Do what @PatriciaShanahan says and get one of the obscure bugs under control, no matter how long it takes you, that will get you recognition. – skymningen Nov 9 '16 at 7:20
  • 7
    Wow. The idea that a developer would be assigned nothing 80% of the time is unthinkable to me, yet the answers here suggest that it's normal? :| – Erik Nov 9 '16 at 11:27
  • 2
    If this is normal, it's not a good normal. It doesn't surprise me to hear that it's common practice, though. Partner with someone to learn more if you can, but even if you can't, dig into the code and try to understand it. Write some documentation, try to walk the code from where it starts, and write some automation for it. You'll end up improving the org, or you'll end up someplace better as a result. – kojiro Nov 9 '16 at 12:21
  • 1
    The most of the time (80%) doing nothing sounds like the biggest issue, so I refer you to workplace.stackexchange.com/questions/2644/… – Jan Doggen Nov 9 '16 at 14:08
19

Is it normal?

Yes, this is normal for a junior dev.

Is it a bad job

... No, a job that gives you time to learn on the job (or in your case be on stackexchange) is a good job. They're paying you to learn and not have responsibility.

But why?

Speaking as a senior dev it's usually faster for me to do it than to tell a junior what I want. And if I have to tell you want I want, then I have to babysit you through development. I end up having to test and bug fix.

The solution

My advice is to suck up to a senior dev for a year: Pick the senior you get along with best, buy them a doughnut and ask if you watch over their shoulder to understand what they're doing. If you can get one used to explaining what they're doing, while they're doing it, they won't be annoyed and your understanding of both the language and project will grow. One day you'll make a suggestion or comment and they'll appreciate you as a dev in your own right.

Even as a senior, I have a lot of down time. I need it to stay up to date with new technologies / languages / libraries / dilbert.com / xkcd.com / facebook


But why? (continued)

Speed

As a senior dev (perhaps a team lead or project manager) it's my job to get tasks done. So when a bug or request comes across my table it's my job to get it done ASAP. Training a junior slows the completion of the task, which makes me look bad.

Anonymity

Who knows that the it's the senior's job to train the junior?

  • The junior does
  • Maybe the senior
  • Very maybe HR
  • Definitely not the end user

It's the senior dev's job to impress the end user. The buyer of the product. The one who pays the bills. And the end user doesn't care about the junior, doesn't know about the junior, doesn't even know being a junior dev is a profession (probably).

Job security

As a senior dev:

someone who can do my job for less pay === unemployment; //dev joke

All the bugs you can make, undocumented code, deleting libraries, files and backups, burning down the building, git merging in a virus - everything you can do wrong - are all better than unemployment - doing your job right.

The universe is inherently against junior devs.

  • Plus, getting the senior dev to explain what they're doing will help them grow. Sheesh, management should be begging for mentoring like this. – kojiro Nov 9 '16 at 12:18
  • 4
    Really don't think anyone should have to suck up/bribe people to get mentored by more experienced members of the team? — To be honest, it should be pair of any senior dev's job description to help mentor less experienced members. – anotherdave Nov 9 '16 at 20:03
  • 1
    I have to agree with @anotherdave. Mentoring should be an inherent part of the culture for senior devs. Otherwise why even have junior devs? I'm sure having them around for paltry bug fixes and text changes doesn't justify their salary, and it makes no sense to spend time and money hiring them just to fire them in six months. – Torisuda Nov 10 '16 at 20:19
  • 1
    @anotherdave As a senior dev, I'm mostly unsupervised. No one is asking me if I've mentored my junior. And if it's an option of getting my job done (the stuff that keeps me employed) or training a junior - there's no contest. It shouldn't be this way but it is. Generally speaking devs aren't the most socially adept and training or mentoring isn't a skill that senior devs have or care about. In fact, having someone around that is paid less and can do your job usually counts against you. – Coomie Nov 11 '16 at 0:32
14

This is normal, even for senior developers new on a job. You start with bug fixes to learn about the technical ecosystem. No one's doubting your technical ability (but if you're lousy, that will show itself eventually! SMILE). It's easier to give new development to people who already know how things work in that particular company and its line of business, because new hires - senior AND junior - have the steepest learning curve about the company's internal practices.

The "doing nothing" part - that's a little suspect. But look, you're getting paid. Find some tutorials to do. Qualify yourself for that next opportunity to step up, speak up, and be included, because whining isn't going to get you there. Best of luck.

8

It may be a bad job

but it could be also you - check your attitude and be proactive

Let me elaborate a bit more:

I'm sorry to disagree with the people here and I find myself astonished that people find this normal. How is a junior programmer supposed to learn and improve if he is given no work?

My personal experience out of the university, when changing jobs and when receiving new employees: as soon as you land the first day, you are set up and your responsible / mentor / manager will give you all tasks nobody wants to do but that are needed in different parts of the project (in the project itself or in different modules, tools, sub-projects, etc. that conforms the project's ecosystem). This is inline with your first three points:

  1. Minor bug fixing is important: It is work to be done, you familiarise with the building / deployment / testing process your team follows and you start to get in contact with the codebase.

  2. Small tasks: As per point 1 they will help you to get up to speed to do more serious tasks.

  3. Obscure bugs: They are testing you. Projects have plenty of difficult bugs people can live with because they take too long to be discovered and may not be currently critical. Assigning them to a new employee will:

    • Help you (again) to familiarise with the codebase.
    • Reduce the burden of difficult-to-trace bugs on the project by someone who isn't crucial to the completion of that project.
    • Discover your actual skill level. Can you solve by yourself difficult, non-trivial tasks? Are you able to dig deeply in a big project and gain by yourself the knowledge needed to find the bug?

As soon as you accomplish the task you are given you get another one. When you start in a company you must not have idle time. I can't stress this enough. You have everything to learn at this moment: codebase, environment, company/team processes, knowledge related to the company line of work / field, people (who knows what), etc. This is true for every new hire, and even more for a junior developer since he has even more to learn, that is, real-world® development skills.

If you are succeeding on those 3 points and when you request more work nothing is given to you, I would sincerely recommend you to talk a higher level manager or to start looking for a different job. It is absolutely unacceptable to be doing nothing 80% of the time as a junior developer and it reflects a lack of management / resource organisation in the company.

If you are not, you need to analyse what is failing. Are you missing key knowledge in some CS area? Are you not understanding the code / idioms? You should learn that on your own. Do you lack specialised knowledge from the company's field of work not related to CS / programming? You may request some form of training or crash course to get up to speed.

What is not acceptable is to do nothing, get depressed and just be another piece of furniture in the office. It is a waste of time for yourself and sooner or later somebody will realise and will get rid of you.

One last thing, this is completely different than having down times where there is less work to do because of a transition between projects or contracts for the company for whatever the reason. And again, if this happens too often, keep yourself ready to jump to another place.

  • 2
    +1 for Be Proactive. If you have no assigned work, just do some work: Review others' code, fix unassigned bugs from the backlog, test the system, investigate potential performance enhancements. Always DO something, even if it's something the business doesn't know it wants. – Maybe_Factor Nov 10 '16 at 4:40
2

Surprisingly, I'm at odds with 3 of the other answers by saying the 80% doing nothing part is decidedly not normal.

A somewhat normal variation of what you describe occurs when you're given a large open ended background task to fill these 80%. That background task is usually something like "familiarize yourself with the application/codebase", and you're given access to some documentation resources and (read) access to the repository. The background task should rapidly shrink after 1-2 weeks - or if the company is currently in a release panic you should get normal assignments as soon as the release is done and the fallout cleaned up (release panic is a sign of a less than perfect company, but it's still pretty common).

2

I never had the issue of not having much to do as a junior developer. I always seemed to get thrown in the deep end forced to swim. I can't say that its good or bad either way, but I think you learn more when you've over your head.

But now that I'm a more experienced developer I can see how it would be hard to give a junior developer something to do in a project that I'm working on. Most of the time I'm under the gun trying to get something done and it would hurt my performance if I had to stop every so often to help a junior do something that they don't understand. What I'm thinking is you say it all with this statement:

I know I'm lacking as a programmer and I saw in the few tasks that were given that I not always manage to see all the scenarios the first time around and I work quite slow.

This tells me that you were given the chance to prove yourself and you failed to do so. After giving you several tasks that you proved you couldn't handle, I understand why they are hesitant to give you more. I don't think this post would exist if you exceeded their expectations with the tasks you were given, because they would have given you more tasks and they would increasingly get harder.

I think that if you really want to be a programmer, you might want to find a place that will mentor you more. It sounds like to me that you need it and the place that you currently work at isn't set up for that sort of mentoring. Either that or find someone in your current organization that is willing to mentor you, if that's possible.

  • I don't know what's usually expected of juniors, but after a 1 month interview with pair programming and tech stuff they pretty much knew my level. As for the 2 tasks I was given - yeah maybe I failed. What annoys me is not that I failed or not - at the end of "3 month trial period" they say "we like your performance, we increase your pay and the like". I think many in my place would prefer to be told of any problems or things I should work to improve rather than "you're great" , but give me no tasks for months on end. – Katrinna L Nov 17 '16 at 11:40
  • It really sounds to me like you need to find a place that is a better fit for you. Feedback on one's performance is pretty vital for one's professional growth - especially with someone who is more on the junior end of things. If you're asking "what did I do here that I could have done better?" or something along those lines and you don't really get any useful feedback... then you're in an impossible situation. They (your work) just sound like they don't want to take the time to mentor you properly. – Barry Franklin Nov 17 '16 at 12:28
  • @KatrinnaL from a junior I'd expect lots of passion, effort, curiosity, to ask good questions and to be able to develop himself up to a certain degree. In the work environment nobody will 'walk' you... they will tell you about good ways of doing things, better alternatives and answer your questions. Nobody is expecting you to be fast but you are expected to complete work and improve over time. – eballes Nov 19 '16 at 19:37
-1

I wanted to add that I had the same problem several times. I'm a java developer as well. I work for a consultancy firm for a year now and worked at several projects.

Unfortunately I think it's pretty normal that a junior like me will not be trusted with development of bigger features, etc. But keep asking for work and try to learn as much as possible from other team members.

As long as you show your coworkers that you are willing to work and are willing to contribute you're gaining trust. Don't be demotivated you'll get a chance to prove yourself. As I mentioned I have experienced this also and at the time I felt exactly the same as you: demotivated, useless, starting to doubt your own skills, etc.

Hope this helps...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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