Category: Teaching

Let’s stop making each other feel stupid

I’ve been delivering a talk with the same title as this blog post for a few years now. It’s a popular talk, and a topic that’s close to my heart.

Here’s a video of the talk from DevBreak 2021, and the following blog post was originally written for Agile Meets Architecture, Berlin 2023.

Note: At the end of this post I present the “Stupidity Manifesto”, which you can sign here.

Ginger cat covering its eyes, as though embarrassed or ashamed
This cat looks ashamed

Once upon a time, there was a female software engineer. When she studied mathematics at university, she was one of a tiny minority of female students. That was the first time she internalised the idea that women can’t do the same things that men can do. The evidence was in front of her eyes. And it was there again when she switched to software engineering. In her first job, she was the only female developer. And compared to her colleagues, she was a late developer. It seemed they had all taught themselves to code as children and teenagers. But this was the mid 90s. She attended university in the early 90s, where she never owned a computer and barely used one until after she graduated.

A few years later, in her second software job, she kept asking to work on the more difficult, more interesting, code bases… but she was always denied. When she interviewed for a more senior position elsewhere, she was told she didn’t know enough. She wasn’t surprised. It confirmed all her worst suspicions about herself.

Twelve years into her career, she was laid off and it was a relief. She had never felt like she belonged. She didn’t want to work in IT any more.

Here’s a question for you: Do you ever have to Google anything related to your sphere of expertise? When you do, do you shame yourself for it? Do you feel as though you’re supposed to know everything, and there’s something wrong with you if you don’t?

If you feel this way, you’re not alone. The woman described above is me. But now I’ve been doing this for over 23 years, and I make a living out of teaching software engineering skills. Does this mean I’ve finally reached the “comfortably confident that I know all the things” stage of my career? Nope. Quite the opposite.

The more I learn, the better I understand how little I know.

Text reads “Being an effective IT professional is not about what you know!” next to an image of a cat looking surprised.
Being an effective IT professional is not about what you know!

These days, when I find myself beating myself up for my ignorance (and I’m sorry to tell you that I do still beat myself up), I remind myself that learning is a fundamental part of this profession. Rather than worrying because you still have stuff to learn, you should instead be concerned if you don’t.

But even when we know on some level that this is true, it’s not always what we tell each other. And as a result, we do untold damage by making each other feel stupid.

What if we didn’t do this? Imagine a world where you arrive at your desk each day excited about learning new things. Where you never worry that you don’t know enough. Where there is no such thing as imposter syndrome. Because it turns out that being an effective IT professional is not about what you know. But we think it is — and that causes problems.

Problematic behaviours

I left the industry because I felt inadequate and stupid. It seemed that everyone else knew more than me. But I do a lot of teaching these days, which means I’m now very aware of how common this feeling is, and I’ve noticed some behaviours that I believe make it worse for all of us. I run through all of them in my talk, and I’ll present the following key ones in this article:

  • Laughing at others for gaps in their knowledge
  • Talking in jargon
  • Hiding a lack of knowledge
  • Gatekeeping

Laughing at others for gaps in their knowledge

I’ve lost count of the number of times I’ve witnessed colleagues emerge from interviewing a prospective employee and saying things like “Can you believe, I just interviewed someone who didn’t even know what a Z was?” followed by incredulous laughter. Haha, what a doofus, fancy thinking they could get a job here if they don’t even know that.

A cat peeking out from a box, looking as though it might be scared to come out
Don’t make people want to hide away!

For Z, you can substitute your favourite surely everyone knows about this item, and I guarantee I can find you somebody amazing, experienced and successful who knows nothing about it.

But it helps us bond with each other, right? If we can have a bit of a laugh about how stupid those other people are? And it doesn’t do any harm, because they’re not in the room. They don’t know we’re laughing at them. No, they don’t. But you do. I do. Everyone else in the room does. I’m certainly not the only person thinking, I must make sure I don’t become the next butt of the jokes. Instantly feeling stupid, as I consider all the things I don’t know enough about.

The worst thing about this is, I’m likely to handle this problem by taking steps to hide my ignorance. I’ll join in the next round of laughter extra loud, to prove I’m one of you clever people and not one of those stupid ones. I won’t ask questions to clarify crucial details. And I will find myself increasingly…

Talking in jargon

This is another one that can help us to bond with each other and feel clever, but it comes at the cost of making others feel stupid. Every time you make assumptions about what jargon others will understand, or even worse, judge them for not knowing the same jargon as you, you make it less likely they’ll ask for clarification. It becomes more likely that gaps in communication will widen, and your product will not behave the way people expect or need it to behave.

And of course, not only do people avoid asking for clarification, they take active steps towards…

Hiding a lack of knowledge

Of course we all do this. We avoid “asking stupid questions.” We exaggerate what we know in job interviews and on CVs. We don’t admit it when we find ourselves in meetings where we have little or no idea what anyone is talking about. It’s just self preservation, right?

