Making a career in programming is hard, enough to kill it

tl;dr

People are shit at being people.

What?

Since I started becoming a developer, I have struggled in such a way that I thought I was alone in working with people who are unprofessional by being a bully or just damn right pig headed. I’ve wrote a few articles on this, Coming of age as a PHP developer and then Being a professional developer. I have also presented a talk to two local user groups about this exact issue, which was great and had more outcome on the conversations and questions afterwards than I thought it would.

In my current time of seven years being a developer, I have had five placements as a php developer. My first was a junior role; it is not until looking back that I realise the state of the development industry and what was to come.

Looking back…

In all my roles, one of the later ones were the hardest. I was a senior PHP developer in a very small team (4 people). We were rewriting the current site to implement object orientated code.

The code wasn’t the issue, it was the behavior more than anything. I, as some/most developers I know, suffer with impostor syndrome. I enjoy learning but as there is so much to learn about programming, the languages, devops, sys admin, sys ops, methodologies, best practice, design patterns and so on.

I didn’t go to university, so I have had to learn a lot from scratch. Now, this does not make me a unique case as there are many developers who started as bedroom programmers. In the year and a half I was in this role I learned a massive lesson; university is not the making of a good programmer.

I had been ridiculed when I made mistakes on spellings, looked at like I was stupid when I didn’t know about something or how something worked and I was constantly put down and my opinion was not valued/trusted by people above me due to not having a higher education.

After a while, I did what any respectable person would do; I took to writing a Twitter poll.

I was interested to see the results come through and was surprised by the winning option due to recent conversations. General conversations within the industry via various messaging platforms seemed to point to the fact it does not matter. University does not make you a developer, but it can prepare you for what is to come. As long as that developer can teach, learn and adopt a good manner in doing so then the knowledge will just sit behind them qualities.

It’s the attitude that counts

Not being a very confident person in programming, and other parts of life, I try to listen to people and take things away to learn, whether career related or not.

I have started to attend conference’s, local user groups, online communities, write a blog, contribute to open source and read as much as I can, when I can. Pushing boundaries both personally and mentally. I don’t believe in the “wrong way” or “better way” of doing something, but in encouraging and discussing options/opinions on a resolution/feature/problem.

In my placements of work over the past few years I have had to learn to deal with people who are rude and are arrogant as well as elitist and think their education makes them more important. As a developer we are constantly learning. As a developer we must have the ability to learn from people, male or female, older or younger, university attendees and non university attendees.

It has been hard to handle people who deem themselves smarter and know more than everyone else due to education or what ever else and the truth is that our industry is full of people who are paid a lot of money and are incompetent but get by due to team members picking up the slack and doing good work, but are the type of person who like to be more dominant and take the piss out of others due to their own insecurities. Attitudes like this caused me to not trust my instincts on my approaches, to not feel confident in my skills, to make me feel stupid when I didn’t understand something when I was shown/told or read about something, in 2 places I was ready to hand my development career back and do something else.

In most of my placements it was people that made me want to leave. Not the work and not the business (at least not directly).

Moving forward

This stress/state of doubt lead me to get involved with the community more and it was here that I started to realise the problem.

Before I say this, this is not me simply blaming other people, but; the problem was people.

I am a person who will listen to people, not because I think they are always right, but because if you talk about something, you are doing so by describing you experience with that “something”. It is all relative experience. I can learn from it whether it is simply learning about this “something” existing or that someone had “x” experience with this “something”. Doesn’t matter if they were wrong or right to me because that should not matter. If you can take something away from it and progress your learning on “x” then it has helped you as a developer and you can use that somewhere.

When I joined communities I did not know what to expect, lets be honest; a room full of tech loving people are generally introverts and are afraid to speak to strangers. I first joined PHPWarks and arrived on my own not knowing what to expect. It was scary, like shit scary, but I pushed myself as I thought as a 32 year old I should be able to walk into a room without feeling like it was my first day at a new school.

Close to 2 years on, I am glad I did. Since then I have made some great friends and found a great place to work through open source and getting involved with the community. It is here that I had the best support I could ever have. My wife has been great but hearing me whine about work every day for a year plus can become very grating, especially when she has now experience or what I am going through. And let’s be honest, it is just my version of the story. I could have aggravated the situation, gone against authority and just not liked the outcome? Every story has 2 sides.

Stop rambling, please!

Over the year I become very aware that I was becoming very negative. Please don’t underestimate how negative I was getting. Every chance I got to let people know my problems I used to do so. Every meetup, every IRC or slack conversation, Twitter and every conference I attended I started.

I did not like myself. (I don’t think my wife and friends liked me much either to be honest)

It’s hard though for me to work with difficult people. I am someone who like to fix problems. Improve on processes. Help others. I understand a business is there to make money, but a business is built on processes, rules, systems and above all people.

When you work with people who put you down, disagree with you because they just don’t think you are of any value, it can be very degrading. Mix this with people thinking that they are better than you and it can become very frustrating.

When you are being ridiculed because you made a mistake, but there is no process in place to help reduce that mistake it can be very frustrating. Being battled against by people who are deemed “smarter” than me when I try to implement testing, a framework or looking at updating the infrastructure architecture to help with implementing a good release pipeline, this can be very frustrating.

However, talking with people in the community and asking for advice on this issues has helped me so much. The support I was receiving throughout this time was great and the people who helped will never realise how much they did, just by listening and offering help where required.

It doesn’t matter how you got to where you are now, as both a developer and a person. The important thing to remember is that you were not born with the knowledge and experiences you have now, you picked things up, you learned new things and you succeeded in parts and failed in others. Don’t get frustrated/annoyed/impatient when someone asks you a “stupid” question as there is no such thing in the context of learning. Don’t laugh at someones work with colleagues over that persons shoulder. You were there once, maybe not scared to ask questions but I’m sure there was a level of intimidation.

Don’t think you have the “right” or “best” answer to everything. Listen to others because it could help refine that answer.

For me, the day I realised I had to leave was the day I took my problems home and shouted at my 3 year old daughter because she wanted me to play a game with her and she had to ask several times. I have never felt so shit as a dad and a human.

The place before that was when I did not like going into work, I am not that kind of person. I enjoy going to work. I enjoy being part of the business mechanics and making a difference where I can.

If you are going through this, then get in touch with me via Twitter or reach out to a community, or maybe look at moving jobs if possible? There is a solution somewhere, but don’t suffer. It is not worth it. You are at your day job and with these “people” more than you are with your loved ones.