35

I'm currently working in a software company as a junior developer. Due to having been able to demonstrate a good understanding of the technology we use, I have been assigned some rather abstract/advanced tasks for our current project, which nobody in my team (not even my team lead) has experience in. This has left me with no one to consult with from my colleagues. My team lead has advised me to direct any questions to a very experienced senior developer from another department. This guy has experience in nearly every imaginable area, and is one of the leading roles in regard of coding standards and software engineering. I'd love to learn as much as possible from him.

I hate asking him questions though, he comes across as pretty arrogant:

  • He only explains solutions from his level of experience and appears frustrated when somebody doesn't understand immediately
  • He sighs or get frustrated/angry if you have questions
  • He gives you the feeling you are stealing his time
  • He often finds and scolds you for minor things in your code, that he would've done better, although they are done after company issued coding guidelines.
  • He takes any misconception or error as a 'lack of research', even when I am dealing with a new technology for the first time
  • It appears as if he really hates dealing with 'low-level' programmers.

This isn't something only I experience, quite a few of my coworkers also had a negative experience dealing with him. That said he never rejects any questions and really tries to provide answers, but due to his demeanor, I am so intimidated by him that I just sit there silently, smile and nod, waiting for it be over. I leave most of my meetings with him more clueless than I was before.

I tried to avoid him ever since, and ask other senior developers with a less hostile demeanor, but I'm still often redirected to him.

Right now, this isn't affecting my performance at work at the slightest, as both my team lead and direct manager are more than happy with my current performance. This affects me on a personal level though, as it really bugs me that I can't reach the standards I set for myself, despite having the proper knowledge to do so within my reach.

Can anybody offer me advise on how to deal with such a person without feeling like just getting belittled every time?

0
75

Speaking as somebody who was once where you were, and now occasionally fits your description myself, here's some things that I think would work on me:

He gives you the feeling you are stealing his time


Commit this to heart:

Their time is far, far more valuable than yours

Respect that fact. And demonstrate that you respect it.


Assume it's worth at least 10x more to the company than yours is. If you can spend hours of work, research, consulting the internet, trial and error etc. to shave 10 minutes of questions and explanations off your meetings then you should do so.

Demonstrate that work: "This is my problem. I tried [this, this, and this] but ran into [these problems]. I went through various posts on Stack Overflow which gave me [these ideas]. I experimented with those which let me achieve [partial results] but now I'm stuck on [very specific problem] and I've exhausted everything I can think of."

Assume that, like a lot of programmers, they hate context switching, face-to-face meetings, and dealing with people in general. Ask if you can set up a chat/message room internally where you can post questions etc. and they can respond at a convenient time for them rather than having to schedule a meeting.


He only explains solutions from his level of experience and appears frustrated when somebody doesn't understand immediately

Write down everything they say. Then go away and study it until it does make sense. It won't help you there and then, but it will accelerate the process of getting you up to their level as fast as possible.


He sighs or get frustrated/angry if you have questions

So try not to ask any. If you think of a question then write it down. Go away. Research it. Try your hardest to find an answer yourself. Then next time you can say "I thought of [Question A] in our last meeting. Did some research. Tried some things and I came to [Conclusion X]. Is that right?".

There is no such thing as "Just a quick question". If it takes 30 minutes to get back into the flow of writing code after being interrupted, then your quick question that takes 2 minutes to answer actually just cost half an hour of their time. Don't do it.


He often finds and scolds you for minor things in your code, that he would've done better, although they are done after company issued coding guidelines.

Just suck it up. Say "Ok". Make a note. And move on. Rather than "Ok" you can always try "I'd love to do that, but the company code guidelines say I have to do it this way". It might solve it. It might not. Worth trying at least once to observe their response.


He takes any misconception or error as a 'lack of research', even when I am dealing with a new technology for the first time

That is lack of research. The expectations may be unrealistic. But if you're asking them a question that you could answer yourself with some time spent learning and researching then the onus is on you to do that first before making it their problem.


Now this all might sound pretty harsh. And like an awful lot of work.