The more we work in environments where knowledge is considered to be a good indicator of our colleagues’ proficiency, the more likely we’re not being honest with each other about what we know. The last time I was in the market for a new job, I reached a point where if I saw companies imply that they possessed advanced techniques for filtering out only the very best and rejecting the rest, I automatically rejected them. Because in those kinds of environments, people will go to advanced lengths to prove they are indeed the best… which means never admitting any weakness and therefore covering up the unavoidable fact that they don’t know everything.

Are these people happy and confident? No. They are likely peddling furiously underwater and permanently paranoid that someone will find them out… for what? For being stupid? Well yes, that’s what it feels like. But what they’re really in danger of revealing is their own basic humanity.

And of course, the kind of culture I’ve described above, the kind I came to deliberately avoid when looking for good companies to work for, is that of…

Gatekeeping

This is where we decide that we are special, and large swathes of the rest of the profession are not, and all we need is to perfect our formulas for identifying the pearls and rejecting the swine. And what does it do? Yep. It makes us all feel stupid, terrified as we are that we will come up against these standards and fall short.

Solutions

So, what can we do to address these problematic behaviours?

The Lucky 10,000

The Lucky 10,000 - comic by xkcd
https://xkcd.com/1053/

As described in xkcd’s excellent cartoon above, today’s lucky 10,000 will learn something exciting and new. And the rest of us have a choice: Embrace that journey and travel with them, or stand on the sidelines laughing at them for not having learnt it yet.

Making that decision to get excited about the learning our colleagues have yet to do, is about a lot more than individual choices in single moments. It’s about recognising that the range of knowledge in our industry is very wide. It’s wide, and it’s widening exponentially all the time. You could take two respected professionals with long successful careers, and find no overlap in their knowledge. Hell, you could find a busload of them with no overlap. It’s pointless to wring our hands over what people don’t know, and much more enlightening to embrace the learning of our colleagues and ourselves.

They don’t know as much as you think they do

Four circles, all with the same faces, but each rotated with a different one at the bottom. The following topics appear under the faces: Hadoop, iOS Native, AWS, AIOps, Recursion, Encryption, PySpark, SonarQube, Golang, Terraform, CentOS 7. The faces always look happy / confident, apart from the bottom one, which looks confused / distressed. The person at the bottom is feeling intimidated by the knowledge of all the others. But everyone has a turn at being confused.
The wheel of confusion

I use this series of graphics a lot in my talks. Here I show only four of the images, but it’s enough to illustrate the point: When you look at an internal message board where your colleagues are discussing a range of subjects, it’s tempting to think to yourself, “Oh my, all these people are so knowledgeable and confident on all of these subjects, and I don’t know about any of them.”

But of course each one of those people is only posting confidently about some of those topics, maybe only one each, and chances are you have posted knowledgeably yourself on at least one of them. And they are likely suffering the same worries and insecurities as you are, looking at each other — and you — and thinking how much less knowledgeable they are than everyone else.

You’re not doing anyone any favours — least of all yourself — when you assume people know more than they do. We can all benefit from being realistic about each other’s capabilities.

Be confident in your own ignorance

At the start of this piece, I talked about how I ran away from this industry in relief, glad to be laid off and determined never to return. But a few years later I found myself in need of a new job, and recognising that despite having not previously valued them, those twelve years of engineering experience were worth something to me.

I returned to this industry, but this time with a different approach. In the intervening years I’d been working for a lower salary as a high school maths teacher, so it wasn’t hard to return to technology at entry level, joining all the new computer science graduates and behaving as though as I was brand new. This gave me a new lease of life. I wasn’t pretending to know anything I didn’t, but I was excited and eager to learn. I let go of any shame and made a point of asking simple questions.

Of course those previous twelve years did count for something, and it wasn’t long before I found myself in senior leadership positions. And it was something of a revelation to me that the more open and confident I was about what I didn’t know, the more people respected me.

Not only did it help me to progress and learn quickly, it also helped those around me to do the same. When senior figures ask simple questions and show no shame about what they don’t know, everyone around them is empowered to do the same. Everyone feels less stupid, and their knowledge and competence increase more quickly as a result.

Happy cat, curled up on a rug and smiling.
Happy cat!

I’ll leave you with what I call…

The Stupidity Manifesto

[If you’d like to sign the manifesto, you can do that here.]

LET’S STOP MAKING EACH OTHER FEEL STUPID. Instead, let’s…

  • ENCOURAGE EVERYONE TO ASK QUESTIONS
  • Lead by example: Be honest when we’re confused
  • Value curiosity over knowledge
  • Prioritise clarity over jargon
  • Remember we all forget stuff
  • Get excited about teaching and learning
  • Acknowledge the broad range of knowledge in our industry, and avoid judging someone if their knowledge doesn’t match ours
  • LET’S STOP MAKING EACH OTHER FEEL STUPID.

