DEV Community

The "Elitist Developer" Debacle

Henry 👨‍💻 on May 25, 2019

I recently published a post on imposter syndrome, it has had a far greater response than I anticipated and its reception has prompted me to think f...
Collapse
 
ryansmith profile image
Ryan Smith • Edited

I would say it definitely happens in the professional realm. It isn't quite as heated as online toxicity, but it can cause some similar negative feelings. I think it is all about how software development is almost entirely subjective which leads to difficult conversations.

Software development is subjective because there is no science to it. There is computer science which is the basis of it, but that is more of a mathematical discipline. Modern programming languages are abstractions on top of the 1s and 0s, so anyone is free to create or use a programming language for a program as long as it can be translated to run on a computer. Different developers have different tastes and different types of programs could benefit from different programming language features. It is someone's opinion making that choice, not a well-defined set of rules based in science.

I think that the subjectivity is the root of any elitism in development. Developer A is writing a program a certain way using a particular language, developer B tells them that they shouldn't be writing it that way or using that language. I feel that represents the format of any negative interaction regarding software development, but there is no clear winner.

This manifests itself in the workplace regularly. It may not be hostile like online comments, but it can be difficult to navigate. At times, being a software developer can be more about working with people than working with code. Everyone thinks differently and it can be hard to reach a consensus. When developers cannot work together effectively, it leads to different styles of programming or a mix of tools being used. This negatively impacts the product, the budget, and the overall team morale. One developer could be concerned with getting a task done as quickly as possible with no regard for future problems, another developer might have heard that functional programming is the new hotness and they want to rewrite all the things, and a third developer could be jaded from hastily implemented code or jaded from adopting something that was not the right fit. Combine that that with personalities and emotions, it can quickly turn into a heated discussion over what is best.

To avoid this at work, I recommend a few things:

  • Be open to different opinions. What I have done is created a list for "what would it take to change my mind", if someone with a differing opinion can provide something close to that, the conversation goes a lot smoother. If I have an opposing opinion I try to provide that as well.
    1. You can explain your idea clearly in a reasonable amount of time. If I can't understand it, I can't feel confident in it.
    2. It isn't a massive departure from the team's comfort zone or a bombshell idea. We have to implement working features and meet deadlines, sometimes that means sticking with the boring go-to solutions.
    3. There is a reasonable justification for it. If the explanation amounts to "It's better" or "it should be the way I like it", that is not reasonable in my opinion. "It's better because I find it much easier to read code that has consistent spacing and indentation" is much more reasonable. I respect those that I work with and if they do not like something, I want to help make it better for them.
  • "Actions speak louder than words" or "be the change you seek" or "an idea that is developed and put into action is more important than an idea that exists only as an idea."
    • Be the person that has an opinion because you see a problem, want to genuinely be helpful, and will follow through on improvements that will help your team. Being an opinionated developer that does nothing but cause conflict by sharing opposing opinions will get you nowhere.
    • If someone is passionate about not using semicolons for a new project in JavaScript and they set up a formatter config and a guide on setting it up, I like that. If they just complain about semicolons every chance they get and do nothing - not a good look.
    • Again, no bombshells. I'm not advocating taking it upon yourself for re-writing an entire codebase, but taking appropriate action on incremental improvements is always welcome in my book.
  • If you are an established developer, be a good leader. Good leaders do not dictate how things should be done or stay rooted in old ways. They provide their experience and guidance to other developers but ultimately let the team have the final say. They are there to support and make others around them better, not to force their way of doing things.
Collapse
 
marek profile image
Marek Zaluski

Hey Ryan this is a great comment and it should get more visibility. Some of the things you said inspired me to discuss the topic in a video that I posted today:

Collapse
 
ryansmith profile image
Ryan Smith

Thank you, I'm glad it inspired 😄. Nice job on the video, I enjoyed the deep dive into this topic and the additional points you made.

Collapse
 
flrnd profile image
Florian Rand • Edited

My point with my previous answer was: do you really know if I was joking? Or trolling? Or was I serious? The main problem with texting answers is that we are missing few things like face and voice. Yes I could use other tone of voice or a emoji to change the tone of voice and sounds friendly... That happen also in real Life.

What is elitist for you? One of my best friends is a really smart person. Her answers are usually not well received by others. Mostly people Who don't really know her. And believe me, most of the time when she talks we could agree that she sounds elitist. But she is not. It's the way she see and understand things and the way she express herself.

Are there jerks in rl and internet? A lot. What we do? We Ignore jerks. Plain and simple. But try to catalog people and you probably make a mistake missjudging someone. This is my view of this topic.

Collapse
 
badrecordlength profile image
Henry 👨‍💻 • Edited

Of course you should give people the benefit of the doubt whenever possible, and I agree that online it is very easy to misinterpret what people says due to text lacking the nuance of the spoken word. That said, someone replying to a Stack Overflow post with "lol u should know that ur not a real programmer", "use a better language insert language here sucks!" or "don't call yourself a dev if you don't know assembly" is evidently not trying to help anyone and in my opinion falls into the category of elitist.

