Tag Archives: feeling inadequate

A breakout group at the Boston Python Workshop work at laptops around a table

– the anxiety of learning and how I am beating it

Beating learn-to-program anxiety with good gamification and courses

I have anxiety about learning technical skills. I wrote about this a little while back. But now I know more about how I learn, and, in bits and snatches, I am gaining proficiency and confidence. Here’s a summary of my journey over the last several months with learning more programming skills (in this case, mostly in Python), with links to some resources in case you’re like me.

I get anxious when learning skills that I think I should already know; I feel behind and guilty. Structure, little rewards, friendly sociability, and encouragement from other women help tremendously. Tedra Osell writes about this in the context of writer’s block, and FlyLady and Cheryl Mendelson’s Home Comforts speak to that problem in learning to keep a comfortable home; the people and resources I mention (CodeLesson, OpenHatch’s Boston Python Workshop for women and their friends, CodingBat, and the Python Challenge) provide many of the stimuli I need. Also, my anxiety spikes if I think I am supposed to compare my speed or quality of work with others (hence my post’s title), but cools down if I see evidence that someone else wants to patiently help me. These resources helped me learn without pushing my “argh everyone’s better than me” buttons.

So, first: CodeLesson. The vintage and handmade store Etsy ran a free four-week online course in HTML, CSS, JavaScript, and the Etsy API. Hundreds of people signed up; I got on the waitlist, and eventually did three of the weeks in September and October. (I then had a big crunch week at work and didn’t finish, but I intend to finish that last week’s work anyway, to learn animation and pagination in jQuery.) It was exactly what I wanted — well-written tutorials and exercises to get me over the initial hump. I now know a little CSS, JavaScript, and jQuery, which is infinity percent more than I knew before. I had lots of fist-pump “Yay, I made it work!” moments. And the instructor’s praise of my work helped; I’m a social animal, and recognition and praise from instructors helps reassure me that I’m on the right track.

Thanks to Etsy for the free class. And I liked the CodeLesson interface and infrastructure enough that I may pay for additional CodeLesson classes, or get my organization to follow Etsy’s lead and offer classes through them to increase our users’ skills.

A couple months later, I had a chance to attend OpenHatch’s intro-to-Python workshop specifically meant for women and their friends. I’d read about these before, on GeekFeminism and elsewhere, and it sounded like it would fit how I learn as well as help me plan to hold similar events in my community. So, on a Friday in December, I took the bus from New York City to Boston.

An instructor looks at a student's laptop at the Boston Python Workshop

An instructor looks at a student's laptop at the Boston Python Workshop

It’s a good thing that the Friday night prep part was three hours and that I already knew a bunch of stuff that other people were new to (familiarity with the command line & the Python prompt, etc.) since I was an hour late! It was good to fix the syntax-y bits in my mind. The CodingBat exercises were great practice and I got a big triumphant fist-raised feeling when all those unit tests passed.

In between sessions, I chatted with some of the people who run the program. It sounds like each individual run of it costs about $300 for lunch for everyone and that’s practically it, since they use volunteers and the venue time is donated (and then like $10 total for pens/sticky nametags/laser-printed “here’s the workshop” signs/etc.). That’s practically out-of-pocket for a tech community, and they get grants. So it’s totally replicable. I’ve been reminded that it’s important to treat these kinds of workshops more like a community introduction than as standalone events; local user groups and communities should be the teachers, and email blasts and encouragement should integrate participants into their local hobbyist groups.

Saturday morning’s lecture included some review of stuff I knew, but it went fast enough that I was still learning most of the time — like, how to ask for the nth character in a string, or how for-loops quite work, some subtleties of scope, etc.

Then the project bits — the teachers and their presentations weren’t quite as polished as Jessica McKellar, who had led the earlier parts of the workshop. But I still learned a lot and got to make cool things happen using, say, the Twitter API, and that was very neat. As designed, the workshop led me through small, basic exercises first (the equivalent of finger exercises in piano), then showed off visually satisfying things we could do with Python and its ecosystem.