If you’d like to sign the manifesto, you can do that here.

Need help rediscovering your geek joy?

Tips on Organising Hack Days / Hackathons

Caroline on Twitter asked “Currently researching “how to put on a data hack day” Any tips?”

Here is my very notey response, mostly based on my experience as (a) participant at Hack  Manchester (RIP) and (b) being a judge myself at various different events over the years.

  • Think about the comfort of the participants – both physical and emotional.
  • How can you be welcoming and supportive?
  • Give them the opportunity to solve real-world problems but with a lot of scope for creativity.
  • Give them a choice of different challenges.
  • Don’t expect judges to do full code reviews (too time consuming) – judge by presented results instead.
  • Ask participants to present their results in an easy to digest format (to streamline the judges’ job).
  • Let people present vision as well as working results (it’s hard to get things fully functional in a short space of time).
  • Recruit helpers to give a hand when participants are stuck.
  • When recruiting helpers, emphasise they do NOT have to know all the answers. Their job is to help people seek solutions, not provide solutions themselves.
  • Have a v strict time limit for final presentations. How many teams do you have? How long will presentations take overall if (eg) you give them 2 mins each and allow extra for changeovers? Is that too much?
  • You’ll be surprised how much people can present in even 1 min. Let them know in advance that time limits will be strict. Cut them off if they overrun.
  • One great approach if you have a v big event is to get them to create a 1-min video each, to be watched separately by judges.
Let’s Stop Making People Feel Stupid – Talk Notes

Let’s Stop Making People Feel Stupid – Talk Notes

Intro here.

These are the notes (and some cat pictures) from the first iteration of this talk, which I’ve now delivered in a few places. There’s a recording of the talk here. You can see details of when I have delivered / will deliver it here.

confused-cat-7-im-confus

Making people feel stupid: What does it mean?

  • People listen to what others say.
    • They overhear them judging people for not being clever enough or not knowing enough.
    • They internalise it. They worry that they will be next.

What’s wrong with me?

  • Maybe you’re quietly judging me already. Maybe you’re thinking, she’s probably not very clever and doesn’t like it when she gets exposed.
  • Maybe you’re right! I often think that about myself. But I have a maths degree, 18 years experience, I’m a tech lead with a major international consultancy, etc.
  • So, that was me imagining that you might judge me for being stupid. Maybe you did and maybe you didn’t. But the point is, I imagined that you would. Because I’m so used to people in tech judging each other for being stupid.

My story

  • I’ve always felt there was something wrong with me because I struggle to understand things unless they’re explained in simple concrete terms.
    • And yet I can do complexity.
    • I can build complex systems out of simple parts.
      • If anything, my flaw is a tendency towards too much complexity.
      • …which is why I deliberately break things down into simple parts.
      • …but I also forget complex terminology – I recall easier-to-remember equivalents instead.
    • I have missed out on jobs because people were bemused by my apparent lack of expertise.
      • I have been told in interviews that I wasn’t competent because I couldn’t respond to the kind of question that requires you to have memorised stuff.

The Impact:

Impact on the industry

  • Facts, Figures, Statistics:
    • There will be an estimated 1 million more computing jobs than applicants who can fill them by 2020. This figure was projected by Code.org, based on estimates from the U.S. Bureau of Labor Statistics on job creation and separately, estimates of college graduation rates by the National Science Foundation.
    • Only 11% of employers (US) believe higher education is “very effective” in readying graduates to meet skills needed in their organisations.
    • Some 62% (US) said students were unprepared.
    • US: There are more than 500,000 open computing jobs nationwide, but less than 43,000 computer science students graduated into the workforce in 2016.
    • In 2016, the White House claimed the federal government alone needed an additional 10,000 IT and cybersecurity professionals.
    • Source, March 28th 2017: https://www.usatoday.com/story/tech/talkingtech/2017/03/28/tech-skills-gap-huge-graduates-survey-says/99587888/

Impostor syndrome

  • Hands up if you feel like other people are cleverer / doing things better than you?
    • Impostor syndrome: “Somehow everybody has failed to notice how rubbish I am.”
  • I hate – am almost incapable of – playing the game where everything is obfuscated and translated into a language that only the elite can understand.
    • Ironically this means that my impostor syndrome is at least partially based around the fact that I don’t seem capable of doing the things that entrench everybody else’s impostor syndrome.
  • I can hit the ground running, but I keep forgetting.
    • I have to prove it to myself over and over again.