Collapse
 
badrecordlength profile image
Henry 👨‍💻

Great response, I think the "we should use a different language/tool/stack" conversation can definitely be a constructive one if properly explained and justified, not always the case online 😁.

Collapse
 
vycoder profile image
yev • Edited

I remember my first job as a software engineer, people aren't nice, everybody were jerks. lol. I'm not sure if it's because I look nerdy or I don't look nerdy enough to deserve the minimum amount of respect, or was it the fact that I'm underweight, or maybe because I just look young and I don't look like I deserve the job, at this point I still don't know.

But damn, that took a toll on me. I chose this career because I enjoyed it. I'm not a genius, nor do I maintain any successful open-source library before I got a job, etc. I just find programming fun, and I'm just privately happy that I get to do it as job. But not anymore, it's funny how the thing I used to love turned to something I hate just because people are jerks.

It took me some time to recover. I fiddled around with some other technology and programming languages that I don't use for my job, trying to ignite the passion again. I treated job as job, clock-in and get out. I just want to go home and play around with programming like old times. I recovered eventually, I guess my job was affected too because shortly after being transferred to a new department, I got promoted but I bailed and moved on a month after.

That was 5 years or so ago, picked-up some lessons after that:

  • Don't be a jerk.
  • There's always so much to learn. You can't learn and master it all. Like they said, it's the journey that counts. Just enjoy the learning part.
  • Don't take the job personal even if others do.
  • Let your work speak for itself. Sooner or later, you'll get that feedback. If you're as decent as you think you are, eventually people will come around if not then it's time for some introspection, the problem might actually be you all along.
  • Everybody will die. It's pointless to worry about how others think about you. Just focus on being a good person for the people you care about.
Collapse
 
badrecordlength profile image
Henry 👨‍💻

Oof, I'm sorry you felt like that, must have been very difficult, I'm glad its over now though. Those are some good lessons to take in too 😃.

Collapse
 
ca55idy profile image
ca55idy

It definitely happens on the real world throughout the industry. Personally I find it is the company culture that cultivates it.
My first job (they employed me then made me redundant almost immediately - best career experience ever!) was for a company who used an in house language which was then compiled into java to be deployed, the only 2 actual java employees were treated like god's even though one of the 'in house language developers' was a well known (at the time) published java guru, who was ignored.
A more recent company the head architect drank with the director so could literally talk to everyone like sh*t. They weren't even a great architect, usually it was we must use this for this project, why?, Because it's good. 5 minutes into the project and hit a problem you'd get well don't ask me I've never seen that tech before!

Collapse
 
therealkhitty profile image
Mary Thompson

It is real in the professional realm.

I am so over the which language is better debate. We've had new hires complain about VB.NET (what we mainly use at work) when it's really no different than C#.NET especially for the type of work we do. After a few years, they came to love VB.NET, lol.

We've had a few elitist who have not lasted long at our company. Our work was too far "beneath" them or they found senior devs to be inadequate. There's a place for elitism somewhere for them, but I find the humble mentor to be more useful.

Collapse
 
badrecordlength profile image
Henry 👨‍💻

Yeah, I agree it should always boil down a mixture of what's best for job at hand and what the team as a whole is most comfortable with. That said, to be completely and utterly honest, I'm kind of glad I no longer have to use VB.net haha. Its just a little too weird in places syntax wise for me personally. If VB.net works well for you and your team though, great! I certainly wouldn't shame anyone for using it. I'll also probably always have some nostalgia and fondness for it considering it was the first language that I ever properly learnt 😁.

Collapse
 
chasimakopoulos profile image
Charalampos Asimakopoulos • Edited

Especially when it comes to .NET, the differences aren't so big - but the gap is getting bigger with each update (for example, VB.NET is not officially supported for .NET 5 as of now).

I would have no problem if VB.NET made a comeback though :)

Collapse
 
workingwebsites profile image
Lisa Armstrong

Personal Pet Peve:

Client (from hell) takes your work to another programmer to review, then inform you it's garbage (even though it works) and you lose the account (and money).

I've never met the other developer, but I'm pretty sure it's the type with lots of 'opions', but not much professionalism.

Collapse
 
badrecordlength profile image
Henry 👨‍💻

Oof, I'm sorry that happened 😔. Try not to let it discourage you though, as annoying as it is they'll always be more clients and more opportunities.

Collapse
 
workingwebsites profile image
Lisa Armstrong

Thanks Henry. Yes, it stung, and prompted some self reflection, which is healthy.

It's why I make it a point to be patient with other people's code. They wrote it that way for a reason.

Collapse
 
steelwolf180 profile image
Max Ong Zong Bao

I think it's quite opinionated for software development in regards to technology or ways to solve a problem.

We just have to search for a common ground by chatting with each other on a face to face conversation to reach it.

Sure there will be some is sarcastic in their replies and we shouldn't allow it to affect us to reach a consensus to deliver quality software.