Aside from tiny minor delays, the workshop basically ran like a Swiss watch the whole time. I was impressed. It takes a lot of preparation, skill, and practice to make an event like that go so smoothly and teach so many people; congrats to the workshop volunteers! And I’m glad I went, learned and remembered Python, and got more confidence to attempt projects.  On a community management level, I’m also massively grateful that I’ve seen firsthand an example of how we can construct and maintain these parts of the pipeline, to help more girls and women get into STEM.

The workshop so excited me that I then did all the Python exercises on CodingBat, and started Python Challenge (I’m at step 4 or 5 right now). They’re complementary. They both gamify learning, and you don’t have to look at how other people are doing, and they both have somewhat granular ways of kindly telling you when you’ve done something slightly wrong. With CodingBat it’s the unit tests, which go from red to green when you cover another edge case. In Python Challenge, for example, at one point I went to a URL where I had transformed the filename from the previous URL per a transformation hinted at in the challenge. The URL had ended in .html, and after the decryption, it ended in the extension (making this up to avoid spoilers) “.ywnb”. At that address was a text file that the server signalled you should download. I downloaded and opened it and it just said, “have you ever heard of .ywnb files?!” or something like that, implying basically that I shouldn’t have transformed the file extension, just the filename. So, it didn’t just fail, it gave me a nicely furnished dead end, signalling kindly but playfully that I had done something understandably wrong.

Screenshot of two progress graphs from CodingBat

Progress graphs from CodingBat, showing my attempts to solve two problems; the green portions are unit tests that passed, and the red and pink portions are unit tests failing. The exercise "String-2 end_other" took me a while, but I got it.

There’s probably some game design term for this kind of compassionate railroading, but it makes me think of the caring side of the caring-to-combative community spectrum. And in both cases I got that feeling of being nurtured by someone who cared, even if that someone else is Nick Parlante (CodingBat’s author), years ago and a continent away.

Also, CodingBat is pretty clear about how you solve any given problem (declaring that this set of problems is about lists and only 1 layer of for-loops, or what have you), whereas in the Python Challenge you have a puzzle that you know you can solve with Python but that you can hit a bunch of different ways. If you want an experience with arguably more realistic exercises, the author of CodingBat also made the Google intro to Python, which includes exercises along the lines of “munge the semistructured data in this file with these guidelines.” I intend on doing that this year.

Python Challenge logo

Python Challenge is mysterious, yet friendly.

It was good to have my spouse Leonard nearby to help me when I was working on the Python Challenge, to (for example) help see that I had called a variable inconsistently, to notice that I couldn’t import a file as a module because I’d named it “1” instead of something starting with a letter, to remind me how to learn of (“dir(filename)”) and then use (“filename.function”) the functions within it, to tell me about string.replace, and to tell me how to use the interactive prompt properly to investigate how you call a method on an object of whatever type. But I did nearly all the work myself. And as of today I feel a lot more comfortable using for-loops, knowing what data structures to use for a problem (I decided to use a dictionary datatype the other day! And it worked! So exciting!), getting stuff in and out of dictionaries, and generally thinking “I can learn this!” Data structures and algorithms had felt mystifying to me. Now data structures no longer do. I remember the moment in Python challenge when I thought, “I’ll use a dictionary!” and I was right! It’s great.

CodeLesson, CodingBat, the Python Challenge, Leonard available for occasional consultation, and the Boston workshop are the dance partners I needed.

I’ve just begun CodeAcademy and stalled (as with all the rest of my learning-to-code endeavors) due to lack of time, as my job is pretty absorbing right now. (Worth a skim: Scott Gray’s thoughts on CodeAcademy.) I also haven’t tried Philip Guo’s online Python tutor which may suit me better since I’m more interested in Python than JavaScript right now. But I thought it might help others to talk about my journey so far.

Three women in Dalek costumes attacking an inflatable Tardis

Re-post: On competence, confidence, pernicious socialization, recursion, and tricking yourself

During the December/January slowdown, Geek Feminism is re-publishing some of our highlights from earlier in the year. This post originally appeared on January 20, 2011.