Scenario A: Meeting where people talk jargon & nobody understands

  • Me: Hi, sorry I’m late.
  • Them: It’s fine, we were just talking about the ARM processor.
  • Me: Ah right, yes of course.
    • Shit, ARM, I know I’ve heard of that before. ARM, um…
    • [some stuff I don’t hear cos I’m trying to remember what ARM stands for]
  • Me: “Look folks, I’m so sorry, but I’ve forgotten what ARM stands for?”
  • Them: “Articulated retention matriculation.”
    • Me: I have NO idea what that is. I’ll work it out as I go along.
  • Somebody else: Actually guys, I think we should be considering AMRM at this point.
  • Me: AMRM?
  • Reply: Articulated meta-retention matriculation.
  • [someone else, not me]
    • That’s a very good point! We definitely need to get meta at this juncture.
    • Oh God, I was only just following this, but now they’ve lost me. Meta? What does meta mean in this context? What does meta mean in any context? It’s one of those terms that always confuses me, I know that much.
    • Oh well, I said juncture. I love saying juncture. It’s the perfect word for situations like this.
  • [some stuff that Person2 misses cos they’re worrying about what meta means]
  • Etc

Diversity and Inclusion

  • People want to fit in.
    • Two effects:
      • They use jargon to create a shared identity.
      • They feel bad if they feel like an outsider.
    • People will leave, or not join in the first place, because they feel excluded.
      • This disproportionately affects under-represented groups.
    • Stereotype threat: https://en.wikipedia.org/wiki/Stereotype_threat
      • “…men in STEM subject areas overestimate their own intelligence and credentials, underestimate the abilities of female colleagues, and that as a result, women themselves doubt their abilities — even when evidence says otherwise.”
      • Stereotype threat has been shown to reduce the performance of individuals who belong to negatively stereotyped groups.
      • If negative stereotypes are present regarding a specific group, group members are likely to become anxious about their performance, which may hinder their ability to perform at their maximum level. Importantly, the individual does not need to subscribe to the stereotype for it to be activated.
      • It is hypothesised that the mechanism through which anxiety (induced by the activation of the stereotype) decreases performance is by depleting working memory (especially the phonological aspects of the working memory system).

Talking in jargon

  • These insecurities cause people to increase the amount of jargon they use.
    • They want to prove how clever they are.
    • Their colleagues struggle to understand them, but they pretend they do, to avoid looking stupid…
  • Complex impenetrable language is what people deploy as a kind of force field
  • Weird vicious cycle: everybody obfuscates to protect themselves from potential exposure as somebody who doesn’t fully understand.
    • In the process they confuse everybody around them, who in turn become terrified that somebody is going to notice that they don’t fully understand what’s going on, so they join in the game, make everything they say sound complicated, and so the cycle continues.
  • There does come a point where you’ve been immersed in it for long enough that only some of it is confusing, and some/most of it makes sense.
    • That’s quite a kick!
    • You have to pay your dues to get to that point, and it feels good. You feel special.
    • So you pull the ladder up behind you.
    • You had to go up it, and so should everybody else.
    • You’re in the club now, and you want to savour that.
    • So you join with your new comrades in mocking those who still haven’t arrived.
    • You make no concessions in your language.
    • You’ve learnt what it means! It was hard! Why would you waste all that hard work and abandon your hard-won vocabulary by explaining things in simple terms?
    • Explaining things in simple terms takes twice as long anyway.
  • Giving the answer you think people want to hear:
    • The hairdresser asked me whether I had straighteners and I answered Yes. Why? Because I felt like it was the “right answer”. I don’t have straighteners. I’m never going to manage this labour-intensive haircut I’ve been given.

Scenario E: When talking jargon feels good

  • I felt all pleased with myself recently when I worked out how to join in with a hangouts conversation by using words like “discoverability” and “distinguishable”. I felt less insecure, and like I was now a proper grownup, a member of the club. But meanwhile there may well be somebody somewhere hearing nothing but “blah blah blah”…

Reasonable reasons

  • Is it sometimes ok?
    • “I can’t spend my whole time teaching people, I need people who can hit the ground running.”

Unreasonable reasons

  • Many people project a sheen of knowledge.
  • Many limit themselves by seeking to preserve knowledge once they find it.
  • People focus on their own experience – making themselves look good.
    • But when they look at someone else, they have a different agenda.
    • They don’t stop to wonder whether they have ever said anything “stupid” like that themselves – and if they did, WHY?
    • Or they remember it full well and don’t want anyone else to remember, so distract attention by joining in with the attackers.
  • We identify the things we CAN remember, then we fetishise them.
    • We push them over alternatives.
    • Not necessarily because they are better – just because we feel more comfortable there.

Definition of competent

  • What really impacts on you and your team?
    • Is it lack of knowledge?
  • What does it actually take to be good at your job?
    • What is the definition of competent?
    • What is the definition of intelligent?
    • “Be curious. Read widely. Try new things. What people call intelligence just boils down to curiosity.” – Aaron Schwartz.

People who are not techies are impacted too

  • Examples of support staff, stakeholders, non-technical people… being made to feel stupid.

My personal experience – the happy story

  • How I learnt to attack new knowledge outside my comfort zone.
    • The irony is that my career – and my enjoyment of it – has improved dramatically since I started admitting ignorance.