It is a lot of work. But it's work that is ultimately for your benefit. Everything you learn, and learn about how to learn. How to research, to problem solve, to think for yourself, to create the most targeted, concise questions to get the most value out of a senior contact. That will all be incredibly valuable to your career going forwards.

And if they're anything like me, if they can see that you're doing everything you can to minimise disruptions to their actual work, and to get yourself up to speed as quickly as possible, they'll stop resenting your interruptions, and might even enjoy helping someone who will take their experience and insight and actually do something useful with it.

1
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat. – Neo Nov 13 '20 at 12:50
12

Here's the key:

My team lead has advised me to direct any questions to a very experienced senior developer from another department.

It's important to make sure that the senior dev understands that this comes from higher up the food chain than you. You may be able to diffuse the senior dev's irritation by simply being honest:

"Sorry, I know I don't have nearly as much experience as you and it's probably frustrating having to answer all of these questions. I know you've got your own things to work on, but [team lead] asked me to consult with you so that we can keep our project on schedule. Let me know if there's anything I can do to make this easier on you."

Also, pampering the ego usually doesn't hurt. If he teaches you something neat that will be helpful (either directly related to your questions or as a tangential comment), offer something like "Oh, that's so cool! I never knew that trick."

9

While many answers already give great advice on how to better deal with this person and get more value out of your interactions - I'd like to give some additional perspective that may (or may not) be relevant to you, but could possibly help you with similar interactions in the future.

Early in my career, I found myself in a similar situation - there was a very senior developer who I was directed to receive guidance from.

I hated interacting with him. I thought he was abrasive. He would say things very directly, like "What are you thinking? Why would you do that?" or "You don't know XYZ?" - things like that. He would sigh or show signs of frustration. He would assume that I knew things that I didn't.

Basically, I came out of every interaction feeling like an idiot who had just wasted his time. The whole time I would interact with him, I would just be beating myself inside. I was incredibly self-conscious, and felt like I was inferior. I was sure that he hated me, that all these negative thoughts about myself I was having inside my head - that was how he felt.

I kept finding myself put in situations where I had to work with this senior developer. I can't recall exactly when I realized it - but eventually I realized, this senior developer was not treating me as inferior - he was treating me as an equal, with respect. I later found out that he actually really respected me and was very satisfied with my performance relative to my position.

He respected me enough to be direct with me. To tell me the truth. To give me his honest opinion. He respected me enough to not sugar coat everything. He didn't let me fail, he didn't let me hold myself to a lower standard. Everything he said - all his comments and criticisms that I interpreted as judgement - they were genuinely meant as help. He wasn't trying to put me down, he was bringing me to his level.

And in return, he expected that I would respect him (and I believe this is where his frustrations came from). He expected me to research things on my own. To prepare ahead of meeting with him, so I could be concise and specific. He expected me to do more than just what was minimally required of my entry-level position. He expected me to care about my work. And he expected me to respect myself and to be confident in my intellect.

And I have to tell you, the way that he behaved towards me - which I interpreted as judgement - it's the same way that I see senior devs on equal footing interact with each other. They are upfront and direct with each other, because they have mutual respect.

"What the hell are you doing here? Is there a reason you are doing it this way?" "Yeah - I know what you're thinking - but hear me out, I tried to do this 'the right way'" ... and the friendly banter continues

Junior me would have interpreted that initial question as a judgement. Senior me interprets it as a funny, dramatic way of asking for clarification. The same question has a totally different meaning to me, just based on my internal perspective and my confidence levels.

All that said, could my senior dev have been more polite, understanding and kind to a confidence-lacking junior? Yes, he definitely should have - and I hope that if I find myself in the same position, I can mentor in a better way.

TL;DR

  • Respect yourself and have confidence in your intellect - even if your knowledge is lacking.
  • Give others the benefit of the doubt. Assume that people have the best intentions, not the worst.
  • Approach every interaction with a senior as an opportunity to grow and learn.
1
3