The other night I went to a hacking meetup for the first time in months. It’s usually an informal Python learnfest, and as I’m refreshing my Python basics, I went with the assumption that I’d be the least technically skilled person there. Like, of course, right?

The hacking meetup that night was, as it turns out, an installfest, so I ended up generally poking around at the software being demonstrated, and conversing with strangers. One in particular caught my attention with a fairly ill-formed question: what meetups should he visit to learn how to make websites?

Over the next hour, as I answered his questions, it became clear that he just didn’t know much, compared to me, about software engineering, or about the wider world of technology or the web. He’s in the second year of a computer information systems bachelor’s degree, and knows his way around a little Java (of which I am wholly illiterate). He didn’t know about the LAMP stack, or about Drupal or Rails or Django (or why one might choose PHP versus Ruby versus Python versus Java versus pick-your-web-friendly-language). He didn’t know that these tools exist, or why one would use a framework or pre-existing CMS rather than coding “everything” oneself. He has never heard of bug trackers, or source control, or diff. He said he did not know what a wiki was (I scarcely believed this, and told him that Wikipedia is a wiki).

As a side note: I gathered that his entire career trajectory and curriculum comes not even from conventional wisdom, but from “I once heard someone say.” Examples: “Why are you doing CIS instead of CS?” “Someone told me that CS majors get outsourced.” Or, more boggling: “Someone told me Python is useless.”

From one perspective, this guy has more technical merit than I do. He has taken an algorithms class. He can probably do a job interview coding question better than I can (reverse the characters in this string, etc.). But I have a fair amount of wisdom he lacks, full stop.

Then there was the guy who was interviewing me to work at his startup. As we walked, he offhandedly mentioned his current project at his day job: a PHP web app needed to be able to turn user markup into HTML. “And you’ve already checked whether MediaWiki has something you can grab, right?” I asked. He stopped in his tracks. No, he had not thought of that.

I need to stop assuming that everyone else knows more about the tech than I do.

We’ve talked a fair amount here at Geek Feminism about impostor syndrome and sexism (my past post). I’m just going to start with a few postulates:

  • In sexist societies, women get especially socialized to think we’re not as intellectually capable as we are, and to act self-deprecating about our abilities
  • In technical spaces where women are the minority, sexists dismiss our successes and concentrate on our missteps

Regarding the latter, I recently reread Abi Sutherland’s “Permission to Suck”, which included a moment of a familiar self-flagellation:

…every achievement is just a mitigation of the disservice I’m doing womankind.

It’s as though my goalposts came on casters to make them easier to move

But of course that is an error in judgment. Our sense of our own merit gets calibrated by feedback from the outside world, but sexism and impostor syndrome get in the way of that calibration. All the tentacles of this issue — the prejudice, the tokenization, the distorted self-perception, the discounting of one’s achievements and comparative lionization of others’ — bother me because they mess with proper judgment.

On an emotional level, I especially hate that anything is interfering with my data-collection and judgment. I am the kind of person who delayed drinking alcohol and took notes the first time she drank, to record any degradation in perceptions and prudence. I delayed getting a credit card till I’d supported myself for more than a year, partially to ensure that I had the correct attitude to judging purchases & debt. And here is this thing, clogging and fogging my mind, which I know is a lie, but which does not go away even when I speak its true name and snap three times.

Recursion Dinosaur

RECURSION DINOSAUR

And a poisonous effect of the socialization is that it turns women’s conversations about the problem into yet another self-deprecation exercise.

“I hate myself for hating myself so much”

“oh god you’re awesome, I have worse impostor syndrome than you”

“No way, your self-confidence is admirable”

“I’m meta-shit”

RECURSION DINOSAUR rawwwrrraaaawr

So I seek lessons and tactics on how to become a less irritating person to my friends, and a more useful and capable person going forward. Some assorted thoughts and ideas:

Five ways you can feel as competent as you really are

  1. Everything in Terri’s earlier advice, especially a shield of arrogance.

    I’m not saying you need a thick skin. That’s maybe true, but it won’t help your confidence nearly as much as the ability to say, “screw you; I’m awesome.” Shield of arrogance it is.

    If you are worried about being confidently wrong sometimes, note that a small increase in confident wrong assertions is a small price to pay for a big increase in capability, correct assertions, momentum, and achievement.

  2. Know that sometimes thoughts come from feelings, not the other way around. The “I suck” feeling does not necessarily have a basis, just as good weather and ephemeral physiology can put you on top of the world. Instead of looking for reasons that you feel mildly down or incapable, consider disregarding them, acting, and seeing if your feelings dissipate.
  3. If you feel compelled to go from success to success, you may not be risking enough. As these entrepreneurs do, try assuming that you will fail the first time you try something.
  4. Every endeavor that anyone has ever done is therefore in some sense No Big Deal, that is, doable. Some people make the hard look easy, but experience and effort make for far greater variation than does innate ability — or, at least, isn’t it more useful to assume so? Watch other people succeed, and watch other people fail. Mere life experience helped me out here, but so did Project Runway, where I saw good people trying and failing every single week. And so did seeing these guys, at the meetup, at the job interview, being dumber than me. I just had to keep my eyes open and it happened, because I am smarter than the average bear.
  5. Notice the things you know. A friend of mine recently mentioned to me that she worries that people perceive her as incompetent if she asks more than two questions about a hard problem via her company’s internal IRC channel. I asked her to compare how many questions she asks and answers on IRC each day. She hadn’t even been considering that ratio, because she’d unthinkingly assumed that what she knew must be basic, and blabbing about the stuff she already knows is easy and natural and unremarkable. But upon consideration, she’s a good peer in that informational ecology, seeding more than she leeches.

This is all corollary to my earlier injunction to make irrationality work for you. We are all monkeys, seizing on narratives and any status signals we can find. Don’t keep the default sexist irrational assumptions get in the way of your confidence-competence virtuous circle. Make your own recursion dinosaur of win.

On competence, confidence, pernicious socialization, recursion, and tricking yourself

The other night I went to a hacking meetup for the first time in months. It’s usually an informal Python learnfest, and as I’m refreshing my Python basics, I went with the assumption that I’d be the least technically skilled person there. Like, of course, right?

The hacking meetup that night was, as it turns out, an installfest, so I ended up generally poking around at the software being demonstrated, and conversing with strangers. One in particular caught my attention with a fairly ill-formed question: what meetups should he visit to learn how to make websites?

Over the next hour, as I answered his questions, it became clear that he just didn’t know much, compared to me, about software engineering, or about the wider world of technology or the web. He’s in the second year of a computer information systems bachelor’s degree, and knows his way around a little Java (of which I am wholly illiterate). He didn’t know about the LAMP stack, or about Drupal or Rails or Django (or why one might choose PHP versus Ruby versus Python versus Java versus pick-your-web-friendly-language). He didn’t know that these tools exist, or why one would use a framework or pre-existing CMS rather than coding “everything” oneself. He has never heard of bug trackers, or source control, or diff. He said he did not know what a wiki was (I scarcely believed this, and told him that Wikipedia is a wiki).

As a side note: I gathered that his entire career trajectory and curriculum comes not even from conventional wisdom, but from “I once heard someone say.” Examples: “Why are you doing CIS instead of CS?” “Someone told me that CS majors get outsourced.” Or, more boggling: “Someone told me Python is useless.”

From one perspective, this guy has more technical merit than I do. He has taken an algorithms class. He can probably do a job interview coding question better than I can (reverse the characters in this string, etc.). But I have a fair amount of wisdom he lacks, full stop.

Then there was the guy who was interviewing me to work at his startup. As we walked, he offhandedly mentioned his current project at his day job: a PHP web app needed to be able to turn user markup into HTML. “And you’ve already checked whether MediaWiki has something you can grab, right?” I asked. He stopped in his tracks. No, he had not thought of that.

I need to stop assuming that everyone else knows more about the tech than I do.

We’ve talked a fair amount here at Geek Feminism about impostor syndrome and sexism (my past post). I’m just going to start with a few postulates:

  • In sexist societies, women get especially socialized to think we’re not as intellectually capable as we are, and to act self-deprecating about our abilities
  • In technical spaces where women are the minority, sexists dismiss our successes and concentrate on our missteps

Regarding the latter, I recently reread Abi Sutherland’s “Permission to Suck”, which included a moment of a familiar self-flagellation:

…every achievement is just a mitigation of the disservice I’m doing womankind.

It’s as though my goalposts came on casters to make them easier to move

But of course that is an error in judgment. Our sense of our own merit gets calibrated by feedback from the outside world, but sexism and impostor syndrome get in the way of that calibration. All the tentacles of this issue — the prejudice, the tokenization, the distorted self-perception, the discounting of one’s achievements and comparative lionization of others’ — bother me because they mess with proper judgment.

On an emotional level, I especially hate that anything is interfering with my data-collection and judgment. I am the kind of person who delayed drinking alcohol and took notes the first time she drank, to record any degradation in perceptions and prudence. I delayed getting a credit card till I’d supported myself for more than a year, partially to ensure that I had the correct attitude to judging purchases & debt. And here is this thing, clogging and fogging my mind, which I know is a lie, but which does not go away even when I speak its true name and snap three times.

Recursion Dinosaur

RECURSION DINOSAUR

And a poisonous effect of the socialization is that it turns women’s conversations about the problem into yet another self-deprecation exercise.

“I hate myself for hating myself so much”

“oh god you’re awesome, I have worse impostor syndrome than you”

“No way, your self-confidence is admirable”

“I’m meta-shit”

RECURSION DINOSAUR rawwwrrraaaawr

So I seek lessons and tactics on how to become a less irritating person to my friends, and a more useful and capable person going forward. Some assorted thoughts and ideas:

Five ways you can feel as competent as you really are

  1. Everything in Terri’s earlier advice, especially a shield of arrogance.

    I’m not saying you need a thick skin. That’s maybe true, but it won’t help your confidence nearly as much as the ability to say, “screw you; I’m awesome.” Shield of arrogance it is.

    If you are worried about being confidently wrong sometimes, note that a small increase in confident wrong assertions is a small price to pay for a big increase in capability, correct assertions, momentum, and achievement.

  2. Know that sometimes thoughts come from feelings, not the other way around. The “I suck” feeling does not necessarily have a basis, just as good weather and ephemeral physiology can put you on top of the world. Instead of looking for reasons that you feel mildly down or incapable, consider disregarding them, acting, and seeing if your feelings dissipate.
  3. If you feel compelled to go from success to success, you may not be risking enough. As these entrepreneurs do, try assuming that you will fail the first time you try something.
  4. Every endeavor that anyone has ever done is therefore in some sense No Big Deal, that is, doable. Some people make the hard look easy, but experience and effort make for far greater variation than does innate ability — or, at least, isn’t it more useful to assume so? Watch other people succeed, and watch other people fail. Mere life experience helped me out here, but so did Project Runway, where I saw good people trying and failing every single week. And so did seeing these guys, at the meetup, at the job interview, being dumber than me. I just had to keep my eyes open and it happened, because I am smarter than the average bear.
  5. Notice the things you know. A friend of mine recently mentioned to me that she worries that people perceive her as incompetent if she asks more than two questions about a hard problem via her company’s internal IRC channel. I asked her to compare how many questions she asks and answers on IRC each day. She hadn’t even been considering that ratio, because she’d unthinkingly assumed that what she knew must be basic, and blabbing about the stuff she already knows is easy and natural and unremarkable. But upon consideration, she’s a good peer in that informational ecology, seeding more than she leeches.

This is all corollary to my earlier injunction to make irrationality work for you. We are all monkeys, seizing on narratives and any status signals we can find. Don’t keep the default sexist irrational assumptions get in the way of your confidence-competence virtuous circle. Make your own recursion dinosaur of win.

Letting down my entire gender

Years ago, probably around when I started my master’s degree, I had a chat with a friend about grad school, and she was telling me about how she’d made the decision not to continue on for her PhD. She had a lot of good reasons that just made a lot of sense for her life and her family and her goals, but she mentioned that although she was sure it was the right choice for her, sometimes she felt like she was letting down her entire gender because so few women continue on to do a PhD.

I’m reminded of this because that’s a theme that’s come up in a few comments on my recent post about impostor syndrome.

Quill says,

I’m torn because there’s still time, I could go back to studying computer science. I do think female representation in STEM is Important and I hate myself for taking the “easy” option and leaving a hostile environment (rather than continuing to try to fix it)

Restructure says,

I felt really bad for dropping these courses, because it felt like I was letting down my entire gender, and by dropping the course, the male students’ stereotypes about women would be confirmed.

I wish I could say I’m immune to this, but when you’re one in a small minority (be it due to gender, race, sexual orientation, disability/ability, etc.) it’s hard to deny that it’s a factor. Guilt about not being able to do everything strikes everyone. Parents, teachers, pastors… probably even politicians. But I think it’s worse for those of us who are minorities in some way. You might be the only person “like you” your colleagues will ever see. You want to be a paragon of people like you. You want them all to come away with you as a shining counterexample the next time they hear someone say “$minority can’t do $foo.” It’s not just that you need them to be impressed by you, but that you’re representing your entire minority. There’s a world of difference between competing on a sports team and representing your country in the olympics. You want to do your best not only for you, but for everyone like you.

And that’s just the pressure you’re putting on yourself. Then there’s the requests for you to represent $people-like-you. “We need women for our co-ed sports team” or “we need you to advise the board on how we can better meet the needs of disabled folk” or “I need some dating advice and you’re the only woman I know…” or “we need you to talk about your experiences as an immigrant.” And you’re suited to the job, and maybe you want to help even, but you’ve got 30 of these requests and you barely have enough time to do your own job let alone all these other things.

Saying no is extra hard when you’re trying to be that paragon super-$minority and improve the world for $minorities worldwide. What if being on that committee resulted in them hiring more $people-like-you? What if your conference talk changed someone’s opinion of $people-like-you? What if you inspired more $people-like-you to do what you love? Are you cutting off these possibilities by saying no?

And then there’s the spotlight. You are one of few $people-like-you, so people notice what you do or don’t do. People can be more resentful when you say no because they don’t know who else to turn to, and they can’t understand why you might choose to turn down such a great opportunity because they haven’t got 10 of those on their desks for that day alone. You try to gripe about it to people, and they’re utterly unsympathetic, “Oh, my life is so hard, everyone pays attention to me. wah wah.”

So you feel guilty. For yourself, for other people. You feel like changing the world rests in your hands, and you let the world down because you had to say no. You had to quit. You had to hide. You were capable of doing it — that was not in question — but you didn’t want to and you’re worried people will think that was a sign of weakness. You chose not to. And you’re feeling guilty.

I wish I had some magical advice to deal with the paragon guilt, but sadly I don’t. But I have a few non-magical things I’ve found help me:

  • Practice saying no, and learn to say “Let me check my schedule and get back to you on that…” so you have time to think and make the best choice you can in a sometimes very hard situtation.
  • Seek out more $people-like-you. Maybe they’d be happy to do some of the things you can’t (e.g. there are women who’d be happy to speak who just don’t get asked as often). Maybe you just need someone who can empathise with your problems. Maybe they’ll know a better way to help.
  • Seek out allies who aren’t as much like you. They can help with some of those requests too, and it can’t hurt for them to understand the problems you face.
  • Remember sometimes the demands on $people-like-you are just going to exceed the resources because there are few of you. That’s not your fault.
  • Try not to let guilt stop you from making choices that make sense for you. You’re probably going to want to make some sacrifices for $people-like-you, but you can’t help anyone if you’re burned out, so try to find a balance.
  • Remind yourself of all the awesome stuff you have been able to do. Save thank you letters. Contemplate indirect impacts you might have had. Think about things you did well that weren’t related to being a minority at all, but are awesomeness that people might now associate with your minority.

So… what makes you feel like you’re letting down your entire gender/race/sexual-orientation, etc? What are your coping strategies? I think this sort of guilt is felt by lots of people, just magnified by being a minority, so feel free to provide links to advice and coping strategies that are more general.