Why Empathy is so Important

  • “They only care about making themselves look good.”
    • This in itself is judgmental.
    • Think about how it feels like to be them!
  • You can find yourself alienating others without ever having conscious malicious intentions.
  • Other people know other stuff.
    • Two effects:
      • One: When they know stuff you don’t, you feel insecure.
      • Two: When you know stuff they don’t, you can get impatient.

Conclusions / Advice

  • Maybe you see me as an idealist. Or maybe I’m a pragmatist. Over the years I’ve paid attention to what works in life and what doesn’t. What makes people ill, what doesn’t. These are all practical hints for survival.
  • Does it actually matter how much people know? Industry constantly moving, people forget stuff.
  • Some of the most important moments in my career have been the times I’ve realised that my colleagues are also confused.
    • Eternal thanks to those that admitted it.
    • People are often scared to admit confusion.
    • I often don’t know what I’m doing.
  • The range of knowledge in our industry is VERY WIDE.
    • Don’t expect other people to know what you know, and vice versa.
  • People forget things they once knew.
  • If people don’t know enough, WHY is that? What’s deterring them?
  • What would happen if we changed the rules?
      • Focus on aptitude – recruitment becomes easier.
      • Encourage people to explore and experiment and learn WITHOUT RISK.
        • Stops people pushing less optimal solutions.
      • Make explicit statements to newcomers to your team, at start of meetings, etc – have a policy towards curiosity – keep repeating that simple questions are ok, that mistakes are ok, that if somebody doesn’t know something it’s in the interests of the whole team to help them learn. Plus, active encouragement to give feedback if these aims are not being met.
      • Tweet from Tim Post (@TinkerTim) re Stack Overflow:
        • “You can’t work on problems that you’re unwilling to admit. Wanting help often means being vulnerable enough to ask for it, and that’s where we are. Let’s keep making the internet better, without hurting people in the process.”
      • WE SHOULD ALL ENCOURAGE PEOPLE TO ASK QUESTIONS.

    The Stupid Manifesto

    LET’S STOP MAKING EACH OTHER FEEL STUPID. INSTEAD, LET’S…

    • Have an explicit policy of curiosity towards all things
    • Encourage each other to shout out if we discourage curiosity
    • Ask what people NEED to know, not what they know
    • Never judge someone because their knowledge doesn’t match ours
    • Give our colleagues every opportunity to learn and explore WITHOUT RISK
    • Give new people a chance to show us what they can do
    • ENCOURAGE EVERYONE TO ASK QUESTIONS
    • Acknowledge the broad range of knowledge in our industry
    • Remember our industry never stays the same
    • Remember we all forget stuff
    • Lead by example: Be honest when we’re confused
    • Focus on aptitude, not knowledge
    • Remember what it feels like when we are still learning
    • Prioritise clarity over jargon
    • Remember this is not idealism, it’s pragmatism
    • LET’S STOP MAKING EACH OTHER FEEL STUPID.

     

    Useful resources and references:

confused-cat-10-dafuq

Find the nth term of a Quadratic Sequence (Maths GCSE)

Find the nth term of a Quadratic Sequence (Maths GCSE)

I’m currently helping my 15-yr-old son revise for his maths GCSE, and one topic is “finding the nth term of a quadratic sequence”. I’m an ex high school maths teacher, but I had forgotten how to do this. I couldn’t find decent complex examples on either of my favourite GCSE maths revision sites (Maths Genie and BBC Bitesize), and when you’re doing the more complex examples, a step-by-step guide is really useful.

So I’m placing my notes here in case they’re any use to anyone else.

You’re aiming for a result of an2 + bn + c, but easier examples might have a solution of an2 + b, and even easier ones will just be an2.

Simplest Example (an2):

Find the nth term for the following quadratic sequence: 3, 12, 27, 48, …

First calculate the gaps between the numbers – these are 9, 15 and 21.

Then find the gaps between the gaps – these are 6 and 6. Like this:

nth-term-05

Take that 6 and divide it by 2 (it’s easy to forget to divide by 2!), to get 3. This tells you that your final result will contain the term 3n2.

I’ve already told you that this is a simple example – we’ve reached our solution: 3n2. But you should always check your results:

n 1 2 3 4
n2 1 4 9 16
3n2 3 12 27 48

Yup, that’s our original sequence.

More Complex Example (an2 + b):

Find the nth term for the following quadratic sequence: 1, 10, 25, 46, …

First calculate the gaps between the numbers – these are 9, 15 and 21.

Then find the gaps between the gaps – these are 6 and 6. Like this:

nth-term-04

Take that 6 and divide it by 2 (it’s easy to forget to divide by 2!), to get 3. This tells you that your final result will contain the term 3n2.

Create a grid, which starts with your original sequence. Below that, add whatever rows you need to help you calculate 3n2.