Unfortunately, as you may have read from other replies, it seems that in the IT world if you are a senior you have the right to treat anyone that knows less than you as rubbish, not only this is a right, but according to the other replies, you should thank for it.

This is really a poor advice (don't believe me? Ask Linus Torvalds...). If you are a junior or an apprentice, you deserve the same respect than anyone else in your company.

The senior guy for sure is super busy, stressed, experienced and once was even able to walk on the waters, but being a senior also implies mentoring and helping every member of the team to grow. So teaching is not a negligible part of being a senior.

If he is busy, he can propose to arrange specific time slots to discuss your questions, he should find a way to transmit his knowledge in an effective way.

However, since he has been allowed or he feels entitled to, he does not do it.

What can you do:

  • As soon as he gets angry or frustrated, stop him and tell him that you understand that he is busy, he has lost the bus that morning or whatever other issue he has, but that you have been referred to him by X and that is the reason why you are there. If he wants, he can propose a new time and then you can meet again to discuss your questions. No apologies, no nodding, no smiling. You must be assertive. He is a human being and you are a human being.
  • When you do not understand something he explains in a too complex way, ask him to explain him differently, to show you an example, and then in case you still do not understand, just thank him and say that you will need to do some additional research because it seems complex. (**Edit after @DaveG comment: ** making sure that you understand things is in his interest, since in this way you will have a reduced need to make additional questions)
  • You are not stealing his time, he is paid to help you.
  • The way he points out mistakes in code or reviews, it does matter. If the tone is inappropriate, just tell it. See the Google coding review guidelines to see how things should be done.
  • Lack of research is included in the above points. Transfer of knowledge is part of his job. You can only research the things that you know that you have to search, but you cannot search for something that you just ignored the existence.
  • He does hate to deal with juniors. You should not care about it.

Remember that many people will treat you as you let them treat you. If you let them treat you like rubbish, they will be happy to treat you like that. Perhaps they hope that you will not go there anymore, perhaps they do not like to teach. In any case, it does not matter, make your voice assertive, do no let anyone treat you like rubbish. You know why? Because otherwise even if your work is ok, you will come here because you are suffering.

Unfortunately, this may lead to some confrontation, and you will have to clearly stand that you felt sometime his attitude was wrong, or offensive etc (keep an example for each point you want to highlight). At the same time, never forget to recognize his knowledge and to state how much you would appreciate to learn from him.

2
  • 2
    Speaking as a developer who was in the "expert" role, another point is that the better the senior developer explains things, the fewer the questions he's going to have to answer. I decided that I wanted to answer each question once, and that meant giving good, intelligible answers. – DaveG Nov 12 '20 at 15:35
  • This is a great answer and the best perspective I can think of. Being able to do this is, however, a result of personal growth, and as such not as easily done as said. – Theo Tiger Dec 5 '20 at 23:07
2

It is impossible for us to judge if this person is being rude or if the problem is, in part, on your side. As the saying goes - there are three sides to every story: your side, their side and the truth.

This aside, I'll offer a few pointers as a senior developer myself who is now mentoring:

Questions

You can help yourself by choosing only the questions you absolutely have to ask and carefully explain why you haven't been able to answer it with the resources you have found.

Code

Pick any code base and it is rare that any two programmers will agree that the code is what they would have written. Criticism hurts but code reviews are a harsh reality you'll need to deal with. Not every hill is worth dying on either before you feel like snapping back. Some things are just preference and style.

Time management

This person sounds like they're very busy. Rather than bothering them in an ad hoc manner, see if you can book a regular time or use email/chat. Then they can get back to you on their timescales.

People Skills

If I could recommend a set of skills to any programmer it wouldn't even be technical. Soft skills are absolutely key. You'll see as you rise through the ranks that the very best developers have superb technical skills and people skills. Take a look at Dale Carnegie's "How to win friends and influence people" or better still, just read the summary online. If you can pitch the question in such as way that it is win-win and show an interest in that person, it will open doors, believe me.

Attitude

The type of person you describe are, alas, plentiful in IT. If they are key to the business, chances are they'll have a degree of latitude to be obnoxious as they're too important to upset. Try not to take things personally.

One final thing, "low-level programmer" has a specific meaning. I was all set for an assembly code question! :)

