If you compare workers in tech with those in other industries a key difference is the level of fear. Its true that many other occupations provide less job security, and certainly nurses, lawyers, solicitors etc... need to keep their skill set up to date, but you don't find midwives living in fear that they will be made irrelevant by MSPregnancy 5.0.
Of course it's not always the case that fear is a bad thing. Fear will tell you when the gap between your desired reality and actual reality is too wide. It will spur you into action before you step (or are pushed) over the precipice. To quote Darth Maul "fear is my ally" :-) But even so there is far too much fear in our industry. I thought it might be worthwhile to itemise those fears I know only too well and suggest what (if anything) can be done about them.
Much has been written about how easy it is to feel like the fraud in the office who isn't properly contributing and doesn't have a clue how things really work. The cure is to realise that most of us feel like this most of the time. To adapt an old saying:
- The user explains how the program runs and the programmer maintaining it laughs
- The programmer maintaining the program explains it and the original author laughs
- The original author explains how the program runs and the compiler writer laughs
- The compiler writer explains how the program runs and the electrical engineer laughs
- The electrical engineer explains how the program runs and the physicist laughs
- The physicist explains how the program runs and God laughs (because the Universe Runs On Lisp)
For example the sheer volume of information one would need to understand to truly comprehend 'Hello World' in Java is staggering, so its not surprising we feel the fear of imposter syndrome most of the time. It doesn't help that in tech you can make someone feel like an imbecile simply by knowing 1% more about a topic than they do (or simply stating assumed facts with rock solid confidence and VOLUME). The problem of technical gaslighting is sadly a real and unfortunate hangover from academia.
If you doubt everyone feels this way consider this tweet from Kent Beck, SmallTalk guru, Design Patterns champion, creator of JUnit and eXtreme Programming and widely regarded as one of the best developers in the industry. More good news is that if you are experiencing Imposter Syndrome you're definitely not at the bottom of the pile, its those in the grip of the Dunning Kruger effect who are...
Fear of Obsolescence
As someone whose job is to stay on top of technical trends the only thing I can advise is to do a little every day. Eat the elephant one spoonful at a time. Ten minutes a day reading technical articles and blog posts will keep you at the top of the wave, as opposed to having to paddle all the way up when your current platform bites the dust. There is the argument that programming is programming and a really good developer in 'X' will always be able to adapt to 'Y'. Perhaps, but not in a realistic timescale. It took me years of sustained effort to properly transition from imperative code to OO and from OO to FP, so unless you're in the top 1% IQ wise its best to get started early. The good news is that at no point in our history have we every had so many free tutorials and tools to play with.
Fear of Asking for Help
I've blogged about this before but it bears repeating. Despite some major improvements in the last few years our educational system still teaches programming as an individual pursuit where systems are written from scratch and then never maintained. So collaboration and/or asking for help implicitly becomes verboten. This stretches into industry where no one wants to appear dumb and the myth of the 10X more productive developer prevents us from asking for help. The best solution for this is for senior developers to lead by example and create a culture that empathises group productivity more than individual achievement.
Fear of Assimilation by 'The Business'
As software developers we have a very high regard for our profession, and in particular for the mental horsepower and dedication required to write good code. This is all well and good but it often leads us to shoot ourselves in the foot when it comes to accepting wider responsibilities. I remember the horror I felt at my first startup being asked to participate in sales and schmooze potential clients at conferences. We all feel that these things are in some sense beneath us, even though the sales guys and managers are often earning far more for the same or less effort. We're missing a trick there...
Fear of Discrimination
This has been a hot topic in recent years, and its undeniable that our industry is often sexist, racist and ageist. I personally think this is exacerbated by the fears listed above - the more stress you come under the more you will default to trusting only those exactly like yourself. As a WASP I haven't experienced much of this myself but I've seen it in action in a variety of subtle and gross ways. When compared to other industries its the degree of ageism which is perhaps most surprising, developers seem to plan their careers on the basis that they will never get old and/or be tied down by a spouse or family. Possibly the fact that the industry is growing so quickly creates a delusion of immortality that isn't shattered for most developers till their late thirties (been there, done that).
Fear of Your Employer Vanishing
Many developers who were around for the .COM crash will have experienced the horror of coming in to work to find the doors padlocked and a notice to say all your services are no longer required. The transitory nature of tech (no barriers to entry, no heavy plant, no unique skills etc...) does allow one player to dominate the market and make billions, but it also means a company can disintegrate and disappear in a matter of weeks. Sometimes all it takes is a single bad decision, such as those telcos in the 1990's who bet the farm on demand for bandwidth being insatiable. Microsoft famously almost missed the internet, had someone not fortuitously given Bill Gates a demo of Netscape Navigator. Once its happened to you once (or 3 times in my case) you never forget, but at least it leads to a healthy interest in an independent pension fund and savings for a rainy day.
Long story short there is a lot of fear going around, and to make matters worse the different kinds of fear feed into and reinforce one another. For example female developers are even more afraid of asking for help than male ones because they know those they ask will be disproportionally critical.
For what its worth my own ideas for fighting these fears are:
- Remember that software is a stressful field and that everyone feels it at least some of the time
- Try to stay current. Aim to read two technical articles a day and two technical books per month.
- When time allows play with different frameworks on your platform. The more unusual the better.
- Listen to technical podcasts like Hanselminutes and tech talks from sites like InfoQ
- Don't hesitate to ask for help publicly and volunteer to mentor more junior developers
- Take every opportunity that is offered to speak at events or interact with the wider business
- Deliberately try to be as inclusive as possible when organising events (at any scale)
- Don't plan on the basis of eternal youth, take account of how your life will change
That's about it. Except to say that this TEDx talk may help put things in perspective.
Head of Learning