Now, subtract 3nfrom the original sequence. So in the below grid, we subtract the fourth row from the first row, and that gives us a new sequence, which we have placed in the fifth row:

start 1 10 25 46
n 1 2 3 4
n2 1 4 9 16
3n2 3 12 27 48
start minus 3n2 -2 -2 -2 -2

We now have a row of constant numbers. This tells us we can reach a solution. It tells us to add -2 to 3n2, and that will be our solution: 3n2 – 2.

We can easily check this by adding up the fourth and fifth rows, which gives us the first row (the original sequence).

Most Complex Example (an2 + bn + c):

Find the nth term for the following quadratic sequence: -8, 2, 16, 34, …

First calculate the gaps between the numbers – these are 10, 14 and 18.

Then find the gaps between the gaps – these are 4 and 4. Like this:

nth-term-03

Take that 4 and divide it by 2 (it’s easy to forget to divide by 2!), to get 2. This tells you that your final result will contain the term 2n2.

Create a grid, which starts with your original sequence. Below that, add whatever rows you need to help you calculate 2n2.

Now, subtract 2nfrom the original sequence. So in the below grid, we subtract the fourth row from the first row, and that gives us a new sequence, which we have placed in the fifth row:

start -8 2 16 34
n 1 2 3 4
n2 1 4 9 16
2n2 2 8 18 32
start minus 2n2 -10 -6 -2 2

We don’t have a row of constant numbers yet, so we need to keep working. We need to look at the gaps between the numbers in our new sequence (in the bottom row of the table):

nth-term-06

Now we have found a constant difference. This tells us that there will be a 4n in our answer. Note that this is because we have found a linear sequence. Note also that in the case of a linear sequence, we do NOT divide the number by 2.

So now we add some more rows to our grid. First we calculate 4n, and then we calculate 2n+ 4n. Finally we subtract (2n+ 4n) from our original sequence (subtract the 7th row from the first row):

start -8 2 16 34
n 1 2 3 4
n2 1 4 9 16
2n2 2 8 18 32
start minus 2n2 -10 -6 -2 2
4n 4 8 12 16
2n+ 4n 6 16 30 48
start minus (2n+ 4n) -14 -14 -14 -14

We now have a row of constant numbers. This tells us we can reach a solution. It tells us to add -14 to 2n+ 4n, and that will be our solution: 2n+ 4n – 14.

We can easily check this by adding up the seventh and eighth rows, which gives us the first row (the original sequence).

More worked complex examples

nth-term-01

Note that in this next one there is a NEGATIVE difference between the terms of the sequence on row 5. This one can easily catch you out. Rather than thinking of the difference between the numbers, it helps to ask yourself, “how do I get from each term to the next one?” The answer in this case is, “subtract one”. This one can also look a little tricky because it contains fractional numbers, but you just follow the same rules as before:

nth-term-07

Telling the Difference Between a Linear Sequence (an + b) and a Quadratic Sequence (an2 + bn + c).

When we calculate gaps between the numbers in the sequence, if the first level of gaps is constant, this means it is a linear sequence:

nth-term-06

If the second layer of gaps is constant, it is a quadratic sequence:

nth-term-03

How to Tie Your Shoelaces

How to Tie Your Shoelaces

Tl;dr: This video, accompanied by these diagrams, worked the best for us.

Up until last week, my ten-year-old couldn’t quite tie a shoelace. These days you can easily get away with it, because apart from walking boots, most kids’ shoes don’t have laces. But his new school shoes have laces. So it’s time for us to get this sorted.

I enjoy teaching, but there is this thing called “Expert-Induced Amnesia“. It’s about that skill you’ve had for so long, you don’t know how you do it. When you try to teach it to other people, you struggle. As a parent, I’ve been starkly reminded of this in two examples: One is riding a bike, and the other is tying your shoelaces.

Teaching a child to ride a bike is extra hard, because you know at some point you’ll have to let go and hope for the best. And have the band-aid ready. But the shoelaces thing… maybe it’s just me, but wow, I found it hard to explain what I do and how I do it. My fingers just know. I don’t think about it. It’s muscle memory. And as soon as I try to slow it down and explain it, I can’t even remember what to do. I can only do it quickly, in a blur.

Also, learners need to practice repeatedly to get it right. Explaining this repeatedly can get wearing, particularly as most of the teaching opportunities come when you’re in a hurry to get out the door, and really you just want the shoes on the feet, with minimal fuss.

One of the hardest parts of teaching is patience. Resisting the urge to do it for them. “Oh, I’ll show you,” you say. You think you’re being helpful, but really you’re just being impatient. They need to do it for themselves.

That was a ridiculously long preamble.

The original version of this post was based on a series of diagrams I drew for my sons, to teach them how to tie their shoelaces the way I learnt. But then people showed me two videos which claim to teach revolutionary new shoelace-tying methods which are super-easy to learn.

A video my son and I failed to follow