1
  • 1
    Robbie, I hope you don't mind a bit of poking fun at an adage... Having studied distributed computing, and a bit of philosophy, I'd say "the truth" is rarely one thing, more like it's one thing within every individual point of view. Sure, sometimes the truth nearly aligns; but, often these "point of view truths" are off by a little, or even a lot. – Edwin Buck Nov 11 '20 at 17:53
2

TLDR: RESPECT HIS TIME

Being an old fossil myself, perhaps I can give some insight.

Chances are, your senior has gone through the toughest times of the industry, and is beyond battle-hardened. Try to see things from his perspective and see if that doesn't give you a different take on matters.

He only explains solutions from his level of experience and appears frustrated when somebody doesn't understand immediately

Make sure you let him know that you're not very experienced before he starts explaining. Someone at that level needs to change their thinking when they explain to someone on a different level. It is very frustrating when you are trying to explain something to someone who isn't getting it, then have to guess at just what level to explain it to the person. The more times you have to simplify something, the more frustrating. Auto mechanics need to do this all the time. Be patient. Interrupt if you have to to let him know what your level is.

He sighs or get frustrated/angry if you have questions

Make sure you're not interrupting at an inopportune time. Nothing is more frustrating than when you are at the verge of solving a complex problem and someone interrupts. Schedule appointments with him rather than just walking up to him.

He gives you the feeling you are stealing his time

Nobody can give you a feeling. That's on you. However, it's not a stretch to think he may feel put upon, especially if he has high demands and tight deadlines. Respect his time.

He often finds and scolds you for minor things in your code, that he would've done better, although they are done after company issued coding guidelines.

Are they really minor? Just because something fits in with guidelines doesn't mean it's good. If you want to get better, listen to him, and show some patience.

He takes any misconception or error as a 'lack of research', even when I am dealing with a new technology for the first time

He's not wrong, and if you're dealing with new technologies, you should be able to do some research before going to him. If it's the first time dealing with it, then your questions would probably be low-level anyway, which means you're probably wasting his time.

It appears as if he really hates dealing with 'low-level' programmers.

So far, I haven't seen any evidence of that. To me, it looks like he's busy and doesn't like to be bothered, especially with low-level questions that a quick hop onto google.

It's like bothering a chief mechanic because you've got a loose lugnut. He's going to be irritated that your are taking away from his time rebuilding an engine to show you the proper way to hold a tire iron.

Also, accept it as the price of learning.

When I was starting out, my mentor would call me "big dummy" on a regular basis. To be honest, I was. But, I learned so much, it was worth it.

Focus more on what you are getting from him rather than how you are feeling. Just view it as paying your dues.

3
  • 1
    +1 Just for " Schedule appointments with him rather than just walking up to him", I dont mind helping, but I need to allocate some time. Abrupt switches are the worst, but if you let me finish this 15min task, I can flush my human memory :) – Martijn Nov 12 '20 at 9:34
  • 1
    I'm sorry, I've been in both roles as the learner and the expert, and there is zero excuse for calling someone a dummy or abusing them. In fact, what I found during my career was that the people who really were the experts usually were good explainers who didn't mind sharing knowledge. – DaveG Nov 12 '20 at 15:57
  • @DaveG Context matters. I learned far more from the guy who called me "big dummy" than the "nice" ones who shared nothing. And if you ever read a single answer of mine, you know I don't take abuse – Old_Lamplighter Nov 16 '20 at 18:10
1

Unfortunately there quite a few of these characters out there. Usually it stems from long carrier in one field / company / toolset, imho there is some fear and envy in their reactions.

Best way I found of dealing with this type of characters is moving communications to traceable media. You will be surprised how much more polite they get when its a written word.

I suggest Email, this way you can bulk and structure your questions and get a written answer to what you can always refer later as well, minimizing you "bothering" :)

You must log in to answer this question.

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