Collapse
 
davidmulder profile image
David Mulder

Honestly, this is one criticism of IT culture which I sincerely don't think fits. Where in most fields someone is looked down on for not having some paper from some school, in IT (at least as a male) you are only judged for your skills. Of course communities enact a variety of forms of gatekeeping, of course there are a lot of irrational opinions out there, but frankly compared to most fields where being "welcomed" can literally decades (or the exact right piece of paper) in IT it tends to take only years.

I mean, I have seen people code in vim and look down on people using normal editors (probably the purest form of elitism I have seen), but even that didn't stop normal professional collaboration. And when it comes to SO, it gets a lot of hate for being unwelcoming, but to be honest I think that sincerely mostly boils down to the "questions aren't just for the OP, but all current and future people with this problem". Yes, "your" beginner question will get marked as a duplicate, but you did get your answer and learn a new term.

Not to say that imposter syndrome and just generally feeling inadequate aren't very very normal feelings. But they happen in every field and the thing that makes IT unique is how 1) everything changes all the time and 2) age is not a good indicator for skill. In most fields you expect it to take a decade before you are taken seriously and clear expectations and processes tend to guard against imposter syndrome. In IT everything is flexible and messy and judging yourself objectively when you start is unreasonably hard. After more than a decade of programming I still am unsure occasionally.

Collapse
 
flrnd profile image
Florian Rand

I'm going to throw back the question, do you think elitism is a developers only thing? There have your answer (in a elitist way. Just kidding).

Collapse
 
badrecordlength profile image
Henry 👨‍💻

Absolutely not, I've seen it in many different communities.

Collapse
 
flrnd profile image
Florian Rand

Exactly. I usually try to get close to people (and communities) that help me growth, and keep my distance with the opposite. Sorry for my previous comment, I was trying to make a point (that jerks are everywhere) and we should avoid and ignore those kind of behaviours. ✌

Collapse
 
darkain profile image
Vincent Milum Jr

1) search Google for problem
2) see forum post with someone having same issue
3) read thread to get answer
4) no actual answer given, instead, reply was simply "just Google it"

My friend and I were joking debating writing a bot that searched Google for "just Google it" replies on forums, and have the bot reply telling said person how destructive their comment is to the community as a whole.

I've always been against these sorts of replies... 20ish years ago, I learned programming by getting help from the Winamp developers via IRC. They were already super friendly and helpful, so I learned right from the beginning to help others in a similar fashion.

Collapse
 
badrecordlength profile image
Henry 👨‍💻

Hahaha, yep, had that happen a few times.

Collapse
 
kaelscion profile image
kaelscion

I've been a programmer for close to a decade and been everything from a hobbyist hacker to a mentor to junior devs to a consultant and "go to Golden boy". However, more recently I've been the guy who is repeatedly frustrated with the difficulty of finding new work because the kids with community college degrees and happen to use React a lot (which I don't), and the requirement for all engineers to be "Full Stack"(which is like saying you want your roofer to also be able to do your plumbing and electrical which is stupid and dangerous).

To me, I believe imppster syndrome is so prevalent in software engineering for two main reasons. The first is related to the non-technical of the wod. Most people in the world know nothing about software. Therefore, they believe that devs, engineers and architects are infallible and are EXTREMELY hard on us when we make mistakes. Everybody from sales and marketing to management and the executive folks to the user's and customers can't understand how mistakes can happen. "What do you mean AWS experienced downtime? What has that got to do with us?" or my personal favorite "I don't know what a 'Cloudflare' is and I'm very sorry to hear they're undergoing maintenance. But seeing as I care mainly about OUR problems, get our load times back to normal in Tokyo!!!" The result is that we feel like we cannot, under any circumstances, be human. To which I say: Doctors around the world are allowed to glance at a chart and provide a wrong diagnosis to at least one patient every. single. day, then get a pay raise and stock options. But if we take our foot off the gas for a single second, most of us are disciplined. And doctors go to school for at least twice the time that a lot of developers do just to get their first job.

Second point is that most of the "elite" developers of the world are EXTREMELY good at selling themselves, their abilities, and their ideas. I'm going to say it: extroverted developers are usually perceived as ninjas/gurus/10x developers because they are LOUD about what the rest of us do silently every day. This is not always the case but it rings true in all fields. Those who find things to brag about are usually the ones who go furthest (at least initially) and make the rest of us look and feel worse about ourselves even if we can build circles around those people.

All in all, it's a tough scene because most of us love the machine's than we do the people (at least I do) and don't feel the need to blow a trumpet ahead of ourselves wherever we go. And we also WANT to do a good job so we take the unjust punishment for everyday mishaps very hard.

That's why meetups, both with friends and the "sign up for on meetup.com" kind, are so important. So that we can refresh and get back to doing what we're best at. Dev is great for that because we find support here instead of apathy. But there are many times where we need to get away from social media, stop writing on Medium for a few days, and get back to the scope of our lives where we are brilliant, important, and very loved by those close to us.