The second video was supposedly even better than the first, and therefore my 10-yr-old son and I started there:

We played this video, rewound the crucial bit, played it again, rewound it…

Half an hour later, we were none the wiser. The crucial instruction, “pinch both of them and pull” is accompanied by a blur of activity, and no matter how much we watched it, we couldn’t make head or tail of it. My main problem was that if both hands were holding the bits of lace we were directed to hold, then the fingers got in each other’s way and it wasn’t possibly for both of them to pull. Even if we briefly let go with one hand, we got nowhere. It was frustrating as hell but in the end we gave up and had a look at this video instead:

A video my son and I got our heads around in the end

This one had a similar sticking point – “Feed them through each other’s loops”. Again, we had to rewind a few times and replay. Neither of us could work out which bit went through which bit. One problem is that both of these videos are shot from the point of view of a spectator, NOT from the view of the person tying the knot.

In the end I worked out what was going on and added this one extra instruction for myself and my son, and finally we both got it: After you have created the two loops, when you get to the “pull the loops through each other” part, you will have two loops facing you. At this point, one pair of fingers should grab the front of the other hand’s loop. The other hand should grab the back part of the opposite loop. Then each hand pulls the part it holds, through its own loop.

Oh, and that first video is describing the same technique. If you imagine yourself grabbing the front and the back of each loop and pulling it through, and if you turn the “zigzag” into two loops, you can make it work. That’s the only way I managed to make sense of it, but maybe my brain is just broken.

Some really good diagrams

This set of diagrams here is really good, and shows the knot from the knot-tyer’s perspective: https://www.fieggen.com/shoelace/ianknot.htm

My original diagrams

The original version of this post was based on the diagrams I drew below, and I have to confess I’m rather proud of my lovely diagrams. So I’m going to leave the rest of this post in place, despite the fact that I now think the Ian Knot (above) is a better technique. Oh well.

I forced myself to sit down and work it out, step by step. Then I drew diagrams and stuck them to a piece of card with laces attached. Then I gave it to my eldest son and left him to practice on his own. And now it’s my youngest son’s turn, so I dug the card out again (which is why it looks all tatty and old).

And here it is. Apologies for the tattiness. But just in case you’re teaching somebody to tie shoelaces, or learning to do it yourself… here are some diagrams that just might help.

(Also, apologies if you thought this was going to culminate in some fantastic metaphor, where the laces represent the meaning of life, the universe and everything. It really is a post about shoelaces.)

IMG_5445

IMG_5447

IMG_5448

Let’s Stop Making People Feel Stupid – Call to Action

Let’s Stop Making People Feel Stupid – Call to Action

(Image / comic by xkcd: https://xkcd.com/1053/)

This was originally the submission for a talk which I’ve now delivered in a few places. There’s a recording of the talk here.

“I know nothing.”

“I know less than nothing.”

“I am an impostor.”

“The more I learn, the more I realise how little I know.”

These are sentences that will be familiar to the vast majority of IT professionals. But how about these?

“They know nothing about X.”

“They have no relevant experience.”

“Wow, I just discovered my colleague doesn’t understand Y. I’m shocked.”

“Can you believe, I just interviewed this dev, and they didn’t even know what a Z was?”

Over my 18-year software career, those last two have been said to me countless times. They are said derisively, scornfully, impatiently. And every time those words are said, we lose both existing and potential members of our profession. We lose them because they feel stupid; because they believe they can’t keep up; because they have given up on ever really knowing what they’re doing; because they’re terrified that people are saying the same things about them.

We work in an industry where knowledge is highly valued, and where every time we look for a new job we have to prove how much we know. We find ways of posturing to one another, of proving how well-informed we are. Sometimes we join in when others’ knowledge is criticised – relieved that we are not the target ourselves.

And yet, we know that everybody has gaps. There are a million different paths through software development, touching a million different combinations of technologies and skills. On a day-to-day level we have to specialise on one task at a time. The skills we don’t need right now are necessarily forgotten, or delegated to someone else. And that’s fine.

If somebody already feels like they don’t “fit in”, then this kind of pressure and insecurity can be the final shove that persuades them to leave the profession or not try and join in the first place. Women and non-binary people, people of colour, older people, LGBT people and many other under-represented groups are strongly impacted by intellectual elitism. But of course, ALL software professionals are impacted.

Let’s stop putting pressure on individuals to know everything, and focus instead on how teams can work together to build and provide the unique combination of skills required to deliver their current project – in the certain knowledge that whatever that combination was today, it will be different tomorrow.

Instead of knowledge, let’s focus on aptitude. Instead of judging people about what they don’t know, let’s help them to feel excited about all the new things they’re going to discover.

Instead of saying “For God’s sake, do you really not know about X?” let’s say “Fantastic, you don’t know about X! Lucky you. That means you get to learn it. What can I do to help?”

(I’m hoping to do talks on this topic at events in 2018 – let me know if you have an event you’d like me to talk at).

Fighting Procrastination (in solidarity with all teachers everywhere)

Fighting Procrastination (in solidarity with all teachers everywhere)

I used to be a high school maths teacher. It didn’t go well. I miss the energy and creativity of the young people I worked with, but apart from that I have no regrets about leaving that profession behind me.

A friend of mine has just completed his first term of teacher training, and it’s HARD. You would think that now the Christmas holiday period has started, he’d be able to have a rest. Nuh-uh. Too much work to do.

Coincidentally I’ve also been facing a giant to-do list this week, and with the festive season fast approaching I’ve struggled to stay focused. But I have various coping mechanisms, which I just shared with my teaching friend and I thought were worth preserving for my own benefit too. And if they can help anyone else (particularly teachers), so much the better:

“What you have to remember is that you’ve been working flat out for months without even the option of slowing down. Whether you like it or not, your mind and body need a rest and what’s happening right now is that your subconscious is forcing that rest on you whether you like it or not. Sadly your conscious mind knows that there isn’t really time for that rest, and that’s preventing you from enjoying it – which is a shame.

So…

1) Accept right now that the workload is impossible. Therefore it’s either not all going to get done, or some of it will have to be done to a poor standard. There’s no point lying to yourself about that. You can’t bend time. You and thousands of other teachers are in the same position and you just have to accept it.

