This is the long awaited part 2 of my toxicity series, have a look part 1 here to give you an introduction to the series.
This one is an interesting one for me to write about as I have been both the arrogant newbie and been annoyed by this sort of person. The arrogant newbie is someone who hasn't been in the game that long and thinks they have all the knowledge, they make up answers to questions that they have no clue about, they make assumptions and are to afraid to ask about anything because they think it may make them look bad. They will go to the ends to try and prove they are right, without further ado let's get into this...
When I started out in my career I had little confidence, I wasn't sure if I was going to stay in development, I had thoughts about going into project management however as I got into development more and more I became confident but still had that underlying insecurity.
As I started to get better at my chosen profession, I started to get more responsibility until one day I became an "expert" on a piece of functionality. I answered questions from business analysts and other developers alike until a senior developer asked me about something in this functionality I did not know... Oh no what do I do? Well I tell you what I did I decided to make up an answer which in my head felt plausible.
The senior developer looked at me and said "hold on this does not make sense? How can this even work like this". Anyway they went and did their own investigations and found out that I was totally wrong but instead of gloating about trumping me, they gave me some interesting advice which I still hold on to this day, "Never assume, own up that you do not know and research or dig further! Then present your findings".
I made some more similar mistakes, made assumptions when I needed to ask, I hit my low point when my company decided to get fellow developers on the team to review each other, I got one of the lowest scores in the company and it felt horrible. I got a feedback sheet and one of the comments on there was "A great personality but is afraid to ask about things, shouldn't guess things and is immature".
Yes at the stage (even now) I was immature, I would often be a loud mouth, make inappropriate comments (nothing offensive), people would just shrug or laugh with me. At that stage I realised I needed to grow up.
After my disastrous review, our team got a contractor who was quite open and we often have deep discussions about various things. He saw my behavior and after a couple of meetings he said "In that meeting, I never saw you question anything, did you understand what was said?" I had no answer to be honest. He said "There is no shame in not knowing, just ask" I started to be more proactive in developer meetings and started to ask why and generally started to get the context of things.
So a couple years later, we get a graduate join us, the graduate is a nice person, has a masters but assumes they know everything. I was put on the same team as them but this team had divorced themselves for this graduate. Often behind the graduate's back they would go "This person insists they know everything, we secretly overwrite their code so they won't be offended".
Anyway I thought they were overeating or just being plain "toxic", until I had to pair with this graduate to write a class that did some mapping, all hell broke loose...
We had a long argument about naming a variable to start off with, I wouldn't concede as I felt the graduate's naming would make things confusing as it was similarly named to another class, I invited them to come up with other names but they stuck to that one name. Anyway I had to concede to get things moving.
After that the graduate tried to bypass DI, saying it slowed things down and felt that switch statements were too complex and decided to use a long series of ifs.
It was a horrific experience and in my immaturity I lost interest and just played with my phone, I guess I would rewrite the stuff later behind their back, have a giggle with my colleagues about the dumbness of the situation.
Anyway my other colleagues basically said you and that graduate were arguing for hours, we felt you were right but didn't want to say anything because the graduate would probably think we were all against them and go off in a corner and cry.
Anyway me and the graduate had a bit of a feud going on, until one day I had to pair with the graduate again. I decided to let bygones be bygones and speak to them about our ongoing beef with each other. We decided to call a truce and got together on the task, less resistance from him and I was so nitpicky.
We became close, I realised I saw a fair bit of myself in the graduate, I used to be that guy who assumed they knew best, I used to never ask because I was afraid that I was the impostor (see. Impostor syndrome). We had chats and the graduate opened up to me, I feel I am not a good coder, I was promised I would do a lot of coding here, that mapping class we worked on, I wanted to code it myself, I didn't need someone with a few more years of experience to tell me what to do. I agreed that I did try and dictate rather than pair. The graduate then further said I am not growing as a developer at all, It feels like all we do is business analysis. At that point we both realised that we need to go and find another job and we both did.
This has been a difficult post to write, granted that this workplace did have a lot of other toxic elements which probably was ripe for creating this type of toxic person. This is a trap I think young developers can sometimes fall into.
I guess the lesson that comes out of this, is never assume, listen to more experienced developers and if you have a newbie you can't stand then just don't shunt them in a corner or get them fired. Try and be the bigger person and see what drives them this way.