2) Given that you’re not going to get all of it done anyway, just pick TWO OR THREE SMALL THINGS and do those. Be unambitious. Don’t tell yourself “today I’m going to do the top 50 things on my to-do list,” because that’s a lie. You’re not going to achieve that, no matter how much you hope. And you already feel shit about that, and the whole thing is so depressing that it’s preventing you from doing anything.

Instead, aim low. Tell yourself you’re going to do a small number of things. Then do them, and feel good about having achieved your goals for the day. If that glow of success gives you the energy to do a little more, fantastic. But don’t plan for that, otherwise you’re back to square one.

Baby steps. You need to get back into a rhythm. If somebody gives you a mountain to climb when you’ve just eaten ten mince pies, you’re going to tell them to sod off. But a flight of stairs? Yeah. That’s a possibility.”

POSTSCRIPT:

I just did something which I realised I often do, and may also be good advice:

I scrolled down my to-do list until I found something I could easily do. The thing in question is pretty pointless and not at all urgent. It can easily wait til after Xmas and the world wouldn’t end if I never got round to it at all. But it’s a gateway drug. It’s not only easy, it’s vaguely enjoyable. And I know that it represents an “in”, ie once I’ve done that, I’ll be in the swing of Getting Things Done and I’ll find it easier to tackle a more worthwhile item from the list.

I know from experience that if I don’t do this, I’ll just arse around on the internet and do nothing from my to-do list. So it’s better to do something slightly pointless, but knowing I’ll find it much easier to follow it with something pointful… than to do nothing at all.

Advice for women (or anyone!) starting a career in tech

Advice for women (or anyone!) starting a career in tech

(a series of tweets originally sent to @ArrieLay and stored here for posterity…)

Fake it til you make it. Always act like you know what you’re doing, cos You DO – You’re being imperfect, just like everyone else.

Pay attention to people. Focus on empathy. Learn to pair. Learn to collaborate. Celebrate and enable your fellow team members.

Always come to work as yourself. Don’t be afraid to show vulnerabilities, and give others space to show theirs too.

Take risks. Relish your uncomfort zone.

Remember that EVERYBODY feels insecure about their knowledge levels. It’s impossible to know everything, and everybody thinks they are disadvantaged because others know more than them.

Learn to embrace your knowledge gaps. See them as exciting opportunities to learn more. Never be ashamed of them.

Have a questioning attitude, be open about your excitement about learning more. People respond well to it and will help you learn.

Question everything.

Love people. Even the annoying ones. People are great. People are useful. People will help you, whether they mean to or not. 🙂

And for the older amongst us… Age is an advantage, not a curse. Find the wisdom you forgot you had. Age is money in the bank.

Here are some links to some helpful resources for women (or anyone) arriving at or returning to careers in tech: https://insimpleterms.blog/2017/10/13/resources-for-women-arriving-at-or-returning-to-it/

Resources for Women (and Everyone Else) Arriving at or Returning to IT

Resources for Women (and Everyone Else) Arriving at or Returning to IT

Just a bunch of links really, but hopefully useful (scroll down to the end for a bunch of really useful online resources for people learning to code)…

Women returners:

Black females:

  • https://codingblackfemales.com/

Mums in technology: 

Tech Mums: 

Equate Scotland: 

13 places where women can learn to code: https://learntocodewith.me/posts/13-places-women-learn-code/

Code First Girls: https://codefirstgirls.typeform.com/to/ks4bsj

Code First Girls professional courses: http://www.codefirstgirls.org.uk/female-professionals.html

Offline resources: